@earendil-works/mailhook 0.1.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/LICENSE +201 -0
- package/README.md +45 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/mailhook/_internals/base-client.d.ts +65 -0
- package/dist/mailhook/_internals/base-client.d.ts.map +1 -0
- package/dist/mailhook/_internals/base-client.js +179 -0
- package/dist/mailhook/_internals/base-client.js.map +1 -0
- package/dist/mailhook/_internals/resources.d.ts +373 -0
- package/dist/mailhook/_internals/resources.d.ts.map +1 -0
- package/dist/mailhook/_internals/resources.js +649 -0
- package/dist/mailhook/_internals/resources.js.map +1 -0
- package/dist/mailhook/_internals/types.d.ts +975 -0
- package/dist/mailhook/_internals/types.d.ts.map +1 -0
- package/dist/mailhook/_internals/types.js +1862 -0
- package/dist/mailhook/_internals/types.js.map +1 -0
- package/dist/mailhook/_internals/utils.d.ts +52 -0
- package/dist/mailhook/_internals/utils.d.ts.map +1 -0
- package/dist/mailhook/_internals/utils.js +102 -0
- package/dist/mailhook/_internals/utils.js.map +1 -0
- package/dist/mailhook/client.d.ts +2 -0
- package/dist/mailhook/client.d.ts.map +1 -0
- package/dist/mailhook/client.js +2 -0
- package/dist/mailhook/client.js.map +1 -0
- package/dist/mailhook/webhook.d.ts +51 -0
- package/dist/mailhook/webhook.d.ts.map +1 -0
- package/dist/mailhook/webhook.js +130 -0
- package/dist/mailhook/webhook.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mailhook/_internals/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is auto-generated. Do not edit manually.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for all SDK errors
|
|
6
|
+
*/
|
|
7
|
+
export declare class MailhookError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error raised when the API returns an error response
|
|
12
|
+
*/
|
|
13
|
+
export declare class APIError extends MailhookError {
|
|
14
|
+
statusCode: number;
|
|
15
|
+
response?: any;
|
|
16
|
+
constructor(message: string, statusCode: number, response?: any);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error raised when a connection error occurs
|
|
20
|
+
*/
|
|
21
|
+
export declare class ConnectionError extends MailhookError {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error raised when a rate limit is exceeded
|
|
26
|
+
*/
|
|
27
|
+
export declare class RateLimitError extends APIError {
|
|
28
|
+
constructor(message: string, statusCode: number, response?: any);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Error raised when authentication fails
|
|
32
|
+
*/
|
|
33
|
+
export declare class AuthenticationError extends APIError {
|
|
34
|
+
constructor(message: string, response?: any);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Convert snake_case to camelCase
|
|
38
|
+
*/
|
|
39
|
+
export declare function toCamelCase(str: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Convert camelCase to snake_case
|
|
42
|
+
*/
|
|
43
|
+
export declare function toSnakeCase(str: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Transform object keys from snake_case to camelCase
|
|
46
|
+
*/
|
|
47
|
+
export declare function transformKeysToCamelCase(obj: any): any;
|
|
48
|
+
/**
|
|
49
|
+
* Transform object keys from camelCase to snake_case
|
|
50
|
+
*/
|
|
51
|
+
export declare function transformKeysToSnakeCase(obj: any): any;
|
|
52
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mailhook/_internals/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAAa;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;gBAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAOhE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAKhE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAK5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CActD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CActD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is auto-generated. Do not edit manually.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for all SDK errors
|
|
6
|
+
*/
|
|
7
|
+
export class MailhookError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'MailhookError';
|
|
11
|
+
Object.setPrototypeOf(this, MailhookError.prototype);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Error raised when the API returns an error response
|
|
16
|
+
*/
|
|
17
|
+
export class APIError extends MailhookError {
|
|
18
|
+
statusCode;
|
|
19
|
+
response;
|
|
20
|
+
constructor(message, statusCode, response) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.statusCode = statusCode;
|
|
23
|
+
this.response = response;
|
|
24
|
+
this.name = 'APIError';
|
|
25
|
+
Object.setPrototypeOf(this, APIError.prototype);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Error raised when a connection error occurs
|
|
30
|
+
*/
|
|
31
|
+
export class ConnectionError extends MailhookError {
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = 'ConnectionError';
|
|
35
|
+
Object.setPrototypeOf(this, ConnectionError.prototype);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Error raised when a rate limit is exceeded
|
|
40
|
+
*/
|
|
41
|
+
export class RateLimitError extends APIError {
|
|
42
|
+
constructor(message, statusCode, response) {
|
|
43
|
+
super(message, statusCode, response);
|
|
44
|
+
this.name = 'RateLimitError';
|
|
45
|
+
Object.setPrototypeOf(this, RateLimitError.prototype);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error raised when authentication fails
|
|
50
|
+
*/
|
|
51
|
+
export class AuthenticationError extends APIError {
|
|
52
|
+
constructor(message, response) {
|
|
53
|
+
super(message, 401, response);
|
|
54
|
+
this.name = 'AuthenticationError';
|
|
55
|
+
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Convert snake_case to camelCase
|
|
60
|
+
*/
|
|
61
|
+
export function toCamelCase(str) {
|
|
62
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Convert camelCase to snake_case
|
|
66
|
+
*/
|
|
67
|
+
export function toSnakeCase(str) {
|
|
68
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`).replace(/^_/, '');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Transform object keys from snake_case to camelCase
|
|
72
|
+
*/
|
|
73
|
+
export function transformKeysToCamelCase(obj) {
|
|
74
|
+
if (Array.isArray(obj)) {
|
|
75
|
+
return obj.map(transformKeysToCamelCase);
|
|
76
|
+
}
|
|
77
|
+
if (obj !== null && typeof obj === 'object' && !(obj instanceof Date)) {
|
|
78
|
+
return Object.keys(obj).reduce((result, key) => {
|
|
79
|
+
const camelKey = toCamelCase(key);
|
|
80
|
+
result[camelKey] = transformKeysToCamelCase(obj[key]);
|
|
81
|
+
return result;
|
|
82
|
+
}, {});
|
|
83
|
+
}
|
|
84
|
+
return obj;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Transform object keys from camelCase to snake_case
|
|
88
|
+
*/
|
|
89
|
+
export function transformKeysToSnakeCase(obj) {
|
|
90
|
+
if (Array.isArray(obj)) {
|
|
91
|
+
return obj.map(transformKeysToSnakeCase);
|
|
92
|
+
}
|
|
93
|
+
if (obj !== null && typeof obj === 'object' && !(obj instanceof Date)) {
|
|
94
|
+
return Object.keys(obj).reduce((result, key) => {
|
|
95
|
+
const snakeKey = toSnakeCase(key);
|
|
96
|
+
result[snakeKey] = transformKeysToSnakeCase(obj[key]);
|
|
97
|
+
return result;
|
|
98
|
+
}, {});
|
|
99
|
+
}
|
|
100
|
+
return obj;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mailhook/_internals/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mailhook/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mailhook/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook utilities for parsing and validating webhook events.
|
|
3
|
+
*/
|
|
4
|
+
import { WebhookEvent } from "./_internals/types.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Parse a webhook event payload into a WebhookEvent object.
|
|
7
|
+
*
|
|
8
|
+
* @param payload - The webhook payload as a string, Buffer, or object
|
|
9
|
+
* @returns The parsed webhook event
|
|
10
|
+
* @throws Error if the payload is invalid or cannot be parsed
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseWebhookEvent(payload: string | Buffer | Record<string, unknown>): WebhookEvent;
|
|
13
|
+
/**
|
|
14
|
+
* Validate a webhook signature.
|
|
15
|
+
*
|
|
16
|
+
* Supports both Standard Webhooks format (v1,base64_signature) and legacy format (hex).
|
|
17
|
+
*
|
|
18
|
+
* @param payload - The raw webhook payload
|
|
19
|
+
* @param signature - The signature from the webhook headers (Webhook-Signature or X-Webhook-Signature)
|
|
20
|
+
* @param secret - The webhook secret (may be base64 encoded for Standard Webhooks)
|
|
21
|
+
* @param timestamp - The timestamp from Webhook-Timestamp header (for Standard Webhooks)
|
|
22
|
+
* @param webhookId - The webhook ID from Webhook-Id header (for Standard Webhooks)
|
|
23
|
+
* @returns True if the signature is valid, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateWebhookSignature(payload: Buffer | string, signature: string, secret: string, timestamp: string, webhookId: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Headers interface for webhook verification
|
|
28
|
+
*/
|
|
29
|
+
export interface WebhookHeaders {
|
|
30
|
+
"webhook-signature"?: string;
|
|
31
|
+
"webhook-timestamp"?: string;
|
|
32
|
+
"webhook-id"?: string;
|
|
33
|
+
[key: string]: string | undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Verify webhook signature and parse the event.
|
|
37
|
+
*
|
|
38
|
+
* This is a convenience function that combines signature validation
|
|
39
|
+
* and event parsing.
|
|
40
|
+
*
|
|
41
|
+
* @param payload - The raw webhook payload
|
|
42
|
+
* @param secret - The webhook secret
|
|
43
|
+
* @param signature - The signature from the webhook headers
|
|
44
|
+
* @param timestamp - The timestamp from webhook-timestamp header
|
|
45
|
+
* @param webhookId - The webhook id from webhook-id header
|
|
46
|
+
* @param headers - A mapping of http headers (case insensitive) as alternative to signature, timestamp and webhookId
|
|
47
|
+
* @returns The parsed webhook event
|
|
48
|
+
* @throws Error if the signature is invalid or payload cannot be parsed
|
|
49
|
+
*/
|
|
50
|
+
export declare function verifyAndParseWebhook(payload: Buffer | string, secret: string, signature?: string, timestamp?: string, webhookId?: string, headers?: WebhookHeaders): WebhookEvent;
|
|
51
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/mailhook/webhook.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjD,YAAY,CAgBd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAmDT;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,YAAY,CA+Bd"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook utilities for parsing and validating webhook events.
|
|
3
|
+
*/
|
|
4
|
+
import * as crypto from "node:crypto";
|
|
5
|
+
import { WebhookEvent } from "./_internals/types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Parse a webhook event payload into a WebhookEvent object.
|
|
8
|
+
*
|
|
9
|
+
* @param payload - The webhook payload as a string, Buffer, or object
|
|
10
|
+
* @returns The parsed webhook event
|
|
11
|
+
* @throws Error if the payload is invalid or cannot be parsed
|
|
12
|
+
*/
|
|
13
|
+
export function parseWebhookEvent(payload) {
|
|
14
|
+
let data;
|
|
15
|
+
if (typeof payload === "string" || Buffer.isBuffer(payload)) {
|
|
16
|
+
try {
|
|
17
|
+
data = JSON.parse(payload.toString());
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
throw new Error(`Invalid JSON payload: ${e}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (typeof payload === "object" && payload !== null) {
|
|
24
|
+
data = payload;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new Error(`Invalid payload type: ${typeof payload}`);
|
|
28
|
+
}
|
|
29
|
+
return WebhookEvent.fromApiDict(data);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Validate a webhook signature.
|
|
33
|
+
*
|
|
34
|
+
* Supports both Standard Webhooks format (v1,base64_signature) and legacy format (hex).
|
|
35
|
+
*
|
|
36
|
+
* @param payload - The raw webhook payload
|
|
37
|
+
* @param signature - The signature from the webhook headers (Webhook-Signature or X-Webhook-Signature)
|
|
38
|
+
* @param secret - The webhook secret (may be base64 encoded for Standard Webhooks)
|
|
39
|
+
* @param timestamp - The timestamp from Webhook-Timestamp header (for Standard Webhooks)
|
|
40
|
+
* @param webhookId - The webhook ID from Webhook-Id header (for Standard Webhooks)
|
|
41
|
+
* @returns True if the signature is valid, false otherwise
|
|
42
|
+
*/
|
|
43
|
+
export function validateWebhookSignature(payload, signature, secret, timestamp, webhookId) {
|
|
44
|
+
// Standard Webhooks format
|
|
45
|
+
if (!timestamp || !webhookId) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// Convert payload to Buffer if it's a string
|
|
49
|
+
const payloadBuffer = typeof payload === "string" ? Buffer.from(payload, "utf-8") : payload;
|
|
50
|
+
// Try to decode the secret as base64 first, falling back to raw if it fails
|
|
51
|
+
let decodedSecret;
|
|
52
|
+
if (secret.startsWith("whsec_")) {
|
|
53
|
+
secret = secret.slice(6);
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
decodedSecret = Buffer.from(secret, "base64");
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
decodedSecret = Buffer.from(secret, "utf-8");
|
|
60
|
+
}
|
|
61
|
+
// Create the signed content (webhook_id.timestamp.payload)
|
|
62
|
+
const signedContent = `${webhookId}.${timestamp}.${payloadBuffer.toString("utf-8")}`;
|
|
63
|
+
// Generate HMAC-SHA256
|
|
64
|
+
const expectedSignature = crypto
|
|
65
|
+
.createHmac("sha256", decodedSecret)
|
|
66
|
+
.update(signedContent)
|
|
67
|
+
.digest();
|
|
68
|
+
// Check each versioned signature
|
|
69
|
+
const signatures = signature.split(" ");
|
|
70
|
+
for (const versionedSignature of signatures) {
|
|
71
|
+
const pieces = versionedSignature.split(",");
|
|
72
|
+
if (pieces.length !== 2) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const [version, b64Signature] = pieces;
|
|
76
|
+
if (version !== "v1") {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const actualSignature = Buffer.from(b64Signature, "base64");
|
|
81
|
+
if (crypto.timingSafeEqual(actualSignature, expectedSignature)) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch { }
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Verify webhook signature and parse the event.
|
|
91
|
+
*
|
|
92
|
+
* This is a convenience function that combines signature validation
|
|
93
|
+
* and event parsing.
|
|
94
|
+
*
|
|
95
|
+
* @param payload - The raw webhook payload
|
|
96
|
+
* @param secret - The webhook secret
|
|
97
|
+
* @param signature - The signature from the webhook headers
|
|
98
|
+
* @param timestamp - The timestamp from webhook-timestamp header
|
|
99
|
+
* @param webhookId - The webhook id from webhook-id header
|
|
100
|
+
* @param headers - A mapping of http headers (case insensitive) as alternative to signature, timestamp and webhookId
|
|
101
|
+
* @returns The parsed webhook event
|
|
102
|
+
* @throws Error if the signature is invalid or payload cannot be parsed
|
|
103
|
+
*/
|
|
104
|
+
export function verifyAndParseWebhook(payload, secret, signature, timestamp, webhookId, headers) {
|
|
105
|
+
// Extract from headers if provided
|
|
106
|
+
if (headers) {
|
|
107
|
+
// Convert headers to lowercase for case-insensitive lookup
|
|
108
|
+
const lowerHeaders = {};
|
|
109
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
110
|
+
lowerHeaders[key.toLowerCase()] = value;
|
|
111
|
+
}
|
|
112
|
+
signature = signature || lowerHeaders["webhook-signature"];
|
|
113
|
+
timestamp = timestamp || lowerHeaders["webhook-timestamp"];
|
|
114
|
+
webhookId = webhookId || lowerHeaders["webhook-id"];
|
|
115
|
+
}
|
|
116
|
+
if (!signature) {
|
|
117
|
+
throw new Error("Signature is required");
|
|
118
|
+
}
|
|
119
|
+
if (!timestamp) {
|
|
120
|
+
throw new Error("Timestamp is required");
|
|
121
|
+
}
|
|
122
|
+
if (!webhookId) {
|
|
123
|
+
throw new Error("Webhook ID is required");
|
|
124
|
+
}
|
|
125
|
+
if (!validateWebhookSignature(payload, signature, secret, timestamp, webhookId)) {
|
|
126
|
+
throw new Error("Invalid webhook signature");
|
|
127
|
+
}
|
|
128
|
+
return parseWebhookEvent(payload);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/mailhook/webhook.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@earendil-works/mailhook",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript SDK for the Mailhook API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "Armin Ronacher <armin.ronacher@active-4.com>",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"homepage": "https://mailhook.sh/",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/earendil-works/mailhook.git",
|
|
12
|
+
"directory": "sdks/typescript"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/earendil-works/mailhook/issues"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"mailhook",
|
|
19
|
+
"email",
|
|
20
|
+
"api",
|
|
21
|
+
"sdk",
|
|
22
|
+
"typescript",
|
|
23
|
+
"webhooks"
|
|
24
|
+
],
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./webhook": {
|
|
33
|
+
"types": "./dist/mailhook/webhook.d.ts",
|
|
34
|
+
"import": "./dist/mailhook/webhook.js"
|
|
35
|
+
},
|
|
36
|
+
"./package.json": "./package.json"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"LICENSE"
|
|
41
|
+
],
|
|
42
|
+
"sideEffects": false,
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "rm -rf dist && tsc -p tsconfig.json",
|
|
48
|
+
"generate": "cd ../generator && uv run main.py typescript",
|
|
49
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
50
|
+
"lint": "biome check .",
|
|
51
|
+
"lint:fix": "biome check --write --unsafe .",
|
|
52
|
+
"format": "prettier --write \"src/**/*.{ts,tsx,json,md}\"",
|
|
53
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx,json,md}\"",
|
|
54
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
55
|
+
"prepublishOnly": "pnpm run generate && pnpm run build"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=18.0.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@biomejs/biome": "2.3.9",
|
|
62
|
+
"@types/node": "^20.0.0",
|
|
63
|
+
"prettier": "^3.0.0",
|
|
64
|
+
"typescript": "^5.9.0"
|
|
65
|
+
}
|
|
66
|
+
}
|