@eribbey/homebridge-ntfy 1.1.0 → 1.2.0
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 +25 -2
- package/dist/ntfy-client.d.ts +7 -2
- package/dist/ntfy-client.js +27 -19
- package/dist/ntfy-client.js.map +1 -1
- package/dist/platform.js +11 -1
- package/dist/platform.js.map +1 -1
- package/dist/switch-accessory.js +8 -3
- package/dist/switch-accessory.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +18 -8
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@eribbey/homebridge-ntfy)
|
|
4
4
|
[](https://www.npmjs.com/package/@eribbey/homebridge-ntfy)
|
|
5
|
+
[](https://git.ribbey.net/evan/homebridge-ntfy/actions)
|
|
5
6
|
|
|
6
7
|
> Maintained fork of [emilof/homebridge-ntfy](https://github.com/emilof/homebridge-ntfy), published as
|
|
7
8
|
> [`@eribbey/homebridge-ntfy`](https://www.npmjs.com/package/@eribbey/homebridge-ntfy). Adds support for custom
|
|
@@ -15,7 +16,7 @@ This is especially useful if you want to send a notification to your device when
|
|
|
15
16
|
|
|
16
17
|
## Prerequisites
|
|
17
18
|
|
|
18
|
-
- Homebridge
|
|
19
|
+
- Homebridge 2.0 or later, running on Node 22, 24 or 26
|
|
19
20
|
- The ntfy app installed on your device
|
|
20
21
|
- Optional: a self-hosted or SaaS ntfy server, if you'd rather not use the official ntfy.sh server
|
|
21
22
|
|
|
@@ -83,7 +84,7 @@ An alternative is to edit the Homebridge JSON config file manually by adding the
|
|
|
83
84
|
| └ `topic` | `string` | Yes/No | Required if `useJson` is set to `false`. |
|
|
84
85
|
| └ `title` | `string` | No | Title of the notification sent to the device. |
|
|
85
86
|
| └ `message` | `string` | No | Message text of the notification sent to the device. |
|
|
86
|
-
| └ `priority` | `string`
|
|
87
|
+
| └ `priority` | `string` \| `number` | No | Priority of the message, either a name (`max`, `high`, `default`, `low`, `min`) or ntfy's numeric equivalent (`5`-`1`). Default: **default**. [[More info](https://docs.ntfy.sh/publish/#message-priority)] |
|
|
87
88
|
| └ `tags` | `string` | No | Tag message with emoji or text tag. A comma-separated list of tag names. [[More info](https://docs.ntfy.sh/emojis)] |
|
|
88
89
|
| └ `json` | `string` | Yes/No | Required if `useJson` is set to `true`. For advanced users ONLY. The value must be a valid JSON string (escaped) and adhere to ntfy's JSON message format. [[More info](https://docs.ntfy.sh/subscribe/api/#json-message-format)] |
|
|
89
90
|
| └ `cooldownTime` | `number` | No | Minimum time before this message can be sent again. Default: no cooldown. |
|
|
@@ -211,3 +212,25 @@ In the example below, a message has been configured to have two action buttons.
|
|
|
211
212
|
]
|
|
212
213
|
}
|
|
213
214
|
```
|
|
215
|
+
|
|
216
|
+
## Development
|
|
217
|
+
|
|
218
|
+
$ npm install
|
|
219
|
+
|
|
220
|
+
| Script | Description |
|
|
221
|
+
| ----------------------- | ------------------------------------------------------------------------ |
|
|
222
|
+
| `npm run build` | Compile TypeScript into `dist`. |
|
|
223
|
+
| `npm run lint` | Run ESLint across the project. |
|
|
224
|
+
| `npm run typecheck` | Type check sources and tests without emitting. |
|
|
225
|
+
| `npm test` | Run the test suite once. |
|
|
226
|
+
| `npm run test:watch` | Run the test suite in watch mode. |
|
|
227
|
+
| `npm run test:coverage` | Run the suite and report coverage. |
|
|
228
|
+
| `npm run watch` | Build, link the plugin and run Homebridge against `./.homebridge`. |
|
|
229
|
+
|
|
230
|
+
Tests live in `test/` and run on [vitest](https://vitest.dev). The client is exercised against a
|
|
231
|
+
throwaway local HTTP server rather than a mocked HTTP layer, so request URLs, headers and status
|
|
232
|
+
handling are covered as they actually behave. The platform is exercised against a stand-in
|
|
233
|
+
Homebridge API that rejects duplicate accessory UUIDs the way HAP does.
|
|
234
|
+
|
|
235
|
+
CI runs lint, typecheck, tests, a build and a package check on Node 22, 24 and 26 through Gitea
|
|
236
|
+
Actions (`.gitea/workflows/ci.yml`), matching the runtimes Homebridge 2.x supports.
|
package/dist/ntfy-client.d.ts
CHANGED
|
@@ -5,14 +5,19 @@ export interface MessageRequest {
|
|
|
5
5
|
message?: string;
|
|
6
6
|
title?: string;
|
|
7
7
|
tags?: string;
|
|
8
|
-
priority?: number;
|
|
8
|
+
priority?: string | number;
|
|
9
9
|
}
|
|
10
10
|
export declare class NtfyClient {
|
|
11
11
|
private readonly log;
|
|
12
12
|
private readonly serverAddress;
|
|
13
13
|
private readonly authHeader?;
|
|
14
14
|
constructor(log: Logging, serverAddress: string, auth?: NtfyAuth);
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Publishes a message. Resolves to true when the server accepted it, and to
|
|
17
|
+
* false when it did not - failures are logged here rather than thrown, so
|
|
18
|
+
* callers must check the result before reporting success.
|
|
19
|
+
*/
|
|
20
|
+
sendMessage(request: MessageRequest | string): Promise<boolean>;
|
|
16
21
|
private sendMessageRequest;
|
|
17
22
|
private sendMessageJson;
|
|
18
23
|
private baseHeaders;
|
package/dist/ntfy-client.js
CHANGED
|
@@ -8,16 +8,20 @@ export class NtfyClient {
|
|
|
8
8
|
this.serverAddress = serverAddress;
|
|
9
9
|
this.authHeader = this.buildAuthHeader(auth);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Publishes a message. Resolves to true when the server accepted it, and to
|
|
13
|
+
* false when it did not - failures are logged here rather than thrown, so
|
|
14
|
+
* callers must check the result before reporting success.
|
|
15
|
+
*/
|
|
11
16
|
async sendMessage(request) {
|
|
12
|
-
if (
|
|
13
|
-
return this.sendMessageRequest(request);
|
|
14
|
-
}
|
|
15
|
-
else if (typeof request === 'string') {
|
|
17
|
+
if (typeof request === 'string') {
|
|
16
18
|
return this.sendMessageJson(request);
|
|
17
19
|
}
|
|
18
|
-
else {
|
|
19
|
-
this.
|
|
20
|
+
else if (this.isMessageRequest(request)) {
|
|
21
|
+
return this.sendMessageRequest(request);
|
|
20
22
|
}
|
|
23
|
+
this.log.error('Unknown request type:', request);
|
|
24
|
+
return false;
|
|
21
25
|
}
|
|
22
26
|
async sendMessageRequest(request) {
|
|
23
27
|
this.log.debug('Sending ntfy request:', request);
|
|
@@ -27,29 +31,33 @@ export class NtfyClient {
|
|
|
27
31
|
if (request.title) {
|
|
28
32
|
headers.Title = request.title;
|
|
29
33
|
}
|
|
30
|
-
if (request.priority) {
|
|
34
|
+
if (request.priority !== undefined && request.priority !== '') {
|
|
31
35
|
headers.Priority = request.priority.toString();
|
|
32
36
|
}
|
|
33
37
|
if (request.tags) {
|
|
34
38
|
headers.Tags = request.tags;
|
|
35
39
|
}
|
|
36
|
-
|
|
37
|
-
.
|
|
40
|
+
try {
|
|
41
|
+
const response = await axios.post(url, body, { headers });
|
|
38
42
|
this.log.debug('Success! Result:', response.data);
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
41
46
|
this.logRequestError(error);
|
|
42
|
-
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
43
49
|
}
|
|
44
50
|
async sendMessageJson(json) {
|
|
45
|
-
this.log.debug('Sending ntfy JSON request:',
|
|
46
|
-
|
|
47
|
-
.
|
|
51
|
+
this.log.debug('Sending ntfy JSON request:', json);
|
|
52
|
+
try {
|
|
53
|
+
const response = await axios.post(this.serverAddress, json, { headers: this.baseHeaders() });
|
|
48
54
|
this.log.debug('Success! Result:', response.data);
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
51
58
|
this.logRequestError(error);
|
|
52
|
-
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
53
61
|
}
|
|
54
62
|
baseHeaders() {
|
|
55
63
|
return this.authHeader ? { Authorization: this.authHeader } : {};
|
|
@@ -79,7 +87,7 @@ export class NtfyClient {
|
|
|
79
87
|
this.log.error('ntfy request failed:', error instanceof Error ? error.message : error);
|
|
80
88
|
}
|
|
81
89
|
isMessageRequest(obj) {
|
|
82
|
-
return typeof obj.topic === 'string';
|
|
90
|
+
return typeof obj === 'object' && obj !== null && typeof obj.topic === 'string';
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
93
|
//# sourceMappingURL=ntfy-client.js.map
|
package/dist/ntfy-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ntfy-client.js","sourceRoot":"","sources":["../src/ntfy-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,OAAO,UAAU;IAIF;IACA;IAJF,UAAU,CAAU;IAErC,YACmB,GAAY,EACZ,aAAqB,EACtC,IAAe;QAFE,QAAG,GAAH,GAAG,CAAS;QACZ,kBAAa,GAAb,aAAa,CAAQ;QAGtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgC;QAChD,IAAI,
|
|
1
|
+
{"version":3,"file":"ntfy-client.js","sourceRoot":"","sources":["../src/ntfy-client.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.js
CHANGED
|
@@ -31,11 +31,17 @@ export class NtfyPlatform {
|
|
|
31
31
|
const serverUrl = this.resolveServerUrl(config);
|
|
32
32
|
this.log.info('Using ntfy server:', serverUrl);
|
|
33
33
|
const ntfyClient = new NtfyClient(this.log, serverUrl, this.resolveAuth(config));
|
|
34
|
+
const configuredNames = new Set();
|
|
34
35
|
if (config.messages) {
|
|
35
36
|
for (const message of config.messages) {
|
|
36
37
|
if (!this.validateMessage(message)) {
|
|
37
38
|
continue;
|
|
38
39
|
}
|
|
40
|
+
if (configuredNames.has(message.name)) {
|
|
41
|
+
this.log.error('Duplicate message name - names must be unique, skipping:', message.name);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
configuredNames.add(message.name);
|
|
39
45
|
const uuid = this.api.hap.uuid.generate(message.name);
|
|
40
46
|
const existingAccessory = this.accessories.get(uuid);
|
|
41
47
|
if (existingAccessory) {
|
|
@@ -84,6 +90,10 @@ export class NtfyPlatform {
|
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
validateMessage(message) {
|
|
93
|
+
if (!message.name) {
|
|
94
|
+
this.log.error('Invalid message config - \'name\' is missing:', JSON.stringify(message));
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
87
97
|
let error;
|
|
88
98
|
if (message.useJson) {
|
|
89
99
|
if (!message.json) {
|
|
@@ -95,7 +105,7 @@ export class NtfyPlatform {
|
|
|
95
105
|
}
|
|
96
106
|
else {
|
|
97
107
|
if (!message.topic) {
|
|
98
|
-
error = 'Invalid
|
|
108
|
+
error = 'Invalid message config - \'topic\' is missing:';
|
|
99
109
|
}
|
|
100
110
|
}
|
|
101
111
|
if (error) {
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/switch-accessory.js
CHANGED
|
@@ -42,7 +42,7 @@ export class SwitchAccessory {
|
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
if (this.isOn) {
|
|
45
|
-
this.triggerCooldown(this.message.cooldownTime);
|
|
45
|
+
void this.triggerCooldown(this.message.cooldownTime);
|
|
46
46
|
await this.sendMessage();
|
|
47
47
|
this.resetSwitch();
|
|
48
48
|
}
|
|
@@ -68,8 +68,13 @@ export class SwitchAccessory {
|
|
|
68
68
|
this.log.info('Nothing to send. Check configuration for:', this.message.name);
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
await this.ntfyClient.sendMessage(request);
|
|
72
|
-
|
|
71
|
+
const sent = await this.ntfyClient.sendMessage(request);
|
|
72
|
+
if (sent) {
|
|
73
|
+
this.log.info('Message sent:', this.message.name);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.log.error('Failed to send message:', this.message.name);
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
79
|
async triggerCooldown(cooldownTime = 0) {
|
|
75
80
|
if (cooldownTime <= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-accessory.js","sourceRoot":"","sources":["../src/switch-accessory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,OAAO,eAAe;IASP;IACA;IACA;IACA;IAXX,GAAG,
|
|
1
|
+
{"version":3,"file":"switch-accessory.js","sourceRoot":"","sources":["../src/switch-accessory.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@eribbey/homebridge-ntfy",
|
|
3
3
|
"displayName": "Homebridge Ntfy",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.2.0",
|
|
6
6
|
"description": "Homebridge plugin to send notifications through ntfy from HomeKit, with support for custom self-hosted servers and authentication",
|
|
7
7
|
"author": "Evan Ribbey",
|
|
8
8
|
"contributors": [
|
|
@@ -29,29 +29,39 @@
|
|
|
29
29
|
"self-hosted"
|
|
30
30
|
],
|
|
31
31
|
"main": "dist/index.js",
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"config.schema.json",
|
|
35
|
+
"NOTICE"
|
|
36
|
+
],
|
|
32
37
|
"engines": {
|
|
33
|
-
"node": "^
|
|
34
|
-
"homebridge": "^
|
|
38
|
+
"node": "^22 || ^24 || ^26",
|
|
39
|
+
"homebridge": "^2.0.0"
|
|
35
40
|
},
|
|
36
41
|
"scripts": {
|
|
37
42
|
"build": "rimraf ./dist && tsc",
|
|
38
43
|
"lint": "eslint . --max-warnings=0",
|
|
39
|
-
"
|
|
44
|
+
"typecheck": "tsc --noEmit -p tsconfig.test.json",
|
|
45
|
+
"test": "vitest run",
|
|
46
|
+
"test:watch": "vitest",
|
|
47
|
+
"test:coverage": "vitest run --coverage",
|
|
48
|
+
"prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run build",
|
|
40
49
|
"watch": "npm run build && npm link && nodemon"
|
|
41
50
|
},
|
|
42
51
|
"devDependencies": {
|
|
43
52
|
"@eslint/js": "^9.39.1",
|
|
44
53
|
"@types/node": "^24.10.2",
|
|
54
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
45
55
|
"eslint": "^9.39.1",
|
|
46
|
-
"homebridge": "^2.
|
|
56
|
+
"homebridge": "^2.4.0",
|
|
47
57
|
"nodemon": "^3.1.11",
|
|
48
58
|
"rimraf": "^6.1.2",
|
|
49
59
|
"ts-node": "^10.9.2",
|
|
50
60
|
"typescript": "^5.9.3",
|
|
51
|
-
"typescript-eslint": "^8.49.0"
|
|
61
|
+
"typescript-eslint": "^8.49.0",
|
|
62
|
+
"vitest": "^4.1.11"
|
|
52
63
|
},
|
|
53
64
|
"dependencies": {
|
|
54
|
-
"axios": "^1.13.2"
|
|
55
|
-
"homebridge-lib": "^7.2.0"
|
|
65
|
+
"axios": "^1.13.2"
|
|
56
66
|
}
|
|
57
67
|
}
|