@betterlu/notif 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 +45 -5
- package/dist/client.d.ts +4 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +61 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @betterlu/notif
|
|
2
2
|
|
|
3
|
-
Client SDK for [notif](https://github.com/happyx94/notif) — async Telegram / Messenger / Discord / LINE notifications with aliases, retries, and inbound replies.
|
|
3
|
+
Client SDK for [notif](https://github.com/happyx94/notif) — async Telegram / Messenger / Discord / LINE / email / ChatLu / web push notifications with aliases, retries, and inbound replies.
|
|
4
4
|
|
|
5
5
|
Requires Node.js >= 18 (uses native `fetch`). Zero runtime dependencies.
|
|
6
6
|
|
|
@@ -38,15 +38,15 @@ export NOTIF_URL=http://localhost:8778
|
|
|
38
38
|
|
|
39
39
|
| Field | Type | Notes |
|
|
40
40
|
|-------|------|--------|
|
|
41
|
-
| `channel` | string | Channel name, provider type (`telegram` \| `messenger` \| `discord` \| `line` \| `email` \| `chatlu`), or ObjectId |
|
|
41
|
+
| `channel` | string | Channel name, provider type (`telegram` \| `messenger` \| `discord` \| `line` \| `email` \| `chatlu` \| `webpush`), or ObjectId |
|
|
42
42
|
| `message` | string | Required |
|
|
43
|
-
| `chatId` | string | Alias name first, else raw chat id |
|
|
43
|
+
| `chatId` | string | Alias name first, else raw chat id (webpush: subscription id) |
|
|
44
44
|
| `user` / `userName` | string | Alias-only (back-compat) |
|
|
45
45
|
| `recipient` | `{ chatId?, psid? }` | Raw recipient |
|
|
46
46
|
| `format` | `plain` \| `markdown` \| `html` | Auto-detected if omitted |
|
|
47
47
|
| `options` | object | Provider extras (see below) |
|
|
48
48
|
|
|
49
|
-
`chatId` looks up an alias first, then treats the value as a raw id. Discord **webhook** channels may omit `chatId`. Discord bot, LINE, Telegram, Messenger, and ChatLu require it.
|
|
49
|
+
`chatId` looks up an alias first, then treats the value as a raw id. Discord **webhook** channels may omit `chatId`. Discord bot, LINE, Telegram, Messenger, and ChatLu require it; web push may omit it when `options.person` / `options.app` select registered subscriptions.
|
|
50
50
|
|
|
51
51
|
```typescript
|
|
52
52
|
// Alias
|
|
@@ -70,6 +70,21 @@ await client.send({
|
|
|
70
70
|
options: { username: "ci", avatarUrl: "https://example.com/bot.png" },
|
|
71
71
|
});
|
|
72
72
|
|
|
73
|
+
// Web push to one subscription id
|
|
74
|
+
await client.send({
|
|
75
|
+
channel: "webpush",
|
|
76
|
+
chatId: subscriptionId,
|
|
77
|
+
message: "Need milk",
|
|
78
|
+
options: { title: "cartlu", url: "/" },
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Web push to every subscription of a person/app
|
|
82
|
+
await client.send({
|
|
83
|
+
channel: "webpush",
|
|
84
|
+
message: "Need milk",
|
|
85
|
+
options: { title: "cartlu", url: "/", app: "cartlu", person: "larry" },
|
|
86
|
+
});
|
|
87
|
+
|
|
73
88
|
// Shorthand
|
|
74
89
|
await client.notify("Hello", { channel: "telegram", chatId: "larry" });
|
|
75
90
|
```
|
|
@@ -87,6 +102,9 @@ await client.notify("Hello", { channel: "telegram", chatId: "larry" });
|
|
|
87
102
|
| `messengerTag` | Messenger (`false` → `RESPONSE`; omit for `MESSAGE_TAG`) |
|
|
88
103
|
| `username` / `avatarUrl` | Discord webhook |
|
|
89
104
|
| `subject` | Email (**required**) |
|
|
105
|
+
| `title` / `url` / `icon` / `badge` | Web push (title defaults to `"Notification"`) |
|
|
106
|
+
| `ttl` | Web push TTL seconds (overrides channel default) |
|
|
107
|
+
| `person` / `app` | Web push target filters (used when `chatId` is omitted) |
|
|
90
108
|
|
|
91
109
|
## Status, retry, delete
|
|
92
110
|
|
|
@@ -126,13 +144,32 @@ Secrets in responses are masked (`abcd••••wxyz`).
|
|
|
126
144
|
| `line` | `channelAccessToken` | `channelSecret` |
|
|
127
145
|
| `email` | `host`, `user`, `pass` | `port` (587), `secure` (false), `from`, `fromName` |
|
|
128
146
|
| `chatlu` | `homeserverUrl`, `accessToken` | — |
|
|
147
|
+
| `webpush` | — | `vapidSubject`, `vapidPublicKey`, `vapidPrivateKey`, `ttl` (fallback: `WEBPUSH_VAPID_*` env) |
|
|
129
148
|
|
|
130
|
-
Name: `^[a-zA-Z0-9_-]+$`, not reserved (`telegram` / `messenger` / `discord` / `line` / `email` / `chatlu`).
|
|
149
|
+
Name: `^[a-zA-Z0-9_-]+$`, not reserved (`telegram` / `messenger` / `discord` / `line` / `email` / `chatlu` / `webpush`).
|
|
131
150
|
|
|
132
151
|
Email channels send over SMTP and require `options.subject`; `chatId` is the recipient address (alias lookup applies first).
|
|
133
152
|
|
|
134
153
|
ChatLu channels deliver to Matrix rooms via the homeserver's client API; `chatId` is a room ID (`!room:chatlu.lan`) or room alias (`#room:chatlu.lan`). Create the bot with `scripts/chatlu-bot-setup.sh`.
|
|
135
154
|
|
|
155
|
+
## Web push subscriptions
|
|
156
|
+
|
|
157
|
+
Apps register their browser push subscriptions so notif can deliver `webpush` notifications (no `web-push` dependency needed in the app). Keyed by `endpoint`; `person` defaults to `agent`.
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
await client.registerPushSubscription({
|
|
161
|
+
app: "cartlu",
|
|
162
|
+
person: "larry",
|
|
163
|
+
endpoint: sub.endpoint,
|
|
164
|
+
keys: { p256dh: sub.keys.p256dh, auth: sub.keys.auth },
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
const subs = await client.listPushSubscriptions({ app: "cartlu", person: "larry" });
|
|
168
|
+
await client.deletePushSubscription({ id: subs[0]._id }); // or { endpoint }
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Expired endpoints (404/410 from the push service) are dropped automatically at delivery time. Web push channels need VAPID config: on the channel (`vapidSubject` / `vapidPublicKey` / `vapidPrivateKey` / `ttl`) or `WEBPUSH_VAPID_SUBJECT` / `WEBPUSH_VAPID_PUBLIC_KEY` / `WEBPUSH_VAPID_PRIVATE_KEY` / `WEBPUSH_TTL` env.
|
|
172
|
+
|
|
136
173
|
## Aliases
|
|
137
174
|
|
|
138
175
|
Friendly name → per-channel chat ids.
|
|
@@ -209,6 +246,9 @@ const client = new NotifClient({
|
|
|
209
246
|
| `updateChannel(id, req)` | `Channel` | Partial update |
|
|
210
247
|
| `deleteChannel(id)` | `Channel` | Delete |
|
|
211
248
|
| `registerWebhook(id, req?)` | `RegisterWebhookResult` | Telegram `setWebhook` |
|
|
249
|
+
| `registerPushSubscription(req)` | `PushSubscription` | Upsert a web push subscription by endpoint |
|
|
250
|
+
| `listPushSubscriptions(query?)` | `PushSubscription[]` | Filter by `person`, `app`, `limit` |
|
|
251
|
+
| `deletePushSubscription({ id?, endpoint? })` | `PushSubscription` | Delete a subscription |
|
|
212
252
|
| `listAliases(query?)` | `Alias[]` | All aliases |
|
|
213
253
|
| `getAlias(id)` | `Alias` | One alias |
|
|
214
254
|
| `createAlias(req)` | `Alias` | Create |
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Alias, Channel, ClientOptions, CreateAliasRequest, CreateChannelRequest, HealthResponse, InboundResponse, ListAliasesQuery, ListInboundQuery, ListNotificationsQuery, Notification, RegisterWebhookRequest, RegisterWebhookResult, SendNotificationRequest, UpdateAliasRequest, UpdateChannelRequest } from "./types.js";
|
|
1
|
+
import type { Alias, Channel, ClientOptions, CreateAliasRequest, CreateChannelRequest, HealthResponse, InboundResponse, ListAliasesQuery, ListInboundQuery, ListNotificationsQuery, Notification, RegisterWebhookRequest, RegisterWebhookResult, SendNotificationRequest, UpdateAliasRequest, UpdateChannelRequest, PushSubscription, RegisterPushSubscriptionRequest, ListPushSubscriptionsQuery, DeletePushSubscriptionRequest } from "./types.js";
|
|
2
2
|
export declare class NotifClient {
|
|
3
3
|
private readonly transport;
|
|
4
4
|
constructor(options?: ClientOptions);
|
|
@@ -16,6 +16,9 @@ export declare class NotifClient {
|
|
|
16
16
|
updateChannel(id: string, request: UpdateChannelRequest): Promise<Channel>;
|
|
17
17
|
deleteChannel(id: string): Promise<Channel>;
|
|
18
18
|
registerWebhook(id: string, request?: RegisterWebhookRequest): Promise<RegisterWebhookResult>;
|
|
19
|
+
registerPushSubscription(request: RegisterPushSubscriptionRequest): Promise<PushSubscription>;
|
|
20
|
+
listPushSubscriptions(query?: ListPushSubscriptionsQuery): Promise<PushSubscription[]>;
|
|
21
|
+
deletePushSubscription(request: DeletePushSubscriptionRequest): Promise<PushSubscription>;
|
|
19
22
|
listAliases(query?: ListAliasesQuery): Promise<Alias[]>;
|
|
20
23
|
getAlias(id: string): Promise<Alias>;
|
|
21
24
|
createAlias(request: CreateAliasRequest): Promise<Alias>;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,+BAA+B,EAC/B,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAQpB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,OAAO,GAAE,aAAkB;IAQjC,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAIjC,IAAI,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI7D,MAAM,CACV,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAM,GAClD,OAAO,CAAC,YAAY,CAAC;IAIlB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE,iBAAiB,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI9E,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIpD,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrD,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3C,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQjG,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7F,qBAAqB,CAAC,KAAK,GAAE,0BAA+B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI1F,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzF,WAAW,CAAC,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI3D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIxD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIvC,WAAW,CAAC,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIrE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAGvD"}
|
package/dist/client.js
CHANGED
|
@@ -55,6 +55,15 @@ export class NotifClient {
|
|
|
55
55
|
async registerWebhook(id, request = {}) {
|
|
56
56
|
return this.transport.request("POST", `/api/channels/${id}/register-webhook`, request);
|
|
57
57
|
}
|
|
58
|
+
async registerPushSubscription(request) {
|
|
59
|
+
return this.transport.request("POST", "/api/push/subscriptions", request);
|
|
60
|
+
}
|
|
61
|
+
async listPushSubscriptions(query = {}) {
|
|
62
|
+
return this.transport.request("GET", "/api/push/subscriptions", undefined, query);
|
|
63
|
+
}
|
|
64
|
+
async deletePushSubscription(request) {
|
|
65
|
+
return this.transport.request("DELETE", "/api/push/subscriptions", request);
|
|
66
|
+
}
|
|
58
67
|
async listAliases(query = {}) {
|
|
59
68
|
return this.transport.request("GET", "/api/aliases", undefined, query);
|
|
60
69
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { NotifClient } from "./client.js";
|
|
|
2
2
|
export { escapeHtml } from "./html.js";
|
|
3
3
|
export { NotifError } from "./errors.js";
|
|
4
4
|
export { ENDPOINTS, DEFAULT_BASE_URL, ENV_URL_VAR } from "./types.js";
|
|
5
|
-
export type { ClientOptions, Provider, Format, NotificationStatus, CorrelationMethod, CorrelationConfidence, NotificationOptions, Recipient, SendNotificationRequest, NotificationError, Notification, ListNotificationsQuery, TelegramChannelConfig, MessengerChannelConfig, DiscordChannelConfig, LineChannelConfig, ChannelConfig, Channel, CreateChannelRequest, UpdateChannelRequest, RegisterWebhookRequest, RegisterWebhookResult, Alias, CreateAliasRequest, UpdateAliasRequest, ListAliasesQuery, InboundResponse, ListInboundQuery, HealthResponse, } from "./types.js";
|
|
5
|
+
export type { ClientOptions, Provider, Format, NotificationStatus, CorrelationMethod, CorrelationConfidence, NotificationOptions, Recipient, SendNotificationRequest, NotificationError, Notification, ListNotificationsQuery, TelegramChannelConfig, MessengerChannelConfig, DiscordChannelConfig, LineChannelConfig, ChatluChannelConfig, WebPushChannelConfig, ChannelConfig, Channel, CreateChannelRequest, UpdateChannelRequest, RegisterWebhookRequest, RegisterWebhookResult, Alias, CreateAliasRequest, UpdateAliasRequest, ListAliasesQuery, InboundResponse, ListInboundQuery, PushSubscriptionKeys, PushSubscription, RegisterPushSubscriptionRequest, ListPushSubscriptionsQuery, DeletePushSubscriptionRequest, HealthResponse, } from "./types.js";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,+BAA+B,EAC/B,0BAA0B,EAC1B,6BAA6B,EAC7B,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface ClientOptions {
|
|
|
10
10
|
/** Abort each request after this many milliseconds. */
|
|
11
11
|
timeoutMs?: number;
|
|
12
12
|
}
|
|
13
|
-
export type Provider = "telegram" | "messenger" | "discord" | "line" | "email" | "chatlu";
|
|
13
|
+
export type Provider = "telegram" | "messenger" | "discord" | "line" | "email" | "chatlu" | "webpush";
|
|
14
14
|
export type Format = "plain" | "markdown" | "html";
|
|
15
15
|
export type NotificationStatus = "pending" | "processing" | "sent" | "failed";
|
|
16
16
|
export type CorrelationMethod = "unmatched" | "reply_metadata" | "known_sender" | "sender_recent_sent" | "ambiguous";
|
|
@@ -27,6 +27,20 @@ export interface NotificationOptions {
|
|
|
27
27
|
avatarUrl?: string;
|
|
28
28
|
/** Required for email channels. */
|
|
29
29
|
subject?: string;
|
|
30
|
+
/** Web push notification title (webpush channels). Defaults to "Notification". */
|
|
31
|
+
title?: string;
|
|
32
|
+
/** Web push click-through URL (webpush channels). */
|
|
33
|
+
url?: string;
|
|
34
|
+
/** Web push icon path (webpush channels). */
|
|
35
|
+
icon?: string;
|
|
36
|
+
/** Web push badge path (webpush channels). */
|
|
37
|
+
badge?: string;
|
|
38
|
+
/** Web push TTL in seconds (webpush channels). Overrides the channel default. */
|
|
39
|
+
ttl?: number;
|
|
40
|
+
/** Web push target filter: person (webpush channels, used when chatId is omitted). */
|
|
41
|
+
person?: string;
|
|
42
|
+
/** Web push target filter: app (webpush channels, used when chatId is omitted). */
|
|
43
|
+
app?: string;
|
|
30
44
|
}
|
|
31
45
|
export interface Recipient {
|
|
32
46
|
chatId?: string | null;
|
|
@@ -120,7 +134,17 @@ export interface ChatluChannelConfig {
|
|
|
120
134
|
/** Bot user access token (sent as `Authorization: Bearer`). */
|
|
121
135
|
accessToken?: string;
|
|
122
136
|
}
|
|
123
|
-
export
|
|
137
|
+
export interface WebPushChannelConfig {
|
|
138
|
+
/** VAPID contact, e.g. `mailto:you@example.com`. Falls back to `WEBPUSH_VAPID_SUBJECT`. */
|
|
139
|
+
vapidSubject?: string;
|
|
140
|
+
/** VAPID public key. Falls back to `WEBPUSH_VAPID_PUBLIC_KEY`. */
|
|
141
|
+
vapidPublicKey?: string;
|
|
142
|
+
/** VAPID private key. Falls back to `WEBPUSH_VAPID_PRIVATE_KEY`. */
|
|
143
|
+
vapidPrivateKey?: string;
|
|
144
|
+
/** Push TTL in seconds, default 21600. */
|
|
145
|
+
ttl?: number;
|
|
146
|
+
}
|
|
147
|
+
export type ChannelConfig = TelegramChannelConfig | MessengerChannelConfig | DiscordChannelConfig | LineChannelConfig | EmailChannelConfig | ChatluChannelConfig | WebPushChannelConfig | Record<string, string | undefined>;
|
|
124
148
|
export interface Channel {
|
|
125
149
|
_id: string;
|
|
126
150
|
name: string;
|
|
@@ -204,6 +228,41 @@ export interface ListInboundQuery {
|
|
|
204
228
|
/** Default 50, max 100. */
|
|
205
229
|
limit?: number;
|
|
206
230
|
}
|
|
231
|
+
export interface PushSubscriptionKeys {
|
|
232
|
+
p256dh: string;
|
|
233
|
+
auth: string;
|
|
234
|
+
}
|
|
235
|
+
export interface PushSubscription {
|
|
236
|
+
_id: string;
|
|
237
|
+
/** Person the browser belongs to, e.g. `larry`. Defaults to `agent`. */
|
|
238
|
+
person: string;
|
|
239
|
+
/** App that registered the subscription, e.g. `cartlu`. */
|
|
240
|
+
app: string;
|
|
241
|
+
endpoint: string;
|
|
242
|
+
keys: PushSubscriptionKeys;
|
|
243
|
+
createdAt: string;
|
|
244
|
+
updatedAt: string;
|
|
245
|
+
}
|
|
246
|
+
export interface RegisterPushSubscriptionRequest {
|
|
247
|
+
/** App name, e.g. `cartlu`. */
|
|
248
|
+
app: string;
|
|
249
|
+
endpoint: string;
|
|
250
|
+
keys: PushSubscriptionKeys;
|
|
251
|
+
/** Person name; defaults to `agent`. */
|
|
252
|
+
person?: string;
|
|
253
|
+
}
|
|
254
|
+
export interface ListPushSubscriptionsQuery {
|
|
255
|
+
person?: string;
|
|
256
|
+
app?: string;
|
|
257
|
+
/** Default 200, max 500. */
|
|
258
|
+
limit?: number;
|
|
259
|
+
}
|
|
260
|
+
export interface DeletePushSubscriptionRequest {
|
|
261
|
+
/** Subscription id. */
|
|
262
|
+
id?: string;
|
|
263
|
+
/** Or the endpoint URL. */
|
|
264
|
+
endpoint?: string;
|
|
265
|
+
}
|
|
207
266
|
export interface HealthResponse {
|
|
208
267
|
ok: boolean;
|
|
209
268
|
workerRunning: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;CAEZ,CAAC;AAEX,eAAO,MAAM,gBAAgB,yBAAkB,CAAC;AAEhD,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;CAEZ,CAAC;AAEX,eAAO,MAAM,gBAAgB,yBAAkB,CAAC;AAEhD,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,WAAW,GACX,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,gBAAgB,GAChB,cAAc,GACd,oBAAoB,GACpB,WAAW,CAAC;AAEhB,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,uBAAuB;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@betterlu/notif",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Client SDK for notif — async Telegram / Messenger / Discord / LINE / email / ChatLu notifications",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Client SDK for notif — async Telegram / Messenger / Discord / LINE / email / ChatLu / web push notifications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|