feat: IMAP-Posteingang fürs Ticketsystem (Mail-Antworten -> Tickets)
Neues Postfach lässt sich unter Einstellungen > E-Mail > IMAP-Posteingang einrichten (Host/Port/Verschlüsselung/Zugangsdaten/Ordner, An/Aus, Verbindungstest). Der Worker ruft es alle 2 Minuten ab (mailbox.ts) und ordnet eingehende Mails zu: 1. Betreff enthält eine Ticketnummer (T-123) UND Absender gehört nachweislich zum Kunden dieses Tickets -> wird als Kundennachricht angehängt (Status pending_staff, Discord-Benachrichtigung). 2. Sonst, wenn der Absender ein bekannter aktiver Kunde ist -> neues Ticket wird automatisch unter seinem Kundenkonto angelegt. 3. Sonst (unbekannter/nicht verifizierbarer Absender) -> landet im neuen Posteingang (/admin/inbox, UI unter /admin/posteingang) zur manuellen Zuordnung: Personal wählt einen Kunden (legt Ticket an), hängt die Mail an ein bestehendes Ticket, oder ignoriert sie. Beim ersten Aktivieren wird kein Mailbox-Bestand verarbeitet, nur ab dann neu Eingehendes (last_uid wird auf den aktuellen Stand gesetzt). Migration 024: imap_settings (Verbindung, verschlüsseltes Passwort, last_uid/last_error), inbox_messages (Warteschlange). Rechte: email.read/write für die IMAP-Verbindung (wie SMTP), tickets.read/write für den Posteingang (Zuordnung ist eine Ticket-Aktion, daher im Tickets-Modul statt eines eigenen Moduls, um keine Modulgrenzen zu verletzen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
7d2b2947f4
commit
fe18bf0bce
11 changed files with 651 additions and 3 deletions
277
pnpm-lock.yaml
generated
277
pnpm-lock.yaml
generated
|
|
@ -37,6 +37,9 @@ importers:
|
|||
fastify:
|
||||
specifier: ^5.12.5
|
||||
version: 5.12.5
|
||||
imapflow:
|
||||
specifier: ^1.0.191
|
||||
version: 1.7.8
|
||||
mysql2:
|
||||
specifier: ^3.24.4
|
||||
version: 3.24.4(@types/node@26.6.3)
|
||||
|
|
@ -111,6 +114,12 @@ importers:
|
|||
discord.js:
|
||||
specifier: ^14.27.0
|
||||
version: 14.27.0
|
||||
imapflow:
|
||||
specifier: ^1.0.191
|
||||
version: 1.7.8
|
||||
mailparser:
|
||||
specifier: ^3.7.4
|
||||
version: 3.9.30
|
||||
mysql2:
|
||||
specifier: ^3.24.4
|
||||
version: 3.24.4(@types/node@26.6.3)
|
||||
|
|
@ -118,6 +127,9 @@ importers:
|
|||
specifier: ^4.6.5
|
||||
version: 4.6.5
|
||||
devDependencies:
|
||||
'@types/mailparser':
|
||||
specifier: ^3.4.6
|
||||
version: 3.4.6
|
||||
'@types/node':
|
||||
specifier: ^26.6.3
|
||||
version: 26.6.3
|
||||
|
|
@ -882,6 +894,11 @@ packages:
|
|||
resolution: {integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==}
|
||||
engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
|
||||
|
||||
'@selderee/plugin-htmlparser2@0.12.0':
|
||||
resolution: {integrity: sha512-oELmoyA6ML9jDRMV3kgcMQFKxUfBU0yFVn6yTctVaLT5ygXnxH52I3TZEgV9EhXJC68/uFvE5Daj1/25c0Xa/A==}
|
||||
peerDependencies:
|
||||
selderee: ~0.12.0
|
||||
|
||||
'@swc/helpers@0.5.23':
|
||||
resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
|
||||
|
||||
|
|
@ -894,6 +911,9 @@ packages:
|
|||
'@types/estree@1.0.9':
|
||||
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
|
||||
|
||||
'@types/mailparser@3.4.6':
|
||||
resolution: {integrity: sha512-wVV3cnIKzxTffaPH8iRnddX1zahbYB1ZEoAxyhoBo3TBCBuK6nZ8M8JYO/RhsCuuBVOw/DEN/t/ENbruwlxn6Q==}
|
||||
|
||||
'@types/node@26.6.3':
|
||||
resolution: {integrity: sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==}
|
||||
|
||||
|
|
@ -1055,6 +1075,12 @@ packages:
|
|||
resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==}
|
||||
engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
|
||||
|
||||
'@zone-eu/mailsplit@5.4.16':
|
||||
resolution: {integrity: sha512-zQ9iXvlT3Wi/hazeC1MdI4rQc1UJwJ6IQ6QzSZ5KDxLZZWQSazWLOzImLFluXadKShJ9WJvI1xH+AyVS8b9azg==}
|
||||
|
||||
'@zone-eu/mailsplit@5.4.18':
|
||||
resolution: {integrity: sha512-ufNquC1VWilkF6IUyy7+qYA19Q1JXNkeiiSIgS9+f7ojNs5ijHLg03FUcXDCR2tDDJ51zSoPNTsUu4DQz613KQ==}
|
||||
|
||||
abstract-logging@2.0.1:
|
||||
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
|
||||
|
||||
|
|
@ -1150,6 +1176,10 @@ packages:
|
|||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
deepmerge-ts@8.0.2:
|
||||
resolution: {integrity: sha512-uqbvqLUMrc6p0MO+WBRtTxY55hmyh94WRwI5a++PZe54X+bfVh59FSN7uWCBCW1CCVjzjnrwzfI8zidE2obMMw==}
|
||||
engines: {node: '>=16.9.0'}
|
||||
|
||||
dequal@2.0.3:
|
||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -1171,9 +1201,38 @@ packages:
|
|||
resolution: {integrity: sha512-qHbFlFG2N7y3LjPySYsL6A1+BnX6bkTVgo842EX0CqVPk/KTMwZkojPHEXKsQUpWZNyz5BISNHK1cPpQw0+m4A==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
dom-serializer@2.0.0:
|
||||
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
|
||||
|
||||
domelementtype@2.3.0:
|
||||
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
|
||||
|
||||
domhandler@5.0.3:
|
||||
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
|
||||
engines: {node: '>= 4'}
|
||||
|
||||
domutils@3.2.2:
|
||||
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
|
||||
encoding-japanese@2.3.0:
|
||||
resolution: {integrity: sha512-eQyh1vzHz13DUkZcJO+0IOAoKXRQwKV5IBffeuYsWZyRLGiSzfzXObCqWvqFXdX0UU8qOk+lBXbkUhMCpdJe4Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
encoding-japanese@2.4.0:
|
||||
resolution: {integrity: sha512-PE0KjlsDy9JSsoU4C2Q8NXb1kC4c+bZRac9ZvHXUE4q1Ht63gScKMdEy9jst9+Fi3M4eDkqzkEhBZvix4blP2A==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
entities@4.5.0:
|
||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
entities@7.0.1:
|
||||
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
es-module-lexer@2.3.2:
|
||||
resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
|
||||
|
||||
|
|
@ -1251,14 +1310,32 @@ packages:
|
|||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||
engines: {node: 6.* || 8.* || >= 10.*}
|
||||
|
||||
he@1.2.0:
|
||||
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
|
||||
hasBin: true
|
||||
|
||||
helmet@8.3.0:
|
||||
resolution: {integrity: sha512-Qgpiaws3Sm30Av8Eah6sjMCZZwjlBu+E68rhpCWBshY1lb09HtLwj5GviX0OyQIn+ulUS0iX0AxN5n3tLZzz1w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
html-to-text@10.0.1:
|
||||
resolution: {integrity: sha512-GiVhRI1BatGARSCmlXWNCjDT0cWrwBWoeduLoV0WSKAgaV/wa+hUWy5LiQLUs4UwiUrE52ZCMfBGiKD87TDPrg==}
|
||||
engines: {node: '>=20.19.0'}
|
||||
|
||||
htmlparser2@10.1.0:
|
||||
resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==}
|
||||
|
||||
iconv-lite@0.6.3:
|
||||
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
iconv-lite@0.7.3:
|
||||
resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
imapflow@1.7.8:
|
||||
resolution: {integrity: sha512-dJoCIdZOJh26Rn2PdwEzwj0bRDgGBxxX38pio534FagIHVuR2l0SAfLr6sJo32YfuJHiSs/U2ntNDHnMg3/Hlg==}
|
||||
|
||||
ip-address@10.7.2:
|
||||
resolution: {integrity: sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==}
|
||||
engines: {node: '>= 12'}
|
||||
|
|
@ -1280,6 +1357,21 @@ packages:
|
|||
json-schema-traverse@1.0.0:
|
||||
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
|
||||
|
||||
leac@0.7.0:
|
||||
resolution: {integrity: sha512-qMrZeyEekgdRQ9o6a4NAB2EQZrv827GJdn1vnapwSJ90hWRB4TzUSunvacPkxQ2TnNqHNI1/zSt0hlo0crG8Jw==}
|
||||
|
||||
libbase64@1.3.0:
|
||||
resolution: {integrity: sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==}
|
||||
|
||||
libmime@5.4.3:
|
||||
resolution: {integrity: sha512-di9BoDabBUMqjeD/wGj+hHpSgdqAph5ui7w6OdY6NpzU6O6VFLQsMOg9tqCjm/zf9OHzAM9EZxSOF7uIb8O8Hw==}
|
||||
|
||||
libmime@5.4.5:
|
||||
resolution: {integrity: sha512-5xZSF0j71GqXMEolQAnS/gOD4nHrAhf9nPWdqvfIXXeFODx0T4BlO9XudlXe9AgDKAoOkR2YeFagQ1Dwy1v6RQ==}
|
||||
|
||||
libqp@2.1.1:
|
||||
resolution: {integrity: sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==}
|
||||
|
||||
light-my-request@6.6.0:
|
||||
resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==}
|
||||
|
||||
|
|
@ -1356,6 +1448,9 @@ packages:
|
|||
linebreak@1.1.0:
|
||||
resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==}
|
||||
|
||||
linkify-it@5.0.2:
|
||||
resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==}
|
||||
|
||||
locate-path@5.0.0:
|
||||
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -1379,6 +1474,10 @@ packages:
|
|||
magic-string@1.4.2:
|
||||
resolution: {integrity: sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==}
|
||||
|
||||
mailparser@3.9.30:
|
||||
resolution: {integrity: sha512-jtLxunaB3fxrX4x0scARwHd9Ctj3uWKt/Ps3Ge+DUnfdHf8LtQMF8ENUpptprxde+mwfGW0PSanb4hMfyE/xxg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
mysql2@3.24.4:
|
||||
resolution: {integrity: sha512-A2olluVlj0mvgyIRRISMEzXc51m+21mRtcMVjJyIpt2GG98+XrC9m9HzsqcMsX2LcnfccJvY5NB22g8fENBnOA==}
|
||||
engines: {node: '>= 8.0'}
|
||||
|
|
@ -1419,6 +1518,10 @@ packages:
|
|||
resolution: {integrity: sha512-He9XskOFms62SyAKkLu8CcGcYHAo+BSHSsORI8s4PJH8qZgZY4L4lDfvyN0twvmbpyG+eGrxpyBlskj9d9rJ8A==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
nodemailer@10.0.12:
|
||||
resolution: {integrity: sha512-PQ46oNbNMuH/Sno7B5IWIU9etytwrO0xdTFvWXpIQFRXhBAXtzD48243AS+BCbQQTPD8y3fqUrgLn0tSo77gvg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
obug@2.2.1:
|
||||
resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
|
|
@ -1445,6 +1548,9 @@ packages:
|
|||
pako@0.2.9:
|
||||
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
|
||||
|
||||
parseley@0.13.1:
|
||||
resolution: {integrity: sha512-uNBJZzmb60l6p6VWLTmevizNAGnE0xoSf1n0B4q3ntegDNzcS68NRCcBDZTcyXHxt2XhBChsCuqj4M+nChvE/A==}
|
||||
|
||||
path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -1452,6 +1558,9 @@ packages:
|
|||
pdfkit@0.20.2:
|
||||
resolution: {integrity: sha512-Q/w03ICAQyXfHNfTsg1udp0ADerdBN0s7a6XSPL7J7Ro6ABnafoBOCDBstIO9U02mvzHEV8HrvFIw5iV5ejIRA==}
|
||||
|
||||
peberminta@0.10.0:
|
||||
resolution: {integrity: sha512-80B2AsU+I4Qdb0ZAPSfe9UwvGzwkM37IKIFEvdS3D/3Ndgv2bsuJ0bfG1+iEYO+l7Gfd4EUJmuRyq7efLgRMzQ==}
|
||||
|
||||
picocolors@1.1.1:
|
||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
||||
|
||||
|
|
@ -1490,6 +1599,10 @@ packages:
|
|||
process-warning@5.1.0:
|
||||
resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==}
|
||||
|
||||
punycode.js@2.3.1:
|
||||
resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
qrcode@1.5.4:
|
||||
resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
|
|
@ -1561,6 +1674,9 @@ packages:
|
|||
secure-json-parse@4.1.0:
|
||||
resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==}
|
||||
|
||||
selderee@0.12.0:
|
||||
resolution: {integrity: sha512-b1YMh3+DHZp59DLna3qVwQ5iOla/nrI6mLBNW02XxU77M3046Df6VLkoaJyFz20VsGIG5kkp+FK0kg4K4HnUFw==}
|
||||
|
||||
semver@7.8.5:
|
||||
resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
|
||||
engines: {node: '>=10'}
|
||||
|
|
@ -1581,6 +1697,14 @@ packages:
|
|||
'@types/node':
|
||||
optional: true
|
||||
|
||||
smart-buffer@4.2.0:
|
||||
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
|
||||
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
|
||||
|
||||
socks@2.8.9:
|
||||
resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==}
|
||||
engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
|
||||
|
||||
sonic-boom@4.2.1:
|
||||
resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==}
|
||||
|
||||
|
|
@ -1639,6 +1763,10 @@ packages:
|
|||
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
tlds@1.261.0:
|
||||
resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==}
|
||||
hasBin: true
|
||||
|
||||
toad-cache@3.7.4:
|
||||
resolution: {integrity: sha512-m1TdR/rvT7kgGJZhspNtXdsdYk0fddFpJJFlG5s+UkPFo6lkLoZ3YLOaovPYjq1R75NP5JfeTlSHaOsE09peCg==}
|
||||
engines: {node: '>=20'}
|
||||
|
|
@ -1659,6 +1787,9 @@ packages:
|
|||
engines: {node: '>=16.20.0'}
|
||||
hasBin: true
|
||||
|
||||
uc.micro@2.1.0:
|
||||
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
||||
|
||||
undici-types@8.9.0:
|
||||
resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
|
||||
|
||||
|
|
@ -2249,6 +2380,12 @@ snapshots:
|
|||
|
||||
'@sapphire/snowflake@3.5.5': {}
|
||||
|
||||
'@selderee/plugin-htmlparser2@0.12.0(selderee@0.12.0)':
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
selderee: 0.12.0
|
||||
|
||||
'@swc/helpers@0.5.23':
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
|
@ -2262,6 +2399,11 @@ snapshots:
|
|||
|
||||
'@types/estree@1.0.9': {}
|
||||
|
||||
'@types/mailparser@3.4.6':
|
||||
dependencies:
|
||||
'@types/node': 26.6.3
|
||||
iconv-lite: 0.6.3
|
||||
|
||||
'@types/node@26.6.3':
|
||||
dependencies:
|
||||
undici-types: 8.9.0
|
||||
|
|
@ -2363,6 +2505,18 @@ snapshots:
|
|||
|
||||
'@vladfrangu/async_event_emitter@2.4.7': {}
|
||||
|
||||
'@zone-eu/mailsplit@5.4.16':
|
||||
dependencies:
|
||||
libbase64: 1.3.0
|
||||
libmime: 5.4.3
|
||||
libqp: 2.1.1
|
||||
|
||||
'@zone-eu/mailsplit@5.4.18':
|
||||
dependencies:
|
||||
libbase64: 1.3.0
|
||||
libmime: 5.4.5
|
||||
libqp: 2.1.1
|
||||
|
||||
abstract-logging@2.0.1: {}
|
||||
|
||||
ajv-formats@3.0.1(ajv@8.20.0):
|
||||
|
|
@ -2433,6 +2587,8 @@ snapshots:
|
|||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
deepmerge-ts@8.0.2: {}
|
||||
|
||||
dequal@2.0.3: {}
|
||||
|
||||
detect-libc@2.1.2: {}
|
||||
|
|
@ -2462,8 +2618,34 @@ snapshots:
|
|||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
dom-serializer@2.0.0:
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
entities: 4.5.0
|
||||
|
||||
domelementtype@2.3.0: {}
|
||||
|
||||
domhandler@5.0.3:
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
|
||||
domutils@3.2.2:
|
||||
dependencies:
|
||||
dom-serializer: 2.0.0
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
encoding-japanese@2.3.0: {}
|
||||
|
||||
encoding-japanese@2.4.0: {}
|
||||
|
||||
entities@4.5.0: {}
|
||||
|
||||
entities@7.0.1: {}
|
||||
|
||||
es-module-lexer@2.3.2: {}
|
||||
|
||||
esbuild@0.28.2:
|
||||
|
|
@ -2584,12 +2766,44 @@ snapshots:
|
|||
|
||||
get-caller-file@2.0.5: {}
|
||||
|
||||
he@1.2.0: {}
|
||||
|
||||
helmet@8.3.0: {}
|
||||
|
||||
html-to-text@10.0.1:
|
||||
dependencies:
|
||||
'@selderee/plugin-htmlparser2': 0.12.0(selderee@0.12.0)
|
||||
deepmerge-ts: 8.0.2
|
||||
dom-serializer: 2.0.0
|
||||
htmlparser2: 10.1.0
|
||||
selderee: 0.12.0
|
||||
|
||||
htmlparser2@10.1.0:
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
domutils: 3.2.2
|
||||
entities: 7.0.1
|
||||
|
||||
iconv-lite@0.6.3:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
|
||||
iconv-lite@0.7.3:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
|
||||
imapflow@1.7.8:
|
||||
dependencies:
|
||||
'@zone-eu/mailsplit': 5.4.16
|
||||
encoding-japanese: 2.3.0
|
||||
iconv-lite: 0.7.3
|
||||
libbase64: 1.3.0
|
||||
libmime: 5.4.3
|
||||
libqp: 2.1.1
|
||||
pino: 10.3.1
|
||||
socks: 2.8.9
|
||||
|
||||
ip-address@10.7.2: {}
|
||||
|
||||
ipaddr.js@2.5.0: {}
|
||||
|
|
@ -2604,6 +2818,26 @@ snapshots:
|
|||
|
||||
json-schema-traverse@1.0.0: {}
|
||||
|
||||
leac@0.7.0: {}
|
||||
|
||||
libbase64@1.3.0: {}
|
||||
|
||||
libmime@5.4.3:
|
||||
dependencies:
|
||||
encoding-japanese: 2.3.0
|
||||
iconv-lite: 0.7.3
|
||||
libbase64: 1.3.0
|
||||
libqp: 2.1.1
|
||||
|
||||
libmime@5.4.5:
|
||||
dependencies:
|
||||
encoding-japanese: 2.4.0
|
||||
iconv-lite: 0.7.3
|
||||
libbase64: 1.3.0
|
||||
libqp: 2.1.1
|
||||
|
||||
libqp@2.1.1: {}
|
||||
|
||||
light-my-request@6.6.0:
|
||||
dependencies:
|
||||
cookie: 1.1.1
|
||||
|
|
@ -2664,6 +2898,10 @@ snapshots:
|
|||
base64-js: 0.0.8
|
||||
unicode-trie: 2.0.0
|
||||
|
||||
linkify-it@5.0.2:
|
||||
dependencies:
|
||||
uc.micro: 2.1.0
|
||||
|
||||
locate-path@5.0.0:
|
||||
dependencies:
|
||||
p-locate: 4.1.0
|
||||
|
|
@ -2682,6 +2920,19 @@ snapshots:
|
|||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.6.0
|
||||
|
||||
mailparser@3.9.30:
|
||||
dependencies:
|
||||
'@zone-eu/mailsplit': 5.4.18
|
||||
encoding-japanese: 2.4.0
|
||||
he: 1.2.0
|
||||
html-to-text: 10.0.1
|
||||
iconv-lite: 0.7.3
|
||||
libmime: 5.4.5
|
||||
linkify-it: 5.0.2
|
||||
nodemailer: 10.0.12
|
||||
punycode.js: 2.3.1
|
||||
tlds: 1.261.0
|
||||
|
||||
mysql2@3.24.4(@types/node@26.6.3):
|
||||
dependencies:
|
||||
'@types/node': 26.6.3
|
||||
|
|
@ -2726,6 +2977,8 @@ snapshots:
|
|||
|
||||
nodemailer@10.0.10: {}
|
||||
|
||||
nodemailer@10.0.12: {}
|
||||
|
||||
obug@2.2.1: {}
|
||||
|
||||
on-exit-leak-free@2.1.2: {}
|
||||
|
|
@ -2746,6 +2999,11 @@ snapshots:
|
|||
|
||||
pako@0.2.9: {}
|
||||
|
||||
parseley@0.13.1:
|
||||
dependencies:
|
||||
leac: 0.7.0
|
||||
peberminta: 0.10.0
|
||||
|
||||
path-exists@4.0.0: {}
|
||||
|
||||
pdfkit@0.20.2:
|
||||
|
|
@ -2757,6 +3015,8 @@ snapshots:
|
|||
linebreak: 1.1.0
|
||||
png-js: 2.0.0
|
||||
|
||||
peberminta@0.10.0: {}
|
||||
|
||||
picocolors@1.1.1: {}
|
||||
|
||||
picomatch@4.0.7: {}
|
||||
|
|
@ -2803,6 +3063,8 @@ snapshots:
|
|||
|
||||
process-warning@5.1.0: {}
|
||||
|
||||
punycode.js@2.3.1: {}
|
||||
|
||||
qrcode@1.5.4:
|
||||
dependencies:
|
||||
dijkstrajs: 1.0.3
|
||||
|
|
@ -2869,6 +3131,10 @@ snapshots:
|
|||
|
||||
secure-json-parse@4.1.0: {}
|
||||
|
||||
selderee@0.12.0:
|
||||
dependencies:
|
||||
parseley: 0.13.1
|
||||
|
||||
semver@7.8.5: {}
|
||||
|
||||
set-blocking@2.0.0: {}
|
||||
|
|
@ -2909,6 +3175,13 @@ snapshots:
|
|||
'@types/node': 26.6.3
|
||||
optional: true
|
||||
|
||||
smart-buffer@4.2.0: {}
|
||||
|
||||
socks@2.8.9:
|
||||
dependencies:
|
||||
ip-address: 10.7.2
|
||||
smart-buffer: 4.2.0
|
||||
|
||||
sonic-boom@4.2.1:
|
||||
dependencies:
|
||||
atomic-sleep: 1.0.0
|
||||
|
|
@ -2951,6 +3224,8 @@ snapshots:
|
|||
fdir: 6.5.0(picomatch@4.0.7)
|
||||
picomatch: 4.0.7
|
||||
|
||||
tlds@1.261.0: {}
|
||||
|
||||
toad-cache@3.7.4: {}
|
||||
|
||||
ts-mixer@6.0.4: {}
|
||||
|
|
@ -2986,6 +3261,8 @@ snapshots:
|
|||
'@typescript/typescript-win32-arm64': 7.0.2
|
||||
'@typescript/typescript-win32-x64': 7.0.2
|
||||
|
||||
uc.micro@2.1.0: {}
|
||||
|
||||
undici-types@8.9.0: {}
|
||||
|
||||
undici@6.29.0: {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue