@codigoconelmer/driftwatch 1.2.0 → 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 CHANGED
@@ -165,14 +165,22 @@ CHAT_ID=your-chat-id
165
165
 
166
166
  ### Slack
167
167
 
168
- 1. Go to [api.slack.com/apps](https://api.slack.com/apps) → Create App → Incoming Webhooks → Activate → Add Webhook
169
- 2. Copy the webhook URL
170
- 3. Add to `.env`: `SLACK_WEBHOOK=https://hooks.slack.com/services/...`
168
+ 1. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create an App****From scratch**
169
+ 2. Give it a name (e.g. `DriftWatch`) and select your workspace → **Create App**
170
+ 3. In the left menu → **Incoming Webhooks** → toggle **Activate Incoming Webhooks** on
171
+ 4. Scroll down → **Add New Webhook to Workspace** → select the channel → **Allow**
172
+ 5. Copy the webhook URL that appears
173
+ 6. Add to `.env`: `SLACK_WEBHOOK=https://hooks.slack.com/services/...`
171
174
 
172
175
  ### Discord
173
176
 
174
- 1. Server Settings Integrations Webhooks New Webhook → Copy URL
175
- 2. Add to `.env`: `DISCORD_WEBHOOK=https://discord.com/api/webhooks/...`
177
+ 1. Create a Discord server (or use an existing one)
178
+ 2. Create a text channel for alerts (e.g. `#driftwatch-alerts`)
179
+ 3. Right-click the channel → **Edit Channel** (in Spanish: **Editar canal**)
180
+ 4. **Integrations** → **Webhooks** → **New Webhook** → Copy URL
181
+ 5. Add to `.env`: `DISCORD_WEBHOOK=https://discord.com/api/webhooks/...`
182
+
183
+ > No developer account needed. You must be the server owner or have "Manage Webhooks" permission.
176
184
 
177
185
  Without any alert channel configured, drift is logged to console only.
178
186
 
@@ -1 +1 @@
1
- {"version":3,"file":"webui.d.ts","sourceRoot":"","sources":["../src/webui.ts"],"names":[],"mappings":"AAiGA,wBAAgB,UAAU,CAAC,IAAI,SAAO,GAAG,IAAI,CAkB5C"}
1
+ {"version":3,"file":"webui.d.ts","sourceRoot":"","sources":["../src/webui.ts"],"names":[],"mappings":"AAiGA,wBAAgB,UAAU,CAAC,IAAI,SAAO,GAAG,IAAI,CA2B5C"}
package/dist/webui.js CHANGED
@@ -107,6 +107,15 @@ export function startWebUI(port = PORT) {
107
107
  res.end(HTML);
108
108
  }
109
109
  });
110
+ server.on('error', (err) => {
111
+ if (err.code === 'EADDRINUSE') {
112
+ console.error(`[driftwatch] Port ${port} already in use. Try: driftwatch ui --port 4574`);
113
+ }
114
+ else {
115
+ console.error(`[driftwatch] Failed to start web UI: ${err.message}`);
116
+ }
117
+ process.exit(1);
118
+ });
110
119
  server.listen(port, () => {
111
120
  console.log(`[driftwatch] Web UI → http://localhost:${port}`);
112
121
  console.log('[driftwatch] Ctrl+C to stop.');
package/dist/webui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"webui.js","sourceRoot":"","sources":["../src/webui.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyFL,CAAC;AAET,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,IAAI;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"webui.js","sourceRoot":"","sources":["../src/webui.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyFL,CAAC;AAET,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,IAAI;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QAChD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,iDAAiD,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codigoconelmer/driftwatch",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "External API schema drift detector with alerts via Telegram, Slack, and Discord",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",