@proxima-io/storefront-core 0.3.0 → 0.8.1

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 (170) hide show
  1. package/README.md +23 -17
  2. package/dist/addresses/address-book.d.ts +36 -0
  3. package/dist/addresses/address-book.d.ts.map +1 -0
  4. package/dist/addresses/address-book.js +62 -0
  5. package/dist/addresses/address-book.js.map +1 -0
  6. package/dist/analytics/analytics.d.ts +28 -0
  7. package/dist/analytics/analytics.d.ts.map +1 -0
  8. package/dist/analytics/analytics.js +124 -0
  9. package/dist/analytics/analytics.js.map +1 -0
  10. package/dist/analytics/attribution.d.ts +28 -0
  11. package/dist/analytics/attribution.d.ts.map +1 -0
  12. package/dist/analytics/attribution.js +116 -0
  13. package/dist/analytics/attribution.js.map +1 -0
  14. package/dist/analytics/session.d.ts +12 -0
  15. package/dist/analytics/session.d.ts.map +1 -0
  16. package/dist/analytics/session.js +62 -0
  17. package/dist/analytics/session.js.map +1 -0
  18. package/dist/analytics/trackers.d.ts +29 -0
  19. package/dist/analytics/trackers.d.ts.map +1 -0
  20. package/dist/analytics/trackers.js +30 -0
  21. package/dist/analytics/trackers.js.map +1 -0
  22. package/dist/api/endpoints.d.ts +70 -0
  23. package/dist/api/endpoints.d.ts.map +1 -0
  24. package/dist/api/endpoints.js +70 -0
  25. package/dist/api/endpoints.js.map +1 -0
  26. package/dist/api/index.d.ts +3 -0
  27. package/dist/api/index.d.ts.map +1 -0
  28. package/dist/api/index.js +3 -0
  29. package/dist/api/index.js.map +1 -0
  30. package/dist/api/storefront-client.d.ts +50 -0
  31. package/dist/api/storefront-client.d.ts.map +1 -0
  32. package/dist/api/storefront-client.js +123 -0
  33. package/dist/api/storefront-client.js.map +1 -0
  34. package/dist/buyer/auth.d.ts +105 -0
  35. package/dist/buyer/auth.d.ts.map +1 -0
  36. package/dist/buyer/auth.js +215 -0
  37. package/dist/buyer/auth.js.map +1 -0
  38. package/dist/cache/cache.d.ts +31 -0
  39. package/dist/cache/cache.d.ts.map +1 -0
  40. package/dist/cache/cache.js +71 -0
  41. package/dist/cache/cache.js.map +1 -0
  42. package/dist/campaign/countdown.d.ts +40 -0
  43. package/dist/campaign/countdown.d.ts.map +1 -0
  44. package/dist/campaign/countdown.js +71 -0
  45. package/dist/campaign/countdown.js.map +1 -0
  46. package/dist/cart/cart.d.ts +57 -0
  47. package/dist/cart/cart.d.ts.map +1 -0
  48. package/dist/cart/cart.js +64 -0
  49. package/dist/cart/cart.js.map +1 -0
  50. package/dist/catalog/listings.d.ts +87 -0
  51. package/dist/catalog/listings.d.ts.map +1 -0
  52. package/dist/catalog/listings.js +140 -0
  53. package/dist/catalog/listings.js.map +1 -0
  54. package/dist/cms/payment-methods.d.ts +13 -0
  55. package/dist/cms/payment-methods.d.ts.map +1 -0
  56. package/dist/cms/payment-methods.js +41 -0
  57. package/dist/cms/payment-methods.js.map +1 -0
  58. package/dist/cms/website.d.ts +74 -0
  59. package/dist/cms/website.d.ts.map +1 -0
  60. package/dist/cms/website.js +144 -0
  61. package/dist/cms/website.js.map +1 -0
  62. package/dist/cookie-consent/consent.d.ts +22 -0
  63. package/dist/cookie-consent/consent.d.ts.map +1 -0
  64. package/dist/cookie-consent/consent.js +93 -0
  65. package/dist/cookie-consent/consent.js.map +1 -0
  66. package/dist/index.d.ts +43 -1310
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +40 -1576
  69. package/dist/index.js.map +1 -1
  70. package/dist/internal/http.d.ts +5 -0
  71. package/dist/internal/http.d.ts.map +1 -0
  72. package/dist/internal/http.js +27 -0
  73. package/dist/internal/http.js.map +1 -0
  74. package/dist/orders/guest.d.ts +9 -0
  75. package/dist/orders/guest.d.ts.map +1 -0
  76. package/dist/orders/guest.js +30 -0
  77. package/dist/orders/guest.js.map +1 -0
  78. package/dist/orders/orders.d.ts +23 -0
  79. package/dist/orders/orders.d.ts.map +1 -0
  80. package/dist/orders/orders.js +33 -0
  81. package/dist/orders/orders.js.map +1 -0
  82. package/dist/seo/indexnow.d.ts +24 -0
  83. package/dist/seo/indexnow.d.ts.map +1 -0
  84. package/dist/seo/indexnow.js +50 -0
  85. package/dist/seo/indexnow.js.map +1 -0
  86. package/dist/seo/json-ld.d.ts +52 -0
  87. package/dist/seo/json-ld.d.ts.map +1 -0
  88. package/dist/seo/json-ld.js +175 -0
  89. package/dist/seo/json-ld.js.map +1 -0
  90. package/dist/seo/page-seo.d.ts +21 -0
  91. package/dist/seo/page-seo.d.ts.map +1 -0
  92. package/dist/seo/page-seo.js +68 -0
  93. package/dist/seo/page-seo.js.map +1 -0
  94. package/dist/seo/robots.d.ts +23 -0
  95. package/dist/seo/robots.d.ts.map +1 -0
  96. package/dist/seo/robots.js +35 -0
  97. package/dist/seo/robots.js.map +1 -0
  98. package/dist/seo/sitemap.d.ts +35 -0
  99. package/dist/seo/sitemap.d.ts.map +1 -0
  100. package/dist/seo/sitemap.js +131 -0
  101. package/dist/seo/sitemap.js.map +1 -0
  102. package/dist/server/process.d.ts +136 -0
  103. package/dist/server/process.d.ts.map +1 -0
  104. package/dist/server/process.js +143 -0
  105. package/dist/server/process.js.map +1 -0
  106. package/dist/types/address.d.ts +40 -0
  107. package/dist/types/address.d.ts.map +1 -0
  108. package/dist/types/address.js +2 -0
  109. package/dist/types/address.js.map +1 -0
  110. package/dist/types/analytics.d.ts +79 -0
  111. package/dist/types/analytics.d.ts.map +1 -0
  112. package/dist/types/analytics.js +2 -0
  113. package/dist/types/analytics.js.map +1 -0
  114. package/dist/types/business.d.ts +95 -0
  115. package/dist/types/business.d.ts.map +1 -0
  116. package/dist/types/business.js +2 -0
  117. package/dist/types/business.js.map +1 -0
  118. package/dist/types/buyer.d.ts +144 -0
  119. package/dist/types/buyer.d.ts.map +1 -0
  120. package/dist/types/buyer.js +45 -0
  121. package/dist/types/buyer.js.map +1 -0
  122. package/dist/types/campaign.d.ts +51 -0
  123. package/dist/types/campaign.d.ts.map +1 -0
  124. package/dist/types/campaign.js +2 -0
  125. package/dist/types/campaign.js.map +1 -0
  126. package/dist/types/cart.d.ts +40 -0
  127. package/dist/types/cart.d.ts.map +1 -0
  128. package/dist/types/cart.js +2 -0
  129. package/dist/types/cart.js.map +1 -0
  130. package/dist/types/catalog.d.ts +164 -0
  131. package/dist/types/catalog.d.ts.map +1 -0
  132. package/dist/types/catalog.js +2 -0
  133. package/dist/types/catalog.js.map +1 -0
  134. package/dist/types/cms.d.ts +196 -0
  135. package/dist/types/cms.d.ts.map +1 -0
  136. package/dist/types/cms.js +2 -0
  137. package/dist/types/cms.js.map +1 -0
  138. package/dist/types/cookie-consent.d.ts +18 -0
  139. package/dist/types/cookie-consent.d.ts.map +1 -0
  140. package/dist/types/cookie-consent.js +7 -0
  141. package/dist/types/cookie-consent.js.map +1 -0
  142. package/dist/types/guest-order.d.ts +16 -0
  143. package/dist/types/guest-order.d.ts.map +1 -0
  144. package/dist/types/guest-order.js +9 -0
  145. package/dist/types/guest-order.js.map +1 -0
  146. package/dist/types/listing.d.ts +14 -0
  147. package/dist/types/listing.d.ts.map +1 -0
  148. package/dist/types/listing.js +2 -0
  149. package/dist/types/listing.js.map +1 -0
  150. package/dist/types/order.d.ts +40 -0
  151. package/dist/types/order.d.ts.map +1 -0
  152. package/dist/types/order.js +2 -0
  153. package/dist/types/order.js.map +1 -0
  154. package/dist/types/seo.d.ts +93 -0
  155. package/dist/types/seo.d.ts.map +1 -0
  156. package/dist/types/seo.js +2 -0
  157. package/dist/types/seo.js.map +1 -0
  158. package/dist/types/server-env.d.ts +19 -0
  159. package/dist/types/server-env.d.ts.map +1 -0
  160. package/dist/types/server-env.js +10 -0
  161. package/dist/types/server-env.js.map +1 -0
  162. package/dist/types/wishlist.d.ts +10 -0
  163. package/dist/types/wishlist.d.ts.map +1 -0
  164. package/dist/types/wishlist.js +2 -0
  165. package/dist/types/wishlist.js.map +1 -0
  166. package/dist/wishlist/wishlist.d.ts +28 -0
  167. package/dist/wishlist/wishlist.d.ts.map +1 -0
  168. package/dist/wishlist/wishlist.js +42 -0
  169. package/dist/wishlist/wishlist.js.map +1 -0
  170. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Environment variables needed by server-side `process*` helpers.
