@cimplify/sdk 0.107.1 → 0.108.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.
Files changed (49) hide show
  1. package/dist/advanced.d.mts +3 -3
  2. package/dist/advanced.d.ts +3 -3
  3. package/dist/advanced.js +20 -20
  4. package/dist/advanced.mjs +1 -1
  5. package/dist/{catalogue-AmW4XjaN.d.ts → catalogue-B4eLL8Mi.d.ts} +1 -1
  6. package/dist/{catalogue-rWd71Xi-.d.mts → catalogue-OT89_Ifs.d.mts} +1 -1
  7. package/dist/{chunk-THSYGWUA.js → chunk-5QW7CQBA.js} +2 -2
  8. package/dist/{chunk-CEML2737.js → chunk-EDK3LNM6.js} +87 -87
  9. package/dist/{chunk-ONII7K3T.js → chunk-F7J3HK27.js} +34 -0
  10. package/dist/{chunk-NZMU7UUA.mjs → chunk-JVODCGFP.mjs} +1 -1
  11. package/dist/{chunk-T4OU77DM.mjs → chunk-SUCE7FWA.mjs} +1 -1
  12. package/dist/{chunk-OTPLI3JY.mjs → chunk-U6ACF76H.mjs} +35 -2
  13. package/dist/{client-ni-CfOSO.d.ts → client-B878xeAP.d.ts} +2 -2
  14. package/dist/{client-DlTJ2hUM.d.mts → client-BSP9U1O1.d.mts} +2 -2
  15. package/dist/{elements-BF1Y4aOi.d.mts → elements-Bty6Qs_N.d.mts} +26 -1
  16. package/dist/{elements-BF1Y4aOi.d.ts → elements-Bty6Qs_N.d.ts} +26 -1
  17. package/dist/{index-CZ0bJm6k.d.ts → index-B7oA_1XI.d.ts} +2 -2
  18. package/dist/{index-DML_W635.d.mts → index-CQStGb3B.d.mts} +2 -2
  19. package/dist/{index-DU7vffby.d.ts → index-DJwXmoaP.d.ts} +2 -2
  20. package/dist/{index-DopYJKDL.d.mts → index-DhUSTAhT.d.mts} +2 -2
  21. package/dist/index.d.mts +21 -8
  22. package/dist/index.d.ts +21 -8
  23. package/dist/index.js +72 -68
  24. package/dist/index.mjs +3 -3
  25. package/dist/{price-DI_U5oXU.d.mts → price-CSztR02F.d.mts} +1 -1
  26. package/dist/{price-B5t2mpsE.d.ts → price-C_vasx9A.d.ts} +1 -1
  27. package/dist/react.d.mts +3 -3
  28. package/dist/react.d.ts +3 -3
  29. package/dist/react.js +31 -31
  30. package/dist/react.mjs +2 -2
  31. package/dist/{server-BItJAUTD.d.ts → server-B6dW7-Lj.d.mts} +1 -1
  32. package/dist/{server-Dq70vD7z.d.mts → server-Dckg4Vdr.d.ts} +1 -1
  33. package/dist/server.d.mts +3 -3
  34. package/dist/server.d.ts +3 -3
  35. package/dist/server.js +7 -7
  36. package/dist/server.mjs +2 -2
  37. package/dist/testing/msw.d.mts +2 -2
  38. package/dist/testing/msw.d.ts +2 -2
  39. package/dist/testing/suite.d.mts +5 -5
  40. package/dist/testing/suite.d.ts +5 -5
  41. package/dist/testing/suite.js +23 -23
  42. package/dist/testing/suite.mjs +3 -3
  43. package/dist/testing.d.mts +4 -4
  44. package/dist/testing.d.ts +4 -4
  45. package/dist/testing.js +115 -115
  46. package/dist/testing.mjs +4 -4
  47. package/dist/utils.d.mts +3 -3
  48. package/dist/utils.d.ts +3 -3
  49. package/package.json +1 -1
package/dist/react.js CHANGED
@@ -2,9 +2,9 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk2P4KXFB6_js = require('./chunk-2P4KXFB6.js');
5
- var chunkCEML2737_js = require('./chunk-CEML2737.js');
5
+ var chunkEDK3LNM6_js = require('./chunk-EDK3LNM6.js');
6
6
  var chunkXREIZ56K_js = require('./chunk-XREIZ56K.js');
7
- var chunkONII7K3T_js = require('./chunk-ONII7K3T.js');
7
+ var chunkF7J3HK27_js = require('./chunk-F7J3HK27.js');
8
8
  var chunkEV2EVOYS_js = require('./chunk-EV2EVOYS.js');
9
9
  var chunkV32BCG7M_js = require('./chunk-V32BCG7M.js');
10
10
  var chunkANT574FD_js = require('./chunk-ANT574FD.js');
@@ -863,7 +863,7 @@ async function syncFromServer(entry) {
863
863
  return next;
864
864
  }
