@upstash/qstash 2.7.13 → 2.7.15

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/nextjs.js CHANGED
@@ -64,11 +64,14 @@ var Receiver = class {
64
64
  * If that fails, the signature is invalid and a `SignatureError` is thrown.
65
65
  */
66
66
  async verify(request) {
67
- const isValid = await this.verifyWithKey(this.currentSigningKey, request);
68
- if (isValid) {
69
- return true;
67
+ let payload;
68
+ try {
69
+ payload = await this.verifyWithKey(this.currentSigningKey, request);
70
+ } catch {
71
+ payload = await this.verifyWithKey(this.nextSigningKey, request);
70
72
  }
71
- return this.verifyWithKey(this.nextSigningKey, request);
73
+ this.verifyBodyAndUrl(payload, request);
74
+ return true;
72
75
  }
73
76
  /**
74
77
  * Verify signature with a specific signing key
@@ -80,7 +83,10 @@ var Receiver = class {
80
83
  }).catch((error) => {
81
84
  throw new SignatureError(error.message);
82
85
  });
83
- const p = jwt.payload;
86
+ return jwt.payload;
87
+ }
88
+ verifyBodyAndUrl(payload, request) {
89
+ const p = payload;
84
90
  if (request.url !== void 0 && p.sub !== request.url) {
85
91
  throw new SignatureError(`invalid subject: ${p.sub}, want: ${request.url}`);
86
92
  }
@@ -89,7 +95,6 @@ var Receiver = class {
89
95
  if (p.body.replace(padding, "") !== bodyHash.replace(padding, "")) {
90
96
  throw new SignatureError(`body hash does not match, want: ${p.body}, got: ${bodyHash}`);
91
97
  }
92
- return true;
93
98
  }
94
99
  };
95
100
 
@@ -240,7 +245,7 @@ var HttpClient = class {
240
245
  attempts: 1,
241
246
  backoff: () => 0
242
247
  } : {
243
- attempts: config.retry?.retries ? config.retry.retries + 1 : 5,
248
+ attempts: config.retry?.retries ?? 5,
244
249
  backoff: config.retry?.backoff ?? ((retryCount) => Math.exp(retryCount) * 50)
245
250
  };
246
251
  }
@@ -285,13 +290,15 @@ var HttpClient = class {
285
290
  const [url, requestOptions] = this.processRequest(request);
286
291
  let response = void 0;
287
292
  let error = void 0;
288
- for (let index = 0; index < this.retry.attempts; index++) {
293
+ for (let index = 0; index <= this.retry.attempts; index++) {
289
294
  try {
290
295
  response = await fetch(url.toString(), requestOptions);
291
296
  break;
292
297
  } catch (error_) {
293
298
  error = error_;
294
- await new Promise((r) => setTimeout(r, this.retry.backoff(index)));
299
+ if (index < this.retry.attempts) {
300
+ await new Promise((r) => setTimeout(r, this.retry.backoff(index)));
301
+ }
295
302
  }
296
303
  }
297
304
  if (!response) {
@@ -463,7 +470,6 @@ var Chat = class _Chat {
463
470
  * @param request ChatRequest with messages
464
471
  * @returns Chat completion or stream
465
472
  */
466
- // eslint-disable-next-line @typescript-eslint/require-await
467
473
  createThirdParty = async (request) => {
468
474
  const { baseUrl, token, owner, organization } = request.provider;
469
475
  if (owner === "upstash")
@@ -524,63 +530,6 @@ var Chat = class _Chat {
524
530
  };
525
531
  };
526
532
 
527
- // src/client/llm/utils.ts
528
- function appendLLMOptionsIfNeeded(request, headers, http) {
529
- if (!request.api)
530
- return;
531
- const provider = request.api.provider;
532
- const analytics = request.api.analytics;
533
- if (provider?.owner === "upstash") {
534
- handleUpstashProvider(request, headers, http, analytics);
535
- return;
536
- }
537
- if (!("provider" in request.api))
538
- return;
539
- const { baseUrl, token } = validateProviderConfig(provider);
540
- const analyticsConfig = analytics ? setupAnalytics({ name: analytics.name, token: analytics.token }, token, baseUrl, "custom") : void 0;
541
- if (analyticsConfig) {
542
- setAnalyticsHeaders(headers, analyticsConfig);
543
- request.url = analyticsConfig.baseURL;
544
- } else {
545
- request.url = `${baseUrl}/v1/chat/completions`;
546
- headers.set("Authorization", `Bearer ${token}`);
547
- }
548
- }
549
- function handleUpstashProvider(request, headers, http, analytics) {
550
- if (analytics) {
551
- const analyticsConfig = setupAnalytics(
552
- { name: analytics.name, token: analytics.token },
553
- //@ts-expect-error hacky way to get bearer token
554
- String(http.authorization).split("Bearer ")[1],
555
- request.api?.provider?.baseUrl,
556
- "upstash"
557
- );
558
- setAnalyticsHeaders(headers, analyticsConfig);
559
- request.url = analyticsConfig.baseURL;
560
- } else {
561
- request.api = { name: "llm" };
562
- }
563
- }
564
- function validateProviderConfig(provider) {
565
- if (!provider?.baseUrl)
566
- throw new Error("baseUrl cannot be empty or undefined!");
567
- if (!provider.token)
568
- throw new Error("token cannot be empty or undefined!");
569
- return { baseUrl: provider.baseUrl, token: provider.token };
570
- }
571
- function setAnalyticsHeaders(headers, analyticsConfig) {
572
- headers.set("Helicone-Auth", analyticsConfig.defaultHeaders?.["Helicone-Auth"] ?? "");
573
- headers.set("Authorization", analyticsConfig.defaultHeaders?.Authorization ?? "");
574
- if (analyticsConfig.defaultHeaders?.["Helicone-Target-Url"]) {
575
- headers.set("Helicone-Target-Url", analyticsConfig.defaultHeaders["Helicone-Target-Url"]);
576
- }
577
- }
578
- function ensureCallbackPresent(request) {
579
- if (request.api?.name === "llm" && !request.callback) {
580
- throw new TypeError("Callback cannot be undefined when using LLM");
581
- }
582
- }
583
-
584
533
  // src/client/messages.ts
585
534
  var Messages = class {
586
535
  http;
@@ -629,6 +578,144 @@ var Messages = class {
629
578
  }
630
579
  };
631
580
 
581
+ // src/client/api/base.ts
582
+ var BaseProvider = class {
583
+ baseUrl;
584
+ token;
585
+ owner;
586
+ constructor(baseUrl, token, owner) {
587
+ this.baseUrl = baseUrl;
588
+ this.token = token;
589
+ this.owner = owner;
590
+ }
591
+ getUrl() {
592
+ return `${this.baseUrl}/${this.getRoute().join("/")}`;
593
+ }
594
+ };
595
+
596
+ // src/client/api/llm.ts
597
+ var LLMProvider = class extends BaseProvider {
598
+ apiKind = "llm";
599
+ organization;
600
+ constructor(baseUrl, token, owner, organization) {
601
+ super(baseUrl, token, owner);
602
+ this.organization = organization;
603
+ }
604
+ getRoute() {
605
+ return this.owner === "anthropic" ? ["v1", "messages"] : ["v1", "chat", "completions"];
606
+ }
607
+ getHeaders(options) {
608
+ if (this.owner === "upstash" && !options.analytics) {
609
+ return {};
610
+ }
611
+ const header = this.owner === "anthropic" ? "x-api-key" : "authorization";
612
+ const headerValue = this.owner === "anthropic" ? this.token : `Bearer ${this.token}`;
613
+ const headers = { [header]: headerValue };
614
+ if (this.owner === "openai" && this.organization) {
615
+ headers["OpenAI-Organization"] = this.organization;
616
+ }
617
+ return headers;
618
+ }
619
+ /**
620
+ * Checks if callback exists and adds analytics in place if it's set.
621
+ *
622
+ * @param request
623
+ * @param options
624
+ */
625
+ onFinish(providerInfo, options) {
626
+ if (options.analytics) {
627
+ return updateWithAnalytics(providerInfo, options.analytics);
628
+ }
629
+ return providerInfo;
630
+ }
631
+ };
632
+ var upstash = () => {
633
+ return new LLMProvider("https://qstash.upstash.io/llm", "", "upstash");
634
+ };
635
+
636
+ // src/client/api/utils.ts
637
+ var getProviderInfo = (api, upstashToken) => {
638
+ const { name, provider, ...parameters } = api;
639
+ const finalProvider = provider ?? upstash();
640
+ if (finalProvider.owner === "upstash" && !finalProvider.token) {
641
+ finalProvider.token = upstashToken;
642
+ }
643
+ if (!finalProvider.baseUrl)
644
+ throw new TypeError("baseUrl cannot be empty or undefined!");
645
+ if (!finalProvider.token)
646
+ throw new TypeError("token cannot be empty or undefined!");
647
+ if (finalProvider.apiKind !== name) {
648
+ throw new TypeError(
649
+ `Unexpected api name. Expected '${finalProvider.apiKind}', received ${name}`
650
+ );
651
+ }
652
+ const providerInfo = {
653
+ url: finalProvider.getUrl(),
654
+ baseUrl: finalProvider.baseUrl,
655
+ route: finalProvider.getRoute(),
656
+ appendHeaders: finalProvider.getHeaders(parameters),
657
+ owner: finalProvider.owner
658
+ };
659
+ return finalProvider.onFinish(providerInfo, parameters);
660
+ };
661
+ var processApi = (request, upstashToken) => {
662
+ if (!request.api) {
663
+ return request;
664
+ }
665
+ const { url, appendHeaders, owner } = getProviderInfo(request.api, upstashToken);
666
+ if (request.api.name === "llm") {
667
+ const callback = request.callback;
668
+ if (!callback) {
669
+ throw new TypeError("Callback cannot be undefined when using LLM api.");
670
+ }
671
+ return {
672
+ ...request,
673
+ // @ts-expect-error undici header conflict
674
+ headers: new Headers({
675
+ ...request.headers,
676
+ ...appendHeaders
677
+ }),
678
+ ...owner === "upstash" && !request.api.analytics ? { api: { name: "llm" }, url: void 0, callback } : { url, api: void 0 }
679
+ };
680
+ } else {
681
+ return {
682
+ ...request,
683
+ // @ts-expect-error undici header conflict
684
+ headers: new Headers({
685
+ ...request.headers,
686
+ ...appendHeaders
687
+ }),
688
+ url,
689
+ api: void 0
690
+ };
691
+ }
692
+ };
693
+ function updateWithAnalytics(providerInfo, analytics) {
694
+ switch (analytics.name) {
695
+ case "helicone": {
696
+ providerInfo.appendHeaders["Helicone-Auth"] = `Bearer ${analytics.token}`;
697
+ if (providerInfo.owner === "upstash") {
698
+ updateProviderInfo(providerInfo, "https://qstash.helicone.ai", [
699
+ "llm",
700
+ ...providerInfo.route
701
+ ]);
702
+ } else {
703
+ providerInfo.appendHeaders["Helicone-Target-Url"] = providerInfo.baseUrl;
704
+ updateProviderInfo(providerInfo, "https://gateway.helicone.ai", providerInfo.route);
705
+ }
706
+ return providerInfo;
707
+ }
708
+ default: {
709
+ throw new Error("Unknown analytics provider");
710
+ }
711
+ }
712
+ }
713
+ function updateProviderInfo(providerInfo, baseUrl, route) {
714
+ providerInfo.baseUrl = baseUrl;
715
+ providerInfo.route = route;
716
+ providerInfo.url = `${baseUrl}/${route.join("/")}`;
717
+ }
718
+
632
719
  // src/client/utils.ts
633
720
  var isIgnoredHeader = (header) => {
634
721
  const lowerCaseHeader = header.toLowerCase();
@@ -661,7 +748,7 @@ function processHeaders(request) {
661
748
  if (request.deduplicationId !== void 0) {
662
749
  headers.set("Upstash-Deduplication-Id", request.deduplicationId);
663
750
  }
664
- if (request.contentBasedDeduplication !== void 0) {
751
+ if (request.contentBasedDeduplication) {
665
752
  headers.set("Upstash-Content-Based-Deduplication", "true");
666
753
  }
667
754
  if (request.retries !== void 0) {
@@ -683,7 +770,16 @@ function processHeaders(request) {
683
770
  return headers;
684
771
  }
685
772
  function getRequestPath(request) {
686
- return request.url ?? request.urlGroup ?? request.topic ?? `api/${request.api?.name}`;
773
+ const nonApiPath = request.url ?? request.urlGroup ?? request.topic;
774
+ if (nonApiPath)
775
+ return nonApiPath;
776
+ if (request.api?.name === "llm")
777
+ return `api/llm`;
778
+ if (request.api?.name === "email") {
779
+ const providerInfo = getProviderInfo(request.api, "not-needed");
780
+ return providerInfo.baseUrl;
781
+ }
782
+ throw new QstashError(`Failed to infer request path for ${JSON.stringify(request)}`);
687
783
  }
688
784
  var NANOID_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
689
785
  var NANOID_LENGTH = 21;
@@ -696,10 +792,18 @@ function decodeBase64(base64) {
696
792
  const intArray = Uint8Array.from(binString, (m) => m.codePointAt(0));
697
793
  return new TextDecoder().decode(intArray);
698
794
  } catch (error) {
699
- console.warn(
700
- `Upstash Qstash: Failed while decoding base64 "${base64}". Decoding with atob and returning it instead. ${error}`
701
- );
702
- return atob(base64);
795
+ try {
796
+ const result = atob(base64);
797
+ console.warn(
798
+ `Upstash QStash: Failed while decoding base64 "${base64}". Decoding with atob and returning it instead. ${error}`
799
+ );
800
+ return result;
801
+ } catch (error2) {
802
+ console.warn(
803
+ `Upstash QStash: Failed to decode base64 "${base64}" with atob. Returning it as it is. ${error2}`
804
+ );
805
+ return base64;
806
+ }
703
807
  }
704
808
  }
705
809
 
@@ -790,11 +894,12 @@ var Queue = class {
790
894
  async enqueueJSON(request) {
791
895
  const headers = prefixHeaders(new Headers(request.headers));
792
896
  headers.set("Content-Type", "application/json");
793
- ensureCallbackPresent(request);
794
- appendLLMOptionsIfNeeded(request, headers, this.http);
897
+ request.headers = headers;
898
+ const upstashToken = String(this.http.authorization).split("Bearer ")[1];
899
+ const nonApiRequest = processApi(request, upstashToken);
795
900
  const response = await this.enqueue({
796
- ...request,
797
- body: JSON.stringify(request.body),
901
+ ...nonApiRequest,
902
+ body: JSON.stringify(nonApiRequest.body),
798
903
  headers
799
904
  });
800
905
  return response;
@@ -874,6 +979,9 @@ var Schedules = class {
874
979
  if (request.scheduleId !== void 0) {
875
980
  headers.set("Upstash-Schedule-Id", request.scheduleId);
876
981
  }
982
+ if (request.queueName !== void 0) {
983
+ headers.set("Upstash-Queue-Name", request.queueName);
984
+ }
877
985
  return await this.http.request({
878
986
  method: "POST",
879
987
  headers,
@@ -1089,12 +1197,12 @@ var Client = class {
1089
1197
  async publishJSON(request) {
1090
1198
  const headers = prefixHeaders(new Headers(request.headers));
1091
1199
  headers.set("Content-Type", "application/json");
1092
- ensureCallbackPresent(request);
1093
- appendLLMOptionsIfNeeded(request, headers, this.http);
1200
+ request.headers = headers;
1201
+ const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1202
+ const nonApiRequest = processApi(request, upstashToken);
1094
1203
  const response = await this.publish({
1095
- ...request,
1096
- headers,
1097
- body: JSON.stringify(request.body)
1204
+ ...nonApiRequest,
1205
+ body: JSON.stringify(nonApiRequest.body)
1098
1206
  });
1099
1207
  return response;
1100
1208
  }
@@ -1128,16 +1236,17 @@ var Client = class {
1128
1236
  * Batch publish messages to QStash, serializing each body to JSON.
1129
1237
  */
1130
1238
  async batchJSON(request) {
1131
- for (const message of request) {
1239
+ const batchPayload = request.map((message) => {
1132
1240
  if ("body" in message) {
1133
1241
  message.body = JSON.stringify(message.body);
1134
1242
  }
1135
1243
  message.headers = new Headers(message.headers);
1136
- ensureCallbackPresent(message);
1137
- appendLLMOptionsIfNeeded(message, message.headers, this.http);
1138
- message.headers.set("Content-Type", "application/json");
1139
- }
1140
- const response = await this.batch(request);
1244
+ const upstashToken = String(this.http.authorization).split("Bearer ")[1];
1245
+ const nonApiMessage = processApi(message, upstashToken);
1246
+ nonApiMessage.headers.set("Content-Type", "application/json");
1247
+ return nonApiMessage;
1248
+ });
1249
+ const response = await this.batch(batchPayload);
1141
1250
  return response;
1142
1251
  }
1143
1252
  /**
package/nextjs.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Receiver,
3
3
  serve
4
- } from "./chunk-Q6E5NF42.mjs";
4
+ } from "./chunk-Y52A3KZT.mjs";
5
5
 
6
6
  // platforms/nextjs.ts
7
7
  var BAD_REQUEST = 400;
package/nuxt.js CHANGED
@@ -383,11 +383,14 @@ var Receiver = class {
383
383
  * If that fails, the signature is invalid and a `SignatureError` is thrown.
384
384
  */
385
385
  async verify(request) {
386
- const isValid = await this.verifyWithKey(this.currentSigningKey, request);
387
- if (isValid) {
388
- return true;
386
+ let payload;
387
+ try {
388
+ payload = await this.verifyWithKey(this.currentSigningKey, request);
389
+ } catch {
390
+ payload = await this.verifyWithKey(this.nextSigningKey, request);
389
391
  }
390
- return this.verifyWithKey(this.nextSigningKey, request);
392
+ this.verifyBodyAndUrl(payload, request);
393
+ return true;
391
394
  }
392
395
  /**
393
396
  * Verify signature with a specific signing key
@@ -399,7 +402,10 @@ var Receiver = class {
399
402
  }).catch((error) => {
400
403
  throw new SignatureError(error.message);
401
404
  });
402
- const p = jwt.payload;
405
+ return jwt.payload;
406
+ }
407
+ verifyBodyAndUrl(payload, request) {
408
+ const p = payload;
403
409
  if (request.url !== void 0 && p.sub !== request.url) {
404
410
  throw new SignatureError(`invalid subject: ${p.sub}, want: ${request.url}`);
405
411
  }
@@ -408,7 +414,6 @@ var Receiver = class {
408
414
  if (p.body.replace(padding, "") !== bodyHash.replace(padding, "")) {
409
415
  throw new SignatureError(`body hash does not match, want: ${p.body}, got: ${bodyHash}`);
410
416
  }
411
- return true;
412
417
  }
413
418
  };
414
419
 
package/nuxt.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  verifySignatureH3
3
- } from "./chunk-IYU467WN.mjs";
4
- import "./chunk-CIVGPRQN.mjs";
5
- import "./chunk-Q6E5NF42.mjs";
3
+ } from "./chunk-LSYJT55T.mjs";
4
+ import "./chunk-X4MWA7DF.mjs";
5
+ import "./chunk-Y52A3KZT.mjs";
6
6
 
7
7
  // platforms/nuxt.ts
8
8
  var verifySignatureNuxt = verifySignatureH3;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"version":"v2.7.13","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.15","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 { a2 as RouteFunction, a3 as WorkflowServeOptions } from './client-DEZq0-qk.mjs';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-RORrka04.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 { a2 as RouteFunction, a3 as WorkflowServeOptions } from './client-DEZq0-qk.js';
2
+ import { a3 as RouteFunction, a4 as WorkflowServeOptions } from './client-RORrka04.js';
3
3
  import 'neverthrow';
4
4
 
5
5
  type VerifySignatureConfig = {