@upstash/qstash 2.7.17 → 2.7.18

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.
@@ -564,6 +564,7 @@ var BaseProvider = class {
564
564
  var LLMProvider = class extends BaseProvider {
565
565
  apiKind = "llm";
566
566
  organization;
567
+ method = "POST";
567
568
  constructor(baseUrl, token, owner, organization) {
568
569
  super(baseUrl, token, owner);
569
570
  this.organization = organization;
@@ -640,15 +641,24 @@ var getProviderInfo = (api, upstashToken) => {
640
641
  baseUrl: finalProvider.baseUrl,
641
642
  route: finalProvider.getRoute(),
642
643
  appendHeaders: finalProvider.getHeaders(parameters),
643
- owner: finalProvider.owner
644
+ owner: finalProvider.owner,
645
+ method: finalProvider.method
644
646
  };
645
647
  return finalProvider.onFinish(providerInfo, parameters);
646
648
  };
647
- var processApi = (request, upstashToken) => {
649
+ var safeJoinHeaders = (headers, record) => {
650
+ const joinedHeaders = new Headers(record);
651
+ for (const [header, value] of headers.entries()) {
652
+ joinedHeaders.set(header, value);
653
+ }
654
+ return joinedHeaders;
655
+ };
656
+ var processApi = (request, headers, upstashToken) => {
648
657
  if (!request.api) {
658
+ request.headers = headers;
649
659
  return request;
650
660
  }
651
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
661
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
652
662
  if (request.api.name === "llm") {
653
663
  const callback = request.callback;
654
664
  if (!callback) {
@@ -656,21 +666,15 @@ var processApi = (request, upstashToken) => {
656
666
  }
657
667
  return {
658
668
  ...request,
659
- // @ts-expect-error undici header conflict
660
- headers: new Headers({
661
- ...request.headers,
662
- ...appendHeaders
663
- }),
669
+ method: request.method ?? method,
670
+ headers: safeJoinHeaders(headers, appendHeaders),
664
671
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
665
672
  };
666
673
  } else {
667
674
  return {
668
675
  ...request,
669
- // @ts-expect-error undici header conflict
670
- headers: new Headers({
671
- ...request.headers,
672
- ...appendHeaders
673
- }),
676
+ method: request.method ?? method,
677
+ headers: safeJoinHeaders(headers, appendHeaders),
674
678
  url,
675
679
  api: void 0
676
680
  };
@@ -880,9 +884,8 @@ var Queue = class {
880
884
  async enqueueJSON(request) {
881
885
  const headers = prefixHeaders(new Headers(request.headers));
882
886
  headers.set("Content-Type", "application/json");
883
- request.headers = headers;
884
887
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
885
- const nonApiRequest = processApi(request, upstashToken);
888
+ const nonApiRequest = processApi(request, headers, upstashToken);
886
889
  const response = await this.enqueue({
887
890
  ...nonApiRequest,
888
891
  body: JSON.stringify(nonApiRequest.body),
@@ -1187,9 +1190,8 @@ var Client = class {
1187
1190
  async publishJSON(request) {
1188
1191
  const headers = prefixHeaders(new Headers(request.headers));
1189
1192
  headers.set("Content-Type", "application/json");
1190
- request.headers = headers;
1191
1193
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1192
- const nonApiRequest = processApi(request, upstashToken);
1194
+ const nonApiRequest = processApi(request, headers, upstashToken);
1193
1195
  const response = await this.publish({
1194
1196
  ...nonApiRequest,
1195
1197
  body: JSON.stringify(nonApiRequest.body)
@@ -1230,9 +1232,8 @@ var Client = class {
1230
1232
  if ("body" in message) {
1231
1233
  message.body = JSON.stringify(message.body);
1232
1234
  }
1233
- message.headers = new Headers(message.headers);
1234
1235
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1235
- const nonApiMessage = processApi(message, upstashToken);
1236
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1236
1237
  nonApiMessage.headers.set("Content-Type", "application/json");
1237
1238
  return nonApiMessage;
1238
1239
  });
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Receiver,
3
3
  serve
4
- } from "./chunk-2V6WQVIN.mjs";
4
+ } from "./chunk-A3H5A6JL.mjs";
5
5
 
6
6
  // node_modules/defu/dist/defu.mjs
7
7
  function isPlainObject(value) {
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  BaseProvider
3
- } from "./chunk-2V6WQVIN.mjs";
3
+ } from "./chunk-A3H5A6JL.mjs";
4
4
 
5
5
  // src/client/api/email.ts
6
6
  var EmailProvider = class extends BaseProvider {
7
7
  apiKind = "email";
8
8
  batch;
9
+ method = "POST";
9
10
  constructor(baseUrl, token, owner, batch) {
10
11
  super(baseUrl, token, owner);
11
12
  this.batch = batch;
@@ -127,6 +127,10 @@ type ProviderInfo = {
127
127
  * provider owner
128
128
  */
129
129
  owner: Owner;
130
+ /**
131
+ * method to use in the request
132
+ */
133
+ method: HTTPMethods;
130
134
  };
131
135
  type ApiKind = "llm" | "email";
132
136
  type Owner = EmailOwner | LLMOwner;
@@ -153,6 +157,7 @@ type PublishLLMApi = PublishApi<"llm", BaseProvider<"llm", LLMOwner>> & LLMOptio
153
157
 
154
158
  declare abstract class BaseProvider<TName extends ApiKind, TOwner = Owner> {
155
159
  abstract readonly apiKind: TName;
160
+ abstract readonly method: HTTPMethods;
156
161
  readonly baseUrl: string;
157
162
  token: string;
158
163
  readonly owner: TOwner;
@@ -171,6 +176,7 @@ declare abstract class BaseProvider<TName extends ApiKind, TOwner = Owner> {
171
176
  declare class LLMProvider<TOwner extends LLMOwner> extends BaseProvider<"llm", LLMOwner> {
172
177
  readonly apiKind = "llm";
173
178
  readonly organization?: string;
179
+ readonly method = "POST";
174
180
  constructor(baseUrl: string, token: string, owner: TOwner, organization?: string);
175
181
  getRoute(): string[];
176
182
  getHeaders(options: LLMOptions): Record<string, string>;
@@ -127,6 +127,10 @@ type ProviderInfo = {
127
127
  * provider owner
128
128
  */
129
129
  owner: Owner;
130
+ /**
131
+ * method to use in the request
132
+ */
133
+ method: HTTPMethods;
130
134
  };
131
135
  type ApiKind = "llm" | "email";
132
136
  type Owner = EmailOwner | LLMOwner;
@@ -153,6 +157,7 @@ type PublishLLMApi = PublishApi<"llm", BaseProvider<"llm", LLMOwner>> & LLMOptio
153
157
 
154
158
  declare abstract class BaseProvider<TName extends ApiKind, TOwner = Owner> {
155
159
  abstract readonly apiKind: TName;
160
+ abstract readonly method: HTTPMethods;
156
161
  readonly baseUrl: string;
157
162
  token: string;
158
163
  readonly owner: TOwner;
@@ -171,6 +176,7 @@ declare abstract class BaseProvider<TName extends ApiKind, TOwner = Owner> {
171
176
  declare class LLMProvider<TOwner extends LLMOwner> extends BaseProvider<"llm", LLMOwner> {
172
177
  readonly apiKind = "llm";
173
178
  readonly organization?: string;
179
+ readonly method = "POST";
174
180
  constructor(baseUrl: string, token: string, owner: TOwner, organization?: string);
175
181
  getRoute(): string[];
176
182
  getHeaders(options: LLMOptions): Record<string, string>;
package/cloudflare.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
1
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
2
2
  import 'neverthrow';
3
3
 
4
4
  type WorkflowBindings = {
package/cloudflare.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
1
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
2
2
  import 'neverthrow';
3
3
 
4
4
  type WorkflowBindings = {
package/cloudflare.js CHANGED
@@ -600,6 +600,7 @@ var BaseProvider = class {
600
600
  var LLMProvider = class extends BaseProvider {
601
601
  apiKind = "llm";
602
602
  organization;
603
+ method = "POST";
603
604
  constructor(baseUrl, token, owner, organization) {
604
605
  super(baseUrl, token, owner);
605
606
  this.organization = organization;
@@ -660,15 +661,24 @@ var getProviderInfo = (api, upstashToken) => {
660
661
  baseUrl: finalProvider.baseUrl,
661
662
  route: finalProvider.getRoute(),
662
663
  appendHeaders: finalProvider.getHeaders(parameters),
663
- owner: finalProvider.owner
664
+ owner: finalProvider.owner,
665
+ method: finalProvider.method
664
666
  };
665
667
  return finalProvider.onFinish(providerInfo, parameters);
666
668
  };
667
- var processApi = (request, upstashToken) => {
669
+ var safeJoinHeaders = (headers, record) => {
670
+ const joinedHeaders = new Headers(record);
671
+ for (const [header, value] of headers.entries()) {
672
+ joinedHeaders.set(header, value);
673
+ }
674
+ return joinedHeaders;
675
+ };
676
+ var processApi = (request, headers, upstashToken) => {
668
677
  if (!request.api) {
678
+ request.headers = headers;
669
679
  return request;
670
680
  }
671
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
681
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
672
682
  if (request.api.name === "llm") {
673
683
  const callback = request.callback;
674
684
  if (!callback) {
@@ -676,21 +686,15 @@ var processApi = (request, upstashToken) => {
676
686
  }
677
687
  return {
678
688
  ...request,
679
- // @ts-expect-error undici header conflict
680
- headers: new Headers({
681
- ...request.headers,
682
- ...appendHeaders
683
- }),
689
+ method: request.method ?? method,
690
+ headers: safeJoinHeaders(headers, appendHeaders),
684
691
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
685
692
  };
686
693
  } else {
687
694
  return {
688
695
  ...request,
689
- // @ts-expect-error undici header conflict
690
- headers: new Headers({
691
- ...request.headers,
692
- ...appendHeaders
693
- }),
696
+ method: request.method ?? method,
697
+ headers: safeJoinHeaders(headers, appendHeaders),
694
698
  url,
695
699
  api: void 0
696
700
  };
@@ -900,9 +904,8 @@ var Queue = class {
900
904
  async enqueueJSON(request) {
901
905
  const headers = prefixHeaders(new Headers(request.headers));
902
906
  headers.set("Content-Type", "application/json");
903
- request.headers = headers;
904
907
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
905
- const nonApiRequest = processApi(request, upstashToken);
908
+ const nonApiRequest = processApi(request, headers, upstashToken);
906
909
  const response = await this.enqueue({
907
910
  ...nonApiRequest,
908
911
  body: JSON.stringify(nonApiRequest.body),
@@ -1207,9 +1210,8 @@ var Client = class {
1207
1210
  async publishJSON(request) {
1208
1211
  const headers = prefixHeaders(new Headers(request.headers));
1209
1212
  headers.set("Content-Type", "application/json");
1210
- request.headers = headers;
1211
1213
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1212
- const nonApiRequest = processApi(request, upstashToken);
1214
+ const nonApiRequest = processApi(request, headers, upstashToken);
1213
1215
  const response = await this.publish({
1214
1216
  ...nonApiRequest,
1215
1217
  body: JSON.stringify(nonApiRequest.body)
@@ -1250,9 +1252,8 @@ var Client = class {
1250
1252
  if ("body" in message) {
1251
1253
  message.body = JSON.stringify(message.body);
1252
1254
  }
1253
- message.headers = new Headers(message.headers);
1254
1255
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1255
- const nonApiMessage = processApi(message, upstashToken);
1256
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1256
1257
  nonApiMessage.headers.set("Content-Type", "application/json");
1257
1258
  return nonApiMessage;
1258
1259
  });
package/cloudflare.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serve
3
- } from "./chunk-2V6WQVIN.mjs";
3
+ } from "./chunk-A3H5A6JL.mjs";
4
4
 
5
5
  // platforms/cloudflare.ts
6
6
  var getArgs = (args) => {
package/h3.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as h3 from 'h3';
2
2
  import { H3Event } from 'h3';
3
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
3
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
4
4
  import 'neverthrow';
5
5
 
6
6
  type VerifySignatureConfig = {
package/h3.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as h3 from 'h3';
2
2
  import { H3Event } from 'h3';
3
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
3
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
4
4
  import 'neverthrow';
5
5
 
6
6
  type VerifySignatureConfig = {
package/h3.js CHANGED
@@ -924,6 +924,7 @@ var BaseProvider = class {
924
924
  var LLMProvider = class extends BaseProvider {
925
925
  apiKind = "llm";
926
926
  organization;
927
+ method = "POST";
927
928
  constructor(baseUrl, token, owner, organization) {
928
929
  super(baseUrl, token, owner);
929
930
  this.organization = organization;
@@ -984,15 +985,24 @@ var getProviderInfo = (api, upstashToken) => {
984
985
  baseUrl: finalProvider.baseUrl,
985
986
  route: finalProvider.getRoute(),
986
987
  appendHeaders: finalProvider.getHeaders(parameters),
987
- owner: finalProvider.owner
988
+ owner: finalProvider.owner,
989
+ method: finalProvider.method
988
990
  };
989
991
  return finalProvider.onFinish(providerInfo, parameters);
990
992
  };
991
- var processApi = (request, upstashToken) => {
993
+ var safeJoinHeaders = (headers, record) => {
994
+ const joinedHeaders = new Headers(record);
995
+ for (const [header, value] of headers.entries()) {
996
+ joinedHeaders.set(header, value);
997
+ }
998
+ return joinedHeaders;
999
+ };
1000
+ var processApi = (request, headers, upstashToken) => {
992
1001
  if (!request.api) {
1002
+ request.headers = headers;
993
1003
  return request;
994
1004
  }
995
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
1005
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
996
1006
  if (request.api.name === "llm") {
997
1007
  const callback = request.callback;
998
1008
  if (!callback) {
@@ -1000,21 +1010,15 @@ var processApi = (request, upstashToken) => {
1000
1010
  }
1001
1011
  return {
1002
1012
  ...request,
1003
- // @ts-expect-error undici header conflict
1004
- headers: new Headers({
1005
- ...request.headers,
1006
- ...appendHeaders
1007
- }),
1013
+ method: request.method ?? method,
1014
+ headers: safeJoinHeaders(headers, appendHeaders),
1008
1015
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
1009
1016
  };
1010
1017
  } else {
1011
1018
  return {
1012
1019
  ...request,
1013
- // @ts-expect-error undici header conflict
1014
- headers: new Headers({
1015
- ...request.headers,
1016
- ...appendHeaders
1017
- }),
1020
+ method: request.method ?? method,
1021
+ headers: safeJoinHeaders(headers, appendHeaders),
1018
1022
  url,
1019
1023
  api: void 0
1020
1024
  };
@@ -1224,9 +1228,8 @@ var Queue = class {
1224
1228
  async enqueueJSON(request) {
1225
1229
  const headers = prefixHeaders(new Headers(request.headers));
1226
1230
  headers.set("Content-Type", "application/json");
1227
- request.headers = headers;
1228
1231
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1229
- const nonApiRequest = processApi(request, upstashToken);
1232
+ const nonApiRequest = processApi(request, headers, upstashToken);
1230
1233
  const response = await this.enqueue({
1231
1234
  ...nonApiRequest,
1232
1235
  body: JSON.stringify(nonApiRequest.body),
@@ -2917,9 +2920,8 @@ var Client = class {
2917
2920
  async publishJSON(request) {
2918
2921
  const headers = prefixHeaders(new Headers(request.headers));
2919
2922
  headers.set("Content-Type", "application/json");
2920
- request.headers = headers;
2921
2923
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2922
- const nonApiRequest = processApi(request, upstashToken);
2924
+ const nonApiRequest = processApi(request, headers, upstashToken);
2923
2925
  const response = await this.publish({
2924
2926
  ...nonApiRequest,
2925
2927
  body: JSON.stringify(nonApiRequest.body)
@@ -2960,9 +2962,8 @@ var Client = class {
2960
2962
  if ("body" in message) {
2961
2963
  message.body = JSON.stringify(message.body);
2962
2964
  }
2963
- message.headers = new Headers(message.headers);
2964
2965
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2965
- const nonApiMessage = processApi(message, upstashToken);
2966
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
2966
2967
  nonApiMessage.headers.set("Content-Type", "application/json");
2967
2968
  return nonApiMessage;
2968
2969
  });
package/h3.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  serve,
3
3
  verifySignatureH3
4
- } from "./chunk-IJTMXF3U.mjs";
5
- import "./chunk-JR675EKS.mjs";
6
- import "./chunk-2V6WQVIN.mjs";
4
+ } from "./chunk-A5VKSI7H.mjs";
5
+ import "./chunk-K2ZUMNWA.mjs";
6
+ import "./chunk-A3H5A6JL.mjs";
7
7
  export {
8
8
  serve,
9
9
  verifySignatureH3
package/hono.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Context } from 'hono';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
3
3
  import 'neverthrow';
4
4
 
5
5
  type WorkflowBindings = {
package/hono.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Context } from 'hono';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
3
3
  import 'neverthrow';
4
4
 
5
5
  type WorkflowBindings = {
package/hono.js CHANGED
@@ -600,6 +600,7 @@ var BaseProvider = class {
600
600
  var LLMProvider = class extends BaseProvider {
601
601
  apiKind = "llm";
602
602
  organization;
603
+ method = "POST";
603
604
  constructor(baseUrl, token, owner, organization) {
604
605
  super(baseUrl, token, owner);
605
606
  this.organization = organization;
@@ -660,15 +661,24 @@ var getProviderInfo = (api, upstashToken) => {
660
661
  baseUrl: finalProvider.baseUrl,
661
662
  route: finalProvider.getRoute(),
662
663
  appendHeaders: finalProvider.getHeaders(parameters),
663
- owner: finalProvider.owner
664
+ owner: finalProvider.owner,
665
+ method: finalProvider.method
664
666
  };
665
667
  return finalProvider.onFinish(providerInfo, parameters);
666
668
  };
667
- var processApi = (request, upstashToken) => {
669
+ var safeJoinHeaders = (headers, record) => {
670
+ const joinedHeaders = new Headers(record);
671
+ for (const [header, value] of headers.entries()) {
672
+ joinedHeaders.set(header, value);
673
+ }
674
+ return joinedHeaders;
675
+ };
676
+ var processApi = (request, headers, upstashToken) => {
668
677
  if (!request.api) {
678
+ request.headers = headers;
669
679
  return request;
670
680
  }
671
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
681
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
672
682
  if (request.api.name === "llm") {
673
683
  const callback = request.callback;
674
684
  if (!callback) {
@@ -676,21 +686,15 @@ var processApi = (request, upstashToken) => {
676
686
  }
677
687
  return {
678
688
  ...request,
679
- // @ts-expect-error undici header conflict
680
- headers: new Headers({
681
- ...request.headers,
682
- ...appendHeaders
683
- }),
689
+ method: request.method ?? method,
690
+ headers: safeJoinHeaders(headers, appendHeaders),
684
691
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
685
692
  };
686
693
  } else {
687
694
  return {
688
695
  ...request,
689
- // @ts-expect-error undici header conflict
690
- headers: new Headers({
691
- ...request.headers,
692
- ...appendHeaders
693
- }),
696
+ method: request.method ?? method,
697
+ headers: safeJoinHeaders(headers, appendHeaders),
694
698
  url,
695
699
  api: void 0
696
700
  };
@@ -900,9 +904,8 @@ var Queue = class {
900
904
  async enqueueJSON(request) {
901
905
  const headers = prefixHeaders(new Headers(request.headers));
902
906
  headers.set("Content-Type", "application/json");
903
- request.headers = headers;
904
907
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
905
- const nonApiRequest = processApi(request, upstashToken);
908
+ const nonApiRequest = processApi(request, headers, upstashToken);
906
909
  const response = await this.enqueue({
907
910
  ...nonApiRequest,
908
911
  body: JSON.stringify(nonApiRequest.body),
@@ -1207,9 +1210,8 @@ var Client = class {
1207
1210
  async publishJSON(request) {
1208
1211
  const headers = prefixHeaders(new Headers(request.headers));
1209
1212
  headers.set("Content-Type", "application/json");
1210
- request.headers = headers;
1211
1213
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1212
- const nonApiRequest = processApi(request, upstashToken);
1214
+ const nonApiRequest = processApi(request, headers, upstashToken);
1213
1215
  const response = await this.publish({
1214
1216
  ...nonApiRequest,
1215
1217
  body: JSON.stringify(nonApiRequest.body)
@@ -1250,9 +1252,8 @@ var Client = class {
1250
1252
  if ("body" in message) {
1251
1253
  message.body = JSON.stringify(message.body);
1252
1254
  }
1253
- message.headers = new Headers(message.headers);
1254
1255
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1255
- const nonApiMessage = processApi(message, upstashToken);
1256
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1256
1257
  nonApiMessage.headers.set("Content-Type", "application/json");
1257
1258
  return nonApiMessage;
1258
1259
  });
package/hono.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serve
3
- } from "./chunk-2V6WQVIN.mjs";
3
+ } from "./chunk-A3H5A6JL.mjs";
4
4
 
5
5
  // platforms/hono.ts
6
6
  var serve2 = (routeFunction, options) => {
package/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as RateLimit, C as ChatRateLimit, S as Step, F as FailureFunctionPayload, L as LLMOwner, B as BaseProvider, E as EmailOwner, P as ProviderInfo } from './client-BY4y-4To.mjs';
2
- export { A as AddEndpointsRequest, y as BodyInit, I as Chat, K as ChatCompletion, N as ChatCompletionChunk, J as ChatCompletionMessage, _ as ChatRequest, h as Client, p as CreateScheduleRequest, r as Endpoint, v as Event, w as EventPayload, g as EventsRequest, x as GetEventsPayload, G as GetEventsResponse, H as HTTPMethods, z as HeadersInit, M as Message, m as MessagePayload, n as Messages, Y as OpenAIChatModel, Z as PromptChatRequest, d as PublishBatchRequest, f as PublishJsonRequest, e as PublishRequest, l as PublishResponse, i as PublishToApiResponse, k as PublishToUrlGroupsResponse, j as PublishToUrlResponse, Q as QueueRequest, c as Receiver, a as ReceiverConfig, s as RemoveEndpointsRequest, D as RequestOptions, o as Schedule, q as Schedules, b as SignatureError, u as State, T as StreamDisabled, O as StreamEnabled, X as StreamParameter, U as UrlGroup, t as UrlGroups, V as VerifyRequest, W as WithCursor, a1 as anthropic, a2 as custom, a0 as openai, $ as upstash } from './client-BY4y-4To.mjs';
1
+ import { R as RateLimit, C as ChatRateLimit, S as Step, F as FailureFunctionPayload, L as LLMOwner, B as BaseProvider, E as EmailOwner, P as ProviderInfo } from './client-B0bFJMw6.mjs';
2
+ export { A as AddEndpointsRequest, y as BodyInit, I as Chat, K as ChatCompletion, N as ChatCompletionChunk, J as ChatCompletionMessage, _ as ChatRequest, h as Client, p as CreateScheduleRequest, r as Endpoint, v as Event, w as EventPayload, g as EventsRequest, x as GetEventsPayload, G as GetEventsResponse, H as HTTPMethods, z as HeadersInit, M as Message, m as MessagePayload, n as Messages, Y as OpenAIChatModel, Z as PromptChatRequest, d as PublishBatchRequest, f as PublishJsonRequest, e as PublishRequest, l as PublishResponse, i as PublishToApiResponse, k as PublishToUrlGroupsResponse, j as PublishToUrlResponse, Q as QueueRequest, c as Receiver, a as ReceiverConfig, s as RemoveEndpointsRequest, D as RequestOptions, o as Schedule, q as Schedules, b as SignatureError, u as State, T as StreamDisabled, O as StreamEnabled, X as StreamParameter, U as UrlGroup, t as UrlGroups, V as VerifyRequest, W as WithCursor, a1 as anthropic, a2 as custom, a0 as openai, $ as upstash } from './client-B0bFJMw6.mjs';
3
3
  import 'neverthrow';
4
4
 
5
5
  /**
@@ -78,6 +78,7 @@ declare const setupAnalytics: (analytics: AnalyticsConfig | undefined, providerA
78
78
  declare class EmailProvider extends BaseProvider<"email", EmailOwner> {
79
79
  readonly apiKind = "email";
80
80
  readonly batch: boolean;
81
+ readonly method = "POST";
81
82
  constructor(baseUrl: string, token: string, owner: EmailOwner, batch: boolean);
82
83
  getRoute(): string[];
83
84
  getHeaders(_options: unknown): Record<string, string>;
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as RateLimit, C as ChatRateLimit, S as Step, F as FailureFunctionPayload, L as LLMOwner, B as BaseProvider, E as EmailOwner, P as ProviderInfo } from './client-BY4y-4To.js';
2
- export { A as AddEndpointsRequest, y as BodyInit, I as Chat, K as ChatCompletion, N as ChatCompletionChunk, J as ChatCompletionMessage, _ as ChatRequest, h as Client, p as CreateScheduleRequest, r as Endpoint, v as Event, w as EventPayload, g as EventsRequest, x as GetEventsPayload, G as GetEventsResponse, H as HTTPMethods, z as HeadersInit, M as Message, m as MessagePayload, n as Messages, Y as OpenAIChatModel, Z as PromptChatRequest, d as PublishBatchRequest, f as PublishJsonRequest, e as PublishRequest, l as PublishResponse, i as PublishToApiResponse, k as PublishToUrlGroupsResponse, j as PublishToUrlResponse, Q as QueueRequest, c as Receiver, a as ReceiverConfig, s as RemoveEndpointsRequest, D as RequestOptions, o as Schedule, q as Schedules, b as SignatureError, u as State, T as StreamDisabled, O as StreamEnabled, X as StreamParameter, U as UrlGroup, t as UrlGroups, V as VerifyRequest, W as WithCursor, a1 as anthropic, a2 as custom, a0 as openai, $ as upstash } from './client-BY4y-4To.js';
1
+ import { R as RateLimit, C as ChatRateLimit, S as Step, F as FailureFunctionPayload, L as LLMOwner, B as BaseProvider, E as EmailOwner, P as ProviderInfo } from './client-B0bFJMw6.js';
2
+ export { A as AddEndpointsRequest, y as BodyInit, I as Chat, K as ChatCompletion, N as ChatCompletionChunk, J as ChatCompletionMessage, _ as ChatRequest, h as Client, p as CreateScheduleRequest, r as Endpoint, v as Event, w as EventPayload, g as EventsRequest, x as GetEventsPayload, G as GetEventsResponse, H as HTTPMethods, z as HeadersInit, M as Message, m as MessagePayload, n as Messages, Y as OpenAIChatModel, Z as PromptChatRequest, d as PublishBatchRequest, f as PublishJsonRequest, e as PublishRequest, l as PublishResponse, i as PublishToApiResponse, k as PublishToUrlGroupsResponse, j as PublishToUrlResponse, Q as QueueRequest, c as Receiver, a as ReceiverConfig, s as RemoveEndpointsRequest, D as RequestOptions, o as Schedule, q as Schedules, b as SignatureError, u as State, T as StreamDisabled, O as StreamEnabled, X as StreamParameter, U as UrlGroup, t as UrlGroups, V as VerifyRequest, W as WithCursor, a1 as anthropic, a2 as custom, a0 as openai, $ as upstash } from './client-B0bFJMw6.js';
3
3
  import 'neverthrow';
4
4
 
5
5
  /**
@@ -78,6 +78,7 @@ declare const setupAnalytics: (analytics: AnalyticsConfig | undefined, providerA
78
78
  declare class EmailProvider extends BaseProvider<"email", EmailOwner> {
79
79
  readonly apiKind = "email";
80
80
  readonly batch: boolean;
81
+ readonly method = "POST";
81
82
  constructor(baseUrl: string, token: string, owner: EmailOwner, batch: boolean);
82
83
  getRoute(): string[];
83
84
  getHeaders(_options: unknown): Record<string, string>;
package/index.js CHANGED
@@ -620,6 +620,7 @@ var BaseProvider = class {
620
620
  var LLMProvider = class extends BaseProvider {
621
621
  apiKind = "llm";
622
622
  organization;
623
+ method = "POST";
623
624
  constructor(baseUrl, token, owner, organization) {
624
625
  super(baseUrl, token, owner);
625
626
  this.organization = organization;
@@ -696,15 +697,24 @@ var getProviderInfo = (api, upstashToken) => {
696
697
  baseUrl: finalProvider.baseUrl,
697
698
  route: finalProvider.getRoute(),
698
699
  appendHeaders: finalProvider.getHeaders(parameters),
699
- owner: finalProvider.owner
700
+ owner: finalProvider.owner,
701
+ method: finalProvider.method
700
702
  };
701
703
  return finalProvider.onFinish(providerInfo, parameters);
702
704
  };
703
- var processApi = (request, upstashToken) => {
705
+ var safeJoinHeaders = (headers, record) => {
706
+ const joinedHeaders = new Headers(record);
707
+ for (const [header, value] of headers.entries()) {
708
+ joinedHeaders.set(header, value);
709
+ }
710
+ return joinedHeaders;
711
+ };
712
+ var processApi = (request, headers, upstashToken) => {
704
713
  if (!request.api) {
714
+ request.headers = headers;
705
715
  return request;
706
716
  }
707
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
717
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
708
718
  if (request.api.name === "llm") {
709
719
  const callback = request.callback;
710
720
  if (!callback) {
@@ -712,21 +722,15 @@ var processApi = (request, upstashToken) => {
712
722
  }
713
723
  return {
714
724
  ...request,
715
- // @ts-expect-error undici header conflict
716
- headers: new Headers({
717
- ...request.headers,
718
- ...appendHeaders
719
- }),
725
+ method: request.method ?? method,
726
+ headers: safeJoinHeaders(headers, appendHeaders),
720
727
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
721
728
  };
722
729
  } else {
723
730
  return {
724
731
  ...request,
725
- // @ts-expect-error undici header conflict
726
- headers: new Headers({
727
- ...request.headers,
728
- ...appendHeaders
729
- }),
732
+ method: request.method ?? method,
733
+ headers: safeJoinHeaders(headers, appendHeaders),
730
734
  url,
731
735
  api: void 0
732
736
  };
@@ -931,9 +935,8 @@ var Queue = class {
931
935
  async enqueueJSON(request) {
932
936
  const headers = prefixHeaders(new Headers(request.headers));
933
937
  headers.set("Content-Type", "application/json");
934
- request.headers = headers;
935
938
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
936
- const nonApiRequest = processApi(request, upstashToken);
939
+ const nonApiRequest = processApi(request, headers, upstashToken);
937
940
  const response = await this.enqueue({
938
941
  ...nonApiRequest,
939
942
  body: JSON.stringify(nonApiRequest.body),
@@ -1269,9 +1272,8 @@ var Client = class {
1269
1272
  async publishJSON(request) {
1270
1273
  const headers = prefixHeaders(new Headers(request.headers));
1271
1274
  headers.set("Content-Type", "application/json");
1272
- request.headers = headers;
1273
1275
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1274
- const nonApiRequest = processApi(request, upstashToken);
1276
+ const nonApiRequest = processApi(request, headers, upstashToken);
1275
1277
  const response = await this.publish({
1276
1278
  ...nonApiRequest,
1277
1279
  body: JSON.stringify(nonApiRequest.body)
@@ -1312,9 +1314,8 @@ var Client = class {
1312
1314
  if ("body" in message) {
1313
1315
  message.body = JSON.stringify(message.body);
1314
1316
  }
1315
- message.headers = new Headers(message.headers);
1316
1317
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1317
- const nonApiMessage = processApi(message, upstashToken);
1318
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1318
1319
  nonApiMessage.headers.set("Content-Type", "application/json");
1319
1320
  return nonApiMessage;
1320
1321
  });
@@ -1378,6 +1379,7 @@ var Client = class {
1378
1379
  var EmailProvider = class extends BaseProvider {
1379
1380
  apiKind = "email";
1380
1381
  batch;
1382
+ method = "POST";
1381
1383
  constructor(baseUrl, token, owner, batch) {
1382
1384
  super(baseUrl, token, owner);
1383
1385
  this.batch = batch;
package/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resend
3
- } from "./chunk-JR675EKS.mjs";
3
+ } from "./chunk-K2ZUMNWA.mjs";
4
4
  import {
5
5
  Chat,
6
6
  Client,
@@ -22,7 +22,7 @@ import {
22
22
  openai,
23
23
  setupAnalytics,
24
24
  upstash
25
- } from "./chunk-2V6WQVIN.mjs";
25
+ } from "./chunk-A3H5A6JL.mjs";
26
26
  export {
27
27
  Chat,
28
28
  Client,
package/nextjs.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { NextApiHandler } from 'next';
2
2
  import { NextRequest, NextFetchEvent } from 'next/server';
3
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
3
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
4
4
  import 'neverthrow';
5
5
 
6
6
  type VerifySignatureConfig = {
package/nextjs.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { NextApiHandler } from 'next';
2
2
  import { NextRequest, NextFetchEvent } from 'next/server';
3
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
3
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
4
4
  import 'neverthrow';
5
5
 
6
6
  type VerifySignatureConfig = {
package/nextjs.js CHANGED
@@ -604,6 +604,7 @@ var BaseProvider = class {
604
604
  var LLMProvider = class extends BaseProvider {
605
605
  apiKind = "llm";
606
606
  organization;
607
+ method = "POST";
607
608
  constructor(baseUrl, token, owner, organization) {
608
609
  super(baseUrl, token, owner);
609
610
  this.organization = organization;
@@ -664,15 +665,24 @@ var getProviderInfo = (api, upstashToken) => {
664
665
  baseUrl: finalProvider.baseUrl,
665
666
  route: finalProvider.getRoute(),
666
667
  appendHeaders: finalProvider.getHeaders(parameters),
667
- owner: finalProvider.owner
668
+ owner: finalProvider.owner,
669
+ method: finalProvider.method
668
670
  };
669
671
  return finalProvider.onFinish(providerInfo, parameters);
670
672
  };
671
- var processApi = (request, upstashToken) => {
673
+ var safeJoinHeaders = (headers, record) => {
674
+ const joinedHeaders = new Headers(record);
675
+ for (const [header, value] of headers.entries()) {
676
+ joinedHeaders.set(header, value);
677
+ }
678
+ return joinedHeaders;
679
+ };
680
+ var processApi = (request, headers, upstashToken) => {
672
681
  if (!request.api) {
682
+ request.headers = headers;
673
683
  return request;
674
684
  }
675
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
685
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
676
686
  if (request.api.name === "llm") {
677
687
  const callback = request.callback;
678
688
  if (!callback) {
@@ -680,21 +690,15 @@ var processApi = (request, upstashToken) => {
680
690
  }
681
691
  return {
682
692
  ...request,
683
- // @ts-expect-error undici header conflict
684
- headers: new Headers({
685
- ...request.headers,
686
- ...appendHeaders
687
- }),
693
+ method: request.method ?? method,
694
+ headers: safeJoinHeaders(headers, appendHeaders),
688
695
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
689
696
  };
690
697
  } else {
691
698
  return {
692
699
  ...request,
693
- // @ts-expect-error undici header conflict
694
- headers: new Headers({
695
- ...request.headers,
696
- ...appendHeaders
697
- }),
700
+ method: request.method ?? method,
701
+ headers: safeJoinHeaders(headers, appendHeaders),
698
702
  url,
699
703
  api: void 0
700
704
  };
@@ -904,9 +908,8 @@ var Queue = class {
904
908
  async enqueueJSON(request) {
905
909
  const headers = prefixHeaders(new Headers(request.headers));
906
910
  headers.set("Content-Type", "application/json");
907
- request.headers = headers;
908
911
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
909
- const nonApiRequest = processApi(request, upstashToken);
912
+ const nonApiRequest = processApi(request, headers, upstashToken);
910
913
  const response = await this.enqueue({
911
914
  ...nonApiRequest,
912
915
  body: JSON.stringify(nonApiRequest.body),
@@ -1211,9 +1214,8 @@ var Client = class {
1211
1214
  async publishJSON(request) {
1212
1215
  const headers = prefixHeaders(new Headers(request.headers));
1213
1216
  headers.set("Content-Type", "application/json");
1214
- request.headers = headers;
1215
1217
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1216
- const nonApiRequest = processApi(request, upstashToken);
1218
+ const nonApiRequest = processApi(request, headers, upstashToken);
1217
1219
  const response = await this.publish({
1218
1220
  ...nonApiRequest,
1219
1221
  body: JSON.stringify(nonApiRequest.body)
@@ -1254,9 +1256,8 @@ var Client = class {
1254
1256
  if ("body" in message) {
1255
1257
  message.body = JSON.stringify(message.body);
1256
1258
  }
1257
- message.headers = new Headers(message.headers);
1258
1259
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1259
- const nonApiMessage = processApi(message, upstashToken);
1260
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1260
1261
  nonApiMessage.headers.set("Content-Type", "application/json");
1261
1262
  return nonApiMessage;
1262
1263
  });
package/nextjs.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Receiver,
3
3
  serve
4
- } from "./chunk-2V6WQVIN.mjs";
4
+ } from "./chunk-A3H5A6JL.mjs";
5
5
 
6
6
  // platforms/nextjs.ts
7
7
  var BAD_REQUEST = 400;
package/nuxt.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  verifySignatureH3
3
- } from "./chunk-IJTMXF3U.mjs";
4
- import "./chunk-JR675EKS.mjs";
5
- import "./chunk-2V6WQVIN.mjs";
3
+ } from "./chunk-A5VKSI7H.mjs";
4
+ import "./chunk-K2ZUMNWA.mjs";
5
+ import "./chunk-A3H5A6JL.mjs";
6
6
 
7
7
  // platforms/nuxt.ts
8
8
  var verifySignatureNuxt = verifySignatureH3;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"version":"v2.7.17","name":"@upstash/qstash","description":"Official Typescript client for QStash","author":"Andreas Thomas <dev@chronark.com>","license":"MIT","homepage":"https://github.com/upstash/sdk-qstash-ts#readme","repository":{"type":"git","url":"git+https://github.com/upstash/sdk-qstash-ts.git"},"bugs":{"url":"https://github.com/upstash/sdk-qstash-ts/issues"},"main":"./index.js","module":"./index.mjs","types":"./index.d.ts","files":["./*"],"exports":{".":{"import":"./index.mjs","require":"./index.js"},"./dist/nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./h3":{"import":"./h3.mjs","require":"./h3.js"},"./nuxt":{"import":"./nuxt.mjs","require":"./nuxt.js"},"./svelte":{"import":"./svelte.mjs","require":"./svelte.js"},"./solidjs":{"import":"./solidjs.mjs","require":"./solidjs.js"},"./workflow":{"import":"./workflow.mjs","require":"./workflow.js"},"./hono":{"import":"./hono.mjs","require":"./hono.js"},"./cloudflare":{"import":"./cloudflare.mjs","require":"./cloudflare.js"}},"keywords":["qstash","queue","events","serverless","upstash"],"scripts":{"build":"tsup && cp README.md ./dist/ && cp package.json ./dist/ && cp LICENSE ./dist/","test":"bun test src","fmt":"prettier --write .","lint":"tsc && eslint \"{src,platforms}/**/*.{js,ts,tsx}\" --quiet --fix","check-exports":"bun run build && cd dist && attw -P"},"devDependencies":{"@commitlint/cli":"^19.2.2","@commitlint/config-conventional":"^19.2.2","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.10.0","@solidjs/start":"^1.0.6","@sveltejs/kit":"^2.5.18","@types/bun":"^1.1.1","@types/crypto-js":"^4.2.0","@typescript-eslint/eslint-plugin":"^8.4.0","@typescript-eslint/parser":"^8.4.0","ai":"^3.1.28","bun-types":"^1.1.7","eslint":"^9.10.0","eslint-plugin-unicorn":"^51.0.1","h3":"^1.12.0","hono":"^4.5.8","husky":"^9.0.10","next":"^14.0.2","prettier":"^3.2.5","tsup":"latest","typescript":"^5.4.5","undici-types":"^6.16.0","vitest":"latest"},"dependencies":{"crypto-js":">=4.2.0","jose":"^5.2.3","neverthrow":"^7.0.1"}}
1
+ {"version":"v2.7.18","name":"@upstash/qstash","description":"Official Typescript client for QStash","author":"Andreas Thomas <dev@chronark.com>","license":"MIT","homepage":"https://github.com/upstash/sdk-qstash-ts#readme","repository":{"type":"git","url":"git+https://github.com/upstash/sdk-qstash-ts.git"},"bugs":{"url":"https://github.com/upstash/sdk-qstash-ts/issues"},"main":"./index.js","module":"./index.mjs","types":"./index.d.ts","files":["./*"],"exports":{".":{"import":"./index.mjs","require":"./index.js"},"./dist/nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./nextjs":{"import":"./nextjs.mjs","require":"./nextjs.js"},"./h3":{"import":"./h3.mjs","require":"./h3.js"},"./nuxt":{"import":"./nuxt.mjs","require":"./nuxt.js"},"./svelte":{"import":"./svelte.mjs","require":"./svelte.js"},"./solidjs":{"import":"./solidjs.mjs","require":"./solidjs.js"},"./workflow":{"import":"./workflow.mjs","require":"./workflow.js"},"./hono":{"import":"./hono.mjs","require":"./hono.js"},"./cloudflare":{"import":"./cloudflare.mjs","require":"./cloudflare.js"}},"keywords":["qstash","queue","events","serverless","upstash"],"scripts":{"build":"tsup && cp README.md ./dist/ && cp package.json ./dist/ && cp LICENSE ./dist/","test":"bun test src","fmt":"prettier --write .","lint":"tsc && eslint \"{src,platforms}/**/*.{js,ts,tsx}\" --quiet --fix","check-exports":"bun run build && cd dist && attw -P"},"devDependencies":{"@commitlint/cli":"^19.2.2","@commitlint/config-conventional":"^19.2.2","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.10.0","@solidjs/start":"^1.0.6","@sveltejs/kit":"^2.5.18","@types/bun":"^1.1.1","@types/crypto-js":"^4.2.0","@typescript-eslint/eslint-plugin":"^8.4.0","@typescript-eslint/parser":"^8.4.0","ai":"^3.1.28","bun-types":"^1.1.7","eslint":"^9.10.0","eslint-plugin-unicorn":"^51.0.1","h3":"^1.12.0","hono":"^4.5.8","husky":"^9.0.10","next":"^14.0.2","prettier":"^3.2.5","tsup":"latest","typescript":"^5.4.5","undici-types":"^6.16.0","vitest":"latest"},"dependencies":{"crypto-js":">=4.2.0","jose":"^5.2.3","neverthrow":"^7.0.1"}}
package/solidjs.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { APIHandler, APIEvent } from '@solidjs/start/server';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
3
3
  import 'neverthrow';
4
4
 
5
5
  type VerifySignatureConfig = {
package/solidjs.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { APIHandler, APIEvent } from '@solidjs/start/server';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
3
3
  import 'neverthrow';
4
4
 
5
5
  type VerifySignatureConfig = {
package/solidjs.js CHANGED
@@ -601,6 +601,7 @@ var BaseProvider = class {
601
601
  var LLMProvider = class extends BaseProvider {
602
602
  apiKind = "llm";
603
603
  organization;
604
+ method = "POST";
604
605
  constructor(baseUrl, token, owner, organization) {
605
606
  super(baseUrl, token, owner);
606
607
  this.organization = organization;
@@ -661,15 +662,24 @@ var getProviderInfo = (api, upstashToken) => {
661
662
  baseUrl: finalProvider.baseUrl,
662
663
  route: finalProvider.getRoute(),
663
664
  appendHeaders: finalProvider.getHeaders(parameters),
664
- owner: finalProvider.owner
665
+ owner: finalProvider.owner,
666
+ method: finalProvider.method
665
667
  };
666
668
  return finalProvider.onFinish(providerInfo, parameters);
667
669
  };
668
- var processApi = (request, upstashToken) => {
670
+ var safeJoinHeaders = (headers, record) => {
671
+ const joinedHeaders = new Headers(record);
672
+ for (const [header, value] of headers.entries()) {
673
+ joinedHeaders.set(header, value);
674
+ }
675
+ return joinedHeaders;
676
+ };
677
+ var processApi = (request, headers, upstashToken) => {
669
678
  if (!request.api) {
679
+ request.headers = headers;
670
680
  return request;
671
681
  }
672
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
682
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
673
683
  if (request.api.name === "llm") {
674
684
  const callback = request.callback;
675
685
  if (!callback) {
@@ -677,21 +687,15 @@ var processApi = (request, upstashToken) => {
677
687
  }
678
688
  return {
679
689
  ...request,
680
- // @ts-expect-error undici header conflict
681
- headers: new Headers({
682
- ...request.headers,
683
- ...appendHeaders
684
- }),
690
+ method: request.method ?? method,
691
+ headers: safeJoinHeaders(headers, appendHeaders),
685
692
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
686
693
  };
687
694
  } else {
688
695
  return {
689
696
  ...request,
690
- // @ts-expect-error undici header conflict
691
- headers: new Headers({
692
- ...request.headers,
693
- ...appendHeaders
694
- }),
697
+ method: request.method ?? method,
698
+ headers: safeJoinHeaders(headers, appendHeaders),
695
699
  url,
696
700
  api: void 0
697
701
  };
@@ -901,9 +905,8 @@ var Queue = class {
901
905
  async enqueueJSON(request) {
902
906
  const headers = prefixHeaders(new Headers(request.headers));
903
907
  headers.set("Content-Type", "application/json");
904
- request.headers = headers;
905
908
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
906
- const nonApiRequest = processApi(request, upstashToken);
909
+ const nonApiRequest = processApi(request, headers, upstashToken);
907
910
  const response = await this.enqueue({
908
911
  ...nonApiRequest,
909
912
  body: JSON.stringify(nonApiRequest.body),
@@ -2594,9 +2597,8 @@ var Client = class {
2594
2597
  async publishJSON(request) {
2595
2598
  const headers = prefixHeaders(new Headers(request.headers));
2596
2599
  headers.set("Content-Type", "application/json");
2597
- request.headers = headers;
2598
2600
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2599
- const nonApiRequest = processApi(request, upstashToken);
2601
+ const nonApiRequest = processApi(request, headers, upstashToken);
2600
2602
  const response = await this.publish({
2601
2603
  ...nonApiRequest,
2602
2604
  body: JSON.stringify(nonApiRequest.body)
@@ -2637,9 +2639,8 @@ var Client = class {
2637
2639
  if ("body" in message) {
2638
2640
  message.body = JSON.stringify(message.body);
2639
2641
  }
2640
- message.headers = new Headers(message.headers);
2641
2642
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2642
- const nonApiMessage = processApi(message, upstashToken);
2643
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
2643
2644
  nonApiMessage.headers.set("Content-Type", "application/json");
2644
2645
  return nonApiMessage;
2645
2646
  });
package/solidjs.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import "./chunk-JR675EKS.mjs";
1
+ import "./chunk-K2ZUMNWA.mjs";
2
2
  import {
3
3
  Receiver,
4
4
  serve
5
- } from "./chunk-2V6WQVIN.mjs";
5
+ } from "./chunk-A3H5A6JL.mjs";
6
6
 
7
7
  // platforms/solidjs.ts
8
8
  var verifySignatureSolidjs = (handler, config) => {
package/svelte.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler } from '@sveltejs/kit';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.mjs';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.mjs';
3
3
  import 'neverthrow';
4
4
 
5
5
  type VerifySignatureConfig = {
package/svelte.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler } from '@sveltejs/kit';
2
- import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-BY4y-4To.js';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-B0bFJMw6.js';
3
3
  import 'neverthrow';
4
4
 
5
5
  type VerifySignatureConfig = {
package/svelte.js CHANGED
@@ -601,6 +601,7 @@ var BaseProvider = class {
601
601
  var LLMProvider = class extends BaseProvider {
602
602
  apiKind = "llm";
603
603
  organization;
604
+ method = "POST";
604
605
  constructor(baseUrl, token, owner, organization) {
605
606
  super(baseUrl, token, owner);
606
607
  this.organization = organization;
@@ -661,15 +662,24 @@ var getProviderInfo = (api, upstashToken) => {
661
662
  baseUrl: finalProvider.baseUrl,
662
663
  route: finalProvider.getRoute(),
663
664
  appendHeaders: finalProvider.getHeaders(parameters),
664
- owner: finalProvider.owner
665
+ owner: finalProvider.owner,
666
+ method: finalProvider.method
665
667
  };
666
668
  return finalProvider.onFinish(providerInfo, parameters);
667
669
  };
668
- var processApi = (request, upstashToken) => {
670
+ var safeJoinHeaders = (headers, record) => {
671
+ const joinedHeaders = new Headers(record);
672
+ for (const [header, value] of headers.entries()) {
673
+ joinedHeaders.set(header, value);
674
+ }
675
+ return joinedHeaders;
676
+ };
677
+ var processApi = (request, headers, upstashToken) => {
669
678
  if (!request.api) {
679
+ request.headers = headers;
670
680
  return request;
671
681
  }
672
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
682
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
673
683
  if (request.api.name === "llm") {
674
684
  const callback = request.callback;
675
685
  if (!callback) {
@@ -677,21 +687,15 @@ var processApi = (request, upstashToken) => {
677
687
  }
678
688
  return {
679
689
  ...request,
680
- // @ts-expect-error undici header conflict
681
- headers: new Headers({
682
- ...request.headers,
683
- ...appendHeaders
684
- }),
690
+ method: request.method ?? method,
691
+ headers: safeJoinHeaders(headers, appendHeaders),
685
692
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
686
693
  };
687
694
  } else {
688
695
  return {
689
696
  ...request,
690
- // @ts-expect-error undici header conflict
691
- headers: new Headers({
692
- ...request.headers,
693
- ...appendHeaders
694
- }),
697
+ method: request.method ?? method,
698
+ headers: safeJoinHeaders(headers, appendHeaders),
695
699
  url,
696
700
  api: void 0
697
701
  };
@@ -901,9 +905,8 @@ var Queue = class {
901
905
  async enqueueJSON(request) {
902
906
  const headers = prefixHeaders(new Headers(request.headers));
903
907
  headers.set("Content-Type", "application/json");
904
- request.headers = headers;
905
908
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
906
- const nonApiRequest = processApi(request, upstashToken);
909
+ const nonApiRequest = processApi(request, headers, upstashToken);
907
910
  const response = await this.enqueue({
908
911
  ...nonApiRequest,
909
912
  body: JSON.stringify(nonApiRequest.body),
@@ -2594,9 +2597,8 @@ var Client = class {
2594
2597
  async publishJSON(request) {
2595
2598
  const headers = prefixHeaders(new Headers(request.headers));
2596
2599
  headers.set("Content-Type", "application/json");
2597
- request.headers = headers;
2598
2600
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2599
- const nonApiRequest = processApi(request, upstashToken);
2601
+ const nonApiRequest = processApi(request, headers, upstashToken);
2600
2602
  const response = await this.publish({
2601
2603
  ...nonApiRequest,
2602
2604
  body: JSON.stringify(nonApiRequest.body)
@@ -2637,9 +2639,8 @@ var Client = class {
2637
2639
  if ("body" in message) {
2638
2640
  message.body = JSON.stringify(message.body);
2639
2641
  }
2640
- message.headers = new Headers(message.headers);
2641
2642
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
2642
- const nonApiMessage = processApi(message, upstashToken);
2643
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
2643
2644
  nonApiMessage.headers.set("Content-Type", "application/json");
2644
2645
  return nonApiMessage;
2645
2646
  });
package/svelte.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import "./chunk-JR675EKS.mjs";
1
+ import "./chunk-K2ZUMNWA.mjs";
2
2
  import {
3
3
  Receiver,
4
4
  serve
5
- } from "./chunk-2V6WQVIN.mjs";
5
+ } from "./chunk-A3H5A6JL.mjs";
6
6
 
7
7
  // platforms/svelte.ts
8
8
  var verifySignatureSvelte = (handler, config) => {
package/workflow.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export { ag as AsyncStepFunction, a9 as DisabledWorkflowContext, F as FailureFunctionPayload, aj as FinishCondition, al as LogLevel, ai as ParallelCallState, ae as RawStep, ak as RequiredExceptFields, a3 as RouteFunction, S as Step, ah as StepFunction, ad as StepType, ac as StepTypes, af as SyncStepFunction, a5 as Workflow, aa as WorkflowClient, a8 as WorkflowContext, an as WorkflowLogger, am as WorkflowLoggerOptions, ab as WorkflowReceiver, a4 as WorkflowServeOptions, a6 as processOptions, a7 as serve } from './client-BY4y-4To.mjs';
1
+ export { ag as AsyncStepFunction, a9 as DisabledWorkflowContext, F as FailureFunctionPayload, aj as FinishCondition, al as LogLevel, ai as ParallelCallState, ae as RawStep, ak as RequiredExceptFields, a3 as RouteFunction, S as Step, ah as StepFunction, ad as StepType, ac as StepTypes, af as SyncStepFunction, a5 as Workflow, aa as WorkflowClient, a8 as WorkflowContext, an as WorkflowLogger, am as WorkflowLoggerOptions, ab as WorkflowReceiver, a4 as WorkflowServeOptions, a6 as processOptions, a7 as serve } from './client-B0bFJMw6.mjs';
2
2
  import 'neverthrow';
package/workflow.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { ag as AsyncStepFunction, a9 as DisabledWorkflowContext, F as FailureFunctionPayload, aj as FinishCondition, al as LogLevel, ai as ParallelCallState, ae as RawStep, ak as RequiredExceptFields, a3 as RouteFunction, S as Step, ah as StepFunction, ad as StepType, ac as StepTypes, af as SyncStepFunction, a5 as Workflow, aa as WorkflowClient, a8 as WorkflowContext, an as WorkflowLogger, am as WorkflowLoggerOptions, ab as WorkflowReceiver, a4 as WorkflowServeOptions, a6 as processOptions, a7 as serve } from './client-BY4y-4To.js';
1
+ export { ag as AsyncStepFunction, a9 as DisabledWorkflowContext, F as FailureFunctionPayload, aj as FinishCondition, al as LogLevel, ai as ParallelCallState, ae as RawStep, ak as RequiredExceptFields, a3 as RouteFunction, S as Step, ah as StepFunction, ad as StepType, ac as StepTypes, af as SyncStepFunction, a5 as Workflow, aa as WorkflowClient, a8 as WorkflowContext, an as WorkflowLogger, am as WorkflowLoggerOptions, ab as WorkflowReceiver, a4 as WorkflowServeOptions, a6 as processOptions, a7 as serve } from './client-B0bFJMw6.js';
2
2
  import 'neverthrow';
package/workflow.js CHANGED
@@ -606,6 +606,7 @@ var BaseProvider = class {
606
606
  var LLMProvider = class extends BaseProvider {
607
607
  apiKind = "llm";
608
608
  organization;
609
+ method = "POST";
609
610
  constructor(baseUrl, token, owner, organization) {
610
611
  super(baseUrl, token, owner);
611
612
  this.organization = organization;
@@ -666,15 +667,24 @@ var getProviderInfo = (api, upstashToken) => {
666
667
  baseUrl: finalProvider.baseUrl,
667
668
  route: finalProvider.getRoute(),
668
669
  appendHeaders: finalProvider.getHeaders(parameters),
669
- owner: finalProvider.owner
670
+ owner: finalProvider.owner,
671
+ method: finalProvider.method
670
672
  };
671
673
  return finalProvider.onFinish(providerInfo, parameters);
672
674
  };
673
- var processApi = (request, upstashToken) => {
675
+ var safeJoinHeaders = (headers, record) => {
676
+ const joinedHeaders = new Headers(record);
677
+ for (const [header, value] of headers.entries()) {
678
+ joinedHeaders.set(header, value);
679
+ }
680
+ return joinedHeaders;
681
+ };
682
+ var processApi = (request, headers, upstashToken) => {
674
683
  if (!request.api) {
684
+ request.headers = headers;
675
685
  return request;
676
686
  }
677
- const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
687
+ const { url, appendHeaders, owner, method } = getProviderInfo(request.api, upstashToken);
678
688
  if (request.api.name === "llm") {
679
689
  const callback = request.callback;
680
690
  if (!callback) {
@@ -682,21 +692,15 @@ var processApi = (request, upstashToken) => {
682
692
  }
683
693
  return {
684
694
  ...request,
685
- // @ts-expect-error undici header conflict
686
- headers: new Headers({
687
- ...request.headers,
688
- ...appendHeaders
689
- }),
695
+ method: request.method ?? method,
696
+ headers: safeJoinHeaders(headers, appendHeaders),
690
697
  ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
691
698
  };
692
699
  } else {
693
700
  return {
694
701
  ...request,
695
- // @ts-expect-error undici header conflict
696
- headers: new Headers({
697
- ...request.headers,
698
- ...appendHeaders
699
- }),
702
+ method: request.method ?? method,
703
+ headers: safeJoinHeaders(headers, appendHeaders),
700
704
  url,
701
705
  api: void 0
702
706
  };
@@ -906,9 +910,8 @@ var Queue = class {
906
910
  async enqueueJSON(request) {
907
911
  const headers = prefixHeaders(new Headers(request.headers));
908
912
  headers.set("Content-Type", "application/json");
909
- request.headers = headers;
910
913
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
911
- const nonApiRequest = processApi(request, upstashToken);
914
+ const nonApiRequest = processApi(request, headers, upstashToken);
912
915
  const response = await this.enqueue({
913
916
  ...nonApiRequest,
914
917
  body: JSON.stringify(nonApiRequest.body),
@@ -1213,9 +1216,8 @@ var Client = class {
1213
1216
  async publishJSON(request) {
1214
1217
  const headers = prefixHeaders(new Headers(request.headers));
1215
1218
  headers.set("Content-Type", "application/json");
1216
- request.headers = headers;
1217
1219
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1218
- const nonApiRequest = processApi(request, upstashToken);
1220
+ const nonApiRequest = processApi(request, headers, upstashToken);
1219
1221
  const response = await this.publish({
1220
1222
  ...nonApiRequest,
1221
1223
  body: JSON.stringify(nonApiRequest.body)
@@ -1256,9 +1258,8 @@ var Client = class {
1256
1258
  if ("body" in message) {
1257
1259
  message.body = JSON.stringify(message.body);
1258
1260
  }
1259
- message.headers = new Headers(message.headers);
1260
1261
  const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1261
- const nonApiMessage = processApi(message, upstashToken);
1262
+ const nonApiMessage = processApi(message, new Headers(message.headers), upstashToken);
1262
1263
  nonApiMessage.headers.set("Content-Type", "application/json");
1263
1264
  return nonApiMessage;
1264
1265
  });
package/workflow.mjs CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  WorkflowLogger,
7
7
  processOptions,
8
8
  serve
9
- } from "./chunk-2V6WQVIN.mjs";
9
+ } from "./chunk-A3H5A6JL.mjs";
10
10
  export {
11
11
  DisabledWorkflowContext,
12
12
  StepTypes,