865
865
  function emitMutationError(entry, operation, opId, idempotencyKey, error) {
866
- entry.client.events.emit(chunkONII7K3T_js.MUTATION_ERROR, {
866
+ entry.client.events.emit(chunkF7J3HK27_js.MUTATION_ERROR, {
867
867
  service: "cart",
868
868
  operation,
869
869
  opId,
@@ -903,10 +903,10 @@ function getOrCreateStore(params) {
903
903
  syncTail: Promise.resolve(),
904
904
  failedOpRemovers: /* @__PURE__ */ new Set()
905
905
  };
906
- client.events.on(chunkONII7K3T_js.SESSION_CLAIMED, () => {
906
+ client.events.on(chunkF7J3HK27_js.SESSION_CLAIMED, () => {
907
907
  if (entry.initialized) void syncFromServer(entry);
908
908
  });
909
- client.events.on(chunkONII7K3T_js.SESSION_CLEARED, () => {
909
+ client.events.on(chunkF7J3HK27_js.SESSION_CLEARED, () => {
910
910
  if (entry.initialized) void syncFromServer(entry);
911
911
  });
912
912
  cartStores.set(storeKey, entry);
@@ -1214,7 +1214,7 @@ var DEFAULT_COUNTRY = "US";
1214
1214
  function createDefaultClient() {
1215
1215
  const processRef = globalThis.process;
1216
1216
  const envPublicKey = processRef?.env?.NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY || "";
1217
- return chunkCEML2737_js.createCimplifyClient({ publicKey: envPublicKey });
1217
+ return chunkEDK3LNM6_js.createCimplifyClient({ publicKey: envPublicKey });
1218
1218
  }
1219
1219
  function getStoredLocationId() {
1220
1220
  if (typeof window === "undefined" || !window.localStorage) {
@@ -1772,7 +1772,7 @@ function CimplifyCheckout({
1772
1772
  linkUrl
1773
1773
  });
1774
1774
  elementsRef.current = elements;
1775
- const checkout = elements.create(chunkONII7K3T_js.ELEMENT_TYPES.CHECKOUT, {
1775
+ const checkout = elements.create(chunkF7J3HK27_js.ELEMENT_TYPES.CHECKOUT, {
1776
1776
  orderTypes: resolvedOrderTypes,
1777
1777
  defaultOrderType: resolvedDefaultOrderType,
1778
1778
  submitLabel,
@@ -1783,19 +1783,19 @@ function CimplifyCheckout({
1783
1783
  if (checkoutMountRef.current) {
1784
1784
  checkout.mount(checkoutMountRef.current);
1785
1785
  }
1786
- checkout.on(chunkONII7K3T_js.EVENT_TYPES.READY, () => {
1786
+ checkout.on(chunkF7J3HK27_js.EVENT_TYPES.READY, () => {
1787
1787
  const cart = resolvedCartRef.current;
1788
1788
  if (cart) {
1789
1789
  checkout.setCart(transformToCheckoutCart(cart, fxOptionsRef.current));
1790
1790
  }
1791
1791
  });
1792
- checkout.on(chunkONII7K3T_js.EVENT_TYPES.ORDER_TYPE_CHANGED, (data) => {
1792
+ checkout.on(chunkF7J3HK27_js.EVENT_TYPES.ORDER_TYPE_CHANGED, (data) => {
1793
1793
  const typed = data;
1794
1794
  if (typed.orderType) {
1795
1795
  setOrderType(typed.orderType);
1796
1796
  }
1797
1797
  });
1798
- checkout.on(chunkONII7K3T_js.EVENT_TYPES.REQUEST_SUBMIT, () => {
1798
+ checkout.on(chunkF7J3HK27_js.EVENT_TYPES.REQUEST_SUBMIT, () => {
1799
1799
  void handleSubmit();
1800
1800
  });
1801
1801
  return () => {
@@ -1816,7 +1816,7 @@ function CimplifyCheckout({
1816
1816
  ]);
1817
1817
  React14.useEffect(() => {
1818
1818
  if (!resolvedCart || !elementsRef.current) return;
1819
- const checkoutElement = elementsRef.current.getElement(chunkONII7K3T_js.ELEMENT_TYPES.CHECKOUT);
1819
+ const checkoutElement = elementsRef.current.getElement(chunkF7J3HK27_js.ELEMENT_TYPES.CHECKOUT);
1820
1820
  if (checkoutElement) {
1821
1821
  checkoutElement.setCart(transformToCheckoutCart(resolvedCart, fxOptions));
1822
1822
  }
@@ -3555,7 +3555,7 @@ function CimplifySignInButton({
3555
3555
  const onClick = async () => {
3556
3556
  if (busy || disabled || !signInOpts.clientId) return;
3557
3557
  setBusy(true);
3558
- await chunkONII7K3T_js.startSignIn({
3558
+ await chunkF7J3HK27_js.startSignIn({
3559
3559
  ...signInOpts,
3560
3560
  onSuccess: () => {
3561
3561
  setBusy(false);
@@ -5026,9 +5026,9 @@ function useClientSessionEpoch(client) {
5026
5026
  const subscribe = React14.useCallback(
5027
5027
  (notify) => {
5028
5028
  const unsubscribe = [
5029
- client.events.on(chunkONII7K3T_js.AUTH_TOKEN_CHANGED, notify),
5030
- client.events.on(chunkONII7K3T_js.SESSION_CLAIMED, notify),
5031
- client.events.on(chunkONII7K3T_js.SESSION_CLEARED, notify)
5029
+ client.events.on(chunkF7J3HK27_js.AUTH_TOKEN_CHANGED, notify),
5030
+ client.events.on(chunkF7J3HK27_js.SESSION_CLAIMED, notify),
5031
+ client.events.on(chunkF7J3HK27_js.SESSION_CLEARED, notify)
5032
5032
  ];
5033
5033
  return () => {
5034
5034
  for (const stopListening of unsubscribe) {
@@ -6268,7 +6268,7 @@ function useChat(options = {}) {
6268
6268
  ws.onmessage = (event) => {
6269
6269
  try {
6270
6270
  const envelope = JSON.parse(event.data);
6271
- const update = chunkCEML2737_js.chatRealtimeUpdateFromWire(envelope);
6271
+ const update = chunkEDK3LNM6_js.chatRealtimeUpdateFromWire(envelope);
6272
6272
  if (update.kind === "message") {
6273
6273
  appendMessages([update.message]);
6274
6274
  } else if (update.kind === "message_updated") {
@@ -6379,7 +6379,7 @@ function useChat(options = {}) {
6379
6379
  const watchSessionClaims = React14.useCallback(() => {
6380
6380
  const c = clientRef.current;
6381
6381
  if (!c || claimUnsubRef.current) return;
6382
- const unsubClaimed = c.events.on(chunkONII7K3T_js.SESSION_CLAIMED, (event) => {
6382
+ const unsubClaimed = c.events.on(chunkF7J3HK27_js.SESSION_CLAIMED, (event) => {
6383
6383
  setClaimedAs(event.customerName || c.session.claimedCustomerName || null);
6384
6384
  if (!openedRef.current) {
6385
6385
  void openIfExisting();
@@ -6388,7 +6388,7 @@ function useChat(options = {}) {
6388
6388
  connectWebSocket();
6389
6389
  void resyncConversation();
6390
6390
  });
6391
- const unsubCleared = c.events.on(chunkONII7K3T_js.SESSION_CLEARED, resetConversation);
6391
+ const unsubCleared = c.events.on(chunkF7J3HK27_js.SESSION_CLEARED, resetConversation);
6392
6392
  claimUnsubRef.current = () => {
6393
6393
  unsubClaimed();
6394
6394
  unsubCleared();
@@ -6440,7 +6440,7 @@ function useChat(options = {}) {
6440
6440
  if (!openedRef.current) return false;
6441
6441
  }
6442
6442
  const replyTo = opts?.replyTo;
6443
- const clientId = chunkONII7K3T_js.generateIdempotencyKey();
6443
+ const clientId = chunkF7J3HK27_js.generateIdempotencyKey();
6444
6444
  const localId = optimisticId(clientId);
6445
6445
  const optimistic = {
6446
6446
  id: localId,
@@ -6629,15 +6629,15 @@ function AuthElement({
6629
6629
  }, [onReady, onAuthenticated, onError]);
6630
6630
  React14.useEffect(() => {
6631
6631
  if (!elements || !containerRef.current) return;
6632
- const element = elements.create(chunkONII7K3T_js.ELEMENT_TYPES.AUTH, { prefillEmail });
6632
+ const element = elements.create(chunkF7J3HK27_js.ELEMENT_TYPES.AUTH, { prefillEmail });
6633
6633
  elementRef.current = element;
6634
- element.on(chunkONII7K3T_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6634
+ element.on(chunkF7J3HK27_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6635
6635
  element.on(
6636
- chunkONII7K3T_js.EVENT_TYPES.AUTHENTICATED,
6636
+ chunkF7J3HK27_js.EVENT_TYPES.AUTHENTICATED,
6637
6637
  (data) => onAuthenticatedRef.current?.(data)
6638
6638
  );
6639
6639
  element.on(
6640
- chunkONII7K3T_js.EVENT_TYPES.ERROR,
6640
+ chunkF7J3HK27_js.EVENT_TYPES.ERROR,
6641
6641
  (data) => onErrorRef.current?.(data)
6642
6642
  );
6643
6643
  element.mount(containerRef.current);
@@ -6666,15 +6666,15 @@ function AddressElement({
6666
6666
  }, [onReady, onChange, onError]);
6667
6667
  React14.useEffect(() => {
6668
6668
  if (!elements || !containerRef.current) return;
6669
- const element = elements.create(chunkONII7K3T_js.ELEMENT_TYPES.ADDRESS, { mode });
6669
+ const element = elements.create(chunkF7J3HK27_js.ELEMENT_TYPES.ADDRESS, { mode });
6670
6670
  elementRef.current = element;
6671
- element.on(chunkONII7K3T_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6671
+ element.on(chunkF7J3HK27_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6672
6672
  element.on(
6673
- chunkONII7K3T_js.EVENT_TYPES.CHANGE,
6673
+ chunkF7J3HK27_js.EVENT_TYPES.CHANGE,
6674
6674
  (data) => onChangeRef.current?.(data)
6675
6675
  );
6676
6676
  element.on(
6677
- chunkONII7K3T_js.EVENT_TYPES.ERROR,
6677
+ chunkF7J3HK27_js.EVENT_TYPES.ERROR,
6678
6678
  (data) => onErrorRef.current?.(data)
6679
6679
  );
6680
6680
  element.mount(containerRef.current);
@@ -6704,15 +6704,15 @@ function PaymentElement({
6704
6704
  }, [onReady, onChange, onError]);
6705
6705
  React14.useEffect(() => {
6706
6706
  if (!elements || !containerRef.current) return;
6707
- const element = elements.create(chunkONII7K3T_js.ELEMENT_TYPES.PAYMENT, { amount, currency });
6707
+ const element = elements.create(chunkF7J3HK27_js.ELEMENT_TYPES.PAYMENT, { amount, currency });
6708
6708
  elementRef.current = element;
6709
- element.on(chunkONII7K3T_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6709
+ element.on(chunkF7J3HK27_js.EVENT_TYPES.READY, () => onReadyRef.current?.());
6710
6710
  element.on(
6711
- chunkONII7K3T_js.EVENT_TYPES.CHANGE,
6711
+ chunkF7J3HK27_js.EVENT_TYPES.CHANGE,
6712
6712
  (data) => onChangeRef.current?.(data)
6713
6713
  );
6714
6714
  element.on(
6715
- chunkONII7K3T_js.EVENT_TYPES.ERROR,
6715
+ chunkF7J3HK27_js.EVENT_TYPES.ERROR,
6716
6716
  (data) => onErrorRef.current?.(data)
6717
6717
  );
6718
6718
  element.mount(containerRef.current);
package/dist/react.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { DURATION_UNIT, getVariantDisplayName, INPUT_FIELD_TYPE, isMultiDayService, serviceBillingMultiplier, PRODUCT_TYPE, BOUNDARY_KIND, resolveGallery, chatMessageCards, RENDER_HINT, displaysGrossPrices, DEFAULT_CDN_BASE_URL } from './chunk-3V4DVXV3.mjs';
3
3
  export { getVariantDisplayName } from './chunk-3V4DVXV3.mjs';
4
- import { chatRealtimeUpdateFromWire, createCimplifyClient } from './chunk-T4OU77DM.mjs';
4
+ import { chatRealtimeUpdateFromWire, createCimplifyClient } from './chunk-SUCE7FWA.mjs';
5
5
  import { splitGenUIContent, messagePreview } from './chunk-U4MW6PYU.mjs';
6
6
  export { messagePreview, splitGenUIContent } from './chunk-U4MW6PYU.mjs';
7
- import { ELEMENT_TYPES, EVENT_TYPES, SESSION_CLAIMED, SESSION_CLEARED, generateIdempotencyKey, startSignIn, AUTH_TOKEN_CHANGED, MUTATION_ERROR } from './chunk-OTPLI3JY.mjs';
7
+ import { ELEMENT_TYPES, EVENT_TYPES, SESSION_CLAIMED, SESSION_CLEARED, generateIdempotencyKey, startSignIn, AUTH_TOKEN_CHANGED, MUTATION_ERROR } from './chunk-U6ACF76H.mjs';
8
8
  import { ORDER_TYPE, CHECKOUT_STATUS } from './chunk-33VCYWVL.mjs';
9
9
  import { parsePrice, formatMoney, formatPrice, getVariantUnitPrice, getProductCurrency, getUnitPriceAtQuantity, isOnSale, getDiscountPercentage, getBasePrice, getPriceRange, formatPriceRange } from './chunk-JRGK3NXR.mjs';
10
10
  import { isSupportedCurrency, ErrorCode, currencyCode, CimplifyError } from './chunk-KG3WT4PR.mjs';
@@ -1,5 +1,5 @@
1
1
  import { Hono } from 'hono';
2
- import { dR as ProductInputField, ee as PurchaseIntentView, cD as MintPurchaseIntentRequest, bi as ConfirmPurchaseIntentResponse, eA as SubmitAuthorizationInput, ab as CHECKOUT_NEXT_ACTION, i as ConfirmPurchaseIntentRequest, eB as SubmitPurchaseIntentActionRequest } from './elements-BF1Y4aOi.js';
2
+ import { dR as ProductInputField, ee as PurchaseIntentView, cE as MintPurchaseIntentRequest, g as ConfirmPurchaseIntentResponse, eA as SubmitAuthorizationInput, ad as CHECKOUT_NEXT_ACTION, i as ConfirmPurchaseIntentRequest, eB as SubmitPurchaseIntentActionRequest } from './elements-Bty6Qs_N.mjs';
3
3
 
4
4
  interface Clock {
5
5
  now(): Date;
@@ -1,5 +1,5 @@
1
1
  import { Hono } from 'hono';
2
- import { dR as ProductInputField, ee as PurchaseIntentView, cD as MintPurchaseIntentRequest, bi as ConfirmPurchaseIntentResponse, eA as SubmitAuthorizationInput, ab as CHECKOUT_NEXT_ACTION, i as ConfirmPurchaseIntentRequest, eB as SubmitPurchaseIntentActionRequest } from './elements-BF1Y4aOi.mjs';
2
+ import { dR as ProductInputField, ee as PurchaseIntentView, cE as MintPurchaseIntentRequest, g as ConfirmPurchaseIntentResponse, eA as SubmitAuthorizationInput, ad as CHECKOUT_NEXT_ACTION, i as ConfirmPurchaseIntentRequest, eB as SubmitPurchaseIntentActionRequest } from './elements-Bty6Qs_N.js';
3
3
 
4
4
  interface Clock {
5
5
  now(): Date;
package/dist/server.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { C as CimplifyClient } from './catalogue-rWd71Xi-.mjs';
2
- export { a as CacheOptions, R as ReadRequestOptions, b as Result } from './catalogue-rWd71Xi-.mjs';
3
- export { b as Category, c as CimplifyError, d as Collection, P as Product, e as ProductWithDetails } from './elements-BF1Y4aOi.mjs';
1
+ import { C as CimplifyClient } from './catalogue-OT89_Ifs.mjs';
2
+ export { a as CacheOptions, R as ReadRequestOptions, b as Result } from './catalogue-OT89_Ifs.mjs';
3
+ export { b as Category, c as CimplifyError, d as Collection, P as Product, e as ProductWithDetails } from './elements-Bty6Qs_N.mjs';
4
4
  import { JWTVerifyResult } from 'jose';
5
5
 
6
6
  interface ServerClientOptions {
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { C as CimplifyClient } from './catalogue-AmW4XjaN.js';
2
- export { a as CacheOptions, R as ReadRequestOptions, b as Result } from './catalogue-AmW4XjaN.js';
3
- export { b as Category, c as CimplifyError, d as Collection, P as Product, e as ProductWithDetails } from './elements-BF1Y4aOi.js';
1
+ import { C as CimplifyClient } from './catalogue-B4eLL8Mi.js';
2
+ export { a as CacheOptions, R as ReadRequestOptions, b as Result } from './catalogue-B4eLL8Mi.js';
3
+ export { b as Category, c as CimplifyError, d as Collection, P as Product, e as ProductWithDetails } from './elements-Bty6Qs_N.js';
4
4
  import { JWTVerifyResult } from 'jose';
5
5
 
6
6
  interface ServerClientOptions {
package/dist/server.js CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkCEML2737_js = require('./chunk-CEML2737.js');
3
+ var chunkEDK3LNM6_js = require('./chunk-EDK3LNM6.js');
4
4
  require('./chunk-XREIZ56K.js');
5
- var chunkONII7K3T_js = require('./chunk-ONII7K3T.js');
5
+ var chunkF7J3HK27_js = require('./chunk-F7J3HK27.js');
6
6
  require('./chunk-EV2EVOYS.js');
7
7
  require('./chunk-V32BCG7M.js');
8
8
  var chunkANT574FD_js = require('./chunk-ANT574FD.js');
@@ -28,7 +28,7 @@ function readEnv(...keys) {
28
28
  var getServerClient = react.cache((opts = {}) => {
29
29
  const baseUrl = opts.apiUrl ?? readEnv("CIMPLIFY_API_URL", "NEXT_PUBLIC_CIMPLIFY_API_URL") ?? defaultBaseUrl();
30
30
  const publicKey = opts.secretKey ?? readEnv("CIMPLIFY_SECRET_KEY", "NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY") ?? "mock-dev";
31
- const client = chunkCEML2737_js.createCimplifyClient({
31
+ const client = chunkEDK3LNM6_js.createCimplifyClient({
32
32
  baseUrl,
33
33
  publicKey,
34
34
  suppressPublicKeyWarning: true
@@ -252,7 +252,7 @@ var QUERY_AUTH_ERROR = "cimplify_auth_error";
252
252
  var discoveryCache = /* @__PURE__ */ new Map();
253
253
  var jwksCache = /* @__PURE__ */ new Map();
254
254
  function issuerBase(cfg) {
255
- return (cfg.issuer ?? cfg.authUrl ?? chunkONII7K3T_js.DEFAULT_ISSUER).replace(/\/$/, "");
255
+ return (cfg.issuer ?? cfg.authUrl ?? chunkF7J3HK27_js.DEFAULT_ISSUER).replace(/\/$/, "");
256
256
  }
257
257
  function cookieName(cfg) {
258
258
  return cfg.cookieName ?? SESSION_COOKIE;
@@ -467,12 +467,12 @@ async function handleOidcCallback(req, opts) {
467
467
  }
468
468
  function readPkceCookie(cookieHeader) {
469
469
  if (!cookieHeader) return null;
470
- const match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${chunkONII7K3T_js.PKCE_COOKIE}=`));
470
+ const match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${chunkF7J3HK27_js.PKCE_COOKIE}=`));
471
471
  if (!match) return null;
472
- return chunkONII7K3T_js.decodePkceState(match.slice(chunkONII7K3T_js.PKCE_COOKIE.length + 1));
472
+ return chunkF7J3HK27_js.decodePkceState(match.slice(chunkF7J3HK27_js.PKCE_COOKIE.length + 1));
473
473
  }
474
474
  function buildPkceClearCookie() {
475
- return `${chunkONII7K3T_js.PKCE_COOKIE}=; Path=${chunkONII7K3T_js.PKCE_COOKIE_PATH}; Max-Age=0; Secure; SameSite=Lax`;
475
+ return `${chunkF7J3HK27_js.PKCE_COOKIE}=; Path=${chunkF7J3HK27_js.PKCE_COOKIE_PATH}; Max-Age=0; Secure; SameSite=Lax`;
476
476
  }
477
477
  function safeReturnPath(returnTo, fallback) {
478
478
  if (returnTo && returnTo.startsWith("/") && !returnTo.startsWith("//")) return returnTo;
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { createCimplifyClient } from './chunk-T4OU77DM.mjs';
1
+ import { createCimplifyClient } from './chunk-SUCE7FWA.mjs';
2
2
  import './chunk-U4MW6PYU.mjs';
3
- import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH, DEFAULT_ISSUER } from './chunk-OTPLI3JY.mjs';
3
+ import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH, DEFAULT_ISSUER } from './chunk-U6ACF76H.mjs';
4
4
  import './chunk-33VCYWVL.mjs';
5
5
  import './chunk-JRGK3NXR.mjs';
6
6
  export { CimplifyError } from './chunk-KG3WT4PR.mjs';
@@ -1,6 +1,6 @@
1
- import { A as AppHandle, C as CreateAppOptions } from '../server-Dq70vD7z.mjs';
1
+ import { A as AppHandle, C as CreateAppOptions } from '../server-B6dW7-Lj.mjs';
2
2
  import 'hono';
3
- import '../elements-BF1Y4aOi.mjs';
3
+ import '../elements-Bty6Qs_N.mjs';
4
4
 
5
5
  interface MswHandlerSetup {
6
6
  handlers: unknown[];
@@ -1,6 +1,6 @@
1
- import { A as AppHandle, C as CreateAppOptions } from '../server-BItJAUTD.js';
1
+ import { A as AppHandle, C as CreateAppOptions } from '../server-Dckg4Vdr.js';
2
2
  import 'hono';
3
- import '../elements-BF1Y4aOi.js';
3
+ import '../elements-Bty6Qs_N.js';
4
4
 
5
5
  interface MswHandlerSetup {
6
6
  handlers: unknown[];
@@ -1,9 +1,9 @@
1
1
  import { TestAPI } from 'vitest';
2
- import { T as TestClientHandle } from '../client-DlTJ2hUM.mjs';
3
- import { C as CreateAppOptions } from '../server-Dq70vD7z.mjs';
4
- export { S as SeedName } from '../server-Dq70vD7z.mjs';
5
- import '../catalogue-rWd71Xi-.mjs';
6
- import '../elements-BF1Y4aOi.mjs';
2
+ import { T as TestClientHandle } from '../client-BSP9U1O1.mjs';
3
+ import { C as CreateAppOptions } from '../server-B6dW7-Lj.mjs';
4
+ export { S as SeedName } from '../server-B6dW7-Lj.mjs';
5
+ import '../catalogue-OT89_Ifs.mjs';
6
+ import '../elements-Bty6Qs_N.mjs';
7
7
  import 'hono';
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  import { TestAPI } from 'vitest';
2
- import { T as TestClientHandle } from '../client-ni-CfOSO.js';
3
- import { C as CreateAppOptions } from '../server-BItJAUTD.js';
4
- export { S as SeedName } from '../server-BItJAUTD.js';
5
- import '../catalogue-AmW4XjaN.js';
6
- import '../elements-BF1Y4aOi.js';
2
+ import { T as TestClientHandle } from '../client-B878xeAP.js';
3
+ import { C as CreateAppOptions } from '../server-Dckg4Vdr.js';
4
+ export { S as SeedName } from '../server-Dckg4Vdr.js';
5
+ import '../catalogue-B4eLL8Mi.js';
6
+ import '../elements-Bty6Qs_N.js';
7
7
  import 'hono';
8
8
 
9
9
  /**
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkTHSYGWUA_js = require('../chunk-THSYGWUA.js');
3
+ var chunk5QW7CQBA_js = require('../chunk-5QW7CQBA.js');
4
4
  require('../chunk-UVRPC2P7.js');
5
- require('../chunk-CEML2737.js');
5
+ require('../chunk-EDK3LNM6.js');
6
6
  require('../chunk-XREIZ56K.js');
7
- require('../chunk-ONII7K3T.js');
7
+ require('../chunk-F7J3HK27.js');
8
8
  require('../chunk-EV2EVOYS.js');
9
9
  require('../chunk-V32BCG7M.js');
10
10
  require('../chunk-ANT574FD.js');
@@ -22,11 +22,11 @@ var PLACEHOLDER_PHRASES = [
22
22
  function createBrandSuite(opts) {
23
23
  vitest.describe(opts.label ?? "brand schema", () => {
24
24
  vitest.it("conforms to the Cimplify brand contract", () => {
25
- vitest.expect(() => chunkTHSYGWUA_js.assertBrand(opts.brand)).not.toThrow();
25
+ vitest.expect(() => chunk5QW7CQBA_js.assertBrand(opts.brand)).not.toThrow();
26
26
  });
27
27
  vitest.it("declares a known mock seed", () => {
28
28
  const b = opts.brand;
29
- vitest.expect(chunkTHSYGWUA_js.SeedNameSchema.safeParse(b.mock?.seed).success).toBe(true);
29
+ vitest.expect(chunk5QW7CQBA_js.SeedNameSchema.safeParse(b.mock?.seed).success).toBe(true);
30
30
  });
31
31
  vitest.it("has no placeholder copy left in", () => {
32
32
  const offenders = [];
@@ -58,7 +58,7 @@ ${msg}`);
58
58
  vitest.expect(b.mock?.businessId).toMatch(/^bus_/);
59
59
  });
60
60
  vitest.it("zod-parses cleanly", () => {
61
- const result = chunkTHSYGWUA_js.BrandSchema.safeParse(opts.brand);
61
+ const result = chunk5QW7CQBA_js.BrandSchema.safeParse(opts.brand);
62
62
  if (!result.success) {
63
63
  throw new Error(
64
64
  "Brand schema violations:\n" + result.error.issues.map((i) => ` \u2022 brand.${i.path.join(".")}: ${i.message}`).join("\n")
@@ -73,23 +73,23 @@ function createCartFlowSuite(opts = {}) {
73
73
  vitest.describe(opts.label ?? "cart flow against in-process mock", () => {
74
74
  let h;
75
75
  vitest.beforeEach(() => {
76
- h = chunkTHSYGWUA_js.createTestClient(opts);
76
+ h = chunk5QW7CQBA_js.createTestClient(opts);
77
77
  });
78
78
  vitest.afterEach(() => h.dispose());
79
79
  vitest.it("starts with an empty cart matching the canonical shape", async () => {
80
80
  const res = await h.client.cart.get();
81
81
  vitest.expect(res.ok).toBe(true);
82
82
  if (!res.ok) return;
83
- vitest.expect(() => chunkTHSYGWUA_js.assertCart(res.value)).not.toThrow();
83
+ vitest.expect(() => chunk5QW7CQBA_js.assertCart(res.value)).not.toThrow();
84
84
  vitest.expect(res.value.items).toHaveLength(0);
85
85
  });
86
86
  vitest.it("adds the first product, persists it, and returns a shape-valid cart", async () => {
87
- const { product, variantId } = await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
87
+ const { product, variantId } = await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
88
88
  vitest.expect(product.id).toBeTruthy();
89
89
  const get = await h.client.cart.get();
90
90
  vitest.expect(get.ok).toBe(true);
91
91
  if (!get.ok) return;
92
- vitest.expect(() => chunkTHSYGWUA_js.assertCart(get.value)).not.toThrow();
92
+ vitest.expect(() => chunk5QW7CQBA_js.assertCart(get.value)).not.toThrow();
93
93
  vitest.expect(get.value.items).toHaveLength(1);
94
94
  vitest.expect(get.value.items[0]?.item_id).toBe(product.id);
95
95
  if (variantId) {
@@ -100,8 +100,8 @@ function createCartFlowSuite(opts = {}) {
100
100
  vitest.expect(parseFloat(String(get.value.pricing.subtotal))).toBeGreaterThan(0);
101
101
  });
102
102
  vitest.it("dedupes by line_key when adding the same product twice", async () => {
103
- await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
104
- await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
103
+ await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
104
+ await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
105
105
  const res = await h.client.cart.get();
106
106
  vitest.expect(res.ok).toBe(true);
107
107
  if (!res.ok) return;
@@ -109,7 +109,7 @@ function createCartFlowSuite(opts = {}) {
109
109
  vitest.expect(res.value.items[0]?.quantity).toBe(2);
110
110
  });
111
111
  vitest.it("removes items and zeroes the subtotal", async () => {
112
- await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
112
+ await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
113
113
  const before = await h.client.cart.get();
114
114
  if (!before.ok) throw before.error;
115
115
  const itemId = before.value.items[0]?.id;
@@ -135,28 +135,28 @@ function createContractSuite(opts = {}) {
135
135
  vitest.describe(opts.label ?? "SDK \u2194 mock contract", () => {
136
136
  let h;
137
137
  vitest.beforeEach(() => {
138
- h = chunkTHSYGWUA_js.createTestClient(opts);
138
+ h = chunk5QW7CQBA_js.createTestClient(opts);
139
139
  });
140
140
  vitest.afterEach(() => h.dispose());
141
141
  vitest.it("AddItemPayload schema accepts a minimal valid body", () => {
142
- const result = chunkTHSYGWUA_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: 1 });
142
+ const result = chunk5QW7CQBA_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: 1 });
143
143
  vitest.expect(result.success).toBe(true);
144
144
  });
145
145
  vitest.it("AddItemPayload schema rejects negative quantity", () => {
146
- const result = chunkTHSYGWUA_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: -1 });
146
+ const result = chunk5QW7CQBA_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: -1 });
147
147
  vitest.expect(result.success).toBe(false);
148
148
  });
149
149
  vitest.it("AddItemPayload schema rejects empty item_id", () => {
150
- const result = chunkTHSYGWUA_js.AddItemPayloadSchema.safeParse({ item_id: "", quantity: 1 });
150
+ const result = chunk5QW7CQBA_js.AddItemPayloadSchema.safeParse({ item_id: "", quantity: 1 });
151
151
  vitest.expect(result.success).toBe(false);
152
152
  });
153
153
  vitest.it("Cart line items returned by the mock match CartItemSchema", async () => {
154
- const { product } = await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
154
+ const { product } = await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
155
155
  const get = await h.client.cart.get();
156
156
  if (!get.ok) throw get.error;
157
157
  vitest.expect(get.value.items.length).toBeGreaterThan(0);
158
158
  for (const item of get.value.items) {
159
- const result = chunkTHSYGWUA_js.CartItemSchema.safeParse(item);
159
+ const result = chunk5QW7CQBA_js.CartItemSchema.safeParse(item);
160
160
  if (!result.success) {
161
161
  const issues = result.error.issues.map((i) => ` \u2022 ${i.path.join(".")}: ${i.message}`).join("\n");
162
162
  throw new Error(`Cart item shape mismatch for ${product.name}:
@@ -166,20 +166,20 @@ ${issues}`);
166
166
  }
167
167
  });
168
168
  vitest.it("CheckoutResponse projects purchase-intent authority without fabricating a bill token", async () => {
169
- await chunkTHSYGWUA_js.fixtures.addFirstProduct(h.client);
169
+ await chunk5QW7CQBA_js.fixtures.addFirstProduct(h.client);
170
170
  const cartRes = await h.client.cart.get();
171
171
  if (!cartRes.ok) throw cartRes.error;
172
172
  const checkout = await h.client.checkout.process({
173
173
  cart_id: cartRes.value.id,
174
- customer: chunkTHSYGWUA_js.fixtures.customer(),
174
+ customer: chunk5QW7CQBA_js.fixtures.customer(),
175
175
  order_type: "delivery",
176
- address_info: chunkTHSYGWUA_js.fixtures.deliveryAddress(),
176
+ address_info: chunk5QW7CQBA_js.fixtures.deliveryAddress(),
177
177
  payment_method: "mobile_money",
178
178
  mobile_money_details: { phone_number: "+233244000000", provider: "mtn" }
179
179
  });
180
180
  vitest.expect(checkout.ok).toBe(true);
181
181
  if (!checkout.ok) return;
182
- const result = chunkTHSYGWUA_js.CheckoutResponseSchema.safeParse(checkout.value);
182
+ const result = chunk5QW7CQBA_js.CheckoutResponseSchema.safeParse(checkout.value);
183
183
  if (!result.success) {
184
184
  const issues = result.error.issues.map((i) => ` \u2022 ${i.path.join(".")}: ${i.message}`).join("\n");
185
185
  throw new Error(`CheckoutResponse shape mismatch:
@@ -1,8 +1,8 @@
1
- import { assertBrand, SeedNameSchema, BrandSchema, createTestClient, assertCart, fixtures, AddItemPayloadSchema, CartItemSchema, CheckoutResponseSchema } from '../chunk-NZMU7UUA.mjs';
1
+ import { assertBrand, SeedNameSchema, BrandSchema, createTestClient, assertCart, fixtures, AddItemPayloadSchema, CartItemSchema, CheckoutResponseSchema } from '../chunk-JVODCGFP.mjs';
2
2
  import '../chunk-XBL3TMPC.mjs';
3
- import '../chunk-T4OU77DM.mjs';
3
+ import '../chunk-SUCE7FWA.mjs';
4
4
  import '../chunk-U4MW6PYU.mjs';
5
- import '../chunk-OTPLI3JY.mjs';
5
+ import '../chunk-U6ACF76H.mjs';
6
6
  import '../chunk-33VCYWVL.mjs';
7
7
  import '../chunk-JRGK3NXR.mjs';
8
8
  import '../chunk-KG3WT4PR.mjs';
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { $ZodType } from 'zod/v4/core';
3
- export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-DlTJ2hUM.mjs';
4
- import './catalogue-rWd71Xi-.mjs';
5
- import './elements-BF1Y4aOi.mjs';
6
- import './server-Dq70vD7z.mjs';
3
+ export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-BSP9U1O1.mjs';
4
+ import './catalogue-OT89_Ifs.mjs';
5
+ import './elements-Bty6Qs_N.mjs';
6
+ import './server-B6dW7-Lj.mjs';
7
7
  import 'hono';
8
8
 
9
9
  /**
package/dist/testing.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { $ZodType } from 'zod/v4/core';
3
- export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-ni-CfOSO.js';
4
- import './catalogue-AmW4XjaN.js';
5
- import './elements-BF1Y4aOi.js';
6
- import './server-BItJAUTD.js';
3
+ export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-B878xeAP.js';
4
+ import './catalogue-B4eLL8Mi.js';
5
+ import './elements-Bty6Qs_N.js';
6
+ import './server-Dckg4Vdr.js';
7
7
  import 'hono';
8
8
 
9
9
  /**