opensentinel 2.1.1 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +354 -283
- package/dist/archiver-AVNBYCKQ.js +15340 -0
- package/dist/archiver-AVNBYCKQ.js.map +1 -0
- package/dist/audit-logger-OBPR7CRO.js +22 -0
- package/dist/auth-UOX5K2BE.js +18 -0
- package/dist/autonomy-ZXDBDQUJ.js +86 -0
- package/dist/autonomy-ZXDBDQUJ.js.map +1 -0
- package/dist/aws-s3-Q4LLZZPD.js +146 -0
- package/dist/aws-s3-Q4LLZZPD.js.map +1 -0
- package/dist/backup-restore-PZ7CYYB7.js +16 -0
- package/dist/blocks-R3PODY47.js +23 -0
- package/dist/bot-QRARP4UN.js +36 -0
- package/dist/brain-7XLLM3KC.js +56 -0
- package/dist/camera-monitor-M5CYKUU4.js +335 -0
- package/dist/camera-monitor-M5CYKUU4.js.map +1 -0
- package/dist/{charts-MMXM6BWW.js → charts-V7ARZNKF.js} +2 -2
- package/dist/chunk-22VGGA7S.js +330 -0
- package/dist/chunk-22VGGA7S.js.map +1 -0
- package/dist/chunk-35WYTA3C.js +382 -0
- package/dist/chunk-35WYTA3C.js.map +1 -0
- package/dist/chunk-3E2PSU2C.js +146 -0
- package/dist/chunk-3E2PSU2C.js.map +1 -0
- package/dist/{chunk-L3F43VPB.js → chunk-4GLYY4NN.js} +2 -2
- package/dist/{chunk-L3F43VPB.js.map → chunk-4GLYY4NN.js.map} +1 -1
- package/dist/{chunk-L3PDU3XN.js → chunk-4UOE5TUZ.js} +4 -4
- package/dist/{chunk-6SNHU3CY.js → chunk-66OJ3WB4.js} +2 -2
- package/dist/chunk-6KONMXQ6.js +297 -0
- package/dist/chunk-6KONMXQ6.js.map +1 -0
- package/dist/chunk-6PMVAAA7.js +196 -0
- package/dist/chunk-6PMVAAA7.js.map +1 -0
- package/dist/chunk-766ASQWE.js +32620 -0
- package/dist/chunk-766ASQWE.js.map +1 -0
- package/dist/chunk-7WQO5J2M.js +29 -0
- package/dist/chunk-7WQO5J2M.js.map +1 -0
- package/dist/chunk-APHSRMBS.js +148 -0
- package/dist/chunk-APHSRMBS.js.map +1 -0
- package/dist/{chunk-4LVWXUNC.js → chunk-AYUKPTSM.js} +57 -39
- package/dist/chunk-AYUKPTSM.js.map +1 -0
- package/dist/chunk-BIPYADGB.js +84 -0
- package/dist/chunk-BIPYADGB.js.map +1 -0
- package/dist/chunk-BRBWNV65.js +457 -0
- package/dist/chunk-BRBWNV65.js.map +1 -0
- package/dist/chunk-BXZ6EA52.js +382 -0
- package/dist/chunk-BXZ6EA52.js.map +1 -0
- package/dist/chunk-EVE7MIIY.js +290 -0
- package/dist/chunk-EVE7MIIY.js.map +1 -0
- package/dist/chunk-F3TTNID2.js +138 -0
- package/dist/chunk-F3TTNID2.js.map +1 -0
- package/dist/chunk-H5RQOFO2.js +190 -0
- package/dist/chunk-H5RQOFO2.js.map +1 -0
- package/dist/chunk-HN3F4WSW.js +145 -0
- package/dist/chunk-HN3F4WSW.js.map +1 -0
- package/dist/{chunk-6DRDKB45.js → chunk-I6BDYQIG.js} +20 -9
- package/dist/chunk-I6BDYQIG.js.map +1 -0
- package/dist/chunk-IZJMVV7O.js +347 -0
- package/dist/chunk-IZJMVV7O.js.map +1 -0
- package/dist/chunk-KM22GV7G.js +211 -0
- package/dist/chunk-KM22GV7G.js.map +1 -0
- package/dist/chunk-MGFBLVR7.js +103 -0
- package/dist/chunk-MGFBLVR7.js.map +1 -0
- package/dist/chunk-MQJ2ECQT.js +228 -0
- package/dist/chunk-MQJ2ECQT.js.map +1 -0
- package/dist/{chunk-F6QUZQGI.js → chunk-MXAPLSJ5.js} +2 -2
- package/dist/{chunk-GK3E2I7A.js → chunk-NHMBTUMW.js} +2 -2
- package/dist/chunk-NPRTSZIF.js +131 -0
- package/dist/chunk-NPRTSZIF.js.map +1 -0
- package/dist/chunk-O7IH7JTI.js +1898 -0
- package/dist/chunk-O7IH7JTI.js.map +1 -0
- package/dist/chunk-OCVQGBJK.js +293 -0
- package/dist/chunk-OCVQGBJK.js.map +1 -0
- package/dist/chunk-P6QINGFL.js +332 -0
- package/dist/chunk-P6QINGFL.js.map +1 -0
- package/dist/chunk-PHDZKPNE.js +91 -0
- package/dist/chunk-PHDZKPNE.js.map +1 -0
- package/dist/chunk-PLDDJCW6.js +49 -0
- package/dist/chunk-PTGTGXV2.js +164 -0
- package/dist/chunk-PTGTGXV2.js.map +1 -0
- package/dist/chunk-REMIY4U2.js +171 -0
- package/dist/chunk-REMIY4U2.js.map +1 -0
- package/dist/chunk-RZ4YESBG.js +141 -0
- package/dist/chunk-RZ4YESBG.js.map +1 -0
- package/dist/chunk-SAX5MHK4.js +111 -0
- package/dist/chunk-SAX5MHK4.js.map +1 -0
- package/dist/{chunk-GVJVEWHI.js → chunk-SJSUSJ47.js} +2 -2
- package/dist/chunk-SPPMCAKG.js +777 -0
- package/dist/chunk-SPPMCAKG.js.map +1 -0
- package/dist/chunk-SVAPX2XN.js +2441 -0
- package/dist/chunk-SVAPX2XN.js.map +1 -0
- package/dist/chunk-TVEWKIK3.js +452 -0
- package/dist/chunk-TVEWKIK3.js.map +1 -0
- package/dist/{chunk-HH2HBTQM.js → chunk-TYAGMJNV.js} +5 -5
- package/dist/{chunk-JXUP2X7V.js → chunk-VEHFVBLI.js} +2 -2
- package/dist/chunk-VNX5GMTN.js +128 -0
- package/dist/chunk-VNX5GMTN.js.map +1 -0
- package/dist/chunk-VRD5CYRL.js +1568 -0
- package/dist/chunk-VRD5CYRL.js.map +1 -0
- package/dist/chunk-WLUHNG6X.js +122 -0
- package/dist/chunk-WLUHNG6X.js.map +1 -0
- package/dist/chunk-WRAKK6K6.js +265 -0
- package/dist/chunk-WRAKK6K6.js.map +1 -0
- package/dist/chunk-XKYRH4FM.js +681 -0
- package/dist/chunk-XKYRH4FM.js.map +1 -0
- package/dist/{chunk-GUBEEYDW.js → chunk-XMCVRVTF.js} +2 -2
- package/dist/{chunk-GUBEEYDW.js.map → chunk-XMCVRVTF.js.map} +1 -1
- package/dist/chunk-ZLZKF2PM.js +310 -0
- package/dist/chunk-ZLZKF2PM.js.map +1 -0
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/client-ZQSFPMOB.js +21 -0
- package/dist/clipboard-manager-TEO2GEDN.js +24 -0
- package/dist/commands/setup.js +3 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.js +3 -3
- package/dist/commands/status.js +2 -2
- package/dist/commands/stop.js +2 -2
- package/dist/commands/utils.js +2 -2
- package/dist/cron-explain-HHQKPD3M.js +16 -0
- package/dist/crypto-4AP47IKC.js +14 -0
- package/dist/crypto-4AP47IKC.js.map +1 -0
- package/dist/databases-37X4CI2Y.js +21 -0
- package/dist/databases-37X4CI2Y.js.map +1 -0
- package/dist/discord-B3HUPGQ6.js +70 -0
- package/dist/discord-B3HUPGQ6.js.map +1 -0
- package/dist/dist-UISMLMFN.js +21847 -0
- package/dist/dist-UISMLMFN.js.map +1 -0
- package/dist/email-K7LO2IPB.js +268 -0
- package/dist/email-K7LO2IPB.js.map +1 -0
- package/dist/enhanced-retrieval-DNLLEM4Z.js +753 -0
- package/dist/enhanced-retrieval-DNLLEM4Z.js.map +1 -0
- package/dist/enrichment-pipeline-MNHNW65K.js +13 -0
- package/dist/enrichment-pipeline-MNHNW65K.js.map +1 -0
- package/dist/entity-resolution-Y3IUWEAT.js +24 -0
- package/dist/entity-resolution-Y3IUWEAT.js.map +1 -0
- package/dist/env-IWXUVTCB.js +12 -0
- package/dist/env-IWXUVTCB.js.map +1 -0
- package/dist/google-workspace-DKWUVNGC.js +169 -0
- package/dist/google-workspace-DKWUVNGC.js.map +1 -0
- package/dist/hash-tool-ULQYD7B5.js +22 -0
- package/dist/hash-tool-ULQYD7B5.js.map +1 -0
- package/dist/heartbeat-monitor-GCISLXI3.js +22 -0
- package/dist/heartbeat-monitor-GCISLXI3.js.map +1 -0
- package/dist/image-generation-OSU7FP6F.js +486 -0
- package/dist/image-generation-OSU7FP6F.js.map +1 -0
- package/dist/imessage-NGA2XF2V.js +35 -0
- package/dist/imessage-NGA2XF2V.js.map +1 -0
- package/dist/inbox-summarizer-NRI4S7IF.js +47 -0
- package/dist/inbox-summarizer-NRI4S7IF.js.map +1 -0
- package/dist/incident-response-C5J7Q6DT.js +244 -0
- package/dist/incident-response-C5J7Q6DT.js.map +1 -0
- package/dist/inventory-manager-352OHXWD.js +24 -0
- package/dist/inventory-manager-352OHXWD.js.map +1 -0
- package/dist/jira-GSGDBMIG.js +199 -0
- package/dist/jira-GSGDBMIG.js.map +1 -0
- package/dist/json-tool-QE2SYHEG.js +26 -0
- package/dist/json-tool-QE2SYHEG.js.map +1 -0
- package/dist/key-rotation-DPHU4ZTB.js +18 -0
- package/dist/key-rotation-DPHU4ZTB.js.map +1 -0
- package/dist/lib.d.ts +603 -11
- package/dist/lib.js +161 -35
- package/dist/lib.js.map +1 -1
- package/dist/mailchimp-KKNF6QJ7.js +152 -0
- package/dist/mailchimp-KKNF6QJ7.js.map +1 -0
- package/dist/matrix-QVHG76I7.js +279 -0
- package/dist/matrix-QVHG76I7.js.map +1 -0
- package/dist/{mcp-LS7Q3Z5W.js → mcp-3JI6W7ZE.js} +3 -3
- package/dist/mcp-3JI6W7ZE.js.map +1 -0
- package/dist/microsoft365-UCBKJHNX.js +164 -0
- package/dist/microsoft365-UCBKJHNX.js.map +1 -0
- package/dist/ocr-AC7NPX33.js +22 -0
- package/dist/ocr-AC7NPX33.js.map +1 -0
- package/dist/ollama-BOAMSPLJ.js +8 -0
- package/dist/ollama-BOAMSPLJ.js.map +1 -0
- package/dist/pages-MI523RB7.js +26 -0
- package/dist/pages-MI523RB7.js.map +1 -0
- package/dist/pair-JDFTERIK.js +24 -0
- package/dist/pair-JDFTERIK.js.map +1 -0
- package/dist/pairing-IFQYCPNS.js +10 -0
- package/dist/pairing-IFQYCPNS.js.map +1 -0
- package/dist/pdf-ALQVOEJR.js +17 -0
- package/dist/pdf-ALQVOEJR.js.map +1 -0
- package/dist/presentations-DSV5IHG5.js +1002 -0
- package/dist/presentations-DSV5IHG5.js.map +1 -0
- package/dist/prometheus-JNT2BD4L.js +10 -0
- package/dist/prometheus-JNT2BD4L.js.map +1 -0
- package/dist/providers-J4LYPHDR.js +19 -0
- package/dist/providers-J4LYPHDR.js.map +1 -0
- package/dist/qr-code-WIX4PB4U.js +16 -0
- package/dist/qr-code-WIX4PB4U.js.map +1 -0
- package/dist/quickbooks-XB4NII2S.js +190 -0
- package/dist/quickbooks-XB4NII2S.js.map +1 -0
- package/dist/regex-tool-W4ABRKGK.js +24 -0
- package/dist/regex-tool-W4ABRKGK.js.map +1 -0
- package/dist/scheduler-VK4WFERV.js +63 -0
- package/dist/scheduler-VK4WFERV.js.map +1 -0
- package/dist/search-BCLBO5E3.js +25 -0
- package/dist/search-BCLBO5E3.js.map +1 -0
- package/dist/sendgrid-RNXCAFKM.js +152 -0
- package/dist/sendgrid-RNXCAFKM.js.map +1 -0
- package/dist/shopify-NCXYJB4R.js +171 -0
- package/dist/shopify-NCXYJB4R.js.map +1 -0
- package/dist/signal-6CGDFYL2.js +35 -0
- package/dist/signal-6CGDFYL2.js.map +1 -0
- package/dist/slack-IZQWIKOH.js +75 -0
- package/dist/slack-IZQWIKOH.js.map +1 -0
- package/dist/sms-M3JIOTCW.js +23 -0
- package/dist/sms-M3JIOTCW.js.map +1 -0
- package/dist/{src-K7GASHRH.js → src-VYUE6LRA.js} +138 -32
- package/dist/src-VYUE6LRA.js.map +1 -0
- package/dist/stocks-XXWBPOCU.js +14 -0
- package/dist/stocks-XXWBPOCU.js.map +1 -0
- package/dist/text-transform-6SGUA5Z4.js +22 -0
- package/dist/text-transform-6SGUA5Z4.js.map +1 -0
- package/dist/tools-2RLEI2N6.js +38 -0
- package/dist/tools-2RLEI2N6.js.map +1 -0
- package/dist/tunnel-IWMXUML4.js +301 -0
- package/dist/tunnel-IWMXUML4.js.map +1 -0
- package/dist/twilio-53GEW5JT.js +139 -0
- package/dist/twilio-53GEW5JT.js.map +1 -0
- package/dist/unit-converter-ZYXMEZOE.js +14 -0
- package/dist/unit-converter-ZYXMEZOE.js.map +1 -0
- package/dist/whatsapp-LFX6YKCM.js +35 -0
- package/dist/whatsapp-LFX6YKCM.js.map +1 -0
- package/dist/word-document-7B6SJMAY.js +902 -0
- package/dist/word-document-7B6SJMAY.js.map +1 -0
- package/dist/xero-QYO66D45.js +162 -0
- package/dist/xero-QYO66D45.js.map +1 -0
- package/dist/zapier-webhook-TBZ5YF2A.js +106 -0
- package/dist/zapier-webhook-TBZ5YF2A.js.map +1 -0
- package/drizzle/0002_mushy_master_mold.sql +140 -0
- package/drizzle/meta/0002_snapshot.json +3637 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +100 -98
- package/dist/bot-KJ26BG56.js +0 -15
- package/dist/chunk-4LVWXUNC.js.map +0 -1
- package/dist/chunk-4TG2IG5K.js +0 -5249
- package/dist/chunk-4TG2IG5K.js.map +0 -1
- package/dist/chunk-6DRDKB45.js.map +0 -1
- package/dist/chunk-CI6Q63MM.js +0 -1613
- package/dist/chunk-CI6Q63MM.js.map +0 -1
- package/dist/chunk-KHNYJY2Z.js +0 -178
- package/dist/chunk-KHNYJY2Z.js.map +0 -1
- package/dist/chunk-NSBPE2FW.js +0 -17
- package/dist/discord-ZOJFTVTB.js +0 -49
- package/dist/imessage-JFRB6EJ7.js +0 -14
- package/dist/scheduler-EZ7CZMCS.js +0 -42
- package/dist/signal-T3MCSULM.js +0 -14
- package/dist/slack-N2M4FHAJ.js +0 -54
- package/dist/src-K7GASHRH.js.map +0 -1
- package/dist/tools-24GZHYRF.js +0 -16
- package/dist/whatsapp-VCRUPAO5.js +0 -14
- /package/dist/{bot-KJ26BG56.js.map → audit-logger-OBPR7CRO.js.map} +0 -0
- /package/dist/{chunk-NSBPE2FW.js.map → auth-UOX5K2BE.js.map} +0 -0
- /package/dist/{discord-ZOJFTVTB.js.map → backup-restore-PZ7CYYB7.js.map} +0 -0
- /package/dist/{imessage-JFRB6EJ7.js.map → blocks-R3PODY47.js.map} +0 -0
- /package/dist/{mcp-LS7Q3Z5W.js.map → bot-QRARP4UN.js.map} +0 -0
- /package/dist/{scheduler-EZ7CZMCS.js.map → brain-7XLLM3KC.js.map} +0 -0
- /package/dist/{charts-MMXM6BWW.js.map → charts-V7ARZNKF.js.map} +0 -0
- /package/dist/{chunk-L3PDU3XN.js.map → chunk-4UOE5TUZ.js.map} +0 -0
- /package/dist/{chunk-6SNHU3CY.js.map → chunk-66OJ3WB4.js.map} +0 -0
- /package/dist/{chunk-F6QUZQGI.js.map → chunk-MXAPLSJ5.js.map} +0 -0
- /package/dist/{chunk-GK3E2I7A.js.map → chunk-NHMBTUMW.js.map} +0 -0
- /package/dist/{signal-T3MCSULM.js.map → chunk-PLDDJCW6.js.map} +0 -0
- /package/dist/{chunk-GVJVEWHI.js.map → chunk-SJSUSJ47.js.map} +0 -0
- /package/dist/{chunk-HH2HBTQM.js.map → chunk-TYAGMJNV.js.map} +0 -0
- /package/dist/{chunk-JXUP2X7V.js.map → chunk-VEHFVBLI.js.map} +0 -0
- /package/dist/{slack-N2M4FHAJ.js.map → client-ZQSFPMOB.js.map} +0 -0
- /package/dist/{tools-24GZHYRF.js.map → clipboard-manager-TEO2GEDN.js.map} +0 -0
- /package/dist/{whatsapp-VCRUPAO5.js.map → cron-explain-HHQKPD3M.js.map} +0 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import {
|
|
2
|
+
analyzeSentiment,
|
|
3
|
+
calculateEmailSize,
|
|
4
|
+
categorizeEmail,
|
|
5
|
+
cleanSubject,
|
|
6
|
+
extractActionItems,
|
|
7
|
+
extractEmailAddresses,
|
|
8
|
+
extractPhoneNumbers,
|
|
9
|
+
extractUrls,
|
|
10
|
+
generateDailyDigest,
|
|
11
|
+
getEmailSummary,
|
|
12
|
+
groupIntoThreads,
|
|
13
|
+
matchesFilter,
|
|
14
|
+
parseAttachment,
|
|
15
|
+
parseEmail,
|
|
16
|
+
parseEmailBody,
|
|
17
|
+
suggestReplies,
|
|
18
|
+
summarizeInbox,
|
|
19
|
+
summarizeThread
|
|
20
|
+
} from "./chunk-SPPMCAKG.js";
|
|
21
|
+
import {
|
|
22
|
+
ImapClient,
|
|
23
|
+
SmtpClient,
|
|
24
|
+
createImapClient,
|
|
25
|
+
createSmtpClient,
|
|
26
|
+
imap_client_exports,
|
|
27
|
+
init_imap_client,
|
|
28
|
+
init_smtp_client,
|
|
29
|
+
smtp_client_exports
|
|
30
|
+
} from "./chunk-766ASQWE.js";
|
|
31
|
+
import "./chunk-IZJMVV7O.js";
|
|
32
|
+
import "./chunk-6PMVAAA7.js";
|
|
33
|
+
import "./chunk-MQJ2ECQT.js";
|
|
34
|
+
import "./chunk-TVEWKIK3.js";
|
|
35
|
+
import "./chunk-BRBWNV65.js";
|
|
36
|
+
import "./chunk-H5RQOFO2.js";
|
|
37
|
+
import "./chunk-VRD5CYRL.js";
|
|
38
|
+
import "./chunk-KM22GV7G.js";
|
|
39
|
+
import "./chunk-P6QINGFL.js";
|
|
40
|
+
import "./chunk-HN3F4WSW.js";
|
|
41
|
+
import "./chunk-SVAPX2XN.js";
|
|
42
|
+
import "./chunk-WRAKK6K6.js";
|
|
43
|
+
import "./chunk-7WQO5J2M.js";
|
|
44
|
+
import "./chunk-BXZ6EA52.js";
|
|
45
|
+
import "./chunk-4GLYY4NN.js";
|
|
46
|
+
import "./chunk-EVE7MIIY.js";
|
|
47
|
+
import "./chunk-RZ4YESBG.js";
|
|
48
|
+
import "./chunk-CQ4JURG7.js";
|
|
49
|
+
import "./chunk-OCVQGBJK.js";
|
|
50
|
+
import "./chunk-XKYRH4FM.js";
|
|
51
|
+
import "./chunk-ZLZKF2PM.js";
|
|
52
|
+
import "./chunk-6KONMXQ6.js";
|
|
53
|
+
import "./chunk-22VGGA7S.js";
|
|
54
|
+
import "./chunk-35WYTA3C.js";
|
|
55
|
+
import {
|
|
56
|
+
__toCommonJS
|
|
57
|
+
} from "./chunk-PLDDJCW6.js";
|
|
58
|
+
|
|
59
|
+
// src/integrations/email/index.ts
|
|
60
|
+
init_imap_client();
|
|
61
|
+
init_smtp_client();
|
|
62
|
+
init_imap_client();
|
|
63
|
+
init_smtp_client();
|
|
64
|
+
var EmailClient = class {
|
|
65
|
+
imapClient;
|
|
66
|
+
smtpClient;
|
|
67
|
+
constructor(config) {
|
|
68
|
+
const { ImapClient: ImapClient2 } = (init_imap_client(), __toCommonJS(imap_client_exports));
|
|
69
|
+
const { SmtpClient: SmtpClient2 } = (init_smtp_client(), __toCommonJS(smtp_client_exports));
|
|
70
|
+
this.imapClient = new ImapClient2(config.imap);
|
|
71
|
+
this.smtpClient = new SmtpClient2(config.smtp);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Connect to the email server
|
|
75
|
+
*/
|
|
76
|
+
async connect() {
|
|
77
|
+
await this.imapClient.connect();
|
|
78
|
+
await this.smtpClient.verify();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Disconnect from the email server
|
|
82
|
+
*/
|
|
83
|
+
async disconnect() {
|
|
84
|
+
await this.imapClient.disconnect();
|
|
85
|
+
await this.smtpClient.close();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the IMAP client for reading emails
|
|
89
|
+
*/
|
|
90
|
+
get imap() {
|
|
91
|
+
return this.imapClient;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the SMTP client for sending emails
|
|
95
|
+
*/
|
|
96
|
+
get smtp() {
|
|
97
|
+
return this.smtpClient;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Fetch recent emails
|
|
101
|
+
*/
|
|
102
|
+
async fetchRecent(limit = 20) {
|
|
103
|
+
return this.imapClient.fetchEmails("INBOX", { limit });
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get unread count
|
|
107
|
+
*/
|
|
108
|
+
async getUnreadCount() {
|
|
109
|
+
return this.imapClient.getUnreadCount();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Send a simple text email
|
|
113
|
+
*/
|
|
114
|
+
async sendText(to, subject, text) {
|
|
115
|
+
return this.smtpClient.sendText(to, subject, text);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Send an HTML email
|
|
119
|
+
*/
|
|
120
|
+
async sendHtml(to, subject, html, text) {
|
|
121
|
+
return this.smtpClient.sendHtml(to, subject, html, text);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Reply to an email
|
|
125
|
+
*/
|
|
126
|
+
async reply(originalEmail, options) {
|
|
127
|
+
return this.smtpClient.reply(originalEmail, options);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Search for emails
|
|
131
|
+
*/
|
|
132
|
+
async search(options) {
|
|
133
|
+
return this.imapClient.searchEmails(options);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get inbox summary using AI
|
|
137
|
+
*/
|
|
138
|
+
async getInboxSummary() {
|
|
139
|
+
const { summarizeInbox: summarizeInbox2 } = await import("./inbox-summarizer-NRI4S7IF.js");
|
|
140
|
+
const emails = await this.fetchRecent(100);
|
|
141
|
+
return summarizeInbox2(emails);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get action items from recent emails
|
|
145
|
+
*/
|
|
146
|
+
async getActionItems() {
|
|
147
|
+
const { extractActionItems: extractActionItems2, categorizeEmail: categorizeEmail2 } = await import("./inbox-summarizer-NRI4S7IF.js");
|
|
148
|
+
const emails = await this.fetchRecent(50);
|
|
149
|
+
const allActions = [];
|
|
150
|
+
for (const email of emails) {
|
|
151
|
+
const category = await categorizeEmail2(email);
|
|
152
|
+
if (category.category === "action_required" || category.category === "urgent") {
|
|
153
|
+
const actions = await extractActionItems2(email);
|
|
154
|
+
allActions.push(...actions);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return allActions;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Generate daily digest
|
|
161
|
+
*/
|
|
162
|
+
async generateDigest() {
|
|
163
|
+
const { generateDailyDigest: generateDailyDigest2 } = await import("./inbox-summarizer-NRI4S7IF.js");
|
|
164
|
+
const emails = await this.fetchRecent(100);
|
|
165
|
+
return generateDailyDigest2(emails);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
function createEmailClient(provider, credentials, customConfig) {
|
|
169
|
+
const configs = {
|
|
170
|
+
gmail: {
|
|
171
|
+
imap: {
|
|
172
|
+
host: "imap.gmail.com",
|
|
173
|
+
port: 993,
|
|
174
|
+
secure: true,
|
|
175
|
+
user: credentials.user,
|
|
176
|
+
password: credentials.password
|
|
177
|
+
},
|
|
178
|
+
smtp: {
|
|
179
|
+
host: "smtp.gmail.com",
|
|
180
|
+
port: 465,
|
|
181
|
+
secure: true,
|
|
182
|
+
auth: { user: credentials.user, pass: credentials.password }
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
outlook: {
|
|
186
|
+
imap: {
|
|
187
|
+
host: "outlook.office365.com",
|
|
188
|
+
port: 993,
|
|
189
|
+
secure: true,
|
|
190
|
+
user: credentials.user,
|
|
191
|
+
password: credentials.password
|
|
192
|
+
},
|
|
193
|
+
smtp: {
|
|
194
|
+
host: "smtp-mail.outlook.com",
|
|
195
|
+
port: 587,
|
|
196
|
+
secure: false,
|
|
197
|
+
auth: { user: credentials.user, pass: credentials.password }
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
yahoo: {
|
|
201
|
+
imap: {
|
|
202
|
+
host: "imap.mail.yahoo.com",
|
|
203
|
+
port: 993,
|
|
204
|
+
secure: true,
|
|
205
|
+
user: credentials.user,
|
|
206
|
+
password: credentials.password
|
|
207
|
+
},
|
|
208
|
+
smtp: {
|
|
209
|
+
host: "smtp.mail.yahoo.com",
|
|
210
|
+
port: 465,
|
|
211
|
+
secure: true,
|
|
212
|
+
auth: { user: credentials.user, pass: credentials.password }
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
custom: {
|
|
216
|
+
imap: {
|
|
217
|
+
host: customConfig?.imap?.host || "localhost",
|
|
218
|
+
port: customConfig?.imap?.port || 993,
|
|
219
|
+
secure: customConfig?.imap?.secure ?? true,
|
|
220
|
+
user: credentials.user,
|
|
221
|
+
password: credentials.password,
|
|
222
|
+
...customConfig?.imap
|
|
223
|
+
},
|
|
224
|
+
smtp: {
|
|
225
|
+
host: customConfig?.smtp?.host || "localhost",
|
|
226
|
+
port: customConfig?.smtp?.port || 587,
|
|
227
|
+
secure: customConfig?.smtp?.secure ?? false,
|
|
228
|
+
auth: { user: credentials.user, pass: credentials.password },
|
|
229
|
+
...customConfig?.smtp
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
return new EmailClient(configs[provider]);
|
|
234
|
+
}
|
|
235
|
+
var email_default = {
|
|
236
|
+
EmailClient,
|
|
237
|
+
createEmailClient,
|
|
238
|
+
createImapClient,
|
|
239
|
+
createSmtpClient
|
|
240
|
+
};
|
|
241
|
+
export {
|
|
242
|
+
EmailClient,
|
|
243
|
+
ImapClient,
|
|
244
|
+
SmtpClient,
|
|
245
|
+
analyzeSentiment,
|
|
246
|
+
calculateEmailSize,
|
|
247
|
+
categorizeEmail,
|
|
248
|
+
cleanSubject,
|
|
249
|
+
createEmailClient,
|
|
250
|
+
createImapClient,
|
|
251
|
+
createSmtpClient,
|
|
252
|
+
email_default as default,
|
|
253
|
+
extractActionItems,
|
|
254
|
+
extractEmailAddresses,
|
|
255
|
+
extractPhoneNumbers,
|
|
256
|
+
extractUrls,
|
|
257
|
+
generateDailyDigest,
|
|
258
|
+
getEmailSummary,
|
|
259
|
+
groupIntoThreads,
|
|
260
|
+
matchesFilter,
|
|
261
|
+
parseAttachment,
|
|
262
|
+
parseEmail,
|
|
263
|
+
parseEmailBody,
|
|
264
|
+
suggestReplies,
|
|
265
|
+
summarizeInbox,
|
|
266
|
+
summarizeThread
|
|
267
|
+
};
|
|
268
|
+
//# sourceMappingURL=email-K7LO2IPB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/integrations/email/index.ts"],"sourcesContent":["// IMAP Client - Reading emails\nexport {\n ImapClient,\n createImapClient,\n type EmailConfig,\n type EmailMessage,\n type EmailAddress,\n type EmailAttachment,\n type SearchOptions,\n type FolderInfo,\n} from \"./imap-client\";\n\n// SMTP Client - Sending emails\nexport {\n SmtpClient,\n createSmtpClient,\n type SmtpConfig,\n type EmailRecipient,\n type EmailAttachment as SmtpEmailAttachment,\n type SendEmailOptions,\n type ReplyOptions,\n type SendResult,\n} from \"./smtp-client\";\n\n// Email Parser - Content parsing and threading\nexport {\n parseEmail,\n parseAttachment,\n groupIntoThreads,\n cleanSubject,\n parseEmailBody,\n extractEmailAddresses,\n extractUrls,\n extractPhoneNumbers,\n getEmailSummary,\n calculateEmailSize,\n matchesFilter,\n type ParsedEmail,\n type ThreadInfo,\n type ParsedAttachment,\n type EmailMetadata,\n type EmailThread,\n type QuotedSection,\n type EmailBodyParts,\n} from \"./email-parser\";\n\n// Inbox Summarizer - AI-powered analysis\nexport {\n categorizeEmail,\n extractActionItems,\n summarizeThread,\n summarizeInbox,\n generateDailyDigest,\n suggestReplies,\n analyzeSentiment,\n type InboxSummary,\n type CategorySummary,\n type UrgentItem,\n type ActionItem,\n type EmailCategorization,\n type ThreadSummary,\n} from \"./inbox-summarizer\";\n\n/**\n * Email Integration for OpenSentinel\n *\n * This module provides comprehensive email functionality:\n *\n * ## Reading Emails (IMAP)\n * ```typescript\n * import { createImapClient } from './integrations/email';\n *\n * const imap = createImapClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await imap.connect();\n * const emails = await imap.fetchEmails('INBOX', { limit: 20 });\n * const unread = await imap.getUnreadCount();\n * await imap.disconnect();\n * ```\n *\n * ## Sending Emails (SMTP)\n * ```typescript\n * import { createSmtpClient } from './integrations/email';\n *\n * const smtp = createSmtpClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await smtp.send({\n * to: 'recipient@example.com',\n * subject: 'Hello',\n * text: 'This is a test email'\n * });\n * ```\n *\n * ## Parsing Emails\n * ```typescript\n * import { parseEmail, groupIntoThreads } from './integrations/email';\n *\n * const parsed = parseEmail(rawEmail);\n * const threads = groupIntoThreads(emails);\n * ```\n *\n * ## AI-Powered Features\n * ```typescript\n * import { summarizeInbox, extractActionItems } from './integrations/email';\n *\n * const summary = await summarizeInbox(emails);\n * const actions = await extractActionItems(email);\n * ```\n */\n\n// Convenience class that combines IMAP and SMTP\nexport class EmailClient {\n private imapClient: InstanceType<typeof import(\"./imap-client\").ImapClient>;\n private smtpClient: InstanceType<typeof import(\"./smtp-client\").SmtpClient>;\n\n constructor(config: {\n imap: import(\"./imap-client\").EmailConfig;\n smtp: import(\"./smtp-client\").SmtpConfig;\n }) {\n const { ImapClient } = require(\"./imap-client\");\n const { SmtpClient } = require(\"./smtp-client\");\n\n this.imapClient = new ImapClient(config.imap);\n this.smtpClient = new SmtpClient(config.smtp);\n }\n\n /**\n * Connect to the email server\n */\n async connect(): Promise<void> {\n await this.imapClient.connect();\n await this.smtpClient.verify();\n }\n\n /**\n * Disconnect from the email server\n */\n async disconnect(): Promise<void> {\n await this.imapClient.disconnect();\n await this.smtpClient.close();\n }\n\n /**\n * Get the IMAP client for reading emails\n */\n get imap() {\n return this.imapClient;\n }\n\n /**\n * Get the SMTP client for sending emails\n */\n get smtp() {\n return this.smtpClient;\n }\n\n /**\n * Fetch recent emails\n */\n async fetchRecent(limit: number = 20): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.fetchEmails(\"INBOX\", { limit });\n }\n\n /**\n * Get unread count\n */\n async getUnreadCount(): Promise<number> {\n return this.imapClient.getUnreadCount();\n }\n\n /**\n * Send a simple text email\n */\n async sendText(\n to: string | string[],\n subject: string,\n text: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendText(to, subject, text);\n }\n\n /**\n * Send an HTML email\n */\n async sendHtml(\n to: string | string[],\n subject: string,\n html: string,\n text?: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendHtml(to, subject, html, text);\n }\n\n /**\n * Reply to an email\n */\n async reply(\n originalEmail: import(\"./imap-client\").EmailMessage,\n options: import(\"./smtp-client\").ReplyOptions\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.reply(originalEmail, options);\n }\n\n /**\n * Search for emails\n */\n async search(\n options: import(\"./imap-client\").SearchOptions\n ): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.searchEmails(options);\n }\n\n /**\n * Get inbox summary using AI\n */\n async getInboxSummary(): Promise<import(\"./inbox-summarizer\").InboxSummary> {\n const { summarizeInbox } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return summarizeInbox(emails);\n }\n\n /**\n * Get action items from recent emails\n */\n async getActionItems(): Promise<import(\"./inbox-summarizer\").ActionItem[]> {\n const { extractActionItems, categorizeEmail } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(50);\n\n const allActions: import(\"./inbox-summarizer\").ActionItem[] = [];\n\n for (const email of emails) {\n const category = await categorizeEmail(email);\n if (category.category === \"action_required\" || category.category === \"urgent\") {\n const actions = await extractActionItems(email);\n allActions.push(...actions);\n }\n }\n\n return allActions;\n }\n\n /**\n * Generate daily digest\n */\n async generateDigest(): Promise<string> {\n const { generateDailyDigest } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return generateDailyDigest(emails);\n }\n}\n\n/**\n * Create an email client with common provider presets\n */\nexport function createEmailClient(\n provider: \"gmail\" | \"outlook\" | \"yahoo\" | \"custom\",\n credentials: { user: string; password: string },\n customConfig?: {\n imap?: Partial<import(\"./imap-client\").EmailConfig>;\n smtp?: Partial<import(\"./smtp-client\").SmtpConfig>;\n }\n): EmailClient {\n const configs: Record<string, { imap: import(\"./imap-client\").EmailConfig; smtp: import(\"./smtp-client\").SmtpConfig }> = {\n gmail: {\n imap: {\n host: \"imap.gmail.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.gmail.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n outlook: {\n imap: {\n host: \"outlook.office365.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp-mail.outlook.com\",\n port: 587,\n secure: false,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n yahoo: {\n imap: {\n host: \"imap.mail.yahoo.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.mail.yahoo.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n custom: {\n imap: {\n host: customConfig?.imap?.host || \"localhost\",\n port: customConfig?.imap?.port || 993,\n secure: customConfig?.imap?.secure ?? true,\n user: credentials.user,\n password: credentials.password,\n ...customConfig?.imap,\n },\n smtp: {\n host: customConfig?.smtp?.host || \"localhost\",\n port: customConfig?.smtp?.port || 587,\n secure: customConfig?.smtp?.secure ?? false,\n auth: { user: credentials.user, pass: credentials.password },\n ...customConfig?.smtp,\n },\n },\n };\n\n return new EmailClient(configs[provider]);\n}\n\n// Import factory functions for default export\nimport { createImapClient as _createImapClient } from \"./imap-client\";\nimport { createSmtpClient as _createSmtpClient } from \"./smtp-client\";\n\nexport default {\n EmailClient,\n createEmailClient,\n createImapClient: _createImapClient,\n createSmtpClient: _createSmtpClient,\n};\n"],"mappings":"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","names":["ImapClient","SmtpClient","summarizeInbox","extractActionItems","categorizeEmail","generateDailyDigest"]}
|