@01.software/sdk 0.42.0 → 0.43.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 (51) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +10 -4
  3. package/dist/client.cjs +99 -57
  4. package/dist/client.cjs.map +1 -1
  5. package/dist/client.d.cts +9 -6
  6. package/dist/client.d.ts +9 -6
  7. package/dist/client.js +99 -57
  8. package/dist/client.js.map +1 -1
  9. package/dist/{collection-client-B-qVIBnJ.d.cts → collection-client-U70KizLf.d.cts} +3 -3
  10. package/dist/{collection-client-BhCMwIus.d.ts → collection-client-gWsA7BVP.d.ts} +3 -3
  11. package/dist/{const-pmHlwm3E.d.ts → const-BBynifk0.d.cts} +5 -5
  12. package/dist/{const-BiDujixF.d.cts → const-_WWHU-gX.d.ts} +5 -5
  13. package/dist/{index-B1UBDaKz.d.ts → index-DPi5NWU8.d.ts} +4 -4
  14. package/dist/{index-D78ki6Ij.d.cts → index-Dg4Y6Aq7.d.cts} +4 -4
  15. package/dist/index.cjs +111 -61
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +41 -8
  18. package/dist/index.d.ts +41 -8
  19. package/dist/index.js +111 -61
  20. package/dist/index.js.map +1 -1
  21. package/dist/{payload-types-C7Ul4ElL.d.cts → payload-types-DLxkB7Mv.d.cts} +399 -27
  22. package/dist/{payload-types-C7Ul4ElL.d.ts → payload-types-DLxkB7Mv.d.ts} +399 -27
  23. package/dist/query.cjs +59 -7
  24. package/dist/query.cjs.map +1 -1
  25. package/dist/query.d.cts +5 -5
  26. package/dist/query.d.ts +5 -5
  27. package/dist/query.js +59 -7
  28. package/dist/query.js.map +1 -1
  29. package/dist/realtime.d.cts +2 -2
  30. package/dist/realtime.d.ts +2 -2
  31. package/dist/server.cjs +130 -57
  32. package/dist/server.cjs.map +1 -1
  33. package/dist/server.d.cts +12 -7
  34. package/dist/server.d.ts +12 -7
  35. package/dist/server.js +130 -57
  36. package/dist/server.js.map +1 -1
  37. package/dist/{types-ChV1t4ei.d.cts → types-B1ngKbWI.d.cts} +1 -1
  38. package/dist/{types-BL7M-EUV.d.cts → types-B9lGhZlB.d.ts} +95 -6
  39. package/dist/{types-Bf2iCjy8.d.ts → types-BiKNBwRA.d.ts} +1 -1
  40. package/dist/{types-D5dSNIGs.d.ts → types-Bpx5sYKo.d.cts} +95 -6
  41. package/dist/ui/form.d.cts +1 -1
  42. package/dist/ui/form.d.ts +1 -1
  43. package/dist/ui/video.d.cts +1 -1
  44. package/dist/ui/video.d.ts +1 -1
  45. package/dist/webhook.cjs +3 -1
  46. package/dist/webhook.cjs.map +1 -1
  47. package/dist/webhook.d.cts +4 -4
  48. package/dist/webhook.d.ts +4 -4
  49. package/dist/webhook.js +3 -1
  50. package/dist/webhook.js.map +1 -1
  51. package/package.json +1 -1
package/dist/server.cjs CHANGED
@@ -675,6 +675,64 @@ async function httpFetch(url, options) {
675
675
  throw lastError ?? new NetworkError("Request failed after retries");
676
676
  }
677
677
 
