@cogenta/channels 0.1.2 → 0.2.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/dist/index.d.ts CHANGED
@@ -68,6 +68,8 @@ export type { RenderedTelegramMessage } from './providers/telegram/render.js';
68
68
  export { escapeMarkdownV2, renderTelegramMessage } from './providers/telegram/render.js';
69
69
  export type { WebhookAdapterOptions, WebhookFetch } from './providers/webhook/adapter.js';
70
70
  export { createWebhookAdapter } from './providers/webhook/adapter.js';
71
+ export type { WebhookEventDelivery, WebhookEventEnvelope, WebhookEventSender, WebhookEventSenderOptions, } from './providers/webhook/events.js';
72
+ export { createWebhookEventSender } from './providers/webhook/events.js';
71
73
  export type { WebhookActionLinkOptions, WebhookPayload } from './providers/webhook/render.js';
72
74
  export { renderWebhookPayload } from './providers/webhook/render.js';
73
75
  export type { SignedWebhookRequest, VerifyIncomingWebhookInput, WebhookVerificationResult, } from './providers/webhook/signing.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -36,6 +36,7 @@ export { createTelegramClient } from './providers/telegram/client.js';
36
36
  export { createTelegramInboundHandler } from './providers/telegram/inbound.js';
37
37
  export { escapeMarkdownV2, renderTelegramMessage } from './providers/telegram/render.js';
38
38
  export { createWebhookAdapter } from './providers/webhook/adapter.js';
39
+ export { createWebhookEventSender } from './providers/webhook/events.js';
39
40
  export { renderWebhookPayload } from './providers/webhook/render.js';
40
41
  export { assertValidIncomingWebhook, signOutgoingWebhook, verifyIncomingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER, WebhookReplayGuard, } from './providers/webhook/signing.js';
41
42
  export { createChannelRegistry } from './registry.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { CogentaError } from '@cogenta/core';
