{"_id":"@anura-gate/watcher-outlook","_rev":"3-00b923e3bb02408b56432e4eac9f50e8","name":"@anura-gate/watcher-outlook","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@anura-gate/watcher-outlook","version":"0.1.0","keywords":["gate","watcher","outlook","email","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-outlook@0.1.0","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"bin":{"gate-watcher-outlook":"cli.js"},"dist":{"shasum":"6d28b749d442258e06767486ed4673d71a0f0621","tarball":"https://registry.npmjs.org/@anura-gate/watcher-outlook/-/watcher-outlook-0.1.0.tgz","fileCount":7,"integrity":"sha512-aj2KgocaKq1kxaND0QtwV7hdV0vCDXhXmm4jucyg2mCTnJpw7Dsm0lMua6dCcJl/Ea4edvqFEIKUDn8cH5XGnw==","signatures":[{"sig":"MEQCIF+HERIVlmetQhZW6TqlADWoCIZu1X3bm/lxnUGseBz7AiA6nWxgNiQlohW/G4FHbzcyFSuvNx+EFJtivuhkm7PIVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50125},"main":"index.js","engines":{"node":">=18"},"gitHead":"44365216824fdeb321f27ac4b2397e40cea18e0a","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Outlook monitor. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1","qrcode":"^1.5.4","imapflow":"^1.0.171"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-outlook_0.1.0_1771499634174_0.4130310590888455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anura-gate/watcher-outlook","version":"0.2.0","keywords":["gate","watcher","outlook","email","self-hosted"],"license":"MIT","_id":"@anura-gate/watcher-outlook@0.2.0","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"bin":{"gate-watcher-outlook":"cli.js"},"dist":{"shasum":"b73305a11a05f6663038de812b56c3f96797cab5","tarball":"https://registry.npmjs.org/@anura-gate/watcher-outlook/-/watcher-outlook-0.2.0.tgz","fileCount":7,"integrity":"sha512-haUWhB0r4OTlYh40s/kOgmo9SN54PF4TdC0pCaineC/qzFVtdt33EBlTchzoxI9/xZy2tmWx1qIQ378xidtX7Q==","signatures":[{"sig":"MEUCIQDOFgdf45KJb4ifCT58vlgwyGhUAbEtZi2DtzfFpUzy4AIgAJ83ndZNob7vhbdIW1LhN9wb0WhNhgzRLtc4jUvbGmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51044},"main":"index.js","engines":{"node":">=18"},"gitHead":"9de498efc9037d0f60a6b830ab7df915d5e8dbfc","scripts":{"start":"node cli.js"},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"_npmVersion":"10.9.2","description":"GATE Watcher — Self-hosted Outlook monitor. Credentials never leave your machine.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"dotenv":"^17.3.1","qrcode":"^1.5.4","imapflow":"^1.0.171"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/watcher-outlook_0.2.0_1772343247523_0.717510099429312","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anura-gate/watcher-outlook","version":"0.4.0","description":"GATE Watcher — Self-hosted Outlook monitor. Credentials never leave your machine.","main":"index.js","bin":{"gate-watcher-outlook":"cli.js"},"scripts":{"start":"node cli.js"},"keywords":["gate","watcher","outlook","email","self-hosted"],"license":"MIT","homepage":"https://anuragate.com","repository":{"type":"git","url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git"},"dependencies":{"dotenv":"^17.3.1","imapflow":"^1.0.171","qrcode":"^1.5.4"},"engines":{"node":">=18"},"_id":"@anura-gate/watcher-outlook@0.4.0","gitHead":"0ebb362ebdf75c602ccbaa15cb7db91b80f2901d","bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"},"_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-zGdfdiFyMX+f64GV1Jsm8LBmjVmiWX5bscHpDam9m47jfZMfVXKhrvX7s/+WWTHcICRi90k/ApDk/YJZAwygHg==","shasum":"d9c38ea8a2ff02c2bedbd9d68ab2626867f3999f","tarball":"https://registry.npmjs.org/@anura-gate/watcher-outlook/-/watcher-outlook-0.4.0.tgz","fileCount":8,"unpackedSize":55512,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDloko98+vTSDLTwMye32P/NYAO827A4PQBM7RRELU6OQIgPumnugH48KrelgLivtrh7dDXhV236D2SFoQN9adugIw="}]},"_npmUser":{"name":"anuragate","email":"ahmadajmal1514@gmail.com"},"directories":{},"maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/watcher-outlook_0.4.0_1772353009844_0.6402233823963295"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-19T11:13:54.094Z","modified":"2026-03-01T08:16:50.127Z","0.1.0":"2026-02-19T11:13:54.301Z","0.2.0":"2026-03-01T05:34:07.661Z","0.4.0":"2026-03-01T08:16:49.983Z"},"license":"MIT","keywords":["gate","watcher","outlook","email","self-hosted"],"description":"GATE Watcher — Self-hosted Outlook monitor. Credentials never leave your machine.","maintainers":[{"name":"anuragate","email":"ahmadajmal1514@gmail.com"}],"readme":"# GATE Watcher — Outlook\n\nSelf-hosted daemon that monitors your Outlook / Microsoft 365 inbox via IMAP and pushes mail events to GATE cloud for security processing. **Your email credentials never leave your machine.**\n\n## How it works\n\n```\nYour Machine (Watcher)              GATE Cloud\n┌─────────────────────┐        ┌──────────────────┐\n│ Outlook IMAP session│───────>│ Security pipeline │\n│ (credentials HERE)  │<───────│ (redact, policy,  │\n│                     │ poll   │  audit, forward)  │\n└─────────────────────┘        └──────────────────┘\n```\n\n## Quick Start (CLI)\n\n```bash\ncd gate-watcher-outlook\nnpm install\n\n# Create .env (or pass env vars directly)\ncp .env.example .env\n# Fill in GATE_KEY, GATE_INTEGRATION_ID, OUTLOOK_EMAIL, OUTLOOK_PASSWORD\n\nnpm start\n```\n\n## Embed in Your App (SDK)\n\n```bash\nnpm install @anura-gate/watcher-outlook\n```\n\n```js\nconst { GateOutlookWatcher } = require(\"@anura-gate/watcher-outlook\");\n\nconst watcher = new GateOutlookWatcher({\n  gateKey: \"gk-xxx\",\n  integrationId: \"int_xxx\",\n  email: \"you@outlook.com\",\n  password: \"your-app-password\",\n});\n\nwatcher.on(\"ready\", (email) => {\n  console.log(`Outlook connected: ${email}`);\n});\n\n// Every new email after GATE security processing\nwatcher.on(\"mail\", (mail, result) => {\n  console.log(`From: ${mail.from}, Subject: ${mail.subject}`);\n  console.log(`Security actions: ${result.securityActions}`);\n  console.log(`Blocked: ${result.blocked}`);\n});\n\nwatcher.on(\"action_result\", ({ action, success, error }) => {\n  console.log(`${action}: ${success ? \"done\" : error}`);\n});\n\nawait watcher.start();\n\n// Later...\nawait watcher.stop();\n```\n\n## SDK Events\n\n| Event | Args | Description |\n|---|---|---|\n| `ready` | `(email)` | Connected to Outlook IMAP |\n| `mail` | `(mail, result)` | New email processed by GATE |\n| `action` | `(action)` | Outbound action received from GATE queue |\n| `action_result` | `({ actionId, action, success, result, error })` | Outbound action completed |\n| `gate_error` | `({ path, status, error })` | GATE API call failed |\n| `limit_reached` | `(type)` | Plan limit hit |\n| `disconnected` | `(reason)` | IMAP disconnected |\n| `stopped` | — | Watcher fully shut down |\n\n## SDK Options\n\n| Option | Required | Default | Description |\n|---|---|---|---|\n| `gateKey` | Yes | — | Virtual key (`gk-xxx`) |\n| `integrationId` | Yes | — | Integration ID (`int_xxx`) |\n| `email` | Yes | — | Outlook / Microsoft 365 email address |\n| `password` | Yes | — | App password or OAuth token |\n| `gateUrl` | No | `\"https://anuragate.com\"` | GATE cloud URL |\n| `host` | No | `\"outlook.office365.com\"` | IMAP host |\n| `port` | No | `993` | IMAP port |\n| `pollInterval` | No | `30000` | ms between mail polls |\n| `heartbeatInterval` | No | `30000` | ms between heartbeats |\n| `sessionId` | No | — | Session ID for multi-tenant use |\n| `sessionLabel` | No | — | Human-readable session label |\n| `sessionMetadata` | No | `{}` | Arbitrary metadata for the session |\n\n## Setup\n\n1. Sign in to your Microsoft account and go to **Security → Advanced security options**\n2. Under **App passwords**, generate a new app password\n3. Go to **GATE Dashboard → Integrations → Add Integration**\n4. Select **Outlook**, copy the **Integration ID**\n5. Copy your **Virtual Key** from the **Keys** page\n6. Set the env vars and run\n\n## Environment Variables\n\n| Variable | Required | Description |\n|---|---|---|\n| `GATE_KEY` | Yes | Your GATE virtual key |\n| `GATE_INTEGRATION_ID` | Yes | Integration ID from the dashboard |\n| `OUTLOOK_EMAIL` | Yes | Your Outlook / Microsoft 365 email |\n| `OUTLOOK_PASSWORD` | Yes | App password |\n| `OUTLOOK_HOST` | No | Custom IMAP host |\n| `OUTLOOK_PORT` | No | Custom IMAP port |\n| `OUTLOOK_POLL_INTERVAL` | No | Poll interval in ms |\n| `GATE_URL` | No | Custom GATE cloud URL |\n| `WEB_PORT` | No | Port for the dev dashboard (CLI only) |\n\n## Security model\n\n- Outlook credentials stored in `.env` on YOUR machine\n- GATE cloud never sees or stores your credentials\n- All email content passes through GATE's security pipeline\n- Billing, limits, and security enforced server-side\n","readmeFilename":"README.md","homepage":"https://anuragate.com","repository":{"type":"git","url":"git+https://github.com/ahmad-ajmal/AnuraGate_Sample.git"},"bugs":{"url":"https://github.com/ahmad-ajmal/AnuraGate_Sample/issues"}}