678
+ // src/core/api/endpoints.ts
679
+ var COMMERCE_ENDPOINTS = {
680
+ orders: {
681
+ create: "/api/orders/create",
682
+ update: "/api/orders/update",
683
+ confirmPayment: "/api/orders/confirm-payment",
684
+ byPayment: "/api/orders/by-payment",
685
+ cancel: "/api/orders/cancel",
686
+ resolveCancelRefund: "/api/orders/resolve-cancel-refund",
687
+ checkout: "/api/orders/checkout",
688
+ createFulfillment: "/api/orders/create-fulfillment",
689
+ updateFulfillment: "/api/orders/update-fulfillment"
690
+ },
691
+ transactions: {
692
+ update: "/api/transactions/update"
693
+ },
694
+ returns: {
695
+ create: "/api/returns/create",
696
+ update: "/api/returns/update",
697
+ returnRefund: "/api/returns/return-refund"
698
+ },
699
+ fulfillmentOrders: {
700
+ prepare: "/api/fulfillment-orders/prepare-fulfillment-order"
701
+ },
702
+ fulfillments: {
703
+ bulkImport: "/api/fulfillments/bulk-import"
704
+ },
705
+ carts: {
706
+ mine: "/api/carts/mine",
707
+ merge: "/api/carts/merge",
708
+ addItem: "/api/carts/add-item",
709
+ updateItem: "/api/carts/update-item",
710
+ removeItem: "/api/carts/remove-item",
711
+ applyDiscount: "/api/carts/apply-discount",
712
+ removeDiscount: "/api/carts/remove-discount",
713
+ clear: "/api/carts/clear"
714
+ },
715
+ products: {
716
+ stockCheck: "/api/products/stock-check",
717
+ stockSnapshot: "/api/products/stock",
718
+ listingGroups: "/api/products/listing-groups",
719
+ listingGroupsCatalog: "/api/products/listing-groups/catalog",
720
+ listingGroupsQuery: "/api/products/listing-groups/query",
721
+ listingGroupsQueryCatalog: "/api/products/listing-groups/query/catalog",
722
+ detail: "/api/products/detail",
723
+ detailCatalog: "/api/products/detail/catalog",
724
+ upsert: "/api/products/upsert"
725
+ }
726
+ };
727
+ var COMMERCE_ENDPOINT_PATHS = Object.values(
728
+ COMMERCE_ENDPOINTS
729
+ ).flatMap((group) => Object.values(group));
730
+ var MEMBERSHIP_ENDPOINTS = {
731
+ subscribe: "/api/memberships/subscribe",
732
+ cancel: (id) => `/api/memberships/${id}/cancel`,
733
+ me: "/api/memberships/me"
734
+ };
735
+
678
736
  // src/core/internal/utils/query-string.ts
679
737
  function productDetailQuery(params) {
680
738
  const search = new URLSearchParams();
@@ -683,7 +741,7 @@ function productDetailQuery(params) {
683
741
  } else {
684
742
  search.set("id", params.id);
685
743
  }
686
- return `/api/products/detail?${search}`;
744
+ return `${COMMERCE_ENDPOINTS.products.detail}?${search}`;
687
745
  }
688
746
  function productDetailCatalogQuery(params) {
689
747
  const search = new URLSearchParams();
@@ -692,23 +750,20 @@ function productDetailCatalogQuery(params) {
692
750
  } else {
693
751
  search.set("id", params.id);
694
752
  }
695
- return `/api/products/detail/catalog?${search}`;
753
+ return `${COMMERCE_ENDPOINTS.products.detailCatalog}?${search}`;
696
754
  }
697
755
  function listingGroupsQuery(params) {
698
- return `/api/products/listing-groups?ids=${params.productIds.map(encodeURIComponent).join(",")}`;
756
+ return `${COMMERCE_ENDPOINTS.products.listingGroups}?ids=${params.productIds.map(encodeURIComponent).join(",")}`;
699
757
  }
700
758
  function listingGroupsCatalogQuery(params) {
701
- return `/api/products/listing-groups/catalog?ids=${params.productIds.map(encodeURIComponent).join(",")}`;
759
+ return `${COMMERCE_ENDPOINTS.products.listingGroupsCatalog}?ids=${params.productIds.map(encodeURIComponent).join(",")}`;
702
760
  }
