@proxima-io/storefront-core 0.3.0 → 0.8.2
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/README.md +68 -17
- package/dist/addresses/address-book.d.ts +36 -0
- package/dist/addresses/address-book.d.ts.map +1 -0
- package/dist/addresses/address-book.js +62 -0
- package/dist/addresses/address-book.js.map +1 -0
- package/dist/analytics/analytics.d.ts +28 -0
- package/dist/analytics/analytics.d.ts.map +1 -0
- package/dist/analytics/analytics.js +124 -0
- package/dist/analytics/analytics.js.map +1 -0
- package/dist/analytics/attribution.d.ts +28 -0
- package/dist/analytics/attribution.d.ts.map +1 -0
- package/dist/analytics/attribution.js +116 -0
- package/dist/analytics/attribution.js.map +1 -0
- package/dist/analytics/session.d.ts +12 -0
- package/dist/analytics/session.d.ts.map +1 -0
- package/dist/analytics/session.js +62 -0
- package/dist/analytics/session.js.map +1 -0
- package/dist/analytics/trackers.d.ts +29 -0
- package/dist/analytics/trackers.d.ts.map +1 -0
- package/dist/analytics/trackers.js +30 -0
- package/dist/analytics/trackers.js.map +1 -0
- package/dist/api/endpoints.d.ts +70 -0
- package/dist/api/endpoints.d.ts.map +1 -0
- package/dist/api/endpoints.js +70 -0
- package/dist/api/endpoints.js.map +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/storefront-client.d.ts +50 -0
- package/dist/api/storefront-client.d.ts.map +1 -0
- package/dist/api/storefront-client.js +123 -0
- package/dist/api/storefront-client.js.map +1 -0
- package/dist/buyer/auth.d.ts +105 -0
- package/dist/buyer/auth.d.ts.map +1 -0
- package/dist/buyer/auth.js +215 -0
- package/dist/buyer/auth.js.map +1 -0
- package/dist/cache/cache.d.ts +31 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +71 -0
- package/dist/cache/cache.js.map +1 -0
- package/dist/campaign/countdown.d.ts +40 -0
- package/dist/campaign/countdown.d.ts.map +1 -0
- package/dist/campaign/countdown.js +71 -0
- package/dist/campaign/countdown.js.map +1 -0
- package/dist/cart/cart.d.ts +57 -0
- package/dist/cart/cart.d.ts.map +1 -0
- package/dist/cart/cart.js +64 -0
- package/dist/cart/cart.js.map +1 -0
- package/dist/catalog/listings.d.ts +87 -0
- package/dist/catalog/listings.d.ts.map +1 -0
- package/dist/catalog/listings.js +140 -0
- package/dist/catalog/listings.js.map +1 -0
- package/dist/cms/payment-methods.d.ts +13 -0
- package/dist/cms/payment-methods.d.ts.map +1 -0
- package/dist/cms/payment-methods.js +41 -0
- package/dist/cms/payment-methods.js.map +1 -0
- package/dist/cms/website.d.ts +76 -0
- package/dist/cms/website.d.ts.map +1 -0
- package/dist/cms/website.js +146 -0
- package/dist/cms/website.js.map +1 -0
- package/dist/cookie-consent/consent.d.ts +22 -0
- package/dist/cookie-consent/consent.d.ts.map +1 -0
- package/dist/cookie-consent/consent.js +93 -0
- package/dist/cookie-consent/consent.js.map +1 -0
- package/dist/index.d.ts +45 -1310
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -1576
- package/dist/index.js.map +1 -1
- package/dist/internal/http.d.ts +5 -0
- package/dist/internal/http.d.ts.map +1 -0
- package/dist/internal/http.js +27 -0
- package/dist/internal/http.js.map +1 -0
- package/dist/orders/guest.d.ts +9 -0
- package/dist/orders/guest.d.ts.map +1 -0
- package/dist/orders/guest.js +30 -0
- package/dist/orders/guest.js.map +1 -0
- package/dist/orders/orders.d.ts +23 -0
- package/dist/orders/orders.d.ts.map +1 -0
- package/dist/orders/orders.js +33 -0
- package/dist/orders/orders.js.map +1 -0
- package/dist/seo/engine-url.d.ts +26 -0
- package/dist/seo/engine-url.d.ts.map +1 -0
- package/dist/seo/engine-url.js +111 -0
- package/dist/seo/engine-url.js.map +1 -0
- package/dist/seo/hreflang.d.ts +19 -0
- package/dist/seo/hreflang.d.ts.map +1 -0
- package/dist/seo/hreflang.js +52 -0
- package/dist/seo/hreflang.js.map +1 -0
- package/dist/seo/indexnow.d.ts +24 -0
- package/dist/seo/indexnow.d.ts.map +1 -0
- package/dist/seo/indexnow.js +50 -0
- package/dist/seo/indexnow.js.map +1 -0
- package/dist/seo/json-ld.d.ts +57 -0
- package/dist/seo/json-ld.d.ts.map +1 -0
- package/dist/seo/json-ld.js +180 -0
- package/dist/seo/json-ld.js.map +1 -0
- package/dist/seo/page-seo.d.ts +21 -0
- package/dist/seo/page-seo.d.ts.map +1 -0
- package/dist/seo/page-seo.js +68 -0
- package/dist/seo/page-seo.js.map +1 -0
- package/dist/seo/robots.d.ts +23 -0
- package/dist/seo/robots.d.ts.map +1 -0
- package/dist/seo/robots.js +35 -0
- package/dist/seo/robots.js.map +1 -0
- package/dist/seo/sitemap.d.ts +35 -0
- package/dist/seo/sitemap.d.ts.map +1 -0
- package/dist/seo/sitemap.js +186 -0
- package/dist/seo/sitemap.js.map +1 -0
- package/dist/server/process.d.ts +136 -0
- package/dist/server/process.d.ts.map +1 -0
- package/dist/server/process.js +143 -0
- package/dist/server/process.js.map +1 -0
- package/dist/types/address.d.ts +40 -0
- package/dist/types/address.d.ts.map +1 -0
- package/dist/types/address.js +2 -0
- package/dist/types/address.js.map +1 -0
- package/dist/types/analytics.d.ts +79 -0
- package/dist/types/analytics.d.ts.map +1 -0
- package/dist/types/analytics.js +2 -0
- package/dist/types/analytics.js.map +1 -0
- package/dist/types/business.d.ts +95 -0
- package/dist/types/business.d.ts.map +1 -0
- package/dist/types/business.js +2 -0
- package/dist/types/business.js.map +1 -0
- package/dist/types/buyer.d.ts +144 -0
- package/dist/types/buyer.d.ts.map +1 -0
- package/dist/types/buyer.js +45 -0
- package/dist/types/buyer.js.map +1 -0
- package/dist/types/campaign.d.ts +51 -0
- package/dist/types/campaign.d.ts.map +1 -0
- package/dist/types/campaign.js +2 -0
- package/dist/types/campaign.js.map +1 -0
- package/dist/types/cart.d.ts +40 -0
- package/dist/types/cart.d.ts.map +1 -0
- package/dist/types/cart.js +2 -0
- package/dist/types/cart.js.map +1 -0
- package/dist/types/catalog.d.ts +164 -0
- package/dist/types/catalog.d.ts.map +1 -0
- package/dist/types/catalog.js +2 -0
- package/dist/types/catalog.js.map +1 -0
- package/dist/types/cms.d.ts +200 -0
- package/dist/types/cms.d.ts.map +1 -0
- package/dist/types/cms.js +2 -0
- package/dist/types/cms.js.map +1 -0
- package/dist/types/cookie-consent.d.ts +18 -0
- package/dist/types/cookie-consent.d.ts.map +1 -0
- package/dist/types/cookie-consent.js +7 -0
- package/dist/types/cookie-consent.js.map +1 -0
- package/dist/types/guest-order.d.ts +16 -0
- package/dist/types/guest-order.d.ts.map +1 -0
- package/dist/types/guest-order.js +9 -0
- package/dist/types/guest-order.js.map +1 -0
- package/dist/types/listing.d.ts +14 -0
- package/dist/types/listing.d.ts.map +1 -0
- package/dist/types/listing.js +2 -0
- package/dist/types/listing.js.map +1 -0
- package/dist/types/order.d.ts +40 -0
- package/dist/types/order.d.ts.map +1 -0
- package/dist/types/order.js +2 -0
- package/dist/types/order.js.map +1 -0
- package/dist/types/seo.d.ts +96 -0
- package/dist/types/seo.d.ts.map +1 -0
- package/dist/types/seo.js +2 -0
- package/dist/types/seo.js.map +1 -0
- package/dist/types/server-env.d.ts +19 -0
- package/dist/types/server-env.d.ts.map +1 -0
- package/dist/types/server-env.js +10 -0
- package/dist/types/server-env.js.map +1 -0
- package/dist/types/wishlist.d.ts +10 -0
- package/dist/types/wishlist.d.ts.map +1 -0
- package/dist/types/wishlist.js +2 -0
- package/dist/types/wishlist.js.map +1 -0
- package/dist/wishlist/wishlist.d.ts +28 -0
- package/dist/wishlist/wishlist.d.ts.map +1 -0
- package/dist/wishlist/wishlist.js +42 -0
- package/dist/wishlist/wishlist.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
export interface ProximaApiConfig {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
domain: string;
|
|
4
|
+
path: string;
|
|
5
|
+
websiteId?: string;
|
|
6
|
+
businessId?: string;
|
|
7
|
+
serviceKey?: string;
|
|
8
|
+
/** UUID of a content variant — when set, composition returns the variant snapshot instead of live content. */
|
|
9
|
+
variantId?: string;
|
|
10
|
+
/** Preview token obtained from the rotate endpoint. Required when variantId is set. */
|
|
11
|
+
previewToken?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ProximaPageSummary {
|
|
14
|
+
name: string;
|
|
15
|
+
path: string;
|
|
16
|
+
resolver_kind: string;
|
|
17
|
+
is_active: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface ProximaWebsiteResponse {
|
|
20
|
+
id: string;
|
|
21
|
+
business_id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
domain: string;
|
|
24
|
+
subdomain_slug?: string | null;
|
|
25
|
+
custom_domain?: string | null;
|
|
26
|
+
publication_status?: string;
|
|
27
|
+
published_at?: string | null;
|
|
28
|
+
delivery_mode: string;
|
|
29
|
+
data_mode?: string | null;
|
|
30
|
+
website_kind: string;
|
|
31
|
+
template_key?: string | null;
|
|
32
|
+
code_profile?: string | null;
|
|
33
|
+
locale: string;
|
|
34
|
+
currency: string;
|
|
35
|
+
og_image_url?: string | null;
|
|
36
|
+
logo_url?: string | null;
|
|
37
|
+
favicon_url?: string | null;
|
|
38
|
+
twitter_handle?: string | null;
|
|
39
|
+
capabilities: Record<string, any>;
|
|
40
|
+
theme_tokens: Record<string, any>;
|
|
41
|
+
animation_config: Record<string, any>;
|
|
42
|
+
pages: ProximaPageSummary[];
|
|
43
|
+
shell_sections?: Record<string, {
|
|
44
|
+
section_id: number;
|
|
45
|
+
section_type: string;
|
|
46
|
+
section_name: string;
|
|
47
|
+
attributes: Record<string, any>;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export interface ProximaCompositionResponse {
|
|
51
|
+
page_id: number;
|
|
52
|
+
website_id: string;
|
|
53
|
+
path: string;
|
|
54
|
+
path_template: string;
|
|
55
|
+
name: string;
|
|
56
|
+
entity_type?: string | null;
|
|
57
|
+
resolver_kind?: string | null;
|
|
58
|
+
route_params: Record<string, string>;
|
|
59
|
+
resolved_data?: Record<string, any> | null;
|
|
60
|
+
sections: Array<{
|
|
61
|
+
id: number;
|
|
62
|
+
name: string;
|
|
63
|
+
type: string;
|
|
64
|
+
order: number;
|
|
65
|
+
attributes: Record<string, any>;
|
|
66
|
+
attributes_meta?: Record<string, any>;
|
|
67
|
+
}>;
|
|
68
|
+
seo?: Record<string, any> | null;
|
|
69
|
+
}
|
|
70
|
+
export interface ProximaProductListResponse {
|
|
71
|
+
items: any[];
|
|
72
|
+
total: number;
|
|
73
|
+
page: number;
|
|
74
|
+
size: number;
|
|
75
|
+
}
|
|
76
|
+
export interface ProximaNavNode {
|
|
77
|
+
id: number;
|
|
78
|
+
slug: string;
|
|
79
|
+
name: string;
|
|
80
|
+
href: string;
|
|
81
|
+
image_url?: string | null;
|
|
82
|
+
product_count: number;
|
|
83
|
+
children: ProximaNavNode[];
|
|
84
|
+
}
|
|
85
|
+
export interface ProximaRenderShell {
|
|
86
|
+
theme: Record<string, any>;
|
|
87
|
+
navigation: {
|
|
88
|
+
nodes: ProximaNavNode[];
|
|
89
|
+
total: number;
|
|
90
|
+
};
|
|
91
|
+
payment_methods: Array<Record<string, any>>;
|
|
92
|
+
locale: string;
|
|
93
|
+
currency: string;
|
|
94
|
+
/** CMS-managed layout sections keyed by type (header, footer, mega_menu). */
|
|
95
|
+
shell_sections?: Record<string, {
|
|
96
|
+
section_id?: number;
|
|
97
|
+
page_id?: number;
|
|
98
|
+
section_type?: string;
|
|
99
|
+
section_name?: string;
|
|
100
|
+
attributes?: Record<string, any>;
|
|
101
|
+
attributes_meta?: Record<string, any>;
|
|
102
|
+
}> | null;
|
|
103
|
+
}
|
|
104
|
+
export interface ProximaRenderPage {
|
|
105
|
+
sections: Array<{
|
|
106
|
+
id: number;
|
|
107
|
+
name: string;
|
|
108
|
+
type: string;
|
|
109
|
+
order: number;
|
|
110
|
+
attributes: Record<string, any>;
|
|
111
|
+
attributes_meta?: Record<string, any>;
|
|
112
|
+
}>;
|
|
113
|
+
seo?: Record<string, any> | null;
|
|
114
|
+
resolver_kind?: string | null;
|
|
115
|
+
resolved_data?: Record<string, any> | null;
|
|
116
|
+
attributes_meta?: Record<string, any> | null;
|
|
117
|
+
requires_auth: boolean;
|
|
118
|
+
/** True when no page matched the path — treat as 404. */
|
|
119
|
+
not_found: boolean;
|
|
120
|
+
}
|
|
121
|
+
export interface ProximaRenderPageSummary {
|
|
122
|
+
name: string;
|
|
123
|
+
path: string;
|
|
124
|
+
localized_paths?: Record<string, string>;
|
|
125
|
+
resolver_kind: string;
|
|
126
|
+
is_active: boolean;
|
|
127
|
+
}
|
|
128
|
+
export interface ProximaRenderWebsite {
|
|
129
|
+
id: string;
|
|
130
|
+
business_id: string;
|
|
131
|
+
name: string;
|
|
132
|
+
domain?: string | null;
|
|
133
|
+
locale: string;
|
|
134
|
+
default_locale?: string;
|
|
135
|
+
enabled_locales?: string[];
|
|
136
|
+
currency: string;
|
|
137
|
+
delivery_mode?: string | null;
|
|
138
|
+
website_kind?: string | null;
|
|
139
|
+
template_key?: string | null;
|
|
140
|
+
code_profile?: string | null;
|
|
141
|
+
og_image_url?: string | null;
|
|
142
|
+
logo_url?: string | null;
|
|
143
|
+
favicon_url?: string | null;
|
|
144
|
+
twitter_handle?: string | null;
|
|
145
|
+
capabilities?: Record<string, any>;
|
|
146
|
+
animation_config?: Record<string, any>;
|
|
147
|
+
pages?: ProximaRenderPageSummary[];
|
|
148
|
+
}
|
|
149
|
+
export interface StorefrontRegFormField {
|
|
150
|
+
name: string;
|
|
151
|
+
label?: string | null;
|
|
152
|
+
required: boolean;
|
|
153
|
+
order: number;
|
|
154
|
+
widget?: string | null;
|
|
155
|
+
widget_config: Record<string, any>;
|
|
156
|
+
options?: string[] | null;
|
|
157
|
+
}
|
|
158
|
+
export interface StorefrontRegFormStep {
|
|
159
|
+
id: string;
|
|
160
|
+
label: string;
|
|
161
|
+
order: number;
|
|
162
|
+
skippable: boolean;
|
|
163
|
+
fields: StorefrontRegFormField[];
|
|
164
|
+
}
|
|
165
|
+
export interface StorefrontRegistrationForm {
|
|
166
|
+
mode: "single_step" | "multi_step";
|
|
167
|
+
steps: StorefrontRegFormStep[];
|
|
168
|
+
post_registration: {
|
|
169
|
+
redirect_to: string;
|
|
170
|
+
show_completion_prompt: boolean;
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export interface ProximaRenderBootstrap {
|
|
174
|
+
categories: Array<{
|
|
175
|
+
id: number;
|
|
176
|
+
name: string;
|
|
177
|
+
slug: string;
|
|
178
|
+
image_url?: string | null;
|
|
179
|
+
}>;
|
|
180
|
+
brands: Array<{
|
|
181
|
+
id: number;
|
|
182
|
+
name: string;
|
|
183
|
+
slug: string;
|
|
184
|
+
logo_url?: string | null;
|
|
185
|
+
}>;
|
|
186
|
+
config?: Record<string, any> | null;
|
|
187
|
+
presence?: Record<string, any> | null;
|
|
188
|
+
registration_form?: StorefrontRegistrationForm | null;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Aggregated SSR response from `GET /api/v1/storefront/render`.
|
|
192
|
+
* Contains everything needed to render any page in a single round-trip.
|
|
193
|
+
*/
|
|
194
|
+
export interface ProximaRenderResponse {
|
|
195
|
+
shell: ProximaRenderShell;
|
|
196
|
+
page: ProximaRenderPage;
|
|
197
|
+
bootstrap: ProximaRenderBootstrap;
|
|
198
|
+
website: ProximaRenderWebsite;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=cms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/types/cms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.js","sourceRoot":"","sources":["../../src/types/cms.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Bump when categories or semantics change to re-prompt returning visitors. */
|
|
2
|
+
export declare const COOKIE_CONSENT_VERSION = 1;
|
|
3
|
+
/** localStorage key for persisted consent. */
|
|
4
|
+
export declare const COOKIE_CONSENT_STORAGE_KEY = "pxa_cookie_consent";
|
|
5
|
+
/** CustomEvent name fired after the shopper saves or updates consent. */
|
|
6
|
+
export declare const COOKIE_CONSENT_CHANGED_EVENT = "pxa:cookie-consent-changed";
|
|
7
|
+
export interface CookieConsentCategories {
|
|
8
|
+
/** Session, cart, auth — always enabled; not configurable. */
|
|
9
|
+
essential: true;
|
|
10
|
+
analytics: boolean;
|
|
11
|
+
marketing: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface CookieConsentState extends CookieConsentCategories {
|
|
14
|
+
version: number;
|
|
15
|
+
/** ISO timestamp when the shopper made their choice. */
|
|
16
|
+
decidedAt: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=cookie-consent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-consent.d.ts","sourceRoot":"","sources":["../../src/types/cookie-consent.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAE/D,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,+BAA+B,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Bump when categories or semantics change to re-prompt returning visitors. */
|
|
2
|
+
export const COOKIE_CONSENT_VERSION = 1;
|
|
3
|
+
/** localStorage key for persisted consent. */
|
|
4
|
+
export const COOKIE_CONSENT_STORAGE_KEY = 'pxa_cookie_consent';
|
|
5
|
+
/** CustomEvent name fired after the shopper saves or updates consent. */
|
|
6
|
+
export const COOKIE_CONSENT_CHANGED_EVENT = 'pxa:cookie-consent-changed';
|
|
7
|
+
//# sourceMappingURL=cookie-consent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-consent.js","sourceRoot":"","sources":["../../src/types/cookie-consent.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;AAE/D,yEAAyE;AACzE,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface GuestOrderPayload {
|
|
2
|
+
session_id: string;
|
|
3
|
+
customer_name: string;
|
|
4
|
+
customer_phone: string;
|
|
5
|
+
customer_email: string;
|
|
6
|
+
shipping_address?: string | null;
|
|
7
|
+
notes?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface GuestOrderResult {
|
|
10
|
+
orderId: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class GuestOrderError extends Error {
|
|
13
|
+
readonly code: "CART_NOT_FOUND" | "OUT_OF_STOCK" | "SERVER_ERROR";
|
|
14
|
+
constructor(code: "CART_NOT_FOUND" | "OUT_OF_STOCK" | "SERVER_ERROR", message: string);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=guest-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-order.d.ts","sourceRoot":"","sources":["../../src/types/guest-order.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,IAAI,EAAE,gBAAgB,GAAG,cAAc,GAAG,cAAc;gBAAxD,IAAI,EAAE,gBAAgB,GAAG,cAAc,GAAG,cAAc,EACxE,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-order.js","sourceRoot":"","sources":["../../src/types/guest-order.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAEtB;IADlB,YACkB,IAAwD,EACxE,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAoD;QAIxE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StorefrontFacetOption, StorefrontProductListingResponse } from './catalog.js';
|
|
2
|
+
export interface ProductListingFilters {
|
|
3
|
+
brand?: string | null;
|
|
4
|
+
category?: string | null;
|
|
5
|
+
price_min?: number | null;
|
|
6
|
+
price_max?: number | null;
|
|
7
|
+
in_stock?: boolean | null;
|
|
8
|
+
}
|
|
9
|
+
export type ProductListingSortOption = "newest" | "price_asc" | "price_desc" | "name_asc";
|
|
10
|
+
/** @deprecated Use StorefrontFacetOption from the main listing types */
|
|
11
|
+
export type ProductFacet = StorefrontFacetOption;
|
|
12
|
+
/** @deprecated Use StorefrontProductListingResponse */
|
|
13
|
+
export type ProductListingResult = StorefrontProductListingResponse;
|
|
14
|
+
//# sourceMappingURL=listing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../../src/types/listing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAE5F,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1F,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAAG,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing.js","sourceRoot":"","sources":["../../src/types/listing.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface OrderItem {
|
|
2
|
+
id: number;
|
|
3
|
+
product_variant_id?: number | null;
|
|
4
|
+
product_id?: number | null;
|
|
5
|
+
product_slug?: string | null;
|
|
6
|
+
product_image?: string | null;
|
|
7
|
+
product_name?: string | null;
|
|
8
|
+
brand_name?: string | null;
|
|
9
|
+
category_name?: string | null;
|
|
10
|
+
sku?: string | null;
|
|
11
|
+
quantity: number;
|
|
12
|
+
price_at_purchase?: number | null;
|
|
13
|
+
/** @deprecated use price_at_purchase */
|
|
14
|
+
unit_price?: number | null;
|
|
15
|
+
/** @deprecated use product_name */
|
|
16
|
+
name?: string | null;
|
|
17
|
+
}
|
|
18
|
+
/** An order placed by a customer. */
|
|
19
|
+
export interface Order {
|
|
20
|
+
id: string;
|
|
21
|
+
order_number?: string | null;
|
|
22
|
+
status: string;
|
|
23
|
+
total_amount?: number | null;
|
|
24
|
+
currency?: string | null;
|
|
25
|
+
customer_name?: string | null;
|
|
26
|
+
customer_phone?: string | null;
|
|
27
|
+
customer_email?: string | null;
|
|
28
|
+
shipping_address?: string | null;
|
|
29
|
+
created_at: string;
|
|
30
|
+
items?: OrderItem[];
|
|
31
|
+
/** @deprecated use total_amount */
|
|
32
|
+
total?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface OrderListResponse {
|
|
35
|
+
items: Order[];
|
|
36
|
+
total: number;
|
|
37
|
+
page: number;
|
|
38
|
+
size: number;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/types/order.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/types/order.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export interface PageSeoMeta {
|
|
2
|
+
/** `<title>` tag content */
|
|
3
|
+
title: string;
|
|
4
|
+
/** `meta[name="description"]` */
|
|
5
|
+
description: string;
|
|
6
|
+
/** og:title */
|
|
7
|
+
ogTitle: string;
|
|
8
|
+
/** og:description */
|
|
9
|
+
ogDescription: string;
|
|
10
|
+
/** og:image and twitter:image — null when no image is available */
|
|
11
|
+
ogImage: string | null;
|
|
12
|
+
/** og:type — "website" | "product" */
|
|
13
|
+
ogType: string;
|
|
14
|
+
/** og:site_name */
|
|
15
|
+
ogSiteName: string;
|
|
16
|
+
/** og:url and link[rel="canonical"] */
|
|
17
|
+
canonicalUrl: string;
|
|
18
|
+
/** meta[name="robots"] — "index, follow" | "noindex, nofollow" */
|
|
19
|
+
robots: string;
|
|
20
|
+
/** twitter:card */
|
|
21
|
+
twitterCard: string;
|
|
22
|
+
/** twitter:site — "@handle" or null */
|
|
23
|
+
twitterSite: string | null;
|
|
24
|
+
/** twitter:image — mirrors ogImage */
|
|
25
|
+
twitterImage: string | null;
|
|
26
|
+
/** link[rel="icon"] — null when not set */
|
|
27
|
+
faviconUrl: string | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Minimal website surface required by `buildPageSeo()`.
|
|
31
|
+
* Both `ProximaWebsiteResponse` and the storefront's `ResolvedWebsite` satisfy this.
|
|
32
|
+
*/
|
|
33
|
+
export interface PageSeoWebsiteMeta {
|
|
34
|
+
name: string;
|
|
35
|
+
og_image_url?: string | null;
|
|
36
|
+
favicon_url?: string | null;
|
|
37
|
+
twitter_handle?: string | null;
|
|
38
|
+
}
|
|
39
|
+
export interface JsonLdWebsiteMeta {
|
|
40
|
+
name: string;
|
|
41
|
+
domain: string;
|
|
42
|
+
logo_url?: string | null;
|
|
43
|
+
twitter_handle?: string | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Minimal product surface required by `buildProductJsonLd()`.
|
|
47
|
+
*/
|
|
48
|
+
export interface JsonLdProductMeta {
|
|
49
|
+
name: string;
|
|
50
|
+
slug: string;
|
|
51
|
+
description?: string | null;
|
|
52
|
+
image?: string | null;
|
|
53
|
+
images?: (string | null | undefined)[] | null;
|
|
54
|
+
sku?: string | null;
|
|
55
|
+
brand?: string | null;
|
|
56
|
+
productId?: number | string | null;
|
|
57
|
+
priceRaw: number;
|
|
58
|
+
compareAtPrice?: number | null;
|
|
59
|
+
inStock?: boolean | null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A single breadcrumb item.
|
|
63
|
+
*/
|
|
64
|
+
export interface BreadcrumbItem {
|
|
65
|
+
label: string;
|
|
66
|
+
/** Relative or absolute href — omit for the last (current) item */
|
|
67
|
+
href?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface JsonLdLocalBusinessMeta {
|
|
70
|
+
name: string;
|
|
71
|
+
url: string;
|
|
72
|
+
image?: string | null;
|
|
73
|
+
telephone?: string | null;
|
|
74
|
+
street_address?: string | null;
|
|
75
|
+
address_locality?: string | null;
|
|
76
|
+
address_region?: string | null;
|
|
77
|
+
postal_code?: string | null;
|
|
78
|
+
address_country?: string | null;
|
|
79
|
+
latitude?: number | null;
|
|
80
|
+
longitude?: number | null;
|
|
81
|
+
opening_hours?: string[] | null;
|
|
82
|
+
opens?: string | null;
|
|
83
|
+
closes?: string | null;
|
|
84
|
+
social_links?: string[] | null;
|
|
85
|
+
}
|
|
86
|
+
export interface SitemapWebsiteMeta {
|
|
87
|
+
domain: string;
|
|
88
|
+
default_locale?: string;
|
|
89
|
+
enabled_locales?: string[];
|
|
90
|
+
pages?: Array<{
|
|
91
|
+
resolver_kind: string;
|
|
92
|
+
path?: string | null;
|
|
93
|
+
localized_paths?: Record<string, string> | null;
|
|
94
|
+
}> | null;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=seo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/types/seo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/types/seo.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|