3
+ * Typically populated from `import.meta.env` in an Astro API route.
4
+ */
5
+ export interface BuyerServerEnv {
6
+ apiUrl: string;
7
+ domain: string;
8
+ serviceKey?: string;
9
+ }
10
+ /** Recommended options for the buyer session cookie. Apply to both `buyer_token` and `buyer_refresh_token`. */
11
+ export declare const BUYER_COOKIE_OPTIONS: {
12
+ readonly path: "/";
13
+ readonly httpOnly: true;
14
+ readonly sameSite: "lax";
15
+ readonly maxAge: number;
16
+ };
17
+ export declare const BUYER_COOKIE_NAME = "buyer_token";
18
+ export declare const BUYER_REFRESH_COOKIE_NAME = "buyer_refresh_token";
19
+ //# sourceMappingURL=server-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-env.d.ts","sourceRoot":"","sources":["../../src/types/server-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+GAA+G;AAC/G,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAEX,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,yBAAyB,wBAAwB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Recommended options for the buyer session cookie. Apply to both `buyer_token` and `buyer_refresh_token`. */
2
+ export const BUYER_COOKIE_OPTIONS = {
3
+ path: "/",
4
+ httpOnly: true,
5
+ sameSite: "lax",
6
+ maxAge: 60 * 60 * 24 * 7,
7
+ };
8
+ export const BUYER_COOKIE_NAME = "buyer_token";
9
+ export const BUYER_REFRESH_COOKIE_NAME = "buyer_refresh_token";
10
+ //# sourceMappingURL=server-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-env.js","sourceRoot":"","sources":["../../src/types/server-env.ts"],"names":[],"mappings":"AAUA,+GAA+G;AAC/G,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAc;IACxB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAChB,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface WishlistItem {
2
+ id: number;
3
+ customer_id: number;
4
+ business_id: string;
5
+ product_id: string;
6
+ variant_id: string | null;
7
+ notes: string | null;
8
+ added_at: string;
9
+ }
10
+ //# sourceMappingURL=wishlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wishlist.d.ts","sourceRoot":"","sources":["../../src/types/wishlist.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wishlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wishlist.js","sourceRoot":"","sources":["../../src/types/wishlist.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { ProximaApiConfig, ProximaWebsiteResponse } from '../types/cms.js';
2
+ import type { WishlistItem } from '../types/wishlist.js';
3
+ /**
4
+ * Fetch all wishlist items for the authenticated customer.
5
+ * Returns an empty array if the wishlist is empty.
6
+ */
7
+ export declare function fetchWishlist(config: Pick<ProximaApiConfig, "baseUrl">, website: Pick<ProximaWebsiteResponse, "business_id">, params: {
8
+ token: string;
9
+ }): Promise<WishlistItem[]>;
10
+ /**
11
+ * Add a product to the wishlist. Idempotent — if the product is already
12
+ * in the wishlist, returns the existing item without creating a duplicate.
13
+ */
14
+ export declare function addToWishlist(config: Pick<ProximaApiConfig, "baseUrl">, website: Pick<ProximaWebsiteResponse, "business_id">, params: {
15
+ token: string;
16
+ productId: string;
17
+ variantId?: string | null;
18
+ notes?: string | null;
19
+ }): Promise<WishlistItem>;
20
+ /**
21
+ * Remove a product from the wishlist.
22
+ * Throws { status: 404 } if the product was not in the wishlist.
23
+ */
24
+ export declare function removeFromWishlist(config: Pick<ProximaApiConfig, "baseUrl">, website: Pick<ProximaWebsiteResponse, "business_id">, params: {
25
+ token: string;
26
+ productId: string;
27
+ }): Promise<void>;
28
+ //# sourceMappingURL=wishlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wishlist.d.ts","sourceRoot":"","sources":["../../src/wishlist/wishlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EACzC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,EACpD,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC,CAMzB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EACzC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,EACpD,MAAM,EAAE;IACN,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GACA,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EACzC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,EACpD,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -0,0 +1,42 @@
1
+ import { StorefrontEndpoints, createStorefrontClient } from '../api/index.js';
2
+ // ---------------------------------------------------------------------------
3
+ // Wishlist
4
+ // ---------------------------------------------------------------------------
5
+ /**
6
+ * Fetch all wishlist items for the authenticated customer.
7
+ * Returns an empty array if the wishlist is empty.
8
+ */
9
+ export async function fetchWishlist(config, website, params) {
10
+ const client = createStorefrontClient(config);
11
+ return client.get(StorefrontEndpoints.buyer.wishlist(), {
12
+ businessId: website.business_id,
13
+ token: params.token,
14
+ });
15
+ }
16
+ /**
17
+ * Add a product to the wishlist. Idempotent — if the product is already
18
+ * in the wishlist, returns the existing item without creating a duplicate.
19
+ */
20
+ export async function addToWishlist(config, website, params) {
21
+ const client = createStorefrontClient(config);
22
+ return client.post(StorefrontEndpoints.buyer.wishlist(), {
23
+ product_id: params.productId,
24
+ variant_id: params.variantId ?? null,
25
+ notes: params.notes ?? null,
26
+ }, {
27
+ businessId: website.business_id,
28
+ token: params.token,
29
+ });
30
+ }
31
+ /**
32
+ * Remove a product from the wishlist.
33
+ * Throws { status: 404 } if the product was not in the wishlist.
34
+ */
35
+ export async function removeFromWishlist(config, website, params) {
36
+ const client = createStorefrontClient(config);
37
+ await client.delete(StorefrontEndpoints.buyer.wishlistItem(params.productId), {
38
+ businessId: website.business_id,
39
+ token: params.token,
40
+ });
41
+ }
42
+ //# sourceMappingURL=wishlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wishlist.js","sourceRoot":"","sources":["../../src/wishlist/wishlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAI9E,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAyC,EACzC,OAAoD,EACpD,MAAyB;IAEzB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAiB,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;QACtE,UAAU,EAAE,OAAO,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAyC,EACzC,OAAoD,EACpD,MAKC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,IAAI,CAChB,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,EACpC;QACE,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,UAAU,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACpC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;KAC5B,EACD;QACE,UAAU,EAAE,OAAO,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAyC,EACzC,OAAoD,EACpD,MAA4C;IAE5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC5E,UAAU,EAAE,OAAO,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxima-io/storefront-core",
3
- "version": "0.3.0",
3
+ "version": "0.8.1",
4
4
  "type": "module",
5
5
  "description": "HTTP client for the Proxima API — website resolution, CMS composition, and product listing.",
6
6
  "license": "MIT",