703
761
  function appendListingGroupsQuerySearchParams(search, options) {
704
762
  if (options?.page != null) search.set("page", String(options.page));
705
763
  if (options?.limit != null) search.set("limit", String(options.limit));
706
764
  if (options?.sort != null) {
707
765
  const sort = options.sort;
708
- search.set(
709
- "sort",
710
- Array.isArray(sort) ? sort.join(",") : sort
711
- );
766
+ search.set("sort", Array.isArray(sort) ? sort.join(",") : sort);
712
767
  }
713
768
  if (options?.where != null) {
714
769
  search.set("whereJson", JSON.stringify(options.where));
@@ -718,16 +773,16 @@ function listingGroupsQueryUrl(options) {
718
773
  const search = new URLSearchParams();
719
774
  appendListingGroupsQuerySearchParams(search, options);
720
775
  const query = search.toString();
721
- return `/api/products/listing-groups/query${query ? `?${query}` : ""}`;
776
+ return `${COMMERCE_ENDPOINTS.products.listingGroupsQuery}${query ? `?${query}` : ""}`;
722
777
  }
723
778
  function listingGroupsQueryCatalogUrl(options) {
724
779
  const search = new URLSearchParams();
725
780
  appendListingGroupsQuerySearchParams(search, options);
726
781
  const query = search.toString();
727
- return `/api/products/listing-groups/query/catalog${query ? `?${query}` : ""}`;
782
+ return `${COMMERCE_ENDPOINTS.products.listingGroupsQueryCatalog}${query ? `?${query}` : ""}`;
728
783
  }
729
784
  function stockSnapshotQuery(params) {
730
- return `/api/products/stock?variantIds=${params.variantIds.map(encodeURIComponent).join(",")}`;
785
+ return `${COMMERCE_ENDPOINTS.products.stockSnapshot}?variantIds=${params.variantIds.map(encodeURIComponent).join(",")}`;
731
786
  }
732
787
 
733
788
  // src/core/collection/http-client.ts
@@ -1673,48 +1728,6 @@ var ModerationApi = class extends BaseApi {
1673
1728
  }
1674
1729
  };
1675
1730
 
1676
- // src/core/api/endpoints.ts
1677
- var COMMERCE_ENDPOINTS = {
1678
- orders: {
1679
- create: "/api/orders/create",
1680
- update: "/api/orders/update",
1681
- confirmPayment: "/api/orders/confirm-payment",
1682
- byPayment: "/api/orders/by-payment",
1683
- cancel: "/api/orders/cancel",
1684
- resolveCancelRefund: "/api/orders/resolve-cancel-refund",
1685
- checkout: "/api/orders/checkout",
1686
- createFulfillment: "/api/orders/create-fulfillment",
1687
- updateFulfillment: "/api/orders/update-fulfillment"
1688
- },
1689
- transactions: {
1690
- update: "/api/transactions/update"
1691
- },
1692
- returns: {
1693
- create: "/api/returns/create",
1694
- update: "/api/returns/update",
1695
- returnRefund: "/api/returns/return-refund"
1696
- },
1697
- fulfillmentOrders: {
1698
- prepare: "/api/fulfillment-orders/prepare-fulfillment-order"
1699
- },
1700
- fulfillments: {
1701
- bulkImport: "/api/fulfillments/bulk-import"
1702
- },
1703
- carts: {
1704
- mine: "/api/carts/mine",
1705
- merge: "/api/carts/merge",
1706
- addItem: "/api/carts/add-item",
1707
- updateItem: "/api/carts/update-item",
1708
- removeItem: "/api/carts/remove-item",
1709
- applyDiscount: "/api/carts/apply-discount",
1710
- removeDiscount: "/api/carts/remove-discount",
1711
- clear: "/api/carts/clear"
1712
- }
1713
- };
1714
- var COMMERCE_ENDPOINT_PATHS = Object.values(
1715
- COMMERCE_ENDPOINTS
1716
- ).flatMap((group) => Object.values(group));
1717
-
1718
1731
  // src/core/api/cart-api.ts
1719
1732
  var CartApi = class extends CustomerScopedApi {
1720
1733
  constructor(options) {
@@ -2939,7 +2952,10 @@ var ProductApi = class extends BaseApi {
2939
2952
  * to remain available by the time an order is placed.
2940
2953
  */
2941
2954
  stockCheck(params) {
2942
- return this.request("/api/products/stock-check", params);
2955
+ return this.request(
2956
+ COMMERCE_ENDPOINTS.products.stockCheck,
2957
+ params
2958
+ );
2943
2959
  }
2944
2960
  stockSnapshot(params) {
2945
2961
  return this.request(
@@ -3016,7 +3032,7 @@ var ProductApi = class extends BaseApi {
3016
3032
  */
3017
3033
  upsert(params) {
3018
3034
  return this.request(
3019
- "/api/products/upsert",
3035
+ COMMERCE_ENDPOINTS.products.upsert,
3020
3036
  normalizeProductUpsertParams(params)
3021
3037
  );
3022
3038
  }
@@ -3413,8 +3429,12 @@ function buildGuestCancelRequestBody(token, params) {
3413
3429
  }
3414
3430
  function buildRangeEndpoint(params) {
3415
3431
  const urlParams = new URLSearchParams();
3416
- urlParams.set("start", formatDateParam(params.start));
3417
- urlParams.set("end", formatDateParam(params.end));
3432
+ if (params.start !== void 0) {
3433
+ urlParams.set("start", formatDateParam(params.start));
3434
+ }
3435
+ if (params.end !== void 0) {
3436
+ urlParams.set("end", formatDateParam(params.end));
3437
+ }
3418
3438
  if (params.limit !== void 0) urlParams.set("limit", String(params.limit));
3419
3439
  if (params.page !== void 0) urlParams.set("page", String(params.page));
3420
3440
  appendValues(urlParams, "calendar", params.calendar);
@@ -3459,6 +3479,53 @@ var TenantIntrospectionApi = class extends BaseApi {
3459
3479
  }
3460
3480
  };
3461
3481
 
3482
+ // src/core/api/membership-api.ts
3483
+ var MembershipApi = class extends BaseApi {
3484
+ constructor(options) {
3485
+ super("MembershipApi", options);
3486
+ }
3487
+ /**
3488
+ * Record a delegated first-charge and activate a membership.
3489
+ * The storefront collected the payment; this endpoint deduplicates by
3490
+ * `subscribeIntentKey` and records the already-paid charge.
3491
+ *
3492
+ * `subscribeIntentKey` is used as the HTTP idempotency key so the call is
3493
+ * safely retryable.
3494
+ */
3495
+ subscribe(params) {
3496
+ const { subscribeIntentKey, ...body } = params;
3497
+ return this.request(
3498
+ MEMBERSHIP_ENDPOINTS.subscribe,
3499
+ body,
3500
+ idempotencyRequestOptions(subscribeIntentKey)
3501
+ );
3502
+ }
3503
+ /**
3504
+ * Cancel a membership by id.
3505
+ * `immediate=false` (default) sets `cancelAtPeriodEnd`; the customer retains
3506
+ * benefits until `currentPeriodEnd`. `immediate=true` cancels now and revokes
3507
+ * membership groups immediately.
3508
+ */
3509
+ cancel(params) {
3510
+ const { id, immediate } = params;
3511
+ return this.request(
3512
+ MEMBERSHIP_ENDPOINTS.cancel(id),
3513
+ immediate !== void 0 ? { immediate } : {}
3514
+ );
3515
+ }
3516
+ /**
3517
+ * Retrieve the authenticated customer's own membership view.
3518
+ * Never returns payment tokens or internal keys.
3519
+ */
3520
+ me() {
3521
+ return this.request(
3522
+ MEMBERSHIP_ENDPOINTS.me,
3523
+ void 0,
3524
+ { method: "GET" }
3525
+ );
3526
+ }
3527
+ };
3528
+
3462
3529
  // src/core/client/client.server.ts
3463
3530
  var ServerClient = class {
3464
3531
  constructor(options) {
@@ -3492,6 +3559,12 @@ var ServerClient = class {
3492
3559
  onRequestId
3493
3560
  };
3494
3561
  this.commerce = new ServerCommerceClient(serverOptions);
3562
+ const membershipApi = new MembershipApi(serverOptions);
3563
+ this.memberships = {
3564
+ subscribe: membershipApi.subscribe.bind(membershipApi),
3565
+ cancel: membershipApi.cancel.bind(membershipApi),
3566
+ me: membershipApi.me.bind(membershipApi)
3567
+ };
3495
3568
  const tenantIntrospectionApi = new TenantIntrospectionApi(serverOptions);
3496
3569
  this.tenant = {
3497
3570
  collectionSchema: tenantIntrospectionApi.collectionSchema.bind(