@relaymessenger/sdk 0.3.3-staging.4 → 0.3.3-staging.5

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
@@ -2,7 +2,7 @@ export { Agents, Attachments, BlockedHandles, Chats, ContactCard, Messages, Rela
2
2
  export { RelayAPIError, RelayWebhookConfiguredError, type RelayAPIErrorOptions, type RelayWebhookConfiguredErrorOptions, } from "./errors.js";
3
3
  export { RELAY_V1_OPERATIONS, RELAY_WEBHOOK_EVENT_TYPES, type RelayV1Operation, } from "./operations.js";
4
4
  export { ChatsPage, MessagesPage, RelayPage, type PageBody, } from "./pagination.js";
5
- export { Webhooks, WebhookVerificationError, verifyWebhookSignature, type WebhookHeaders, } from "./webhooks.js";
5
+ export { Webhooks, WebhookVerificationError, signWebhookHeaders, verifyWebhookSignature, type WebhookHeaders, } from "./webhooks.js";
6
6
  export { runWebSocket, type WebSocketEventContext, type WebSocketFullSyncContext, type WebSocketRunOptions, type WebSocketConstructor, type WebSocketLike, } from "./websocket.js";
7
7
  export type * from "./types.js";
8
8
  export { Relay as default } from "./client.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,WAAW,EACX,cAAc,EACd,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,GACxC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,WAAW,EACX,cAAc,EACd,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,GACxC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,QAAQ,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ export { Agents, Attachments, BlockedHandles, Chats, ContactCard, Messages, Rela
2
2
  export { RelayAPIError, RelayWebhookConfiguredError, } from "./errors.js";
3
3
  export { RELAY_V1_OPERATIONS, RELAY_WEBHOOK_EVENT_TYPES, } from "./operations.js";
4
4
  export { ChatsPage, MessagesPage, RelayPage, } from "./pagination.js";
5
- export { Webhooks, WebhookVerificationError, verifyWebhookSignature, } from "./webhooks.js";
5
+ export { Webhooks, WebhookVerificationError, signWebhookHeaders, verifyWebhookSignature, } from "./webhooks.js";
6
6
  export { runWebSocket, } from "./websocket.js";
7
7
  export { Relay as default } from "./client.js";
8
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,WAAW,EACX,cAAc,EACd,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,2BAA2B,GAG5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,GAEV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,GAMb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,WAAW,EACX,cAAc,EACd,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,2BAA2B,GAG5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,GAEV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,GAMb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
@@ -2,6 +2,16 @@ import { WebhookVerificationError } from "standardwebhooks";
2
2
  import type { RelayWebhookEnvelope, RelayWebhookEvent } from "./types.js";
3
3
  export { WebhookVerificationError };
4
4
  export type WebhookHeaders = Headers | Record<string, string | null | undefined>;
5
+ /** The three Standard Webhooks headers for one delivery: `webhook-id`,
6
+ * `webhook-timestamp` (unix seconds) and `webhook-signature` (`v1,<base64
7
+ * HMAC-SHA256 over id.timestamp.body>`), signed with a `whsec_` secret. Relay
8
+ * signs deliveries this way, and the CLI's local `listen` forwards sign the
9
+ * same way, so one receiver verifies both with `verifyWebhookSignature`. */
10
+ export declare const signWebhookHeaders: (secret: string, delivery: {
11
+ id: string;
12
+ body: string | Buffer;
13
+ timestamp?: Date;
14
+ }) => Record<"webhook-id" | "webhook-timestamp" | "webhook-signature", string>;
5
15
  export declare const verifyWebhookSignature: (secret: string, body: string | Buffer, headers: WebhookHeaders) => void;
6
16
  export declare class Webhooks {
7
17
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAsB9C,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,MAAM,MAAM,GAAG,MAAM,EACrB,SAAS,cAAc,KACtB,IAEF,CAAC;AAEF,qBAAa,QAAQ;;gBAGP,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC,MAAM,CACJ,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,IAAI;IAMP,MAAM,CAAC,CAAC,GAAG,iBAAiB,EAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,CAAC;CAIL;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAsB9C;;;;4EAI4E;AAC5E,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,UAAU;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,KAChE,MAAM,CAAC,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,MAAM,CAOzE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,MAAM,MAAM,GAAG,MAAM,EACrB,SAAS,cAAc,KACtB,IAEF,CAAC;AAEF,qBAAa,QAAQ;;gBAGP,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC,MAAM,CACJ,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,IAAI;IAMP,MAAM,CAAC,CAAC,GAAG,iBAAiB,EAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,CAAC;CAIL;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
package/dist/webhooks.js CHANGED
@@ -14,6 +14,19 @@ const requiredHeaders = (headers) => {
14
14
  "webhook-signature": signature,
15
15
  };
16
16
  };
17
+ /** The three Standard Webhooks headers for one delivery: `webhook-id`,
18
+ * `webhook-timestamp` (unix seconds) and `webhook-signature` (`v1,<base64
19
+ * HMAC-SHA256 over id.timestamp.body>`), signed with a `whsec_` secret. Relay
20
+ * signs deliveries this way, and the CLI's local `listen` forwards sign the
21
+ * same way, so one receiver verifies both with `verifyWebhookSignature`. */
22
+ export const signWebhookHeaders = (secret, delivery) => {
23
+ const timestamp = delivery.timestamp ?? new Date();
24
+ return {
25
+ "webhook-id": delivery.id,
26
+ "webhook-timestamp": String(Math.floor(timestamp.getTime() / 1_000)),
27
+ "webhook-signature": new Webhook(secret).sign(delivery.id, timestamp, delivery.body),
28
+ };
29
+ };
17
30
  export const verifyWebhookSignature = (secret, body, headers) => {
18
31
  new Webhook(secret).verify(body, requiredHeaders(headers));
19
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAMpC,MAAM,eAAe,GAAG,CACtB,OAAuB,EACC,EAAE;IAC1B,MAAM,GAAG,GAAG,CAAC,IAAY,EAA6B,EAAE,CACtD,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAwB,CAChC,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,SAAS;QAC9B,mBAAmB,EAAE,SAAS;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,IAAqB,EACrB,OAAuB,EACjB,EAAE;IACR,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,OAAO,QAAQ;IACV,OAAO,CAAgB;IAEhC,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,EAAE,OAAO,EAAE,GAAG,EAA6C;QAE3D,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzD,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,MAAiD;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAM,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAMpC,MAAM,eAAe,GAAG,CACtB,OAAuB,EACC,EAAE;IAC1B,MAAM,GAAG,GAAG,CAAC,IAAY,EAA6B,EAAE,CACtD,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,wBAAwB,CAChC,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,mBAAmB,EAAE,SAAS;QAC9B,mBAAmB,EAAE,SAAS;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;4EAI4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAc,EACd,QAAiE,EACS,EAAE;IAC5E,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;IACnD,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,EAAE;QACzB,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;QACpE,mBAAmB,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;KACrF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,IAAqB,EACrB,OAAuB,EACjB,EAAE;IACR,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,OAAO,QAAQ;IACV,OAAO,CAAgB;IAEhC,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,EAAE,OAAO,EAAE,GAAG,EAA6C;QAE3D,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzD,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CACJ,IAAqB,EACrB,MAAiD;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAM,CAAC;IAC1C,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relaymessenger/sdk",
3
- "version": "0.3.3-staging.4",
3
+ "version": "0.3.3-staging.5",
4
4
  "description": "TypeScript SDK for the Relay v1 messaging API and signed webhooks.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",