@visulima/notification 1.2.0 → 2.0.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/CHANGELOG.md CHANGED
@@ -1,3 +1,117 @@
1
+ ## @visulima/notification [2.0.1](https://github.com/visulima/visulima/compare/@visulima/notification@2.0.0...@visulima/notification@2.0.1) (2026-10-23)
2
+
3
+
4
+ ### Dependencies
5
+
6
+ * **@visulima/email:** upgraded to 4.1.0
7
+
8
+ ## @visulima/notification [2.0.0](https://github.com/visulima/visulima/compare/@visulima/notification@1.2.0...@visulima/notification@2.0.0) (2026-10-15)
9
+
10
+ ### ⚠ BREAKING CHANGES
11
+
12
+ * Deno is no longer a supported runtime or package manager.
13
+ vis targets node/bun runtimes and aube/npm/pnpm/yarn package managers; the
14
+ deno-lint/deno-fmt adapters and deno inference targets are removed.
15
+
16
+ * fix: resolve eslint errors after deno removal
17
+
18
+ - vis: use a block body for applyIgnoreScripts (arrow-body-style)
19
+ - is-ansi-color-supported: drop stale eslint-disable directives and
20
+ replace the raw-release if/else with a ternary (unicorn/prefer-ternary)
21
+
22
+ * docs(cron-parser): remove remaining deno runtime mentions
23
+
24
+ These doc/config files arrived with main's dialect-gating commit after this
25
+ branch's base, so they still listed Deno as a supported runtime.
26
+
27
+ * feat!: remove deno runtime and tooling support
28
+
29
+ Deno is being wound down: Cloudflare is acquiring the Deno team, the runtime
30
+ gets one more year of monthly maintenance before development ends, and Deno
31
+ Deploy shuts down. Drop Deno as a supported runtime, package manager, and
32
+ lint/fmt/inference target across the monorepo.
33
+
34
+ - vis: remove the deno runtime path, deno-lint/deno-fmt adapters, the
35
+ deno.json inference detector, Deno PM handling (TypeScript + Rust native
36
+ resolver), and the devcontainer deno mount; regenerate the JSON schemas.
37
+ - libraries: drop Deno runtime detection from cerebro, ono,
38
+ is-ansi-color-supported, and task-runner command parsing; remove Deno
39
+ wording from package docs and READMEs.
40
+ - delete the examples/deno directories (ono, pail, storage) and Deno docs.
41
+ - keep JSR publishing (registry usable from Node), license/attribution
42
+ comments, the secret-scanner Deno-token rule, and the historical RFCs.
43
+ * Deno is no longer a supported runtime or package manager.
44
+ vis targets node/bun runtimes and aube/npm/pnpm/yarn package managers; the
45
+ deno-lint/deno-fmt adapters and deno inference targets are removed.
46
+
47
+ * fix: resolve eslint errors after deno removal
48
+
49
+ - vis: use a block body for applyIgnoreScripts (arrow-body-style)
50
+ - is-ansi-color-supported: drop stale eslint-disable directives and
51
+ replace the raw-release if/else with a ternary (unicorn/prefer-ternary)
52
+
53
+ * chore(vis): tidy deno-removal leftovers from review
54
+
55
+ * fix(vis): drop unused logger from x handler, restore bun typing
56
+
57
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
58
+
59
+ * docs: add migration notes for removed deno exports
60
+
61
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
62
+
63
+ * feat(vis): warn on stale adapter ids and deno-only projects
64
+
65
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
66
+
67
+ * refactor(vis): derive runtime ids and reuse bun detection
68
+
69
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
70
+
71
+ * refactor(vis): drop jsr deno option and deno auth reference
72
+
73
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
74
+
75
+ * fix(vis): restore runtime id schema description
76
+
77
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
78
+
79
+ * refactor(vis): remove jsr publishing support
80
+
81
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
82
+
83
+ * feat(bytes): port @std/bytes helpers back in
84
+
85
+ Carries the Uint8Array helpers from @std/bytes@1.0.6 (MIT, Copyright the Deno authors)
86
+ into src/std-bytes.ts and re-exports them from the package entry. Keeps the public API that
87
+ the Deno-removal commit dropped, without the jsr: devDependency. Docs and AGENTS notes are
88
+ restored to describe the ported functions.
89
+
90
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
91
+
92
+ * docs(bytes): attribute ported @std/bytes source
93
+
94
+ The license file still listed @jsr/std__bytes as a bundled dependency.
95
+ Replace it with the MIT notice for the ported src/std-bytes.ts, placed outside
96
+ the generated dependency blocks.
97
+
98
+ Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
99
+
100
+ * fix(cron-parser): keep reviewed docs and 1.1.0 version
101
+
102
+ The rebase onto the remote branch dropped the reviewed dialect sentence in the README and
103
+ the installation table row, and the release commit's 1.1.0 version bump.
104
+
105
+ ### Features
106
+
107
+ * remove deno runtime and tooling support ([#973](https://github.com/visulima/visulima/issues/973)) ([26fada1](https://github.com/visulima/visulima/commit/26fada1ac04731cba9db8f74fe20849c0a15db74))
108
+
109
+
110
+ ### Dependencies
111
+
112
+ * **@visulima/email:** upgraded to 4.0.0
113
+ * **@visulima/workflow:** upgraded to 4.0.0
114
+
1
115
  ## @visulima/notification [1.2.0](https://github.com/visulima/visulima/compare/@visulima/notification@1.1.23...@visulima/notification@1.2.0) (2026-10-08)
2
116
 
3
117
  ### Features
package/README.md CHANGED
@@ -38,7 +38,7 @@
38
38
  typed facade drives many channel providers (SMS, push, chat, in-app, webhook) and the email channel delegates straight to
39
39
  `@visulima/email`. It is **infra-free** (no Redis/Mongo/dashboard required), **ESM-only**, **tree-shakeable** (import only
40
40
  the providers you use), and **edge-ready** — every native provider is built on `fetch` with zero Node built-ins, so it
41
- runs unmodified on Cloudflare Workers, Vercel Edge, Deno and Bun.
41
+ runs unmodified on Cloudflare Workers, Vercel Edge and Bun.
42
42
 
43
43
  ## Install
44
44
 
@@ -57,7 +57,7 @@ pnpm add @visulima/notification
57
57
  ## Usage
58
58
 
59
59
  > **Every provider is `fetch`-based** — no per-provider SDK to install, and it runs on Node, Cloudflare Workers, Vercel
60
- > Edge, Deno and Bun. Optional peers are only needed by specific subpaths (e.g. `liquidjs` for `./template/liquid`,
60
+ > Edge and Bun. Optional peers are only needed by specific subpaths (e.g. `liquidjs` for `./template/liquid`,
61
61
  > `@visulima/workflow` for `./workflow`) — see the [install table](https://visulima.com/docs/packages/notification/installation#optional-peer-dependencies).
62
62
  > Beyond sending, the package ships [workflows](https://visulima.com/docs/packages/notification/workflow),
63
63
  > [digest](https://visulima.com/docs/packages/notification/digest),
@@ -132,7 +132,7 @@ Providers are imported from `@visulima/notification/providers/<name>` so unused
132
132
  | **Wrappers** | `failover`, `roundrobin`, `opentelemetry`, `mock` |
133
133
 
134
134
  > **Cloudflare / edge note:** nearly every provider is `fetch` + Web Crypto only and runs on **Cloudflare Workers**,
135
- > Vercel Edge, Deno and Bun — including **AWS SNS** (Web Crypto SigV4) and **web-push** (Web Crypto VAPID + RFC 8291).
135
+ > Vercel Edge and Bun — including **AWS SNS** (Web Crypto SigV4) and **web-push** (Web Crypto VAPID + RFC 8291).
136
136
  > FCM accepts a `getAccessToken` callback so you bring your own OAuth token without a Node-only SDK. The only **Node-only**
137
137
  > pieces are **APNs** (`node:http2`) and the **bullmq / pg-boss / sqs** queue adapters — import those from a Node runtime.
138
138
  > See the [runtime matrix](https://visulima.com/docs/packages/notification/installation#runtime-support).
@@ -317,7 +317,7 @@ barrel holds the shared types, `createInboundRouter` and verification/reply help
317
317
  import { createSlackReceiver } from "@visulima/notification/providers/slack";
318
318
 
319
319
  // Read the secret however your runtime exposes it: an `env` binding on
320
- // Cloudflare Workers, `Deno.env.get`, `process.env` on Node.
320
+ // Cloudflare Workers, `process.env` on Node.
321
321
  declare const signingSecret: string;
322
322
 
323
323
  const slack = createSlackReceiver({
@@ -331,7 +331,7 @@ const slack = createSlackReceiver({
331
331
  },
332
332
  });
333
333
 
334
- // Cloudflare Workers / Deno / Bun / Hono / Next.js route handlers …
334
+ // Cloudflare Workers / Bun / Hono / Next.js route handlers …
335
335
  export default { fetch: (request: Request) => slack.handle(request) };
336
336
  ```
337
337
 
@@ -77,7 +77,7 @@ declare const chatReply: (provider: string, message: InboundMessage, outbound: P
77
77
  declare const smsReply: (message: InboundMessage, outbound: Provider<unknown, SmsPayload> | undefined) => InboundReplyFunction;
78
78
  /**
79
79
  * A web-standard request handler: the shape returned by {@link createInboundRouter} and the
80
- * signature platforms like Cloudflare Workers, Deno, Bun and Node's `fetch` server expect.
80
+ * signature platforms like Cloudflare Workers, Bun and Node's `fetch` server expect.
81
81
  * @param request The inbound request.
82
82
  * @returns The response.
83
83
  */
@@ -88,7 +88,7 @@ type FetchHandler = (request: Request) => Promise<Response>;
88
88
  * path-segment boundary, so a mount base path does not need to be known ahead of time. The most
89
89
  * specific route wins; unmatched paths get a `404`.
90
90
  *
91
- * The result is directly usable as a Cloudflare Workers / Deno / Bun `fetch` export, or via a
91
+ * The result is directly usable as a Cloudflare Workers / Bun `fetch` export, or via a
92
92
  * Node/Express/Hono web-request adapter.
93
93
  * @param routes A map of path (e.g. `"/webhooks/slack"`) to channel receiver.
94
94
  * @returns A fetch handler dispatching to the matching channel.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/notification",
3
- "version": "1.2.0",
3
+ "version": "2.0.1",
4
4
  "description": "A reusable, ESM-only, edge-ready multi-channel notification library with SMS, push, chat, in-app and webhook providers",
5
5
  "keywords": [
6
6
  "agent",
@@ -238,11 +238,11 @@
238
238
  "peerDependencies": {
239
239
  "@aws-sdk/client-sqs": "^3.0.0",
240
240
  "@opentelemetry/api": "^1.0.0 || ^2.0.0",
241
- "@visulima/email": "3.0.28",
242
- "@visulima/workflow": "3.0.0",
241
+ "@visulima/email": "4.1.0",
242
+ "@visulima/workflow": "4.0.0",
243
243
  "bullmq": "^5.0.0",
244
244
  "croner": "^10.0.1",
245
- "handlebars": ">=4.7.9",
245
+ "handlebars": ">=4.7.10",
246
246
  "intl-messageformat": "^11.0.0",
247
247
  "liquidjs": "^10.0.0",
248
248
  "pg-boss": "^10.0.0",