@brytdesigns/shopify-ajax-cart 1.0.37 → 1.0.39
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/dist/esm/index.js +62 -36
- package/dist/esm/index.js.map +1 -1
- package/dist/main/const.js +8 -0
- package/dist/main/const.js.map +1 -0
- package/dist/main/index.d.ts +1 -0
- package/dist/main/index.js +5 -3
- package/dist/main/index.js.map +1 -1
- package/dist/main/mutations/addItems.js +2 -1
- package/dist/main/mutations/addItems.js.map +1 -1
- package/dist/main/mutations/clearCart.js +2 -1
- package/dist/main/mutations/clearCart.js.map +1 -1
- package/dist/main/mutations/removeItems.js +10 -6
- package/dist/main/mutations/removeItems.js.map +1 -1
- package/dist/main/mutations/replaceItem.js +21 -14
- package/dist/main/mutations/replaceItem.js.map +1 -1
- package/dist/main/mutations/updateAttributes.js +7 -3
- package/dist/main/mutations/updateAttributes.js.map +1 -1
- package/dist/main/mutations/updateDiscounts.js +7 -3
- package/dist/main/mutations/updateDiscounts.js.map +1 -1
- package/dist/main/mutations/updateItem.js +3 -1
- package/dist/main/mutations/updateItem.js.map +1 -1
- package/dist/main/mutations/updateNote.js +7 -3
- package/dist/main/mutations/updateNote.js.map +1 -1
- package/dist/main/query/cart.js +2 -1
- package/dist/main/query/cart.js.map +1 -1
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -35,6 +35,12 @@ var client_default = client;
|
|
|
35
35
|
var API = createAjaxCartApi({ debug: window?.BrytDesigns?.debug });
|
|
36
36
|
var api_default = API;
|
|
37
37
|
|
|
38
|
+
// src/const.ts
|
|
39
|
+
var LIBRARY_SOURCE_KEY = "x-library-source";
|
|
40
|
+
var DEFAULT_HEADERS = {
|
|
41
|
+
[LIBRARY_SOURCE_KEY]: "brytdesigns-shopify-ajax-cart"
|
|
42
|
+
};
|
|
43
|
+
|
|
38
44
|
// src/query/cart.ts
|
|
39
45
|
var KEY = "cart";
|
|
40
46
|
var invalidate = () => client_default.invalidateQueries({ queryKey: [KEY] });
|
|
@@ -45,7 +51,7 @@ var query = useQuery(
|
|
|
45
51
|
() => ({
|
|
46
52
|
queryKey: [KEY],
|
|
47
53
|
async queryFn({ signal }) {
|
|
48
|
-
const cart = await api_default.get({}, { signal });
|
|
54
|
+
const cart = await api_default.get({}, { signal, headers: DEFAULT_HEADERS });
|
|
49
55
|
if (cart?.error || !cart?.data) {
|
|
50
56
|
throw cart.error;
|
|
51
57
|
}
|
|
@@ -68,7 +74,7 @@ __export(addItems_exports, {
|
|
|
68
74
|
var mutation = useMutation(
|
|
69
75
|
() => ({
|
|
70
76
|
mutationFn: async (items) => {
|
|
71
|
-
const response = await api_default.add({ items });
|
|
77
|
+
const response = await api_default.add({ items }, { headers: DEFAULT_HEADERS });
|
|
72
78
|
if (response?.error || !response.data) {
|
|
73
79
|
throw response?.error;
|
|
74
80
|
}
|
|
@@ -89,12 +95,15 @@ __export(removeItems_exports, {
|
|
|
89
95
|
var mutation2 = useMutation(
|
|
90
96
|
() => ({
|
|
91
97
|
mutationFn: async (items) => {
|
|
92
|
-
const response = await api_default.update(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
const response = await api_default.update(
|
|
99
|
+
{
|
|
100
|
+
updates: items.reduce(
|
|
101
|
+
(updates, key) => ({ ...updates, [key]: 0 }),
|
|
102
|
+
{}
|
|
103
|
+
)
|
|
104
|
+
},
|
|
105
|
+
{ headers: DEFAULT_HEADERS }
|
|
106
|
+
);
|
|
98
107
|
if (response?.error || !response.data) {
|
|
99
108
|
throw response?.error;
|
|
100
109
|
}
|
|
@@ -130,9 +139,12 @@ __export(updateAttributes_exports, {
|
|
|
130
139
|
var mutation3 = useMutation(
|
|
131
140
|
() => ({
|
|
132
141
|
mutationFn: async (attributes) => {
|
|
133
|
-
const response = await api_default.update(
|
|
134
|
-
|
|
135
|
-
|
|
142
|
+
const response = await api_default.update(
|
|
143
|
+
{
|
|
144
|
+
attributes
|
|
145
|
+
},
|
|
146
|
+
{ headers: DEFAULT_HEADERS }
|
|
147
|
+
);
|
|
136
148
|
if (response.error) {
|
|
137
149
|
throw response.error;
|
|
138
150
|
}
|
|
@@ -170,9 +182,12 @@ __export(updateDiscounts_exports, {
|
|
|
170
182
|
var mutation4 = useMutation(
|
|
171
183
|
() => ({
|
|
172
184
|
mutationFn: async (discounts) => {
|
|
173
|
-
const response = await api_default.update(
|
|
174
|
-
|
|
175
|
-
|
|
185
|
+
const response = await api_default.update(
|
|
186
|
+
{
|
|
187
|
+
discount: discounts
|
|
188
|
+
},
|
|
189
|
+
{ headers: DEFAULT_HEADERS }
|
|
190
|
+
);
|
|
176
191
|
if (response.error) {
|
|
177
192
|
throw response.error;
|
|
178
193
|
}
|
|
@@ -209,7 +224,7 @@ var createIsItemCheck = (input) => (item, index) => {
|
|
|
209
224
|
var mutation5 = useMutation(
|
|
210
225
|
() => ({
|
|
211
226
|
mutationFn: async (item) => {
|
|
212
|
-
const response = await api_default.change(item);
|
|
227
|
+
const response = await api_default.change(item, { headers: DEFAULT_HEADERS });
|
|
213
228
|
if (response?.error || !response.data) {
|
|
214
229
|
throw response?.error;
|
|
215
230
|
}
|
|
@@ -228,6 +243,7 @@ var mutation5 = useMutation(
|
|
|
228
243
|
return total + i.quantity;
|
|
229
244
|
}, 0),
|
|
230
245
|
items: old.items.map((i, index) => {
|
|
246
|
+
console.log("Updating item:", item, i);
|
|
231
247
|
if (isItemCheck(i, index)) {
|
|
232
248
|
return {
|
|
233
249
|
...i,
|
|
@@ -263,9 +279,12 @@ __export(updateNote_exports, {
|
|
|
263
279
|
var mutation6 = useMutation(
|
|
264
280
|
() => ({
|
|
265
281
|
mutationFn: async (note) => {
|
|
266
|
-
const response = await api_default.update(
|
|
267
|
-
|
|
268
|
-
|
|
282
|
+
const response = await api_default.update(
|
|
283
|
+
{
|
|
284
|
+
note
|
|
285
|
+
},
|
|
286
|
+
{ headers: DEFAULT_HEADERS }
|
|
287
|
+
);
|
|
269
288
|
if (response.error) {
|
|
270
289
|
throw response.error;
|
|
271
290
|
}
|
|
@@ -300,7 +319,7 @@ __export(clearCart_exports, {
|
|
|
300
319
|
var mutation7 = useMutation(
|
|
301
320
|
() => ({
|
|
302
321
|
mutationFn: async () => {
|
|
303
|
-
const response = await api_default.clear({});
|
|
322
|
+
const response = await api_default.clear({}, { headers: DEFAULT_HEADERS });
|
|
304
323
|
if (response.error) {
|
|
305
324
|
throw response.error;
|
|
306
325
|
}
|
|
@@ -350,21 +369,27 @@ var mutation8 = useMutation(
|
|
|
350
369
|
},
|
|
351
370
|
selling_plan: currentItem?.selling_plan_allocation?.selling_plan.id || void 0
|
|
352
371
|
};
|
|
353
|
-
await api_default.change(
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
372
|
+
await api_default.change(
|
|
373
|
+
{
|
|
374
|
+
id: item.key,
|
|
375
|
+
quantity: 0
|
|
376
|
+
},
|
|
377
|
+
{ headers: DEFAULT_HEADERS }
|
|
378
|
+
);
|
|
379
|
+
const response = await api_default.add(
|
|
380
|
+
{
|
|
381
|
+
items: [
|
|
382
|
+
{
|
|
383
|
+
id: item.id,
|
|
384
|
+
...tempValues,
|
|
385
|
+
properties: {
|
|
386
|
+
...tempValues.properties
|
|
387
|
+
}
|
|
364
388
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
389
|
+
]
|
|
390
|
+
},
|
|
391
|
+
{ headers: DEFAULT_HEADERS }
|
|
392
|
+
);
|
|
368
393
|
if (response?.error || !response.data) {
|
|
369
394
|
throw response?.error;
|
|
370
395
|
}
|
|
@@ -503,10 +528,11 @@ window.fetch = async function(...args) {
|
|
|
503
528
|
headers: input.headers
|
|
504
529
|
};
|
|
505
530
|
}
|
|
506
|
-
|
|
507
|
-
|
|
531
|
+
const request = new Request(...args);
|
|
532
|
+
if (request.headers.has(LIBRARY_SOURCE_KEY) && request.headers.get(LIBRARY_SOURCE_KEY) === DEFAULT_HEADERS[LIBRARY_SOURCE_KEY])
|
|
533
|
+
return oldFetch(request);
|
|
508
534
|
cart_exports.cancel();
|
|
509
|
-
return oldFetch(
|
|
535
|
+
return oldFetch(request).finally(() => cart_exports.invalidate());
|
|
510
536
|
};
|
|
511
537
|
if (!window.BrytDesigns) window.BrytDesigns = {};
|
|
512
538
|
window.BrytDesigns.cart = AjaxCart;
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query/cart.ts","../../src/client.ts","../../src/api.ts","../../src/mutations/addItems.ts","../../src/mutations/removeItems.ts","../../src/mutations/updateAttributes.ts","../../src/mutations/updateDiscounts.ts","../../src/mutations/updateItem.ts","../../src/mutations/updateNote.ts","../../src/mutations/clearCart.ts","../../src/mutations/replaceItem.ts","../../src/utils.ts","../../src/index.ts"],"names":["mutation","useMutation"],"mappings":"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","file":"index.js","sourcesContent":["import type { CartData } from \"../types\";\n\nimport { useQuery } from \"@tanstack/solid-query\";\nimport { validateCart } from \"@brytdesigns/shopify-ajax-cart-api\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\n\nexport const KEY = \"cart\";\nexport const invalidate = () => client.invalidateQueries({ queryKey: [KEY] });\nexport const set = (cb: (data: CartData) => CartData) =>\n client.setQueryData([KEY], cb);\nexport const cancel = async () => client.cancelQueries({ queryKey: [KEY] });\nexport const get = () => client.getQueryData([KEY]) as CartData;\n\nexport const query = useQuery(\n () => ({\n queryKey: [KEY],\n async queryFn({ signal }) {\n const cart = await API.get({}, { signal });\n if (cart?.error || !cart?.data) {\n throw cart.error;\n }\n return cart.data;\n },\n initialData: validateCart(window.BrytDesigns.initialCart),\n refetchOnMount: \"always\",\n staleTime: 1000 * 60 * 5,\n throwOnError: true,\n reconcile: \"id\",\n }),\n () => client,\n);\n","import { QueryClient } from \"@tanstack/solid-query\";\nimport { persistQueryClient } from \"@tanstack/solid-query-persist-client\";\nimport { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport lz from \"lz-string\";\n\nconst client = new QueryClient();\n\npersistQueryClient({\n queryClient: client,\n persister: createSyncStoragePersister({\n storage: window.localStorage,\n serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),\n deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),\n key: \"brytdesigns-ajax-cart\",\n }),\n});\n\nexport default client;\n","import { createAjaxCartApi } from \"@brytdesigns/shopify-ajax-cart-api\";\n\n/**\n * @internal\n */\nconst API = createAjaxCartApi({ debug: window?.BrytDesigns?.debug });\n\nexport default API;\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = Parameters<typeof API.add>[0][\"items\"][number];\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.add({ items });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.update({\n updates: items.reduce(\n (updates, key) =>\n ({ ...updates, [key]: 0 }) as Record<string, number>,\n {},\n ),\n });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(items) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items\n .filter((item) => items.includes(item.key))\n .reduce((total, item) => total + item.quantity, 0),\n items: old.items.filter((item) => !items.includes(item.key)),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = NonNullable<Parameters<typeof API.update>[0][\"attributes\"]>;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (attributes: Input) => {\n const response = await API.update({\n attributes,\n });\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(attributes) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n attributes: {\n ...old.attributes,\n ...attributes,\n },\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (discounts: Input[]) => {\n const response = await API.update({\n discount: discounts,\n });\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n onError() {\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = Parameters<typeof API.change>[0];\n\ntype CartItem = NonNullable<\n Awaited<ReturnType<typeof API.get>>[\"data\"]\n>[\"items\"][number];\n\nconst createIsItemCheck = (input: Input) => (item: CartItem, index: number) => {\n if (\"id\" in input && input.id === `${item.id}`) {\n return true;\n }\n if (\"key\" in input && input.key === item.key) {\n return true;\n }\n if (\"line\" in input && input.line === index + 1) {\n return true;\n }\n return false;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const response = await API.change(item);\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(item) {\n await Cart.cancel();\n const previousCart = Cart.get();\n const isItemCheck = createIsItemCheck(item);\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items.reduce((total, i, index) => {\n if (isItemCheck(i, index)) {\n return (\n total +\n (typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity)\n );\n }\n return total + i.quantity;\n }, 0),\n items: old.items.map((i, index) => {\n if (isItemCheck(i, index)) {\n return {\n ...i,\n quantity:\n typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity,\n properties: {\n ...item.properties,\n ...i.properties,\n },\n };\n }\n return i;\n }),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (note: string | null) => {\n const response = await API.update({\n note,\n });\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(note) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n note,\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async () => {\n const response = await API.clear({});\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate() {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n item_count: 0,\n items: [],\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\n\nexport type Input = {\n key: string;\n id: string | number;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const cart = Cart.get();\n const currentItem = cart.items.find((i) => i.key === item.key);\n if (!currentItem) {\n throw new Error(\n `Item with provided key of ${item.key} does not exists!`,\n );\n }\n\n const tempValues = {\n quantity: currentItem.quantity,\n properties: {\n ...currentItem.properties,\n },\n selling_plan:\n currentItem?.selling_plan_allocation?.selling_plan.id || undefined,\n } as const;\n\n await API.change({\n id: item.key,\n quantity: 0,\n });\n const response = await API.add({\n items: [\n {\n id: item.id,\n ...tempValues,\n properties: {\n ...tempValues.properties,\n },\n },\n ],\n });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n","import type { CartData } from \"./types\";\n\nimport { observable } from \"solid-js\";\n\nimport { Cart } from \"./query/index.js\";\n\nexport const uniq = (array: string[]): string[] => Array.from(new Set(array));\n\nexport const getNormalizedAttributes = () => {\n const cart = Cart.get();\n const mergedAttributes = {\n ...cart.attributes,\n };\n return mergedAttributes;\n};\n\nexport const getCartDiscountCodes = () => {\n const cart = Cart.get();\n const cartLevelCodes = (cart?.cart_level_discount_applications || [])\n .filter((discount) => discount.type === \"discount_code\")\n .map((discount) => discount.title);\n\n const itemLevelCodes = (cart?.items || [])?.reduce((codes, item) => {\n const itemCodes = (item?.line_level_discount_allocations || [])\n .filter(\n (allocation) =>\n allocation.discount_application.type === \"discount_code\",\n )\n .map((allocation) => allocation.discount_application.title);\n return uniq([...codes, ...itemCodes]);\n }, [] as string[]);\n\n return uniq([...cartLevelCodes, ...itemLevelCodes]);\n};\n\nfunction defaultUnwrap<T>(cart?: CartData): T {\n return cart as T; // Use unknown as intermediary to satisfy TypeScript\n}\n\nexport function subscribe<T>(\n unwrapValue: (cart?: CartData) => T = defaultUnwrap,\n cb: (data: T) => void,\n): () => void {\n // Assuming cartQuery and observable are defined and set correctly.\n const observer = observable(() => unwrapValue(Cart.query.data));\n return observer.subscribe(cb).unsubscribe;\n}\n","import type { CartData } from \"./types\";\n\nimport { mergeProps } from \"solid-js\";\n\nimport { Cart } from \"./query/index.js\";\nimport {\n AddItems,\n RemoveItems,\n UpdateAttributes,\n UpdateDiscounts,\n UpdateItem,\n UpdateNote,\n ClearCart,\n ReplaceItem,\n} from \"./mutations/index.js\";\nimport {\n getNormalizedAttributes,\n subscribe,\n getCartDiscountCodes,\n uniq,\n} from \"./utils.js\";\n\nconst AjaxCart = mergeProps(Cart.query, {\n addItems: AddItems.mutation.mutateAsync,\n addItem: (input: AddItems.Input) => AddItems.mutation.mutateAsync([input]),\n removeItems: RemoveItems.mutation.mutateAsync,\n removeItem(input: RemoveItems.Input) {\n return RemoveItems.mutation.mutateAsync([input]);\n },\n addAttributes(input: UpdateAttributes.Input) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...input,\n });\n },\n addAttribute(input: { key: string; value: UpdateAttributes.Input[string] }) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [input.key]: input.value,\n });\n },\n updateAttributes: UpdateAttributes.mutation.mutateAsync,\n removeAttributes(input: string[]) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...Object.fromEntries(input.map((key) => [key, null])),\n });\n },\n removeAttribute(key: string) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [key]: null,\n });\n },\n updateNote: UpdateNote.mutation.mutateAsync,\n clear: ClearCart.mutation.mutateAsync,\n updateItem: UpdateItem.mutation.mutateAsync,\n async updateItems(input: UpdateItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => UpdateItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n addDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, ...input]));\n },\n addDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, input]));\n },\n removeDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => !input.includes(code)),\n );\n },\n removeDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => code !== input),\n );\n },\n replaceItem(input: ReplaceItem.Input) {\n return ReplaceItem.mutation.mutateAsync(input);\n },\n async replaceItems(input: ReplaceItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => ReplaceItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n subscribe,\n});\n\nconst oldFetch = window.fetch;\n\n// Override any mutation based fetch calls to the cart to ensure our cart state is always up to date.\nwindow.fetch = async function (...args: Parameters<typeof fetch>) {\n let [input, options] = args;\n let route: string;\n if (window.BrytDesigns.debug) {\n console.log(\"Fetch\", ...args);\n }\n if (input instanceof Request) route = input.url;\n else if (input instanceof URL) route = input.toString();\n else if (typeof input === \"string\") route = input;\n else route = \"\";\n if (!route.startsWith(\"/cart/\")) return oldFetch(...args);\n\n if (input instanceof Request && !options) {\n options = {\n headers: input.headers,\n };\n }\n\n if (\n options &&\n options.headers &&\n \"x-sdk-variant\" in options.headers &&\n options.headers[\"x-sdk-variant\"] === \"brytdesigns\"\n )\n return oldFetch(...args);\n Cart.cancel();\n return oldFetch(...args).finally(() => Cart.invalidate());\n};\n\ndeclare global {\n interface Window {\n BrytDesigns: {\n initialCart: CartData;\n cart: typeof AjaxCart;\n debug?: boolean;\n };\n }\n}\n\n//@ts-ignore\nif (!window.BrytDesigns) window.BrytDesigns = {};\nwindow.BrytDesigns.cart = AjaxCart;\n\nexport default AjaxCart;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/query/cart.ts","../../src/client.ts","../../src/api.ts","../../src/const.ts","../../src/mutations/addItems.ts","../../src/mutations/removeItems.ts","../../src/mutations/updateAttributes.ts","../../src/mutations/updateDiscounts.ts","../../src/mutations/updateItem.ts","../../src/mutations/updateNote.ts","../../src/mutations/clearCart.ts","../../src/mutations/replaceItem.ts","../../src/utils.ts","../../src/index.ts"],"names":["mutation","useMutation"],"mappings":";;;;;;;;;;;;;;AAAA,IAAA,YAAA,GAAA,EAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,GAAA,EAAA,MAAA,GAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,GAAA,EAAA,MAAA,GAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,GAAA,EAAA,MAAA;AAAA,CAAA,CAAA;ACKA,IAAM,MAAA,GAAS,IAAI,WAAY,EAAA;AAE/B,kBAAmB,CAAA;AAAA,EACjB,WAAa,EAAA,MAAA;AAAA,EACb,WAAW,0BAA2B,CAAA;AAAA,IACpC,SAAS,MAAO,CAAA,YAAA;AAAA,IAChB,SAAA,EAAW,CAAC,IAAS,KAAA,EAAA,CAAG,gBAAgB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,IAC5D,WAAA,EAAa,CAAC,IAAS,KAAA,IAAA,CAAK,MAAM,EAAG,CAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AAAA,IAC9D,GAAK,EAAA;AAAA,GACN;AACH,CAAC,CAAA;AAED,IAAO,cAAQ,GAAA,MAAA;ACZf,IAAM,MAAM,iBAAkB,CAAA,EAAE,OAAO,MAAQ,EAAA,WAAA,EAAa,OAAO,CAAA;AAEnE,IAAO,WAAQ,GAAA,GAAA;;;ACPR,IAAM,kBAAqB,GAAA,kBAAA;AAE3B,IAAM,eAAkB,GAAA;AAAA,EAC7B,CAAC,kBAAkB,GAAG;AACxB,CAAA;;;AHKO,IAAM,GAAM,GAAA,MAAA;AACZ,IAAM,UAAA,GAAa,MAAM,cAAO,CAAA,iBAAA,CAAkB,EAAE,QAAU,EAAA,CAAC,GAAG,CAAA,EAAG,CAAA;AACrE,IAAM,GAAA,GAAM,CAAC,EAClB,KAAA,cAAA,CAAO,aAAa,CAAC,GAAG,GAAG,EAAE,CAAA;AACxB,IAAM,MAAA,GAAS,YAAY,cAAO,CAAA,aAAA,CAAc,EAAE,QAAU,EAAA,CAAC,GAAG,CAAA,EAAG,CAAA;AACnE,IAAM,MAAM,MAAM,cAAA,CAAO,YAAa,CAAA,CAAC,GAAG,CAAC,CAAA;AAE3C,IAAM,KAAQ,GAAA,QAAA;AAAA,EACnB,OAAO;AAAA,IACL,QAAA,EAAU,CAAC,GAAG,CAAA;AAAA,IACd,MAAM,OAAA,CAAQ,EAAE,MAAA,EAAU,EAAA;AACxB,MAAM,MAAA,IAAA,GAAO,MAAM,WAAA,CAAI,GAAI,CAAA,IAAI,EAAE,MAAA,EAAQ,OAAS,EAAA,eAAA,EAAiB,CAAA;AACnE,MAAA,IAAI,IAAM,EAAA,KAAA,IAAS,CAAC,IAAA,EAAM,IAAM,EAAA;AAC9B,QAAA,MAAM,IAAK,CAAA,KAAA;AAAA;AAEb,MAAA,OAAO,IAAK,CAAA,IAAA;AAAA,KACd;AAAA,IACA,WAAa,EAAA,YAAA,CAAa,MAAO,CAAA,WAAA,CAAY,WAAW,CAAA;AAAA,IACxD,cAAgB,EAAA,QAAA;AAAA,IAChB,SAAA,EAAW,MAAO,EAAK,GAAA,CAAA;AAAA,IACvB,YAAc,EAAA,IAAA;AAAA,IACd,SAAW,EAAA;AAAA,GACb,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;AIjCA,IAAA,gBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,QAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AASO,IAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,KAAmB,KAAA;AACpC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAA,CAAI,GAAI,CAAA,EAAE,OAAS,EAAA,EAAE,OAAS,EAAA,eAAA,EAAiB,CAAA;AACtE,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,SAAY,GAAA;AACV,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA;AAClB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;ACvBA,IAAA,mBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,mBAAA,EAAA;AAAA,EAAAA,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AASO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,KAAmB,KAAA;AACpC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE,SAAS,KAAM,CAAA,MAAA;AAAA,YACb,CAAC,SAAS,GACP,MAAA,EAAE,GAAG,OAAS,EAAA,CAAC,GAAG,GAAG,CAAE,EAAA,CAAA;AAAA,YAC1B;AAAC;AACH,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,KAAO,EAAA;AACpB,MAAA,MAAM,aAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,aAAK,GAAI,EAAA;AAE9B,MAAK,YAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,aAAa,GAAI,CAAA,KAAA,CACd,OAAO,CAAC,IAAA,KAAS,MAAM,QAAS,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CACzC,OAAO,CAAC,KAAA,EAAO,SAAS,KAAQ,GAAA,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,QACnD,KAAA,EAAO,GAAI,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,IAAS,KAAA,CAAC,KAAM,CAAA,QAAA,CAAS,IAAK,CAAA,GAAG,CAAC;AAAA,OAC3D,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,YAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;ACnDA,IAAA,wBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,wBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AASO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,UAAsB,KAAA;AACvC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE;AAAA,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,UAAY,EAAA;AACzB,MAAA,MAAM,aAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,aAAK,GAAI,EAAA;AAE9B,MAAK,YAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,UAAY,EAAA;AAAA,UACV,GAAG,GAAI,CAAA,UAAA;AAAA,UACP,GAAG;AAAA;AACL,OACA,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,YAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;ACjDA,IAAA,uBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,uBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AASO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,SAAuB,KAAA;AACxC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE,QAAU,EAAA;AAAA,SACZ;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,OAAU,GAAA;AACR,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;AClCA,IAAA,kBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,kBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AAaA,IAAM,iBAAoB,GAAA,CAAC,KAAiB,KAAA,CAAC,MAAgB,KAAkB,KAAA;AAC7E,EAAA,IAAI,QAAQ,KAAS,IAAA,KAAA,CAAM,OAAO,CAAG,EAAA,IAAA,CAAK,EAAE,CAAI,CAAA,EAAA;AAC9C,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,IAAI,KAAS,IAAA,KAAA,IAAS,KAAM,CAAA,GAAA,KAAQ,KAAK,GAAK,EAAA;AAC5C,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,IAAI,MAAU,IAAA,KAAA,IAAS,KAAM,CAAA,IAAA,KAAS,QAAQ,CAAG,EAAA;AAC/C,IAAO,OAAA,IAAA;AAAA;AAET,EAAO,OAAA,KAAA;AACT,CAAA;AAEO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAgB,KAAA;AACjC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,MAAA,CAAO,MAAM,EAAE,OAAA,EAAS,iBAAiB,CAAA;AACpE,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,IAAM,EAAA;AACnB,MAAA,MAAM,aAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,aAAK,GAAI,EAAA;AAC9B,MAAM,MAAA,WAAA,GAAc,kBAAkB,IAAI,CAAA;AAE1C,MAAK,YAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,aAAa,GAAI,CAAA,KAAA,CAAM,OAAO,CAAC,KAAA,EAAO,GAAG,KAAU,KAAA;AACjD,UAAI,IAAA,WAAA,CAAY,CAAG,EAAA,KAAK,CAAG,EAAA;AACzB,YAAA,OACE,SACC,OAAO,IAAA,CAAK,aAAa,WACtB,GAAA,IAAA,CAAK,WACL,CAAE,CAAA,QAAA,CAAA;AAAA;AAGV,UAAA,OAAO,QAAQ,CAAE,CAAA,QAAA;AAAA,WAChB,CAAC,CAAA;AAAA,QACJ,OAAO,GAAI,CAAA,KAAA,CAAM,GAAI,CAAA,CAAC,GAAG,KAAU,KAAA;AACjC,UAAQ,OAAA,CAAA,GAAA,CAAI,gBAAkB,EAAA,IAAA,EAAM,CAAC,CAAA;AACrC,UAAI,IAAA,WAAA,CAAY,CAAG,EAAA,KAAK,CAAG,EAAA;AACzB,YAAO,OAAA;AAAA,cACL,GAAG,CAAA;AAAA,cACH,UACE,OAAO,IAAA,CAAK,aAAa,WACrB,GAAA,IAAA,CAAK,WACL,CAAE,CAAA,QAAA;AAAA,cACR,UAAY,EAAA;AAAA,gBACV,GAAG,IAAK,CAAA,UAAA;AAAA,gBACR,GAAG,CAAE,CAAA;AAAA;AACP,aACF;AAAA;AAEF,UAAO,OAAA,CAAA;AAAA,SACR;AAAA,OACD,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,YAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;ACpFA,IAAA,kBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,kBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AASO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAwB,KAAA;AACzC,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE;AAAA,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,IAAM,EAAA;AACnB,MAAA,MAAM,aAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,aAAK,GAAI,EAAA;AAE9B,MAAK,YAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH;AAAA,OACA,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,YAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;AC9CA,IAAA,iBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,iBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AASO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,YAAY,YAAY;AACtB,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,KAAA,CAAM,EAAI,EAAA,EAAE,OAAS,EAAA,eAAA,EAAiB,CAAA;AAEjE,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,QAAW,GAAA;AACf,MAAA,MAAM,aAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,aAAK,GAAI,EAAA;AAE9B,MAAK,YAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,UAAY,EAAA,CAAA;AAAA,QACZ,OAAO;AAAC,OACR,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,YAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,YAAA,CAAK,UAAW,EAAA;AAClC,MAAK,YAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;;;AC1CA,IAAA,mBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,mBAAA,EAAA;AAAA,EAAAD,QAAAA,EAAAA,MAAAA;AAAA,CAAA,CAAA;AAYO,IAAMA,SAAWC,GAAAA,WAAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAgB,KAAA;AACjC,MAAM,MAAA,IAAA,GAAO,aAAK,GAAI,EAAA;AACtB,MAAM,MAAA,WAAA,GAAc,KAAK,KAAM,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,GAAQ,KAAA,IAAA,CAAK,GAAG,CAAA;AAC7D,MAAA,IAAI,CAAC,WAAa,EAAA;AAChB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,CAAA,0BAAA,EAA6B,KAAK,GAAG,CAAA,iBAAA;AAAA,SACvC;AAAA;AAGF,MAAA,MAAM,UAAa,GAAA;AAAA,QACjB,UAAU,WAAY,CAAA,QAAA;AAAA,QACtB,UAAY,EAAA;AAAA,UACV,GAAG,WAAY,CAAA;AAAA,SACjB;AAAA,QACA,YACE,EAAA,WAAA,EAAa,uBAAyB,EAAA,YAAA,CAAa,EAAM,IAAA;AAAA,OAC7D;AAEA,MAAA,MAAM,WAAI,CAAA,MAAA;AAAA,QACR;AAAA,UACE,IAAI,IAAK,CAAA,GAAA;AAAA,UACT,QAAU,EAAA;AAAA,SACZ;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAM,MAAA,QAAA,GAAW,MAAM,WAAI,CAAA,GAAA;AAAA,QACzB;AAAA,UACE,KAAO,EAAA;AAAA,YACL;AAAA,cACE,IAAI,IAAK,CAAA,EAAA;AAAA,cACT,GAAG,UAAA;AAAA,cACH,UAAY,EAAA;AAAA,gBACV,GAAG,UAAW,CAAA;AAAA;AAChB;AACF;AACF,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,SAAY,GAAA;AACV,MAAA,YAAA,CAAK,UAAW,EAAA;AAAA;AAClB,GACF,CAAA;AAAA,EACA,MAAM;AACR,CAAA;ACzDO,IAAM,IAAA,GAAO,CAAC,KAA8B,KAAA,KAAA,CAAM,KAAK,IAAI,GAAA,CAAI,KAAK,CAAC,CAAA;AAErE,IAAM,0BAA0B,MAAM;AAC3C,EAAM,MAAA,IAAA,GAAO,aAAK,GAAI,EAAA;AACtB,EAAA,MAAM,gBAAmB,GAAA;AAAA,IACvB,GAAG,IAAK,CAAA;AAAA,GACV;AACA,EAAO,OAAA,gBAAA;AACT,CAAA;AAEO,IAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,IAAA,GAAO,aAAK,GAAI,EAAA;AACtB,EAAA,MAAM,kBAAkB,IAAM,EAAA,gCAAA,IAAoC,EAAC,EAChE,OAAO,CAAC,QAAA,KAAa,QAAS,CAAA,IAAA,KAAS,eAAe,CACtD,CAAA,GAAA,CAAI,CAAC,QAAA,KAAa,SAAS,KAAK,CAAA;AAEnC,EAAM,MAAA,cAAA,GAAA,CAAkB,MAAM,KAAS,IAAA,KAAK,MAAO,CAAA,CAAC,OAAO,IAAS,KAAA;AAClE,IAAA,MAAM,SAAa,GAAA,CAAA,IAAA,EAAM,+BAAmC,IAAA,EACzD,EAAA,MAAA;AAAA,MACC,CAAC,UAAA,KACC,UAAW,CAAA,oBAAA,CAAqB,IAAS,KAAA;AAAA,MAE5C,GAAI,CAAA,CAAC,UAAe,KAAA,UAAA,CAAW,qBAAqB,KAAK,CAAA;AAC5D,IAAA,OAAO,KAAK,CAAC,GAAG,KAAO,EAAA,GAAG,SAAS,CAAC,CAAA;AAAA,GACtC,EAAG,EAAc,CAAA;AAEjB,EAAA,OAAO,KAAK,CAAC,GAAG,cAAgB,EAAA,GAAG,cAAc,CAAC,CAAA;AACpD,CAAA;AAEA,SAAS,cAAiB,IAAoB,EAAA;AAC5C,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,SAAA,CACd,WAAsC,GAAA,aAAA,EACtC,EACY,EAAA;AAEZ,EAAA,MAAM,WAAW,UAAW,CAAA,MAAM,YAAY,YAAK,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AAC9D,EAAO,OAAA,QAAA,CAAS,SAAU,CAAA,EAAE,CAAE,CAAA,WAAA;AAChC;;;ACvBA,IAAM,QAAA,GAAW,UAAW,CAAA,YAAA,CAAK,KAAO,EAAA;AAAA,EACtC,QAAA,EAAU,iBAAS,QAAS,CAAA,WAAA;AAAA,EAC5B,OAAA,EAAS,CAAC,KAA0B,KAAA,gBAAA,CAAS,SAAS,WAAY,CAAA,CAAC,KAAK,CAAC,CAAA;AAAA,EACzE,WAAA,EAAa,oBAAY,QAAS,CAAA,WAAA;AAAA,EAClC,WAAW,KAA0B,EAAA;AACnC,IAAA,OAAO,mBAAY,CAAA,QAAA,CAAS,WAAY,CAAA,CAAC,KAAK,CAAC,CAAA;AAAA,GACjD;AAAA,EACA,cAAc,KAA+B,EAAA;AAC3C,IAAA,MAAM,mBAAmB,uBAAwB,EAAA;AACjD,IAAO,OAAA,wBAAA,CAAiB,SAAS,WAAY,CAAA;AAAA,MAC3C,GAAG,gBAAA;AAAA,MACH,GAAG;AAAA,KACJ,CAAA;AAAA,GACH;AAAA,EACA,aAAa,KAA+D,EAAA;AAC1E,IAAA,MAAM,mBAAmB,uBAAwB,EAAA;AACjD,IAAO,OAAA,wBAAA,CAAiB,SAAS,WAAY,CAAA;AAAA,MAC3C,GAAG,gBAAA;AAAA,MACH,CAAC,KAAA,CAAM,GAAG,GAAG,KAAM,CAAA;AAAA,KACpB,CAAA;AAAA,GACH;AAAA,EACA,gBAAA,EAAkB,yBAAiB,QAAS,CAAA,WAAA;AAAA,EAC5C,iBAAiB,KAAiB,EAAA;AAChC,IAAA,MAAM,mBAAmB,uBAAwB,EAAA;AACjD,IAAO,OAAA,wBAAA,CAAiB,SAAS,WAAY,CAAA;AAAA,MAC3C,GAAG,gBAAA;AAAA,MACH,GAAG,MAAO,CAAA,WAAA,CAAY,KAAM,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,CAAC,GAAA,EAAK,IAAI,CAAC,CAAC;AAAA,KACtD,CAAA;AAAA,GACH;AAAA,EACA,gBAAgB,GAAa,EAAA;AAC3B,IAAA,MAAM,mBAAmB,uBAAwB,EAAA;AACjD,IAAO,OAAA,wBAAA,CAAiB,SAAS,WAAY,CAAA;AAAA,MAC3C,GAAG,gBAAA;AAAA,MACH,CAAC,GAAG,GAAG;AAAA,KACR,CAAA;AAAA,GACH;AAAA,EACA,UAAA,EAAY,mBAAW,QAAS,CAAA,WAAA;AAAA,EAChC,KAAA,EAAO,kBAAU,QAAS,CAAA,WAAA;AAAA,EAC1B,UAAA,EAAY,mBAAW,QAAS,CAAA,WAAA;AAAA,EAChC,MAAM,YAAY,KAA2B,EAAA;AAC3C,IAAM,MAAA,OAAA,GAAU,MAAM,OAAQ,CAAA,UAAA;AAAA,MAC5B,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,mBAAW,QAAS,CAAA,WAAA,CAAY,CAAC,CAAC;AAAA,KACrD;AACA,IAAO,OAAA;AAAA,MACL,UAAU,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,WAAW,UAAU,CAAA;AAAA,MACvD,UAAU,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,WAAW,WAAW;AAAA,KAC1D;AAAA,GACF;AAAA,EACA,aAAa,KAAgC,EAAA;AAC3C,IAAA,MAAM,QAAQ,oBAAqB,EAAA;AACnC,IAAO,OAAA,uBAAA,CAAgB,QAAS,CAAA,WAAA,CAAY,IAAK,CAAA,CAAC,GAAG,KAAO,EAAA,GAAG,KAAK,CAAC,CAAC,CAAA;AAAA,GACxE;AAAA,EACA,YAAY,KAA8B,EAAA;AACxC,IAAA,MAAM,QAAQ,oBAAqB,EAAA;AACnC,IAAO,OAAA,uBAAA,CAAgB,SAAS,WAAY,CAAA,IAAA,CAAK,CAAC,GAAG,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA;AAAA,GACrE;AAAA,EACA,gBAAgB,KAAgC,EAAA;AAC9C,IAAA,MAAM,QAAQ,oBAAqB,EAAA;AACnC,IAAA,OAAO,wBAAgB,QAAS,CAAA,WAAA;AAAA,MAC9B,KAAA,CAAM,OAAO,CAAC,IAAA,KAAS,CAAC,KAAM,CAAA,QAAA,CAAS,IAAI,CAAC;AAAA,KAC9C;AAAA,GACF;AAAA,EACA,eAAe,KAA8B,EAAA;AAC3C,IAAA,MAAM,QAAQ,oBAAqB,EAAA;AACnC,IAAA,OAAO,wBAAgB,QAAS,CAAA,WAAA;AAAA,MAC9B,KAAM,CAAA,MAAA,CAAO,CAAC,IAAA,KAAS,SAAS,KAAK;AAAA,KACvC;AAAA,GACF;AAAA,EACA,YAAY,KAA0B,EAAA;AACpC,IAAO,OAAA,mBAAA,CAAY,QAAS,CAAA,WAAA,CAAY,KAAK,CAAA;AAAA,GAC/C;AAAA,EACA,MAAM,aAAa,KAA4B,EAAA;AAC7C,IAAM,MAAA,OAAA,GAAU,MAAM,OAAQ,CAAA,UAAA;AAAA,MAC5B,KAAA,CAAM,IAAI,CAAC,CAAA,KAAM,oBAAY,QAAS,CAAA,WAAA,CAAY,CAAC,CAAC;AAAA,KACtD;AACA,IAAO,OAAA;AAAA,MACL,UAAU,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,WAAW,UAAU,CAAA;AAAA,MACvD,UAAU,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,WAAW,WAAW;AAAA,KAC1D;AAAA,GACF;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,WAAW,MAAO,CAAA,KAAA;AAGxB,MAAO,CAAA,KAAA,GAAQ,kBAAmB,IAAgC,EAAA;AAChE,EAAI,IAAA,CAAC,KAAO,EAAA,OAAO,CAAI,GAAA,IAAA;AACvB,EAAI,IAAA,KAAA;AACJ,EAAI,IAAA,MAAA,CAAO,YAAY,KAAO,EAAA;AAC5B,IAAQ,OAAA,CAAA,GAAA,CAAI,OAAS,EAAA,GAAG,IAAI,CAAA;AAAA;AAE9B,EAAI,IAAA,KAAA,YAAiB,OAAS,EAAA,KAAA,GAAQ,KAAM,CAAA,GAAA;AAAA,OAAA,IACnC,KAAiB,YAAA,GAAA,EAAa,KAAA,GAAA,KAAA,CAAM,QAAS,EAAA;AAAA,OAC7C,IAAA,OAAO,KAAU,KAAA,QAAA,EAAkB,KAAA,GAAA,KAAA;AAAA,OAC/B,KAAA,GAAA,EAAA;AACb,EAAI,IAAA,CAAC,MAAM,UAAW,CAAA,QAAQ,GAAU,OAAA,QAAA,CAAS,GAAG,IAAI,CAAA;AAExD,EAAI,IAAA,KAAA,YAAiB,OAAW,IAAA,CAAC,OAAS,EAAA;AACxC,IAAU,OAAA,GAAA;AAAA,MACR,SAAS,KAAM,CAAA;AAAA,KACjB;AAAA;AAGF,EAAA,MAAM,OAAU,GAAA,IAAI,OAAQ,CAAA,GAAG,IAAI,CAAA;AAEnC,EACE,IAAA,OAAA,CAAQ,OAAQ,CAAA,GAAA,CAAI,kBAAkB,CAAA,IACtC,OAAQ,CAAA,OAAA,CAAQ,GAAI,CAAA,kBAAkB,CACpC,KAAA,eAAA,CAAgB,kBAAkB,CAAA;AAEpC,IAAA,OAAO,SAAS,OAAO,CAAA;AACzB,EAAA,YAAA,CAAK,MAAO,EAAA;AACZ,EAAA,OAAO,SAAS,OAAO,CAAA,CAAE,QAAQ,MAAM,YAAA,CAAK,YAAY,CAAA;AAC1D,CAAA;AAaA,IAAI,CAAC,MAAA,CAAO,WAAa,EAAA,MAAA,CAAO,cAAc,EAAC;AAC/C,MAAA,CAAO,YAAY,IAAO,GAAA,QAAA;AAE1B,IAAO,aAAQ,GAAA","file":"index.js","sourcesContent":["import type { CartData } from \"../types\";\n\nimport { useQuery } from \"@tanstack/solid-query\";\nimport { validateCart } from \"@brytdesigns/shopify-ajax-cart-api\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport const KEY = \"cart\";\nexport const invalidate = () => client.invalidateQueries({ queryKey: [KEY] });\nexport const set = (cb: (data: CartData) => CartData) =>\n client.setQueryData([KEY], cb);\nexport const cancel = async () => client.cancelQueries({ queryKey: [KEY] });\nexport const get = () => client.getQueryData([KEY]) as CartData;\n\nexport const query = useQuery(\n () => ({\n queryKey: [KEY],\n async queryFn({ signal }) {\n const cart = await API.get({}, { signal, headers: DEFAULT_HEADERS });\n if (cart?.error || !cart?.data) {\n throw cart.error;\n }\n return cart.data;\n },\n initialData: validateCart(window.BrytDesigns.initialCart),\n refetchOnMount: \"always\",\n staleTime: 1000 * 60 * 5,\n throwOnError: true,\n reconcile: \"id\",\n }),\n () => client,\n);\n","import { QueryClient } from \"@tanstack/solid-query\";\nimport { persistQueryClient } from \"@tanstack/solid-query-persist-client\";\nimport { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport lz from \"lz-string\";\n\nconst client = new QueryClient();\n\npersistQueryClient({\n queryClient: client,\n persister: createSyncStoragePersister({\n storage: window.localStorage,\n serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),\n deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),\n key: \"brytdesigns-ajax-cart\",\n }),\n});\n\nexport default client;\n","import { createAjaxCartApi } from \"@brytdesigns/shopify-ajax-cart-api\";\n\n/**\n * @internal\n */\nconst API = createAjaxCartApi({ debug: window?.BrytDesigns?.debug });\n\nexport default API;\n","export const LIBRARY_SOURCE_KEY = \"x-library-source\";\n\nexport const DEFAULT_HEADERS = {\n [LIBRARY_SOURCE_KEY]: \"brytdesigns-shopify-ajax-cart\",\n};\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = Parameters<typeof API.add>[0][\"items\"][number];\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.add({ items }, { headers: DEFAULT_HEADERS });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.update(\n {\n updates: items.reduce(\n (updates, key) =>\n ({ ...updates, [key]: 0 }) as Record<string, number>,\n {},\n ),\n },\n { headers: DEFAULT_HEADERS },\n );\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(items) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items\n .filter((item) => items.includes(item.key))\n .reduce((total, item) => total + item.quantity, 0),\n items: old.items.filter((item) => !items.includes(item.key)),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = NonNullable<Parameters<typeof API.update>[0][\"attributes\"]>;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (attributes: Input) => {\n const response = await API.update(\n {\n attributes,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(attributes) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n attributes: {\n ...old.attributes,\n ...attributes,\n },\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (discounts: Input[]) => {\n const response = await API.update(\n {\n discount: discounts,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n onError() {\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = Parameters<typeof API.change>[0];\n\ntype CartItem = NonNullable<\n Awaited<ReturnType<typeof API.get>>[\"data\"]\n>[\"items\"][number];\n\nconst createIsItemCheck = (input: Input) => (item: CartItem, index: number) => {\n if (\"id\" in input && input.id === `${item.id}`) {\n return true;\n }\n if (\"key\" in input && input.key === item.key) {\n return true;\n }\n if (\"line\" in input && input.line === index + 1) {\n return true;\n }\n return false;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const response = await API.change(item, { headers: DEFAULT_HEADERS });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(item) {\n await Cart.cancel();\n const previousCart = Cart.get();\n const isItemCheck = createIsItemCheck(item);\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items.reduce((total, i, index) => {\n if (isItemCheck(i, index)) {\n return (\n total +\n (typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity)\n );\n }\n return total + i.quantity;\n }, 0),\n items: old.items.map((i, index) => {\n console.log(\"Updating item:\", item, i);\n if (isItemCheck(i, index)) {\n return {\n ...i,\n quantity:\n typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity,\n properties: {\n ...item.properties,\n ...i.properties,\n },\n };\n }\n return i;\n }),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (note: string | null) => {\n const response = await API.update(\n {\n note,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(note) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n note,\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async () => {\n const response = await API.clear({}, { headers: DEFAULT_HEADERS });\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate() {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n item_count: 0,\n items: [],\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n","import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = {\n key: string;\n id: string | number;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const cart = Cart.get();\n const currentItem = cart.items.find((i) => i.key === item.key);\n if (!currentItem) {\n throw new Error(\n `Item with provided key of ${item.key} does not exists!`,\n );\n }\n\n const tempValues = {\n quantity: currentItem.quantity,\n properties: {\n ...currentItem.properties,\n },\n selling_plan:\n currentItem?.selling_plan_allocation?.selling_plan.id || undefined,\n } as const;\n\n await API.change(\n {\n id: item.key,\n quantity: 0,\n },\n { headers: DEFAULT_HEADERS },\n );\n const response = await API.add(\n {\n items: [\n {\n id: item.id,\n ...tempValues,\n properties: {\n ...tempValues.properties,\n },\n },\n ],\n },\n { headers: DEFAULT_HEADERS },\n );\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n","import type { CartData } from \"./types\";\n\nimport { observable } from \"solid-js\";\n\nimport { Cart } from \"./query/index.js\";\n\nexport const uniq = (array: string[]): string[] => Array.from(new Set(array));\n\nexport const getNormalizedAttributes = () => {\n const cart = Cart.get();\n const mergedAttributes = {\n ...cart.attributes,\n };\n return mergedAttributes;\n};\n\nexport const getCartDiscountCodes = () => {\n const cart = Cart.get();\n const cartLevelCodes = (cart?.cart_level_discount_applications || [])\n .filter((discount) => discount.type === \"discount_code\")\n .map((discount) => discount.title);\n\n const itemLevelCodes = (cart?.items || [])?.reduce((codes, item) => {\n const itemCodes = (item?.line_level_discount_allocations || [])\n .filter(\n (allocation) =>\n allocation.discount_application.type === \"discount_code\",\n )\n .map((allocation) => allocation.discount_application.title);\n return uniq([...codes, ...itemCodes]);\n }, [] as string[]);\n\n return uniq([...cartLevelCodes, ...itemLevelCodes]);\n};\n\nfunction defaultUnwrap<T>(cart?: CartData): T {\n return cart as T; // Use unknown as intermediary to satisfy TypeScript\n}\n\nexport function subscribe<T>(\n unwrapValue: (cart?: CartData) => T = defaultUnwrap,\n cb: (data: T) => void,\n): () => void {\n // Assuming cartQuery and observable are defined and set correctly.\n const observer = observable(() => unwrapValue(Cart.query.data));\n return observer.subscribe(cb).unsubscribe;\n}\n","import type { CartData } from \"./types\";\n\nimport { mergeProps } from \"solid-js\";\n\nimport { Cart } from \"./query/index.js\";\nimport {\n AddItems,\n RemoveItems,\n UpdateAttributes,\n UpdateDiscounts,\n UpdateItem,\n UpdateNote,\n ClearCart,\n ReplaceItem,\n} from \"./mutations/index.js\";\nimport {\n getNormalizedAttributes,\n subscribe,\n getCartDiscountCodes,\n uniq,\n} from \"./utils.js\";\nimport { DEFAULT_HEADERS, LIBRARY_SOURCE_KEY } from \"./const.js\";\n\nconst AjaxCart = mergeProps(Cart.query, {\n addItems: AddItems.mutation.mutateAsync,\n addItem: (input: AddItems.Input) => AddItems.mutation.mutateAsync([input]),\n removeItems: RemoveItems.mutation.mutateAsync,\n removeItem(input: RemoveItems.Input) {\n return RemoveItems.mutation.mutateAsync([input]);\n },\n addAttributes(input: UpdateAttributes.Input) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...input,\n });\n },\n addAttribute(input: { key: string; value: UpdateAttributes.Input[string] }) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [input.key]: input.value,\n });\n },\n updateAttributes: UpdateAttributes.mutation.mutateAsync,\n removeAttributes(input: string[]) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...Object.fromEntries(input.map((key) => [key, null])),\n });\n },\n removeAttribute(key: string) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [key]: null,\n });\n },\n updateNote: UpdateNote.mutation.mutateAsync,\n clear: ClearCart.mutation.mutateAsync,\n updateItem: UpdateItem.mutation.mutateAsync,\n async updateItems(input: UpdateItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => UpdateItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n addDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, ...input]));\n },\n addDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, input]));\n },\n removeDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => !input.includes(code)),\n );\n },\n removeDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => code !== input),\n );\n },\n replaceItem(input: ReplaceItem.Input) {\n return ReplaceItem.mutation.mutateAsync(input);\n },\n async replaceItems(input: ReplaceItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => ReplaceItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n subscribe,\n});\n\nconst oldFetch = window.fetch;\n\n// Override any mutation based fetch calls to the cart to ensure our cart state is always up to date.\nwindow.fetch = async function (...args: Parameters<typeof fetch>) {\n let [input, options] = args;\n let route: string;\n if (window.BrytDesigns.debug) {\n console.log(\"Fetch\", ...args);\n }\n if (input instanceof Request) route = input.url;\n else if (input instanceof URL) route = input.toString();\n else if (typeof input === \"string\") route = input;\n else route = \"\";\n if (!route.startsWith(\"/cart/\")) return oldFetch(...args);\n\n if (input instanceof Request && !options) {\n options = {\n headers: input.headers,\n };\n }\n\n const request = new Request(...args);\n\n if (\n request.headers.has(LIBRARY_SOURCE_KEY) &&\n request.headers.get(LIBRARY_SOURCE_KEY) ===\n DEFAULT_HEADERS[LIBRARY_SOURCE_KEY]\n )\n return oldFetch(request);\n Cart.cancel();\n return oldFetch(request).finally(() => Cart.invalidate());\n};\n\ndeclare global {\n interface Window {\n BrytDesigns: {\n initialCart: CartData;\n cart: typeof AjaxCart;\n debug?: boolean;\n };\n }\n}\n\n//@ts-ignore\nif (!window.BrytDesigns) window.BrytDesigns = {};\nwindow.BrytDesigns.cart = AjaxCart;\n\nexport default AjaxCart;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/const.ts"],"names":[],"mappings":"AAAO,MAAM,kBAAqB,GAAA;AAE3B,MAAM,eAAkB,GAAA;AAAA,EAC7B,CAAC,kBAAkB,GAAG;AACxB","file":"const.js","sourcesContent":["export const LIBRARY_SOURCE_KEY = \"x-library-source\";\n\nexport const DEFAULT_HEADERS = {\n [LIBRARY_SOURCE_KEY]: \"brytdesigns-shopify-ajax-cart\",\n};\n"]}
|
package/dist/main/index.d.ts
CHANGED
package/dist/main/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { mergeProps } from 'solid-js';
|
|
|
2
2
|
import { Cart } from './query/index.js';
|
|
3
3
|
import { UpdateItem, ClearCart, UpdateNote, UpdateAttributes, RemoveItems, AddItems, ReplaceItem, UpdateDiscounts } from './mutations/index.js';
|
|
4
4
|
import { subscribe, getCartDiscountCodes, uniq, getNormalizedAttributes } from './utils.js';
|
|
5
|
+
import { LIBRARY_SOURCE_KEY, DEFAULT_HEADERS } from './const.js';
|
|
5
6
|
|
|
6
7
|
const AjaxCart = mergeProps(Cart.query, {
|
|
7
8
|
addItems: AddItems.mutation.mutateAsync,
|
|
@@ -102,10 +103,11 @@ window.fetch = async function(...args) {
|
|
|
102
103
|
headers: input.headers
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
const request = new Request(...args);
|
|
107
|
+
if (request.headers.has(LIBRARY_SOURCE_KEY) && request.headers.get(LIBRARY_SOURCE_KEY) === DEFAULT_HEADERS[LIBRARY_SOURCE_KEY])
|
|
108
|
+
return oldFetch(request);
|
|
107
109
|
Cart.cancel();
|
|
108
|
-
return oldFetch(
|
|
110
|
+
return oldFetch(request).finally(() => Cart.invalidate());
|
|
109
111
|
};
|
|
110
112
|
if (!window.BrytDesigns) window.BrytDesigns = {};
|
|
111
113
|
window.BrytDesigns.cart = AjaxCart;
|
package/dist/main/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { CartData } from \"./types\";\n\nimport { mergeProps } from \"solid-js\";\n\nimport { Cart } from \"./query/index.js\";\nimport {\n AddItems,\n RemoveItems,\n UpdateAttributes,\n UpdateDiscounts,\n UpdateItem,\n UpdateNote,\n ClearCart,\n ReplaceItem,\n} from \"./mutations/index.js\";\nimport {\n getNormalizedAttributes,\n subscribe,\n getCartDiscountCodes,\n uniq,\n} from \"./utils.js\";\nimport { DEFAULT_HEADERS, LIBRARY_SOURCE_KEY } from \"./const.js\";\n\nconst AjaxCart = mergeProps(Cart.query, {\n addItems: AddItems.mutation.mutateAsync,\n addItem: (input: AddItems.Input) => AddItems.mutation.mutateAsync([input]),\n removeItems: RemoveItems.mutation.mutateAsync,\n removeItem(input: RemoveItems.Input) {\n return RemoveItems.mutation.mutateAsync([input]);\n },\n addAttributes(input: UpdateAttributes.Input) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...input,\n });\n },\n addAttribute(input: { key: string; value: UpdateAttributes.Input[string] }) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [input.key]: input.value,\n });\n },\n updateAttributes: UpdateAttributes.mutation.mutateAsync,\n removeAttributes(input: string[]) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n ...Object.fromEntries(input.map((key) => [key, null])),\n });\n },\n removeAttribute(key: string) {\n const mergedAttributes = getNormalizedAttributes();\n return UpdateAttributes.mutation.mutateAsync({\n ...mergedAttributes,\n [key]: null,\n });\n },\n updateNote: UpdateNote.mutation.mutateAsync,\n clear: ClearCart.mutation.mutateAsync,\n updateItem: UpdateItem.mutation.mutateAsync,\n async updateItems(input: UpdateItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => UpdateItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n addDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, ...input]));\n },\n addDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(uniq([...codes, input]));\n },\n removeDiscounts(input: UpdateDiscounts.Input[]) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => !input.includes(code)),\n );\n },\n removeDiscount(input: UpdateDiscounts.Input) {\n const codes = getCartDiscountCodes();\n return UpdateDiscounts.mutation.mutateAsync(\n codes.filter((code) => code !== input),\n );\n },\n replaceItem(input: ReplaceItem.Input) {\n return ReplaceItem.mutation.mutateAsync(input);\n },\n async replaceItems(input: ReplaceItem.Input[]) {\n const results = await Promise.allSettled(\n input.map((i) => ReplaceItem.mutation.mutateAsync(i)),\n );\n return {\n rejected: results.filter((r) => r.status === \"rejected\"),\n resolved: results.filter((r) => r.status === \"fulfilled\"),\n };\n },\n subscribe,\n});\n\nconst oldFetch = window.fetch;\n\n// Override any mutation based fetch calls to the cart to ensure our cart state is always up to date.\nwindow.fetch = async function (...args: Parameters<typeof fetch>) {\n let [input, options] = args;\n let route: string;\n if (window.BrytDesigns.debug) {\n console.log(\"Fetch\", ...args);\n }\n if (input instanceof Request) route = input.url;\n else if (input instanceof URL) route = input.toString();\n else if (typeof input === \"string\") route = input;\n else route = \"\";\n if (!route.startsWith(\"/cart/\")) return oldFetch(...args);\n\n if (input instanceof Request && !options) {\n options = {\n headers: input.headers,\n };\n }\n\n const request = new Request(...args);\n\n if (\n request.headers.has(LIBRARY_SOURCE_KEY) &&\n request.headers.get(LIBRARY_SOURCE_KEY) ===\n DEFAULT_HEADERS[LIBRARY_SOURCE_KEY]\n )\n return oldFetch(request);\n Cart.cancel();\n return oldFetch(request).finally(() => Cart.invalidate());\n};\n\ndeclare global {\n interface Window {\n BrytDesigns: {\n initialCart: CartData;\n cart: typeof AjaxCart;\n debug?: boolean;\n };\n }\n}\n\n//@ts-ignore\nif (!window.BrytDesigns) window.BrytDesigns = {};\nwindow.BrytDesigns.cart = AjaxCart;\n\nexport default AjaxCart;\n"]}
|
|
@@ -2,11 +2,12 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async (items) => {
|
|
9
|
-
const response = await API.add({ items });
|
|
10
|
+
const response = await API.add({ items }, { headers: DEFAULT_HEADERS });
|
|
10
11
|
if (response?.error || !response.data) {
|
|
11
12
|
throw response?.error;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/addItems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/addItems.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,KAAmB,KAAA;AACpC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAA,CAAI,GAAI,CAAA,EAAE,OAAS,EAAA,EAAE,OAAS,EAAA,eAAA,EAAiB,CAAA;AACtE,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,SAAY,GAAA;AACV,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA;AAClB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"addItems.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = Parameters<typeof API.add>[0][\"items\"][number];\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.add({ items }, { headers: DEFAULT_HEADERS });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,11 +2,12 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async () => {
|
|
9
|
-
const response = await API.clear({});
|
|
10
|
+
const response = await API.clear({}, { headers: DEFAULT_HEADERS });
|
|
10
11
|
if (response.error) {
|
|
11
12
|
throw response.error;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/clearCart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/clearCart.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,YAAY,YAAY;AACtB,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,KAAA,CAAM,EAAI,EAAA,EAAE,OAAS,EAAA,eAAA,EAAiB,CAAA;AAEjE,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,QAAW,GAAA;AACf,MAAA,MAAM,KAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,KAAK,GAAI,EAAA;AAE9B,MAAK,IAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,UAAY,EAAA,CAAA;AAAA,QACZ,OAAO;AAAC,OACR,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,IAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"clearCart.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async () => {\n const response = await API.clear({}, { headers: DEFAULT_HEADERS });\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate() {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n item_count: 0,\n items: [],\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,16 +2,20 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async (items) => {
|
|
9
|
-
const response = await API.update(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const response = await API.update(
|
|
11
|
+
{
|
|
12
|
+
updates: items.reduce(
|
|
13
|
+
(updates, key) => ({ ...updates, [key]: 0 }),
|
|
14
|
+
{}
|
|
15
|
+
)
|
|
16
|
+
},
|
|
17
|
+
{ headers: DEFAULT_HEADERS }
|
|
18
|
+
);
|
|
15
19
|
if (response?.error || !response.data) {
|
|
16
20
|
throw response?.error;
|
|
17
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/removeItems.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/removeItems.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,KAAmB,KAAA;AACpC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE,SAAS,KAAM,CAAA,MAAA;AAAA,YACb,CAAC,SAAS,GACP,MAAA,EAAE,GAAG,OAAS,EAAA,CAAC,GAAG,GAAG,CAAE,EAAA,CAAA;AAAA,YAC1B;AAAC;AACH,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,KAAO,EAAA;AACpB,MAAA,MAAM,KAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,KAAK,GAAI,EAAA;AAE9B,MAAK,IAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,aAAa,GAAI,CAAA,KAAA,CACd,OAAO,CAAC,IAAA,KAAS,MAAM,QAAS,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CACzC,OAAO,CAAC,KAAA,EAAO,SAAS,KAAQ,GAAA,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,QACnD,KAAA,EAAO,GAAI,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,IAAS,KAAA,CAAC,KAAM,CAAA,QAAA,CAAS,IAAK,CAAA,GAAG,CAAC;AAAA,OAC3D,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,IAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"removeItems.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (items: Input[]) => {\n const response = await API.update(\n {\n updates: items.reduce(\n (updates, key) =>\n ({ ...updates, [key]: 0 }) as Record<string, number>,\n {},\n ),\n },\n { headers: DEFAULT_HEADERS },\n );\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(items) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items\n .filter((item) => items.includes(item.key))\n .reduce((total, item) => total + item.quantity, 0),\n items: old.items.filter((item) => !items.includes(item.key)),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,6 +2,7 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
@@ -20,21 +21,27 @@ const mutation = useMutation(
|
|
|
20
21
|
},
|
|
21
22
|
selling_plan: currentItem?.selling_plan_allocation?.selling_plan.id || void 0
|
|
22
23
|
};
|
|
23
|
-
await API.change(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
await API.change(
|
|
25
|
+
{
|
|
26
|
+
id: item.key,
|
|
27
|
+
quantity: 0
|
|
28
|
+
},
|
|
29
|
+
{ headers: DEFAULT_HEADERS }
|
|
30
|
+
);
|
|
31
|
+
const response = await API.add(
|
|
32
|
+
{
|
|
33
|
+
items: [
|
|
34
|
+
{
|
|
35
|
+
id: item.id,
|
|
36
|
+
...tempValues,
|
|
37
|
+
properties: {
|
|
38
|
+
...tempValues.properties
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{ headers: DEFAULT_HEADERS }
|
|
44
|
+
);
|
|
38
45
|
if (response?.error || !response.data) {
|
|
39
46
|
throw response?.error;
|
|
40
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/replaceItem.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/replaceItem.ts"],"names":[],"mappings":";;;;;;AAYO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAgB,KAAA;AACjC,MAAM,MAAA,IAAA,GAAO,KAAK,GAAI,EAAA;AACtB,MAAM,MAAA,WAAA,GAAc,KAAK,KAAM,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,GAAQ,KAAA,IAAA,CAAK,GAAG,CAAA;AAC7D,MAAA,IAAI,CAAC,WAAa,EAAA;AAChB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,CAAA,0BAAA,EAA6B,KAAK,GAAG,CAAA,iBAAA;AAAA,SACvC;AAAA;AAGF,MAAA,MAAM,UAAa,GAAA;AAAA,QACjB,UAAU,WAAY,CAAA,QAAA;AAAA,QACtB,UAAY,EAAA;AAAA,UACV,GAAG,WAAY,CAAA;AAAA,SACjB;AAAA,QACA,YACE,EAAA,WAAA,EAAa,uBAAyB,EAAA,YAAA,CAAa,EAAM,IAAA;AAAA,OAC7D;AAEA,MAAA,MAAM,GAAI,CAAA,MAAA;AAAA,QACR;AAAA,UACE,IAAI,IAAK,CAAA,GAAA;AAAA,UACT,QAAU,EAAA;AAAA,SACZ;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,GAAA;AAAA,QACzB;AAAA,UACE,KAAO,EAAA;AAAA,YACL;AAAA,cACE,IAAI,IAAK,CAAA,EAAA;AAAA,cACT,GAAG,UAAA;AAAA,cACH,UAAY,EAAA;AAAA,gBACV,GAAG,UAAW,CAAA;AAAA;AAChB;AACF;AACF,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AACA,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,SAAY,GAAA;AACV,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA;AAClB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"replaceItem.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = {\n key: string;\n id: string | number;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const cart = Cart.get();\n const currentItem = cart.items.find((i) => i.key === item.key);\n if (!currentItem) {\n throw new Error(\n `Item with provided key of ${item.key} does not exists!`,\n );\n }\n\n const tempValues = {\n quantity: currentItem.quantity,\n properties: {\n ...currentItem.properties,\n },\n selling_plan:\n currentItem?.selling_plan_allocation?.selling_plan.id || undefined,\n } as const;\n\n await API.change(\n {\n id: item.key,\n quantity: 0,\n },\n { headers: DEFAULT_HEADERS },\n );\n const response = await API.add(\n {\n items: [\n {\n id: item.id,\n ...tempValues,\n properties: {\n ...tempValues.properties,\n },\n },\n ],\n },\n { headers: DEFAULT_HEADERS },\n );\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n onSettled() {\n Cart.invalidate();\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,13 +2,17 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async (attributes) => {
|
|
9
|
-
const response = await API.update(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const response = await API.update(
|
|
11
|
+
{
|
|
12
|
+
attributes
|
|
13
|
+
},
|
|
14
|
+
{ headers: DEFAULT_HEADERS }
|
|
15
|
+
);
|
|
12
16
|
if (response.error) {
|
|
13
17
|
throw response.error;
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/updateAttributes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/updateAttributes.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,UAAsB,KAAA;AACvC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE;AAAA,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,UAAY,EAAA;AACzB,MAAA,MAAM,KAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,KAAK,GAAI,EAAA;AAE9B,MAAK,IAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,UAAY,EAAA;AAAA,UACV,GAAG,GAAI,CAAA,UAAA;AAAA,UACP,GAAG;AAAA;AACL,OACA,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,IAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"updateAttributes.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = NonNullable<Parameters<typeof API.update>[0][\"attributes\"]>;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (attributes: Input) => {\n const response = await API.update(\n {\n attributes,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(attributes) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n attributes: {\n ...old.attributes,\n ...attributes,\n },\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,13 +2,17 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async (discounts) => {
|
|
9
|
-
const response = await API.update(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const response = await API.update(
|
|
11
|
+
{
|
|
12
|
+
discount: discounts
|
|
13
|
+
},
|
|
14
|
+
{ headers: DEFAULT_HEADERS }
|
|
15
|
+
);
|
|
12
16
|
if (response.error) {
|
|
13
17
|
throw response.error;
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/updateDiscounts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/updateDiscounts.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,SAAuB,KAAA;AACxC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE,QAAU,EAAA;AAAA,SACZ;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,OAAU,GAAA;AACR,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"updateDiscounts.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (discounts: Input[]) => {\n const response = await API.update(\n {\n discount: discounts,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n onError() {\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,6 +2,7 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const createIsItemCheck = (input) => (item, index) => {
|
|
7
8
|
if ("id" in input && input.id === `${item.id}`) {
|
|
@@ -18,7 +19,7 @@ const createIsItemCheck = (input) => (item, index) => {
|
|
|
18
19
|
const mutation = useMutation(
|
|
19
20
|
() => ({
|
|
20
21
|
mutationFn: async (item) => {
|
|
21
|
-
const response = await API.change(item);
|
|
22
|
+
const response = await API.change(item, { headers: DEFAULT_HEADERS });
|
|
22
23
|
if (response?.error || !response.data) {
|
|
23
24
|
throw response?.error;
|
|
24
25
|
}
|
|
@@ -37,6 +38,7 @@ const mutation = useMutation(
|
|
|
37
38
|
return total + i.quantity;
|
|
38
39
|
}, 0),
|
|
39
40
|
items: old.items.map((i, index) => {
|
|
41
|
+
console.log("Updating item:", item, i);
|
|
40
42
|
if (isItemCheck(i, index)) {
|
|
41
43
|
return {
|
|
42
44
|
...i,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/updateItem.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/updateItem.ts"],"names":[],"mappings":";;;;;;AAaA,MAAM,iBAAoB,GAAA,CAAC,KAAiB,KAAA,CAAC,MAAgB,KAAkB,KAAA;AAC7E,EAAA,IAAI,QAAQ,KAAS,IAAA,KAAA,CAAM,OAAO,CAAG,EAAA,IAAA,CAAK,EAAE,CAAI,CAAA,EAAA;AAC9C,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,IAAI,KAAS,IAAA,KAAA,IAAS,KAAM,CAAA,GAAA,KAAQ,KAAK,GAAK,EAAA;AAC5C,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,IAAI,MAAU,IAAA,KAAA,IAAS,KAAM,CAAA,IAAA,KAAS,QAAQ,CAAG,EAAA;AAC/C,IAAO,OAAA,IAAA;AAAA;AAET,EAAO,OAAA,KAAA;AACT,CAAA;AAEO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAgB,KAAA;AACjC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,MAAA,CAAO,MAAM,EAAE,OAAA,EAAS,iBAAiB,CAAA;AACpE,MAAA,IAAI,QAAU,EAAA,KAAA,IAAS,CAAC,QAAA,CAAS,IAAM,EAAA;AACrC,QAAA,MAAM,QAAU,EAAA,KAAA;AAAA;AAElB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,IAAM,EAAA;AACnB,MAAA,MAAM,KAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,KAAK,GAAI,EAAA;AAC9B,MAAM,MAAA,WAAA,GAAc,kBAAkB,IAAI,CAAA;AAE1C,MAAK,IAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH,aAAa,GAAI,CAAA,KAAA,CAAM,OAAO,CAAC,KAAA,EAAO,GAAG,KAAU,KAAA;AACjD,UAAI,IAAA,WAAA,CAAY,CAAG,EAAA,KAAK,CAAG,EAAA;AACzB,YAAA,OACE,SACC,OAAO,IAAA,CAAK,aAAa,WACtB,GAAA,IAAA,CAAK,WACL,CAAE,CAAA,QAAA,CAAA;AAAA;AAGV,UAAA,OAAO,QAAQ,CAAE,CAAA,QAAA;AAAA,WAChB,CAAC,CAAA;AAAA,QACJ,OAAO,GAAI,CAAA,KAAA,CAAM,GAAI,CAAA,CAAC,GAAG,KAAU,KAAA;AACjC,UAAQ,OAAA,CAAA,GAAA,CAAI,gBAAkB,EAAA,IAAA,EAAM,CAAC,CAAA;AACrC,UAAI,IAAA,WAAA,CAAY,CAAG,EAAA,KAAK,CAAG,EAAA;AACzB,YAAO,OAAA;AAAA,cACL,GAAG,CAAA;AAAA,cACH,UACE,OAAO,IAAA,CAAK,aAAa,WACrB,GAAA,IAAA,CAAK,WACL,CAAE,CAAA,QAAA;AAAA,cACR,UAAY,EAAA;AAAA,gBACV,GAAG,IAAK,CAAA,UAAA;AAAA,gBACR,GAAG,CAAE,CAAA;AAAA;AACP,aACF;AAAA;AAEF,UAAO,OAAA,CAAA;AAAA,SACR;AAAA,OACD,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,IAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"updateItem.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = Parameters<typeof API.change>[0];\n\ntype CartItem = NonNullable<\n Awaited<ReturnType<typeof API.get>>[\"data\"]\n>[\"items\"][number];\n\nconst createIsItemCheck = (input: Input) => (item: CartItem, index: number) => {\n if (\"id\" in input && input.id === `${item.id}`) {\n return true;\n }\n if (\"key\" in input && input.key === item.key) {\n return true;\n }\n if (\"line\" in input && input.line === index + 1) {\n return true;\n }\n return false;\n};\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (item: Input) => {\n const response = await API.change(item, { headers: DEFAULT_HEADERS });\n if (response?.error || !response.data) {\n throw response?.error;\n }\n return response.data;\n },\n async onMutate(item) {\n await Cart.cancel();\n const previousCart = Cart.get();\n const isItemCheck = createIsItemCheck(item);\n\n Cart.set((old) => ({\n ...old,\n items_count: old.items.reduce((total, i, index) => {\n if (isItemCheck(i, index)) {\n return (\n total +\n (typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity)\n );\n }\n return total + i.quantity;\n }, 0),\n items: old.items.map((i, index) => {\n console.log(\"Updating item:\", item, i);\n if (isItemCheck(i, index)) {\n return {\n ...i,\n quantity:\n typeof item.quantity !== \"undefined\"\n ? item.quantity\n : i.quantity,\n properties: {\n ...item.properties,\n ...i.properties,\n },\n };\n }\n return i;\n }),\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
|
@@ -2,13 +2,17 @@ import { useMutation } from '@tanstack/solid-query';
|
|
|
2
2
|
import client from '../client.js';
|
|
3
3
|
import API from '../api.js';
|
|
4
4
|
import { Cart } from '../query/index.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const mutation = useMutation(
|
|
7
8
|
() => ({
|
|
8
9
|
mutationFn: async (note) => {
|
|
9
|
-
const response = await API.update(
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const response = await API.update(
|
|
11
|
+
{
|
|
12
|
+
note
|
|
13
|
+
},
|
|
14
|
+
{ headers: DEFAULT_HEADERS }
|
|
15
|
+
);
|
|
12
16
|
if (response.error) {
|
|
13
17
|
throw response.error;
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mutations/updateNote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mutations/updateNote.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,QAAW,GAAA,WAAA;AAAA,EACtB,OAAO;AAAA,IACL,UAAA,EAAY,OAAO,IAAwB,KAAA;AACzC,MAAM,MAAA,QAAA,GAAW,MAAM,GAAI,CAAA,MAAA;AAAA,QACzB;AAAA,UACE;AAAA,SACF;AAAA,QACA,EAAE,SAAS,eAAgB;AAAA,OAC7B;AAEA,MAAA,IAAI,SAAS,KAAO,EAAA;AAClB,QAAA,MAAM,QAAS,CAAA,KAAA;AAAA;AAGjB,MAAA,OAAO,QAAS,CAAA,IAAA;AAAA,KAClB;AAAA,IACA,MAAM,SAAS,IAAM,EAAA;AACnB,MAAA,MAAM,KAAK,MAAO,EAAA;AAClB,MAAM,MAAA,YAAA,GAAe,KAAK,GAAI,EAAA;AAE9B,MAAK,IAAA,CAAA,GAAA,CAAI,CAAC,GAAS,MAAA;AAAA,QACjB,GAAG,GAAA;AAAA,QACH;AAAA,OACA,CAAA,CAAA;AAEF,MAAA,OAAO,EAAE,YAAa,EAAA;AAAA,KACxB;AAAA,IACA,OAAA,CAAQ,CAAG,EAAA,EAAA,EAAI,OAAS,EAAA;AACtB,MAAA,IAAI,SAAS,YAAc,EAAA,IAAA,CAAK,GAAI,CAAA,MAAM,QAAQ,YAAY,CAAA;AAC9D,MAAA,IAAA,CAAK,UAAW,EAAA;AAAA,KAClB;AAAA,IACA,UAAU,IAAM,EAAA;AACd,MAAA,IAAI,CAAC,IAAA,EAAa,OAAA,IAAA,CAAK,UAAW,EAAA;AAClC,MAAK,IAAA,CAAA,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA;AACrB,GACF,CAAA;AAAA,EACA,MAAM;AACR","file":"updateNote.js","sourcesContent":["import { useMutation } from \"@tanstack/solid-query\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { Cart } from \"../query/index.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport type Input = string | null;\n\nexport const mutation = useMutation(\n () => ({\n mutationFn: async (note: string | null) => {\n const response = await API.update(\n {\n note,\n },\n { headers: DEFAULT_HEADERS },\n );\n\n if (response.error) {\n throw response.error;\n }\n\n return response.data;\n },\n async onMutate(note) {\n await Cart.cancel();\n const previousCart = Cart.get();\n\n Cart.set((old) => ({\n ...old,\n note,\n }));\n\n return { previousCart };\n },\n onError(_, __, context) {\n if (context?.previousCart) Cart.set(() => context.previousCart);\n Cart.invalidate();\n },\n onSuccess(cart) {\n if (!cart) return Cart.invalidate();\n Cart.set(() => cart);\n },\n }),\n () => client,\n);\n"]}
|
package/dist/main/query/cart.js
CHANGED
|
@@ -2,6 +2,7 @@ import { useQuery } from '@tanstack/solid-query';
|
|
|
2
2
|
import { validateCart } from '@brytdesigns/shopify-ajax-cart-api';
|
|
3
3
|
import client from '../client.js';
|
|
4
4
|
import API from '../api.js';
|
|
5
|
+
import { DEFAULT_HEADERS } from '../const.js';
|
|
5
6
|
|
|
6
7
|
const KEY = "cart";
|
|
7
8
|
const invalidate = () => client.invalidateQueries({ queryKey: [KEY] });
|
|
@@ -12,7 +13,7 @@ const query = useQuery(
|
|
|
12
13
|
() => ({
|
|
13
14
|
queryKey: [KEY],
|
|
14
15
|
async queryFn({ signal }) {
|
|
15
|
-
const cart = await API.get({}, { signal });
|
|
16
|
+
const cart = await API.get({}, { signal, headers: DEFAULT_HEADERS });
|
|
16
17
|
if (cart?.error || !cart?.data) {
|
|
17
18
|
throw cart.error;
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/query/cart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/query/cart.ts"],"names":[],"mappings":";;;;;;AASO,MAAM,GAAM,GAAA;AACN,MAAA,UAAA,GAAa,MAAM,MAAO,CAAA,iBAAA,CAAkB,EAAE,QAAU,EAAA,CAAC,GAAG,CAAA,EAAG;AAC/D,MAAA,GAAA,GAAM,CAAC,EAClB,KAAA,MAAA,CAAO,aAAa,CAAC,GAAG,GAAG,EAAE;AAClB,MAAA,MAAA,GAAS,YAAY,MAAO,CAAA,aAAA,CAAc,EAAE,QAAU,EAAA,CAAC,GAAG,CAAA,EAAG;AACnE,MAAM,MAAM,MAAM,MAAA,CAAO,YAAa,CAAA,CAAC,GAAG,CAAC;AAE3C,MAAM,KAAQ,GAAA,QAAA;AAAA,EACnB,OAAO;AAAA,IACL,QAAA,EAAU,CAAC,GAAG,CAAA;AAAA,IACd,MAAM,OAAA,CAAQ,EAAE,MAAA,EAAU,EAAA;AACxB,MAAM,MAAA,IAAA,GAAO,MAAM,GAAA,CAAI,GAAI,CAAA,IAAI,EAAE,MAAA,EAAQ,OAAS,EAAA,eAAA,EAAiB,CAAA;AACnE,MAAA,IAAI,IAAM,EAAA,KAAA,IAAS,CAAC,IAAA,EAAM,IAAM,EAAA;AAC9B,QAAA,MAAM,IAAK,CAAA,KAAA;AAAA;AAEb,MAAA,OAAO,IAAK,CAAA,IAAA;AAAA,KACd;AAAA,IACA,WAAa,EAAA,YAAA,CAAa,MAAO,CAAA,WAAA,CAAY,WAAW,CAAA;AAAA,IACxD,cAAgB,EAAA,QAAA;AAAA,IAChB,SAAA,EAAW,MAAO,EAAK,GAAA,CAAA;AAAA,IACvB,YAAc,EAAA,IAAA;AAAA,IACd,SAAW,EAAA;AAAA,GACb,CAAA;AAAA,EACA,MAAM;AACR","file":"cart.js","sourcesContent":["import type { CartData } from \"../types\";\n\nimport { useQuery } from \"@tanstack/solid-query\";\nimport { validateCart } from \"@brytdesigns/shopify-ajax-cart-api\";\n\nimport client from \"../client.js\";\nimport API from \"../api.js\";\nimport { DEFAULT_HEADERS } from \"../const.js\";\n\nexport const KEY = \"cart\";\nexport const invalidate = () => client.invalidateQueries({ queryKey: [KEY] });\nexport const set = (cb: (data: CartData) => CartData) =>\n client.setQueryData([KEY], cb);\nexport const cancel = async () => client.cancelQueries({ queryKey: [KEY] });\nexport const get = () => client.getQueryData([KEY]) as CartData;\n\nexport const query = useQuery(\n () => ({\n queryKey: [KEY],\n async queryFn({ signal }) {\n const cart = await API.get({}, { signal, headers: DEFAULT_HEADERS });\n if (cart?.error || !cart?.data) {\n throw cart.error;\n }\n return cart.data;\n },\n initialData: validateCart(window.BrytDesigns.initialCart),\n refetchOnMount: \"always\",\n staleTime: 1000 * 60 * 5,\n throwOnError: true,\n reconcile: \"id\",\n }),\n () => client,\n);\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brytdesigns/shopify-ajax-cart",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"description": "Reactive state management solution for the Ajax Cart API library",
|
|
5
5
|
"main": "./dist/main/index.js",
|
|
6
6
|
"module": "./dist/main/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@tanstack/solid-query-persist-client": "^5.76.2",
|
|
25
25
|
"lz-string": "^1.5.0",
|
|
26
26
|
"solid-js": "^1.9.7",
|
|
27
|
-
"@brytdesigns/shopify-ajax-cart-api": "1.0.
|
|
27
|
+
"@brytdesigns/shopify-ajax-cart-api": "1.0.32"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"dts-bundle-generator": "^9.5.1",
|