@hookflo/tern 3.0.7-beta → 3.0.9-beta

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.
@@ -1,11 +1,55 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.resolveQueueConfig = resolveQueueConfig;
4
37
  exports.handleReceive = handleReceive;
5
38
  exports.handleProcess = handleProcess;
6
39
  exports.handleQueuedRequest = handleQueuedRequest;
7
- const qstash_1 = require("@upstash/qstash");
40
+ const QStash = __importStar(require("@upstash/qstash"));
8
41
  const index_1 = require("../index");
42
+ function createQStashReceiver(queueConfig) {
43
+ const receiverExport = QStash.Receiver
44
+ ?? QStash.default?.Receiver;
45
+ if (typeof receiverExport !== 'function') {
46
+ throw new Error('[tern] Incompatible @upstash/qstash version: Receiver export not found. Please upgrade to a version that exports Receiver.');
47
+ }
48
+ return new receiverExport({
49
+ currentSigningKey: queueConfig.signingKey,
50
+ nextSigningKey: queueConfig.nextSigningKey,
51
+ });
52
+ }
9
53
  function nonRetryableResponse(message, status = 489) {
10
54
  return new Response(JSON.stringify({ error: message }), {
11
55
  status,
@@ -32,7 +76,7 @@ async function handleReceive(request, platform, secret, queueConfig, toleranceIn
32
76
  if (!verificationResult.isValid) {
33
77
  return nonRetryableResponse(verificationResult.error || 'Webhook signature verification failed');
34
78
  }
35
- const client = new qstash_1.Client({ token: queueConfig.token });
79
+ const client = new QStash.Client({ token: queueConfig.token });
36
80
  const queuedMessage = {
37
81
  platform,
38
82
  payload: verificationResult.payload,
@@ -61,10 +105,7 @@ async function handleProcess(request, handler, queueConfig) {
61
105
  return new Response(JSON.stringify({ error: 'Missing Upstash-Signature header' }), { status: 401, headers: { 'Content-Type': 'application/json' } });
62
106
  }
63
107
  const rawBody = await request.text();
64
- const receiver = new qstash_1.Receiver({
65
- currentSigningKey: queueConfig.signingKey,
66
- nextSigningKey: queueConfig.nextSigningKey,
67
- });
108
+ const receiver = createQStashReceiver(queueConfig);
68
109
  try {
69
110
  const verification = await receiver.verify({
70
111
  signature,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hookflo/tern",
3
- "version": "3.0.7-beta",
3
+ "version": "3.0.9-beta",
4
4
  "description": "A robust, scalable webhook verification framework supporting multiple platforms and signature algorithms",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",