@brytdesigns/shopify-ajax-cart 1.0.46 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { mergeProps, observable } from 'solid-js';
2
2
  import { QueryClient, useQuery, useMutation } from '@tanstack/solid-query';
3
3
  import { createAjaxCartApi, validateCart } from '@brytdesigns/shopify-ajax-cart-api';
4
- import { persistQueryClient } from '@tanstack/solid-query-persist-client';
5
- import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister';
4
+ import { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';
6
5
  import lz from 'lz-string';
7
6
 
8
7
  var __defProp = Object.defineProperty;
@@ -21,15 +20,20 @@ __export(cart_exports, {
21
20
  query: () => query,
22
21
  set: () => set
23
22
  });
24
- var client = new QueryClient();
25
- persistQueryClient({
26
- queryClient: client,
27
- persister: createSyncStoragePersister({
28
- storage: window.localStorage,
29
- serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),
30
- deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),
31
- key: "brytdesigns-ajax-cart"
32
- })
23
+ var persister = experimental_createQueryPersister({
24
+ serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),
25
+ deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),
26
+ storage: window.localStorage,
27
+ maxAge: 1e3 * 60 * 60 * 12,
28
+ prefix: "@brytdesigns/shopify-ajax-cart"
29
+ });
30
+ var client = new QueryClient({
31
+ defaultOptions: {
32
+ queries: {
33
+ gcTime: 1e3 * 60 * 5,
34
+ persister: persister.persisterFn
35
+ }
36
+ }
33
37
  });
34
38
  var client_default = client;
35
39
  var API = createAjaxCartApi({ debug: window?.BrytDesigns?.debug });
@@ -119,13 +123,8 @@ var mutation2 = useMutation(
119
123
  }));
120
124
  return { previousCart };
121
125
  },
122
- onError(_, __, context) {
123
- if (context?.previousCart) cart_exports.set(() => context.previousCart);
126
+ onSettled() {
124
127
  cart_exports.invalidate();
125
- },
126
- onSuccess(cart) {
127
- if (!cart) return cart_exports.invalidate();
128
- cart_exports.set(() => cart);
129
128
  }
130
129
  }),
131
130
  () => client_default
@@ -162,13 +161,8 @@ var mutation3 = useMutation(
162
161
  }));
163
162
  return { previousCart };
164
163
  },
165
- onError(_, __, context) {
166
- if (context?.previousCart) cart_exports.set(() => context.previousCart);
164
+ onSettled() {
167
165
  cart_exports.invalidate();
168
- },
169
- onSuccess(cart) {
170
- if (!cart) return cart_exports.invalidate();
171
- cart_exports.set(() => cart);
172
166
  }
173
167
  }),
174
168
  () => client_default
@@ -193,12 +187,8 @@ var mutation4 = useMutation(
193
187
  }
194
188
  return response.data;
195
189
  },
196
- onError() {
190
+ onSettled() {
197
191
  cart_exports.invalidate();
198
- },
199
- onSuccess(cart) {
200
- if (!cart) return cart_exports.invalidate();
201
- cart_exports.set(() => cart);
202
192
  }
203
193
  }),
204
194
  () => client_default
@@ -258,14 +248,6 @@ var mutation5 = useMutation(
258
248
  }));
259
249
  return { previousCart };
260
250
  },
261
- // onError(_, __, context) {
262
- // if (context?.previousCart) Cart.set(() => context.previousCart);
263
- // Cart.invalidate();
264
- // },
265
- // onSuccess(cart) {
266
- // if (!cart) return Cart.invalidate();
267
- // Cart.set(() => cart);
268
- // },
269
251
  onSettled() {
270
252
  cart_exports.invalidate();
271
253
  }
@@ -301,13 +283,8 @@ var mutation6 = useMutation(
301
283
  }));
302
284
  return { previousCart };
303
285
  },
304
- onError(_, __, context) {
305
- if (context?.previousCart) cart_exports.set(() => context.previousCart);
286
+ onSettled() {
306
287
  cart_exports.invalidate();
307
- },
308
- onSuccess(cart) {
309
- if (!cart) return cart_exports.invalidate();
310
- cart_exports.set(() => cart);
311
288
  }
312
289
  }),
313
290
  () => client_default
@@ -337,13 +314,8 @@ var mutation7 = useMutation(
337
314
  }));
338
315
  return { previousCart };
339
316
  },
340
- onError(_, __, context) {
341
- if (context?.previousCart) cart_exports.set(() => context.previousCart);
317
+ onSettled() {
342
318
  cart_exports.invalidate();
343
- },
344
- onSuccess(cart) {
345
- if (!cart) return cart_exports.invalidate();
346
- cart_exports.set(() => cart);
347
319
  }
348
320
  }),
349
321
  () => client_default