2
+ import type { WebhookFetch } from './adapter.js';
3
+ /**
4
+ * The outbound half of "un webhook réellement branché sur le cycle de vie du
5
+ * contenu" (L14 task 1).
6
+ *
7
+ * Why this is not `createWebhookAdapter`: that adapter carries a
8
+ * `ChannelMessage`, a *human* message — title and prose, rendered for someone
9
+ * to read (`render.ts`). A `content.publish` webhook is consumed by a machine:
10
+ * a headless frontend invalidating a page, a CI job rebuilding a static site,
11
+ * an automation platform. Handing it `{ level: 'notification', title, text }`
12
+ * would force every receiver to parse a sentence to find out which entry
13
+ * changed. So the *payload* differs — and only the payload.
14
+ *
15
+ * Everything security-relevant is the existing primitive, used verbatim:
16
+ * `signOutgoingWebhook` (HMAC-SHA256 over `` `${timestamp}.${rawBody}` ``),
17
+ * the same two headers, the same freshness semantics. A receiver verifies an
18
+ * event exactly as it verifies a message — with `verifyIncomingWebhook`, no
19
+ * argument changed — which is the property the end-to-end test asserts. There
20
+ * is deliberately no second signing code path in this repository.
21
+ */
22
+ /** What a receiver gets, as JSON, in the body of a signed POST. */
23
+ export interface WebhookEventEnvelope {
24
+ /** Stable, dotted event name, e.g. `content.publish`. */
25
+ readonly event: string;
26
+ /** ISO 8601, the instant the site decided the event happened. */
27
+ readonly occurredAt: string;
28
+ /** Event-specific facts. Never the content body itself — see `deliver`. */
29
+ readonly data: Readonly<Record<string, unknown>>;
30
+ }
31
+ export interface WebhookEventDelivery {
32
+ readonly url: string;
33
+ readonly delivered: boolean;
34
+ /** The receiver's HTTP status, or `null` when the request never got one (network error). */
35
+ readonly status: number | null;
36
+ /** Present exactly when `delivered` is `false`. */
37
+ readonly error?: CogentaError;
38
+ }
39
+ export interface WebhookEventSenderOptions {
40
+ /** Every URL the site notifies. Empty means the sender is a no-op. */
41
+ readonly endpoints: readonly string[];
42
+ /** Shared with every endpoint — the same secret their `verifyIncomingWebhook` uses. */
43
+ readonly secret: string;
44
+ /** Defaults to the global `fetch`; overridable for tests. */
45
+ readonly fetchImpl?: WebhookFetch;
46
+ /** Injectable so tests can pin time; nothing else should pass it. */
47
+ readonly now?: () => number;
48
+ }
49
+ export interface WebhookEventSender {
50
+ readonly endpoints: readonly string[];
51
+ /**
52
+ * Signs one envelope and POSTs it to every endpoint, in parallel.
53
+ *
54
+ * **Never throws, and never rejects.** The caller is a content write that has
55
+ * already succeeded: an editor's publish must not fail because somebody
56
+ * else's HTTP endpoint is down. Every outcome — including a refusal — comes
57
+ * back as a `WebhookEventDelivery` so the caller can log it, which is what
58
+ * makes the side effect visible rather than silent.
59
+ *
60
+ * There is no retry and no durable queue on purpose: this repository
61
+ * guarantees no persistent worker (rule R1), so a retry loop here would be a
62
+ * promise the deployment cannot keep. A receiver that needs at-least-once
63
+ * delivery polls the API; a receiver that misses one event is told so by the
64
+ * next one.
65
+ */
66
+ send(event: string, data: Readonly<Record<string, unknown>>): Promise<readonly WebhookEventDelivery[]>;
67
+ }
68
+ export declare function createWebhookEventSender(options: WebhookEventSenderOptions): WebhookEventSender;
69
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/providers/webhook/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAOhD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAA;IACjC,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC;;;;;;;;;;;;;;OAcG;IACH,IAAI,CACF,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC,CAAA;CAC5C;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CA6D/F"}
@@ -0,0 +1,66 @@
1
+ import { CogentaError } from '@cogenta/core';
2
+ import { signOutgoingWebhook, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER, } from './signing.js';
3
+ export function createWebhookEventSender(options) {
4
+ const fetchImpl = options.fetchImpl ?? fetch;
5
+ const now = options.now ?? Date.now;
6
+ const endpoints = Object.freeze([...options.endpoints]);
7
+ async function deliverOne(url, rawBody) {
8
+ const signed = signOutgoingWebhook(options.secret, rawBody, Math.floor(now() / 1000));
9
+ try {
10
+ const response = await fetchImpl(url, {
11
+ method: 'POST',
12
+ headers: {
13
+ 'content-type': 'application/json',
14
+ [WEBHOOK_TIMESTAMP_HEADER]: signed.timestamp,
15
+ [WEBHOOK_SIGNATURE_HEADER]: signed.signature,
16
+ },
17
+ body: rawBody,
18
+ });
19
+ if (response.ok)
20
+ return { url, delivered: true, status: response.status };
21
+ return {
22
+ url,
23
+ delivered: false,
24
+ status: response.status,
25
+ error: new CogentaError({
26
+ code: 'CHANNEL_WEBHOOK_DELIVERY_FAILED',
27
+ message: `Webhook delivery to ${url} failed with status ${response.status}.`,
28
+ hint: 'Check that the target URL is reachable and returns a 2xx status for a valid signed request.',
29
+ details: { url, status: response.status },
30
+ }),
31
+ };
32
+ }
33
+ catch (cause) {
34
+ return {
35
+ url,
36
+ delivered: false,
37
+ status: null,
38
+ error: new CogentaError({
39
+ code: 'CHANNEL_WEBHOOK_DELIVERY_FAILED',
40
+ message: `Webhook delivery to ${url} could not be attempted.`,
41
+ hint: 'The request never completed — check that the host resolves and is reachable from this server.',
42
+ details: { url, cause: String(cause) },
43
+ }),
44
+ };
45
+ }
46
+ }
47
+ return {
48
+ endpoints,
49
+ send: async (event, data) => {
50
+ if (endpoints.length === 0)
51
+ return [];
52
+ const envelope = {
53
+ event,
54
+ occurredAt: new Date(now()).toISOString(),
55
+ data,
56
+ };
57
+ // One body, signed once per endpoint. The signature covers the timestamp,
58
+ // so two endpoints receiving the same event within the same second still
59
+ // get byte-identical headers — which is correct: they are independent
60
+ // receivers, each with its own replay guard.
61
+ const rawBody = JSON.stringify(envelope);
62
+ return Promise.all(endpoints.map((url) => deliverOne(url, rawBody)));
63
+ },
64
+ };
65
+ }
66
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/providers/webhook/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAA;AA2ErB,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,SAAS,GAAiB,OAAO,CAAC,SAAS,IAAK,KAAiC,CAAA;IACvF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAEvD,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,OAAe;QACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACrF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,SAAS;oBAC5C,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,SAAS;iBAC7C;gBACD,IAAI,EAAE,OAAO;aACd,CAAC,CAAA;YACF,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;YACzE,OAAO;gBACL,GAAG;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,IAAI,YAAY,CAAC;oBACtB,IAAI,EAAE,iCAAiC;oBACvC,OAAO,EAAE,uBAAuB,GAAG,uBAAuB,QAAQ,CAAC,MAAM,GAAG;oBAC5E,IAAI,EAAE,6FAA6F;oBACnG,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;iBAC1C,CAAC;aACH,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,GAAG;gBACH,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,YAAY,CAAC;oBACtB,IAAI,EAAE,iCAAiC;oBACvC,OAAO,EAAE,uBAAuB,GAAG,0BAA0B;oBAC7D,IAAI,EAAE,+FAA+F;oBACrG,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;iBACvC,CAAC;aACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YACrC,MAAM,QAAQ,GAAyB;gBACrC,KAAK;gBACL,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;gBACzC,IAAI;aACL,CAAA;YACD,0EAA0E;YAC1E,yEAAyE;YACzE,sEAAsE;YACtE,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogenta/channels",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "Channel adapter interface and registry — Telegram, Slack, Discord, email, webhooks.",
5
5
  "license": "MPL-2.0",
6
6
  "type": "module",
@@ -27,8 +27,8 @@
27
27
  "directory": "packages/channels"
28
28
  },
29
29
  "dependencies": {
30
- "@cogenta/agents": "0.1.2",
31
- "@cogenta/core": "0.2.0"
30
+ "@cogenta/agents": "0.2.1",
31
+ "@cogenta/core": "0.4.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "typescript": "^7.0.2",