@shivaedev/webhooks 0.3.0 → 0.3.2
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 +83 -0
- package/package.json +11 -10
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.2 - 2026-10-31
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Include `CHANGELOG.md` in published package contents so release notes are available in `node_modules`.
|
|
8
|
+
- Release checks reject published package `files` lists that omit `CHANGELOG.md`, naming the package and how to include it.
|
|
9
|
+
|
|
10
|
+
## 0.3.1 - 2026-10-30
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Release with updated workspace dependencies.
|
|
15
|
+
|
|
16
|
+
## 0.3.0 - 2026-10-30
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Let `webhookEvent` mappings return an Effect with application services and typed failures. Existing pure mappings continue to work through `webhookRoute`. Empty job lists receive `200 ignored`; failed checks roll back the receipt and jobs and receive `503` with redacted failure reporting.
|
|
21
|
+
|
|
22
|
+
## 0.2.1 - 2026-10-30
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Release with updated workspace dependencies.
|
|
27
|
+
|
|
28
|
+
## 0.2.0 - 2026-10-30
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Jobs services share one scoped pg-boss client through the Effect environment. Registration, worker and producer Layers use the same connection and pool settings.
|
|
33
|
+
- Service definitions accept marked generic methods alongside declared dependencies. Generic signatures retain their caller requirements unchanged; initialization can capture declared dependencies as private state.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- Remove the null internal export exclusion so module imports follow the package's file paths.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Decode receipt reads with Schema.
|
|
42
|
+
- Receiving a delivery records a `Webhooks.receive` span.
|
|
43
|
+
- Receipt storage and enqueue failures log a redacted cause with their error tag at error level before answering 503. The HTTP request span keeps the redacted original failure without request credentials.
|
|
44
|
+
|
|
45
|
+
### Breaking
|
|
46
|
+
|
|
47
|
+
- Request body reads fail with HTTP 413 before reading when Effect's `HttpIncomingMessage.MaxBodySize` is undefined. Provide a finite byte limit through `Effect.provideService(HttpIncomingMessage.MaxBodySize, ByteSize.bytes(limit))` when mounting native routes or webhook routes outside `appHost`.
|
|
48
|
+
- `RequestBodyTooLarge` is a Schema tagged error carrying a numeric `limit` in bytes, with `0` for an unconfigured limit. Replace bigint comparisons with number comparisons and obtain request context separately; the error no longer carries `request` or its headers.
|
|
49
|
+
- Move connection, pool, client factory, cache key and stop options from each `Jobs.layer` call into one `pgBossLayer` from `@shivaedev/jobs/server/service.ts`. Supply `connectionString` as `Redacted<string>` and provide that Layer to the merged jobs services. Keep only `jobs` and `onError` in `Jobs.layer`.
|
|
50
|
+
- Call `jobs.health()` instead of yielding `jobs.health`. Custom jobs service implementations must expose health as a method. Admin's built-in jobs handlers call the method automatically. Jobs services passed to webhook routes and enqueue helpers must also implement the new method shape.
|
|
51
|
+
- Server modules move under `server/`. Replace imports of `@shivaedev/webhooks/{github,registration,route,webhookReceipts,WebhookUnauthorized}.ts` with `@shivaedev/webhooks/server/{github,registration,route,webhookReceipts,WebhookUnauthorized}.ts`.
|
|
52
|
+
- Receipt `job_ids` is now PostgreSQL `text[]`. Stop older webhook receivers, apply the existing `webhookReceipts` component to migrate persisted JSON receipts, then start the new receivers. Direct SQL consumers must replace JSON operators with PostgreSQL array operations. Check and wait modes report pending receipt migrations.
|
|
53
|
+
- The webhook route Layer preserves signing-key `ConfigError` failures instead of converting them to defects. Consumers must propagate or handle this typed error at application startup; remove `Layer.orDie` when composing the route into the app host.
|
|
54
|
+
|
|
55
|
+
## 0.1.3 - 2026-10-30
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- Require Effect 4.0.6 and align the Effect companion package peers and generated starter catalog to the same exact release. Install the 4.0.6 Effect stack together.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- Register hosted RPC cache-control handling through Effect 4.0.6's request-scoped pre-response API so responses keep `private, no-store`.
|
|
64
|
+
- Accept native RPC's `application/x-ndjson` media type while preserving `application/ndjson` callers at the transport guard.
|
|
65
|
+
- Keep subscriptions open after their HTTP request body completes; closing the socket still cancels them.
|
|
66
|
+
|
|
67
|
+
## 0.1.2 - 2026-10-29
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- Release with updated workspace dependencies.
|
|
72
|
+
|
|
73
|
+
## 0.1.1 - 2026-10-28
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
|
|
77
|
+
- Release with updated workspace dependencies.
|
|
78
|
+
|
|
79
|
+
## 0.1.0 - 2026-10-27
|
|
80
|
+
|
|
81
|
+
### Added
|
|
82
|
+
|
|
83
|
+
- Receive signed deliveries through an HttpRouter Layer, record deduplicated receipts and queue typed jobs atomically, with a GitHub strategy and a receipt SchemaComponent.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/webhooks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Verified webhook receipts and transactional job delivery over Effect HTTP",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"effect"
|
|
@@ -41,21 +41,22 @@
|
|
|
41
41
|
"!src/**/*.spec.ts",
|
|
42
42
|
"!src/**/*.spec.tsx",
|
|
43
43
|
"!src/**/test-support",
|
|
44
|
+
"CHANGELOG.md",
|
|
44
45
|
"README.md"
|
|
45
46
|
],
|
|
46
47
|
"dependencies": {
|
|
47
|
-
"@shivaedev/errors": "0.1.
|
|
48
|
-
"@shivaedev/github": "0.8.
|
|
49
|
-
"@shivaedev/http": "0.3.
|
|
50
|
-
"@shivaedev/jobs": "0.
|
|
51
|
-
"@shivaedev/sql": "0.
|
|
48
|
+
"@shivaedev/errors": "0.1.3",
|
|
49
|
+
"@shivaedev/github": "0.8.1",
|
|
50
|
+
"@shivaedev/http": "0.3.1",
|
|
51
|
+
"@shivaedev/jobs": "0.24.0",
|
|
52
|
+
"@shivaedev/sql": "0.27.0"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@effect/platform-node": "4.0.6",
|
|
55
|
-
"@shivaedev/quality": "0.
|
|
56
|
-
"@shivaedev/server": "0.
|
|
57
|
-
"@shivaedev/test-sql": "0.
|
|
58
|
-
"@shivaedev/test-story": "0.
|
|
56
|
+
"@shivaedev/quality": "0.48.1",
|
|
57
|
+
"@shivaedev/server": "0.9.3",
|
|
58
|
+
"@shivaedev/test-sql": "0.15.0",
|
|
59
|
+
"@shivaedev/test-story": "0.27.0",
|
|
59
60
|
"@types/node": "24.19.2",
|
|
60
61
|
"effect": "4.0.6",
|
|
61
62
|
"pg-boss": "12.38.0",
|