@@ -517,9 +489,6 @@ var oldFetch = window.fetch;
517
489
  window.fetch = async function(...args) {
518
490
  let [input, options] = args;
519
491
  let route;
520
- if (window.BrytDesigns.debug) {
521
- console.log("Fetch", ...args);
522
- }
523
492
  if (input instanceof Request) route = input.url;
524
493
  else if (input instanceof URL) route = input.toString();
525
494
  else if (typeof input === "string") route = input;
@@ -1 +1 @@
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":"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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\";\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.includes(\":\") && input.id === item.key) {\n return true;\n }\n if (\"id\" in input && input.id === `${item.id}`) {\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 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 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 | 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"]}
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":"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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\";\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 { experimental_createQueryPersister } from \"@tanstack/query-persist-client-core\";\nimport lz from \"lz-string\";\n\nconst persister = experimental_createQueryPersister({\n serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),\n deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),\n storage: window.localStorage,\n maxAge: 1000 * 60 * 60 * 12,\n prefix: \"@brytdesigns/shopify-ajax-cart\",\n});\n\nconst client = new QueryClient({\n defaultOptions: {\n queries: {\n gcTime: 1000 * 60 * 5,\n persister: persister.persisterFn,\n },\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} as const;\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 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 = 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 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 (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 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 = 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.includes(\":\") && input.id === item.key) {\n return true;\n }\n if (\"id\" in input && input.id === `${item.id}`) {\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 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 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 | 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 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 | 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 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 = {\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 (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"]}
@@ -1,17 +1,21 @@
1
1
  import { QueryClient } from '@tanstack/solid-query';
2
- import { persistQueryClient } from '@tanstack/solid-query-persist-client';
3
- import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister';
2
+ import { experimental_createQueryPersister } from '@tanstack/query-persist-client-core';
4
3
  import lz from 'lz-string';
5
4
 
6
- const client = new QueryClient();
7
- persistQueryClient({
8
- queryClient: client,
9
- persister: createSyncStoragePersister({
10
- storage: window.localStorage,
11
- serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),
12
- deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),
13
- key: "brytdesigns-ajax-cart"
14
- })
5
+ const persister = experimental_createQueryPersister({
6
+ serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),
7
+ deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),
8
+ storage: window.localStorage,
9
+ maxAge: 1e3 * 60 * 60 * 12,
10
+ prefix: "@brytdesigns/shopify-ajax-cart"
11
+ });
12
+ const client = new QueryClient({
13
+ defaultOptions: {
14
+ queries: {
15
+ gcTime: 1e3 * 60 * 5,
16
+ persister: persister.persisterFn
17
+ }
18
+ }
15
19
  });
16
20
  var client_default = client;
17
21
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client.ts"],"names":[],"mappings":";;;;;AAKA,MAAM,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","file":"client.js","sourcesContent":["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"]}
1
+ {"version":3,"sources":["../../src/client.ts"],"names":[],"mappings":";;;;AAIA,MAAM,YAAY,iCAAkC,CAAA;AAAA,EAClD,SAAA,EAAW,CAAC,IAAS,KAAA,EAAA,CAAG,gBAAgB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,EAC5D,WAAA,EAAa,CAAC,IAAS,KAAA,IAAA,CAAK,MAAM,EAAG,CAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AAAA,EAC9D,SAAS,MAAO,CAAA,YAAA;AAAA,EAChB,MAAA,EAAQ,GAAO,GAAA,EAAA,GAAK,EAAK,GAAA,EAAA;AAAA,EACzB,MAAQ,EAAA;AACV,CAAC,CAAA;AAED,MAAM,MAAA,GAAS,IAAI,WAAY,CAAA;AAAA,EAC7B,cAAgB,EAAA;AAAA,IACd,OAAS,EAAA;AAAA,MACP,MAAA,EAAQ,MAAO,EAAK,GAAA,CAAA;AAAA,MACpB,WAAW,SAAU,CAAA;AAAA;AACvB;AAEJ,CAAC,CAAA;AAED,IAAO,cAAQ,GAAA","file":"client.js","sourcesContent":["import { QueryClient } from \"@tanstack/solid-query\";\nimport { experimental_createQueryPersister } from \"@tanstack/query-persist-client-core\";\nimport lz from \"lz-string\";\n\nconst persister = experimental_createQueryPersister({\n serialize: (data) => lz.compressToUTF16(JSON.stringify(data)),\n deserialize: (data) => JSON.parse(lz.decompressFromUTF16(data)),\n storage: window.localStorage,\n maxAge: 1000 * 60 * 60 * 12,\n prefix: \"@brytdesigns/shopify-ajax-cart\",\n});\n\nconst client = new QueryClient({\n defaultOptions: {\n queries: {\n gcTime: 1000 * 60 * 5,\n persister: persister.persisterFn,\n },\n },\n});\n\nexport default client;\n"]}
@@ -1 +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"]}
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} as const;\n"]}