homebridge-myleviton 4.1.2 → 4.1.3
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/config.schema.json
CHANGED
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
"title": "Send Signals to PagerDuty",
|
|
124
124
|
"type": "boolean",
|
|
125
125
|
"default": false,
|
|
126
|
-
"description": "
|
|
126
|
+
"description": "Write this plugin's alert conditions to homebridge-pagerduty's signal store. Then allow homebridge-myleviton to page in homebridge-pagerduty's settings."
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagerduty-signals.d.ts","sourceRoot":"","sources":["../src/pagerduty-signals.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CACrC;
|
|
1
|
+
{"version":3,"file":"pagerduty-signals.d.ts","sourceRoot":"","sources":["../src/pagerduty-signals.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AAEtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CACrC;AA2BD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,EAAE,CAAiC;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAQ;gBAEb,OAAO,EAAE,uBAAuB;IAI5C,0FAA0F;IAC1F,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAgB/C,kFAAkF;IAClF,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;IAyBZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,QAAQ;CAMjB"}
|
|
@@ -4,11 +4,14 @@ exports.PagerDutySignals = void 0;
|
|
|
4
4
|
const node_fs_1 = require("node:fs");
|
|
5
5
|
const node_path_1 = require("node:path");
|
|
6
6
|
const STORE_DIR = 'homebridge-pagerduty';
|
|
7
|
+
// The signal store interface this module writes. Change it only by copying a
|
|
8
|
+
// newer version of this module from homebridge-pagerduty's docs/SIGNALS-AGENT.md.
|
|
9
|
+
const INTERFACE_ID = 'signals-2026-10-24';
|
|
7
10
|
const STORE_FILE = 'signals.sqlite';
|
|
8
|
-
const INTERFACE_VERSION = 1;
|
|
9
11
|
const MAX_SUMMARY_LENGTH = 1024;
|
|
10
|
-
|
|
11
|
-
//
|
|
12
|
+
const CONTROL_CHARACTERS = /[\u0000-\u001F\u007F]+/g;
|
|
13
|
+
// The table definition of interface signals-2026-10-24. Every writer must run
|
|
14
|
+
// this exact text: the first process to run it defines the table.
|
|
12
15
|
const SCHEMA = `PRAGMA journal_mode = WAL;
|
|
13
16
|
CREATE TABLE IF NOT EXISTS signals (
|
|
14
17
|
plugin TEXT NOT NULL CHECK (length(plugin) BETWEEN 1 AND 128 AND plugin NOT GLOB '*[^a-z0-9@/._-]*'),
|
|
@@ -37,7 +40,7 @@ class PagerDutySignals {
|
|
|
37
40
|
}
|
|
38
41
|
/** Record a signal's current state. Skipped when nothing changed since the last write. */
|
|
39
42
|
write(signal, state) {
|
|
40
|
-
const summary = state.summary.slice(0, MAX_SUMMARY_LENGTH);
|
|
43
|
+
const summary = state.summary.replace(CONTROL_CHARACTERS, ' ').slice(0, MAX_SUMMARY_LENGTH);
|
|
41
44
|
const fingerprint = `${state.active ? 1 : 0}|${state.severity}|${summary}`;
|
|
42
45
|
if (this.isDisabled || this.lastWritten.get(signal) === fingerprint) {
|
|
43
46
|
return;
|
|
@@ -66,7 +69,7 @@ class PagerDutySignals {
|
|
|
66
69
|
if (sqlite === undefined) {
|
|
67
70
|
this.disable('PagerDuty signals need Node 22.13 or later; not writing signals');
|
|
68
71
|
}
|
|
69
|
-
const dir = (0, node_path_1.join)(this.options.storagePath, STORE_DIR);
|
|
72
|
+
const dir = (0, node_path_1.join)(this.options.storagePath, STORE_DIR, INTERFACE_ID);
|
|
70
73
|
const file = (0, node_path_1.join)(dir, STORE_FILE);
|
|
71
74
|
(0, node_fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
|
|
72
75
|
(0, node_fs_1.closeSync)((0, node_fs_1.openSync)(file, 'a', 0o600));
|
|
@@ -74,13 +77,6 @@ class PagerDutySignals {
|
|
|
74
77
|
try {
|
|
75
78
|
db.exec('PRAGMA busy_timeout = 1000');
|
|
76
79
|
db.exec(SCHEMA);
|
|
77
|
-
const version = Number(db.prepare('PRAGMA user_version').get().user_version);
|
|
78
|
-
if (version === 0) {
|
|
79
|
-
db.exec(`PRAGMA user_version = ${INTERFACE_VERSION}`);
|
|
80
|
-
}
|
|
81
|
-
else if (version > INTERFACE_VERSION) {
|
|
82
|
-
this.disable(`the PagerDuty signal store is a newer version (${version}); update this plugin to write signals`);
|
|
83
|
-
}
|
|
84
80
|
}
|
|
85
81
|
catch (error) {
|
|
86
82
|
db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagerduty-signals.js","sourceRoot":"","sources":["../src/pagerduty-signals.ts"],"names":[],"mappings":";;;AAAA,qCAAwD;AACxD,yCAAgC;AAmBhC,MAAM,SAAS,GAAG,sBAAsB,CAAA;AACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"pagerduty-signals.js","sourceRoot":"","sources":["../src/pagerduty-signals.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED