@shopify/shop-minis-react 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/_virtual/debounce.js +8 -0
  2. package/dist/_virtual/debounce.js.map +1 -0
  3. package/dist/components/commerce/merchant-card.js +201 -0
  4. package/dist/components/commerce/merchant-card.js.map +1 -0
  5. package/dist/components/commerce/product-card.js +11 -9
  6. package/dist/components/commerce/product-card.js.map +1 -1
  7. package/dist/hooks/product/useCuratedProducts.js +20 -0
  8. package/dist/hooks/product/useCuratedProducts.js.map +1 -0
  9. package/dist/hooks/product/useProduct.js +24 -0
  10. package/dist/hooks/product/useProduct.js.map +1 -0
  11. package/dist/hooks/product/useProductMedia.js +24 -0
  12. package/dist/hooks/product/useProductMedia.js.map +1 -0
  13. package/dist/hooks/product/useProductSearch.js +44 -0
  14. package/dist/hooks/product/useProductSearch.js.map +1 -0
  15. package/dist/hooks/product/useProductVariants.js +21 -0
  16. package/dist/hooks/product/useProductVariants.js.map +1 -0
  17. package/dist/hooks/product/useProducts.js +17 -0
  18. package/dist/hooks/product/useProducts.js.map +1 -0
  19. package/dist/hooks/shop/useShop.js +17 -0
  20. package/dist/hooks/shop/useShop.js.map +1 -0
  21. package/dist/hooks/user/useFollowedShops.js +21 -0
  22. package/dist/hooks/user/useFollowedShops.js.map +1 -0
  23. package/dist/hooks/user/useRecentProducts.js +21 -0
  24. package/dist/hooks/user/useRecentProducts.js.map +1 -0
  25. package/dist/hooks/user/useRecentShops.js +21 -0
  26. package/dist/hooks/user/useRecentShops.js.map +1 -0
  27. package/dist/hooks/user/useSavedProducts.js +21 -0
  28. package/dist/hooks/user/useSavedProducts.js.map +1 -0
  29. package/dist/index.js +210 -178
  30. package/dist/index.js.map +1 -1
  31. package/dist/internal/useShopActionsPaginatedDataFetching.js +24 -24
  32. package/dist/internal/useShopActionsPaginatedDataFetching.js.map +1 -1
  33. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js +12 -0
  34. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js.map +1 -0
  35. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js +17 -0
  36. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js.map +1 -0
  37. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js +15 -0
  38. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js.map +1 -0
  39. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js +12 -0
  40. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js.map +1 -0
  41. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js +22 -0
  42. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js.map +1 -0
  43. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js +14 -0
  44. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js.map +1 -0
  45. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js +12 -0
  46. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js.map +1 -0
  47. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js +16 -0
  48. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
  49. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js +61 -0
  50. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js.map +1 -0
  51. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js +14 -0
  52. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js.map +1 -0
  53. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js +13 -0
  54. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js.map +1 -0
  55. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js +16 -0
  56. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js.map +1 -0
  57. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js +14 -0
  58. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js.map +1 -0
  59. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js +29 -0
  60. package/dist/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js.map +1 -0
  61. package/dist/types/minisSDK.generated.d.js.map +1 -1
  62. package/package.json +4 -3
  63. package/src/base.css +273 -0
  64. package/src/components/commerce/merchant-card.tsx +262 -0
  65. package/src/components/commerce/product-card.tsx +3 -1
  66. package/src/components/index.ts +1 -0
  67. package/src/hooks/index.ts +11 -0
  68. package/src/hooks/product/useCuratedProducts.doc.ts +32 -0
  69. package/src/hooks/product/useCuratedProducts.example.tsx +10 -0
  70. package/src/hooks/product/useCuratedProducts.ts +41 -0
  71. package/src/hooks/product/useProduct.ts +45 -0
  72. package/src/hooks/product/useProductMedia.ts +51 -0
  73. package/src/hooks/product/useProductSearch.doc.ts +32 -0
  74. package/src/hooks/product/useProductSearch.example.tsx +13 -0
  75. package/src/hooks/product/useProductSearch.ts +95 -0
  76. package/src/hooks/product/useProductVariants.ts +48 -0
  77. package/src/hooks/product/useProducts.ts +38 -0
  78. package/src/hooks/shop/useShop.doc.ts +31 -0
  79. package/src/hooks/shop/useShop.example.tsx +7 -0
  80. package/src/hooks/shop/useShop.ts +38 -0
  81. package/src/hooks/user/useFollowedShops.ts +43 -0
  82. package/src/hooks/user/useRecentProducts.doc.ts +32 -0
  83. package/src/hooks/user/useRecentProducts.example.tsx +13 -0
  84. package/src/hooks/user/useRecentProducts.ts +46 -0
  85. package/src/hooks/user/useRecentShops.ts +43 -0
  86. package/src/hooks/user/useSavedProducts.doc.ts +32 -0
  87. package/src/hooks/user/useSavedProducts.example.tsx +13 -0
  88. package/src/hooks/user/useSavedProducts.ts +46 -0
  89. package/src/index.css +1 -221
  90. package/src/internal/useShopActionsPaginatedDataFetching.ts +8 -8
  91. package/src/types/minisSDK.generated.d.ts +239 -4
  92. package/src/dev.tsx +0 -868
  93. package/src/mockActions.ts +0 -237
@@ -1 +1 @@
1
- {"version":3,"file":"useShopActionsPaginatedDataFetching.js","sources":["../../src/internal/useShopActionsPaginatedDataFetching.ts"],"sourcesContent":["import {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {\n DataHookFetchPolicy,\n PaginatedDataHookReturnsBase,\n PaginationInfo,\n ShopActionResult,\n} from '../types'\nimport {formatError, MiniError} from '../utils/errors'\n\nexport interface ShopActionsDataFetchingResult<S>\n extends PaginatedDataHookReturnsBase {\n data: S | null\n}\n\nexport const useShopActionsPaginatedDataFetching = <\n S = unknown,\n P extends {after?: string; fetchPolicy?: DataHookFetchPolicy} = {\n after?: undefined\n fetchPolicy?: DataHookFetchPolicy\n },\n>(\n action: (\n params: P\n ) => Promise<ShopActionResult<{data: S; pageInfo: PaginationInfo}>>,\n params: P,\n options: {\n skip?: boolean\n hook?: string\n validator?: (data: S) => void\n }\n): ShopActionsDataFetchingResult<S> => {\n const [state, setState] = useState<{\n data: S | null\n pageInfo: PaginationInfo\n loading: boolean\n error: Error | null\n }>({\n data: null,\n pageInfo: {hasNextPage: false, endCursor: null},\n loading: false,\n error: null,\n })\n\n const skip = options?.skip === true\n const {validator, hook} = options\n const runValidator = useCallback(\n (dataToValidate: S) => {\n try {\n validator?.(dataToValidate)\n return null\n } catch (err) {\n return (\n err ??\n new MiniError({\n hook,\n message: 'Validation failed',\n })\n )\n }\n },\n [validator, hook]\n )\n\n // Params object is recreated on every render, so we need to memoize it.\n // We don't know what's inside the params object, but we can stringify it.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableParams = useMemo(() => params, [JSON.stringify(params)])\n\n // There's a lot of complexity here because each type of fetch has different side effects if we are trying to\n // stay close to how Apollo client works. eg:\n // - Initial fetch: set loading, set error, set data, reset on error (don't throw)\n // - change params fetch: set loading, set error, set data, reset on error (don't throw)\n // - refetch fetch: don't set loading, set error, update data, leave data as is was on error (also throw)\n // - fetchMore fetch: don't set loading, don't set error, update data, leave data as is was on error (also throw)\n const fetch = useCallback(\n async (\n extraParams?: Partial<P>,\n {\n setLoading = true,\n setError = true,\n resetOnError = true,\n throwOnError = true,\n appendData = false,\n }: {\n setLoading?: boolean\n setError?: boolean\n resetOnError?: boolean\n throwOnError?: boolean\n appendData?: boolean\n } = {}\n ) => {\n let queryError: Error | null = null\n let validationError: Error | null = null\n\n setState(curState => ({\n ...curState,\n loading: setLoading ? true : curState.loading,\n }))\n\n try {\n const result = await action({...stableParams, ...extraParams})\n\n if (result.ok) {\n validationError = runValidator(result.data.data)\n\n setState(curState => {\n let newData = result.data.data\n\n if (\n appendData &&\n curState.data &&\n Array.isArray(curState.data) &&\n Array.isArray(result.data.data)\n ) {\n newData = [...curState.data, ...result.data.data] as S\n }\n\n return {\n ...curState,\n data: newData,\n pageInfo: result.data.pageInfo,\n loading: false,\n error: validationError ?? null,\n }\n })\n } else {\n throw result.error\n }\n } catch (err) {\n queryError = formatError({hook}, err)\n }\n\n const error = validationError || queryError\n\n if (error && (setError || resetOnError)) {\n setState(curState => ({\n data: resetOnError ? null : curState.data,\n pageInfo: resetOnError\n ? {hasNextPage: false, endCursor: null}\n : curState.pageInfo,\n loading: false,\n error,\n }))\n }\n\n if (error && throwOnError) {\n throw error\n }\n },\n [action, stableParams, hook, runValidator]\n )\n\n const refetch = useCallback(async () => {\n await fetch({fetchPolicy: 'network-only'} as Partial<P>, {\n setLoading: false,\n resetOnError: false,\n throwOnError: true,\n })\n }, [fetch])\n\n const fetchMore = useCallback(async () => {\n if (!state.pageInfo.hasNextPage || !state.pageInfo.endCursor) return\n\n await fetch({after: state.pageInfo.endCursor} as Partial<P>, {\n setLoading: false,\n setError: false,\n resetOnError: false,\n throwOnError: true,\n appendData: true,\n })\n }, [state.pageInfo.hasNextPage, state.pageInfo.endCursor, fetch])\n\n useEffect(() => {\n if (skip) return\n\n fetch(\n {},\n {\n throwOnError: false,\n }\n )\n }, [fetch, skip])\n\n return {\n data: state.data,\n loading: state.loading,\n error: state.error,\n hasNextPage: state.pageInfo.hasNextPage,\n refetch,\n fetchMore,\n }\n}\n"],"names":["useShopActionsPaginatedDataFetching","action","params","options","state","setState","useState","skip","validator","hook","runValidator","useCallback","dataToValidate","err","MiniError","stableParams","useMemo","fetch","extraParams","setLoading","setError","resetOnError","throwOnError","appendData","queryError","validationError","curState","result","newData","formatError","error","refetch","fetchMore","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"useShopActionsPaginatedDataFetching.js","sources":["../../src/internal/useShopActionsPaginatedDataFetching.ts"],"sourcesContent":["import {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {\n DataHookFetchPolicy,\n PaginatedDataHookReturnsBase,\n PaginationInfo,\n ShopActionResult,\n} from '../types'\nimport {formatError, MiniError} from '../utils/errors'\n\nexport interface ShopActionsDataFetchingResult<S>\n extends PaginatedDataHookReturnsBase {\n data: S | null\n}\n\nexport const useShopActionsPaginatedDataFetching = <\n S = unknown,\n P extends {after?: string; fetchPolicy?: DataHookFetchPolicy} = {\n after?: undefined\n fetchPolicy?: DataHookFetchPolicy\n },\n>(\n action: (\n params: P\n ) => Promise<ShopActionResult<{data: S; pageInfo: PaginationInfo}>>,\n params: P,\n options: {\n skip?: boolean\n hook?: string\n validator?: (data: S) => void\n }\n): ShopActionsDataFetchingResult<S> => {\n const [state, setState] = useState<{\n data: S | null\n pageInfo: PaginationInfo\n loading: boolean\n error: Error | null\n }>({\n data: null,\n pageInfo: {hasNextPage: false, endCursor: null},\n loading: false,\n error: null,\n })\n\n const skip = options?.skip === true\n const {validator, hook} = options\n const runValidator = useCallback(\n (dataToValidate: S): Error | null => {\n try {\n validator?.(dataToValidate)\n return null\n } catch (err) {\n if (err instanceof Error) return err\n\n return new MiniError({\n hook,\n message: 'Validation failed',\n })\n }\n },\n [validator, hook]\n )\n\n // Params object is recreated on every render, so we need to memoize it.\n // We don't know what's inside the params object, but we can stringify it.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableParams = useMemo(() => params, [JSON.stringify(params)])\n\n // There's a lot of complexity here because each type of fetch has different side effects if we are trying to\n // stay close to how Apollo client works. eg:\n // - Initial fetch: set loading, set error, set data, reset on error (don't throw)\n // - change params fetch: set loading, set error, set data, reset on error (don't throw)\n // - refetch fetch: don't set loading, set error, update data, leave data as is was on error (also throw)\n // - fetchMore fetch: don't set loading, don't set error, update data, leave data as is was on error (also throw)\n const fetch = useCallback(\n async (\n extraParams?: Partial<P>,\n {\n setLoading = true,\n setError = true,\n resetOnError = true,\n throwOnError = true,\n appendData = false,\n }: {\n setLoading?: boolean\n setError?: boolean\n resetOnError?: boolean\n throwOnError?: boolean\n appendData?: boolean\n } = {}\n ) => {\n let queryError: Error | null = null\n let validationError: Error | null = null\n\n setState(curState => ({\n ...curState,\n loading: setLoading ? true : curState.loading,\n }))\n\n try {\n const result = await action({...stableParams, ...extraParams})\n\n if (result.ok) {\n validationError = runValidator(result.data.data)\n\n setState(curState => {\n let newData = result.data.data\n\n if (\n appendData &&\n curState.data &&\n Array.isArray(curState.data) &&\n Array.isArray(result.data.data)\n ) {\n newData = [...curState.data, ...result.data.data] as S\n }\n\n return {\n ...curState,\n data: newData,\n pageInfo: result.data.pageInfo,\n loading: false,\n error: validationError ?? null,\n }\n })\n } else {\n throw result.error\n }\n } catch (err) {\n console.log('caught 1', err)\n queryError = formatError({hook}, err)\n }\n\n const error = validationError || queryError\n\n if (error && (setError || resetOnError)) {\n setState(curState => ({\n data: resetOnError ? null : curState.data,\n pageInfo: resetOnError\n ? {hasNextPage: false, endCursor: null}\n : curState.pageInfo,\n loading: false,\n error,\n }))\n }\n\n if (error && throwOnError) {\n throw error\n }\n },\n [action, stableParams, hook, runValidator]\n )\n\n const refetch = useCallback(async () => {\n await fetch({fetchPolicy: 'network-only'} as Partial<P>, {\n setLoading: false,\n resetOnError: false,\n throwOnError: true,\n })\n }, [fetch])\n\n const fetchMore = useCallback(async () => {\n if (!state.pageInfo.hasNextPage || !state.pageInfo.endCursor) return\n\n await fetch({after: state.pageInfo.endCursor} as Partial<P>, {\n setLoading: false,\n setError: false,\n resetOnError: false,\n throwOnError: true,\n appendData: true,\n })\n }, [state.pageInfo.hasNextPage, state.pageInfo.endCursor, fetch])\n\n useEffect(() => {\n if (skip) return\n\n fetch(\n {},\n {\n throwOnError: false,\n }\n )\n }, [fetch, skip])\n\n return {\n data: state.data,\n loading: state.loading,\n error: state.error,\n hasNextPage: state.pageInfo.hasNextPage,\n refetch,\n fetchMore,\n }\n}\n"],"names":["useShopActionsPaginatedDataFetching","action","params","options","state","setState","useState","skip","validator","hook","runValidator","useCallback","dataToValidate","err","MiniError","stableParams","useMemo","fetch","extraParams","setLoading","setError","resetOnError","throwOnError","appendData","queryError","validationError","curState","result","newData","formatError","error","refetch","fetchMore","useEffect"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { __require as u } from "./_root.js";
2
+ var r, e;
3
+ function a() {
4
+ if (e) return r;
5
+ e = 1;
6
+ var o = u(), i = o.Symbol;
7
+ return r = i, r;
8
+ }
9
+ export {
10
+ a as __require
11
+ };
12
+ //# sourceMappingURL=_Symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_Symbol.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js"],"sourcesContent":["var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n"],"names":["root","require$$0","Symbol","_Symbol"],"mappings":";;;;;AAAA,MAAIA,IAAOC,EAAkB,GAGzBC,IAASF,EAAK;AAElB,SAAAG,IAAiBD;;","x_google_ignoreList":[0]}
@@ -0,0 +1,17 @@
1
+ import { __require as T } from "./_Symbol.js";
2
+ import { __require as b } from "./_getRawTag.js";
3
+ import { __require as f } from "./_objectToString.js";
4
+ var r, n;
5
+ function q() {
6
+ if (n) return r;
7
+ n = 1;
8
+ var t = T(), a = b(), o = f(), u = "[object Null]", g = "[object Undefined]", i = t ? t.toStringTag : void 0;
9
+ function _(e) {
10
+ return e == null ? e === void 0 ? g : u : i && i in Object(e) ? a(e) : o(e);
11
+ }
12
+ return r = _, r;
13
+ }
14
+ export {
15
+ q as __require
16
+ };
17
+ //# sourceMappingURL=_baseGetTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_baseGetTag.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js"],"sourcesContent":["var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n"],"names":["Symbol","require$$0","getRawTag","require$$1","objectToString","require$$2","nullTag","undefinedTag","symToStringTag","baseGetTag","value","_baseGetTag"],"mappings":";;;;;;;AAAA,MAAIA,IAASC,EAAoB,GAC7BC,IAAYC,EAAuB,GACnCC,IAAiBC,EAA4B,GAG7CC,IAAU,iBACVC,IAAe,sBAGfC,IAAiBR,IAASA,EAAO,cAAc;AASnD,WAASS,EAAWC,GAAO;AACzB,WAAIA,KAAS,OACJA,MAAU,SAAYH,IAAeD,IAEtCE,KAAkBA,KAAkB,OAAOE,CAAK,IACpDR,EAAUQ,CAAK,IACfN,EAAeM,CAAK;AAAA,EAC1B;AAEA,SAAAC,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,15 @@
1
+ import { __require as n } from "./_trimmedEndIndex.js";
2
+ var e, i;
3
+ function _() {
4
+ if (i) return e;
5
+ i = 1;
6
+ var a = n(), m = /^\s+/;
7
+ function u(r) {
8
+ return r && r.slice(0, a(r) + 1).replace(m, "");
9
+ }
10
+ return e = u, e;
11
+ }
12
+ export {
13
+ _ as __require
14
+ };
15
+ //# sourceMappingURL=_baseTrim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_baseTrim.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js"],"sourcesContent":["var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n"],"names":["trimmedEndIndex","require$$0","reTrimStart","baseTrim","string","_baseTrim"],"mappings":";;;;;AAAA,MAAIA,IAAkBC,EAA6B,GAG/CC,IAAc;AASlB,WAASC,EAASC,GAAQ;AACxB,WAAOA,KACHA,EAAO,MAAM,GAAGJ,EAAgBI,CAAM,IAAI,CAAC,EAAE,QAAQF,GAAa,EAAE;AAAA,EAE1E;AAEA,SAAAG,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,12 @@
1
+ import { commonjsGlobal as e } from "../../../../../_virtual/_commonjsHelpers.js";
2
+ var r, o;
3
+ function t() {
4
+ if (o) return r;
5
+ o = 1;
6
+ var a = typeof e == "object" && e && e.Object === Object && e;
7
+ return r = a, r;
8
+ }
9
+ export {
10
+ t as __require
11
+ };
12
+ //# sourceMappingURL=_freeGlobal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_freeGlobal.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n"],"names":["freeGlobal","global","_freeGlobal"],"mappings":";;;;;AACA,MAAIA,IAAa,OAAOC,KAAU,YAAYA,KAAUA,EAAO,WAAW,UAAUA;AAEpF,SAAAC,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,22 @@
1
+ import { __require as _ } from "./_Symbol.js";
2
+ var t, n;
3
+ function d() {
4
+ if (n) return t;
5
+ n = 1;
6
+ var a = _(), i = Object.prototype, o = i.hasOwnProperty, g = i.toString, e = a ? a.toStringTag : void 0;
7
+ function c(r) {
8
+ var s = o.call(r, e), u = r[e];
9
+ try {
10
+ r[e] = void 0;
11
+ var f = !0;
12
+ } catch {
13
+ }
14
+ var T = g.call(r);
15
+ return f && (s ? r[e] = u : delete r[e]), T;
16
+ }
17
+ return t = c, t;
18
+ }
19
+ export {
20
+ d as __require
21
+ };
22
+ //# sourceMappingURL=_getRawTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_getRawTag.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js"],"sourcesContent":["var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n"],"names":["Symbol","require$$0","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","_getRawTag"],"mappings":";;;;;AAAA,MAAIA,IAASC,EAAoB,GAG7BC,IAAc,OAAO,WAGrBC,IAAiBD,EAAY,gBAO7BE,IAAuBF,EAAY,UAGnCG,IAAiBL,IAASA,EAAO,cAAc;AASnD,WAASM,EAAUC,GAAO;AACxB,QAAIC,IAAQL,EAAe,KAAKI,GAAOF,CAAc,GACjDI,IAAMF,EAAMF,CAAc;AAE9B,QAAI;AACF,MAAAE,EAAMF,CAAc,IAAI;AACxB,UAAIK,IAAW;AAAA,IAChB,QAAW;AAAA,IAAA;AAEZ,QAAIC,IAASP,EAAqB,KAAKG,CAAK;AAC5C,WAAIG,MACEF,IACFD,EAAMF,CAAc,IAAII,IAExB,OAAOF,EAAMF,CAAc,IAGxBM;AAAA,EACT;AAEA,SAAAC,IAAiBN;;","x_google_ignoreList":[0]}
@@ -0,0 +1,14 @@
1
+ var r, t;
2
+ function c() {
3
+ if (t) return r;
4
+ t = 1;
5
+ var e = Object.prototype, o = e.toString;
6
+ function n(i) {
7
+ return o.call(i);
8
+ }
9
+ return r = n, r;
10
+ }
11
+ export {
12
+ c as __require
13
+ };
14
+ //# sourceMappingURL=_objectToString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_objectToString.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js"],"sourcesContent":["/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n"],"names":["objectProto","nativeObjectToString","objectToString","value","_objectToString"],"mappings":";;;;AACA,MAAIA,IAAc,OAAO,WAOrBC,IAAuBD,EAAY;AASvC,WAASE,EAAeC,GAAO;AAC7B,WAAOF,EAAqB,KAAKE,CAAK;AAAA,EACxC;AAEA,SAAAC,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,12 @@
1
+ import { __require as a } from "./_freeGlobal.js";
2
+ var r, e;
3
+ function u() {
4
+ if (e) return r;
5
+ e = 1;
6
+ var o = a(), t = typeof self == "object" && self && self.Object === Object && self, f = o || t || Function("return this")();
7
+ return r = f, r;
8
+ }
9
+ export {
10
+ u as __require
11
+ };
12
+ //# sourceMappingURL=_root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_root.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js"],"sourcesContent":["var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n"],"names":["freeGlobal","require$$0","freeSelf","root","_root"],"mappings":";;;;;AAAA,MAAIA,IAAaC,EAAwB,GAGrCC,IAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU,MAGxEC,IAAOH,KAAcE,KAAY,SAAS,aAAa,EAAG;AAE9D,SAAAE,IAAiBD;;","x_google_ignoreList":[0]}
@@ -0,0 +1,16 @@
1
+ var r, d;
2
+ function a() {
3
+ if (d) return r;
4
+ d = 1;
5
+ var t = /\s/;
6
+ function i(n) {
7
+ for (var e = n.length; e-- && t.test(n.charAt(e)); )
8
+ ;
9
+ return e;
10
+ }
11
+ return r = i, r;
12
+ }
13
+ export {
14
+ a as __require
15
+ };
16
+ //# sourceMappingURL=_trimmedEndIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_trimmedEndIndex.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n"],"names":["reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex"],"mappings":";;;;AACA,MAAIA,IAAe;AAUnB,WAASC,EAAgBC,GAAQ;AAG/B,aAFIC,IAAQD,EAAO,QAEZC,OAAWH,EAAa,KAAKE,EAAO,OAAOC,CAAK,CAAC;AAAG;AAC3D,WAAOA;AAAA,EACT;AAEA,SAAAC,IAAiBH;;","x_google_ignoreList":[0]}
@@ -0,0 +1,61 @@
1
+ import { __require as j } from "./isObject.js";
2
+ import { __require as A } from "./now.js";
3
+ import { __require as D } from "./toNumber.js";
4
+ var h, p;
5
+ function z() {
6
+ if (p) return h;
7
+ p = 1;
8
+ var W = j(), v = A(), b = D(), C = "Expected a function", L = Math.max, M = Math.min;
9
+ function N(q, r, u) {
10
+ var a, o, l, f, n, t, d = 0, x = !1, c = !1, g = !0;
11
+ if (typeof q != "function")
12
+ throw new TypeError(C);
13
+ r = b(r) || 0, W(u) && (x = !!u.leading, c = "maxWait" in u, l = c ? L(b(u.maxWait) || 0, r) : l, g = "trailing" in u ? !!u.trailing : g);
14
+ function T(e) {
15
+ var i = a, m = o;
16
+ return a = o = void 0, d = e, f = q.apply(m, i), f;
17
+ }
18
+ function R(e) {
19
+ return d = e, n = setTimeout(s, r), x ? T(e) : f;
20
+ }
21
+ function S(e) {
22
+ var i = e - t, m = e - d, k = r - i;
23
+ return c ? M(k, l - m) : k;
24
+ }
25
+ function E(e) {
26
+ var i = e - t, m = e - d;
27
+ return t === void 0 || i >= r || i < 0 || c && m >= l;
28
+ }
29
+ function s() {
30
+ var e = v();
31
+ if (E(e))
32
+ return I(e);
33
+ n = setTimeout(s, S(e));
34
+ }
35
+ function I(e) {
36
+ return n = void 0, g && a ? T(e) : (a = o = void 0, f);
37
+ }
38
+ function y() {
39
+ n !== void 0 && clearTimeout(n), d = 0, a = t = o = n = void 0;
40
+ }
41
+ function O() {
42
+ return n === void 0 ? f : I(v());
43
+ }
44
+ function _() {
45
+ var e = v(), i = E(e);
46
+ if (a = arguments, o = this, t = e, i) {
47
+ if (n === void 0)
48
+ return R(t);
49
+ if (c)
50
+ return clearTimeout(n), n = setTimeout(s, r), T(t);
51
+ }
52
+ return n === void 0 && (n = setTimeout(s, r)), f;
53
+ }
54
+ return _.cancel = y, _.flush = O, _;
55
+ }
56
+ return h = N, h;
57
+ }
58
+ export {
59
+ z as __require
60
+ };
61
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js"],"sourcesContent":["var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n"],"names":["isObject","require$$0","now","require$$1","toNumber","require$$2","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1"],"mappings":";;;;;;;AAAA,MAAIA,IAAWC,EAAqB,GAChCC,IAAMC,EAAgB,GACtBC,IAAWC,EAAqB,GAGhCC,IAAkB,uBAGlBC,IAAY,KAAK,KACjBC,IAAY,KAAK;AAwDrB,WAASC,EAASC,GAAMC,GAAMC,GAAS;AACrC,QAAIC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAAiB,GACjBC,IAAU,IACVC,IAAS,IACTC,IAAW;AAEf,QAAI,OAAOZ,KAAQ;AACjB,YAAM,IAAI,UAAUJ,CAAe;AAErC,IAAAK,IAAOP,EAASO,CAAI,KAAK,GACrBX,EAASY,CAAO,MAClBQ,IAAU,CAAC,CAACR,EAAQ,SACpBS,IAAS,aAAaT,GACtBG,IAAUM,IAASd,EAAUH,EAASQ,EAAQ,OAAO,KAAK,GAAGD,CAAI,IAAII,GACrEO,IAAW,cAAcV,IAAU,CAAC,CAACA,EAAQ,WAAWU;AAG1D,aAASC,EAAWC,GAAM;AACxB,UAAIC,IAAOZ,GACPa,IAAUZ;AAEd,aAAAD,IAAWC,IAAW,QACtBK,IAAiBK,GACjBR,IAASN,EAAK,MAAMgB,GAASD,CAAI,GAC1BT;AAAA,IACX;AAEE,aAASW,EAAYH,GAAM;AAEzB,aAAAL,IAAiBK,GAEjBP,IAAU,WAAWW,GAAcjB,CAAI,GAEhCS,IAAUG,EAAWC,CAAI,IAAIR;AAAA,IACxC;AAEE,aAASa,EAAcL,GAAM;AAC3B,UAAIM,IAAoBN,IAAON,GAC3Ba,IAAsBP,IAAOL,GAC7Ba,IAAcrB,IAAOmB;AAEzB,aAAOT,IACHb,EAAUwB,GAAajB,IAAUgB,CAAmB,IACpDC;AAAA,IACR;AAEE,aAASC,EAAaT,GAAM;AAC1B,UAAIM,IAAoBN,IAAON,GAC3Ba,IAAsBP,IAAOL;AAKjC,aAAQD,MAAiB,UAAcY,KAAqBnB,KACzDmB,IAAoB,KAAOT,KAAUU,KAAuBhB;AAAA,IACnE;AAEE,aAASa,IAAe;AACtB,UAAIJ,IAAOtB,EAAK;AAChB,UAAI+B,EAAaT,CAAI;AACnB,eAAOU,EAAaV,CAAI;AAG1B,MAAAP,IAAU,WAAWW,GAAcC,EAAcL,CAAI,CAAC;AAAA,IAC1D;AAEE,aAASU,EAAaV,GAAM;AAK1B,aAJAP,IAAU,QAINK,KAAYT,IACPU,EAAWC,CAAI,KAExBX,IAAWC,IAAW,QACfE;AAAA,IACX;AAEE,aAASmB,IAAS;AAChB,MAAIlB,MAAY,UACd,aAAaA,CAAO,GAEtBE,IAAiB,GACjBN,IAAWK,IAAeJ,IAAWG,IAAU;AAAA,IACnD;AAEE,aAASmB,IAAQ;AACf,aAAOnB,MAAY,SAAYD,IAASkB,EAAahC,EAAG,CAAE;AAAA,IAC9D;AAEE,aAASmC,IAAY;AACnB,UAAIb,IAAOtB,EAAK,GACZoC,IAAaL,EAAaT,CAAI;AAMlC,UAJAX,IAAW,WACXC,IAAW,MACXI,IAAeM,GAEXc,GAAY;AACd,YAAIrB,MAAY;AACd,iBAAOU,EAAYT,CAAY;AAEjC,YAAIG;AAEF,8BAAaJ,CAAO,GACpBA,IAAU,WAAWW,GAAcjB,CAAI,GAChCY,EAAWL,CAAY;AAAA,MAEtC;AACI,aAAID,MAAY,WACdA,IAAU,WAAWW,GAAcjB,CAAI,IAElCK;AAAA,IACX;AACE,WAAAqB,EAAU,SAASF,GACnBE,EAAU,QAAQD,GACXC;AAAA,EACT;AAEA,SAAAE,IAAiB9B;;","x_google_ignoreList":[0]}
@@ -0,0 +1,14 @@
1
+ var e, n;
2
+ function u() {
3
+ if (n) return e;
4
+ n = 1;
5
+ function i(r) {
6
+ var t = typeof r;
7
+ return r != null && (t == "object" || t == "function");
8
+ }
9
+ return e = i, e;
10
+ }
11
+ export {
12
+ u as __require
13
+ };
14
+ //# sourceMappingURL=isObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isObject.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n"],"names":["isObject","value","type","isObject_1"],"mappings":";;;;AAyBA,WAASA,EAASC,GAAO;AACvB,QAAIC,IAAO,OAAOD;AAClB,WAAOA,KAAS,SAASC,KAAQ,YAAYA,KAAQ;AAAA,EACvD;AAEA,SAAAC,IAAiBH;;","x_google_ignoreList":[0]}
@@ -0,0 +1,13 @@
1
+ var e, i;
2
+ function n() {
3
+ if (i) return e;
4
+ i = 1;
5
+ function t(r) {
6
+ return r != null && typeof r == "object";
7
+ }
8
+ return e = t, e;
9
+ }
10
+ export {
11
+ n as __require
12
+ };
13
+ //# sourceMappingURL=isObjectLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isObjectLike.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js"],"sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n"],"names":["isObjectLike","value","isObjectLike_1"],"mappings":";;;;AAwBA,WAASA,EAAaC,GAAO;AAC3B,WAAOA,KAAS,QAAQ,OAAOA,KAAS;AAAA,EAC1C;AAEA,SAAAC,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,16 @@
1
+ import { __require as a } from "./_baseGetTag.js";
2
+ import { __require as m } from "./isObjectLike.js";
3
+ var e, i;
4
+ function _() {
5
+ if (i) return e;
6
+ i = 1;
7
+ var o = a(), s = m(), t = "[object Symbol]";
8
+ function b(r) {
9
+ return typeof r == "symbol" || s(r) && o(r) == t;
10
+ }
11
+ return e = b, e;
12
+ }
13
+ export {
14
+ _ as __require
15
+ };
16
+ //# sourceMappingURL=isSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isSymbol.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js"],"sourcesContent":["var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n"],"names":["baseGetTag","require$$0","isObjectLike","require$$1","symbolTag","isSymbol","value","isSymbol_1"],"mappings":";;;;;;AAAA,MAAIA,IAAaC,EAAwB,GACrCC,IAAeC,EAAyB,GAGxCC,IAAY;AAmBhB,WAASC,EAASC,GAAO;AACvB,WAAO,OAAOA,KAAS,YACpBJ,EAAaI,CAAK,KAAKN,EAAWM,CAAK,KAAKF;AAAA,EACjD;AAEA,SAAAG,IAAiBF;;","x_google_ignoreList":[0]}
@@ -0,0 +1,14 @@
1
+ import { __require as t } from "./_root.js";
2
+ var r, e;
3
+ function i() {
4
+ if (e) return r;
5
+ e = 1;
6
+ var o = t(), n = function() {
7
+ return o.Date.now();
8
+ };
9
+ return r = n, r;
10
+ }
11
+ export {
12
+ i as __require
13
+ };
14
+ //# sourceMappingURL=now.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js"],"sourcesContent":["var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n"],"names":["root","require$$0","now","now_1"],"mappings":";;;;;AAAA,MAAIA,IAAOC,EAAkB,GAkBzBC,IAAM,WAAW;AACnB,WAAOF,EAAK,KAAK,IAAK;AAAA,EACvB;AAED,SAAAG,IAAiBD;;","x_google_ignoreList":[0]}
@@ -0,0 +1,29 @@
1
+ import { __require as c } from "./_baseTrim.js";
2
+ import { __require as u } from "./isObject.js";
3
+ import { __require as y } from "./isSymbol.js";
4
+ var e, n;
5
+ function T() {
6
+ if (n) return e;
7
+ n = 1;
8
+ var o = c(), t = u(), m = y(), s = NaN, b = /^[-+]0x[0-9a-f]+$/i, _ = /^0b[01]+$/i, q = /^0o[0-7]+$/i, a = parseInt;
9
+ function p(r) {
10
+ if (typeof r == "number")
11
+ return r;
12
+ if (m(r))
13
+ return s;
14
+ if (t(r)) {
15
+ var i = typeof r.valueOf == "function" ? r.valueOf() : r;
16
+ r = t(i) ? i + "" : i;
17
+ }
18
+ if (typeof r != "string")
19
+ return r === 0 ? r : +r;
20
+ r = o(r);
21
+ var f = _.test(r);
22
+ return f || q.test(r) ? a(r.slice(2), f ? 2 : 8) : b.test(r) ? s : +r;
23
+ }
24
+ return e = p, e;
25
+ }
26
+ export {
27
+ T as __require
28
+ };
29
+ //# sourceMappingURL=toNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toNumber.js","sources":["../../../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js"],"sourcesContent":["var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n"],"names":["baseTrim","require$$0","isObject","require$$1","isSymbol","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","toNumber_1"],"mappings":";;;;;;;AAAA,MAAIA,IAAWC,EAAsB,GACjCC,IAAWC,EAAqB,GAChCC,IAAWC,EAAqB,GAGhCC,IAAM,KAGNC,IAAa,sBAGbC,IAAa,cAGbC,IAAY,eAGZC,IAAe;AAyBnB,WAASC,EAASC,GAAO;AACvB,QAAI,OAAOA,KAAS;AAClB,aAAOA;AAET,QAAIR,EAASQ,CAAK;AAChB,aAAON;AAET,QAAIJ,EAASU,CAAK,GAAG;AACnB,UAAIC,IAAQ,OAAOD,EAAM,WAAW,aAAaA,EAAM,QAAO,IAAKA;AACnE,MAAAA,IAAQV,EAASW,CAAK,IAAKA,IAAQ,KAAMA;AAAA,IAC7C;AACE,QAAI,OAAOD,KAAS;AAClB,aAAOA,MAAU,IAAIA,IAAQ,CAACA;AAEhC,IAAAA,IAAQZ,EAASY,CAAK;AACtB,QAAIE,IAAWN,EAAW,KAAKI,CAAK;AACpC,WAAQE,KAAYL,EAAU,KAAKG,CAAK,IACpCF,EAAaE,EAAM,MAAM,CAAC,GAAGE,IAAW,IAAI,CAAC,IAC5CP,EAAW,KAAKK,CAAK,IAAIN,IAAM,CAACM;AAAA,EACvC;AAEA,SAAAG,IAAiBJ;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"minisSDK.generated.d.js","sources":["../../src/types/minisSDK.generated.d.ts"],"sourcesContent":["/* eslint-disable @shopify/typescript/prefer-pascal-case-enums */\n// Auto-generated type definitions for MinisSDK\n// Generated on: 2025-06-18T10:56:57.588Z\n// Do not edit this file manually - run the generation script instead\n// Source: useShopActionsImplementationV3.ts + shopActionsV3Definitions.ts + shopActionsV3Types.ts\n// Generated using TypeScript compiler API for reliable AST parsing\n//\n// This file is self-contained and can be shipped independently\n\n// ============================================================================\n// Base Types (extracted using TypeScript AST parsing)\n// ============================================================================\n\nexport interface ApiKeys {\n refreshToken: string\n accessToken: string\n}\n\nexport interface ShopActionOk<T> {\n ok: true\n data: T\n}\n\nexport interface ShopActionError {\n ok: false\n error: Error & {code?: string}\n}\n\nexport type ShopActionResult<T = void> = ShopActionOk<T> | ShopActionError\n\nexport interface ShopActions {\n getShopAppInformation: () => Promise<\n ShopActionResult<GetShopAppInformationResponse>\n >\n productRecommendationImpression(\n params: ProductRecommendationImpressionParams\n ): Promise<ShopActionResult>\n productRecommendationClick(\n params: ProductRecommendationClickParams\n ): Promise<ShopActionResult>\n hideEntryPoint(): Promise<ShopActionResult>\n closeMini(): Promise<ShopActionResult>\n\n // account actions\n followShop(params: FollowShopParams): Promise<ShopActionResult<boolean>>\n unfollowShop(params: UnfollowShopParams): Promise<ShopActionResult<boolean>>\n favorite(params: FavoriteParams): Promise<ShopActionResult>\n unfavorite(params: UnfavoriteParams): Promise<ShopActionResult>\n getAccountInformation: (\n params: GetAccountInformationParams\n ) => Promise<ShopActionResult<GetAccountInformationResponse>>\n\n // user actions\n getCurrentUser(\n params?: GetCurrentUserParams\n ): Promise<ShopActionResult<GetCurrentUserResponse>>\n\n // product actions\n createOrderAttribution(\n params: CreateOrderAttributionParams\n ): Promise<ShopActionResult>\n addToCart(params: AddToCartParams): Promise<ShopActionResult>\n buyProduct(params: BuyProductParams): Promise<ShopActionResult>\n buyProducts(params: BuyProductsParams): Promise<ShopActionResult>\n\n // error actions\n showErrorScreen: (params: ShowErrorScreenParams) => Promise<ShopActionResult>\n showErrorToast: (message: ShowErrorToastParams) => Promise<ShopActionResult>\n\n // deeplink actions\n getDeeplinkPaths(): Promise<ShopActionResult<GetDeeplinkPathsResponse>>\n navigateToDeeplink(\n params: NavigateToDeeplinkParams\n ): Promise<ShopActionResult>\n\n // navigation actions\n navigateToShop(params: NavigateToShopParams): Promise<ShopActionResult>\n navigateToProduct(params: NavigateToProductParams): Promise<ShopActionResult>\n navigateToOrder(params: NavigateToOrderParams): Promise<ShopActionResult>\n navigateToCheckout(\n params: NavigateToCheckoutParams\n ): Promise<ShopActionResult>\n\n // image upload actions\n createImageUploadLink(\n params: CreateImageUploadLinkParams\n ): Promise<ShopActionResult<CreateImageUploadLinkResponse>>\n completeImageUpload(\n params: CompleteImageUploadParams\n ): Promise<ShopActionResult<CompleteImageUploadResponse>>\n\n // async storage actions\n getPersistedItem(\n params: GetAsyncStorageItemParams\n ): Promise<ShopActionResult<string | null>>\n setPersistedItem(params: SetAsyncStorageItemParams): Promise<ShopActionResult>\n removePersistedItem(\n params: RemoveAsyncStorageItemParams\n ): Promise<ShopActionResult>\n getAllPersistedKeys(): Promise<ShopActionResult<string[]>>\n clearPersistedItems(): Promise<ShopActionResult>\n\n getInternalPersistedItem(\n params: GetAsyncStorageItemParams\n ): Promise<ShopActionResult<string | null>>\n setInternalPersistedItem(\n params: SetAsyncStorageItemParams\n ): Promise<ShopActionResult>\n removeInternalPersistedItem(\n params: RemoveAsyncStorageItemParams\n ): Promise<ShopActionResult>\n getAllInternalPersistedKeys(): Promise<ShopActionResult<string[]>>\n clearInternalPersistedItems(): Promise<ShopActionResult>\n\n // secure storage actions\n getSecret(): Promise<ShopActionResult<string | null>>\n setSecret(params: SetSecretParams): Promise<ShopActionResult>\n removeSecret(): Promise<ShopActionResult>\n\n // event reporting actions\n reportInteraction(params: ReportInteractionParams): Promise<ShopActionResult>\n reportImpression(params: ReportImpressionParams): Promise<ShopActionResult>\n reportContentImpression(\n params: ReportContentImpressionParams\n ): Promise<ShopActionResult>\n\n getProductLists(\n params?: GetProductListsParams\n ): Promise<ShopActionResult<GetProductListsResponse>>\n\n getProductList(\n params?: GetProductListParams\n ): Promise<ShopActionResult<GetProductListResponse>>\n\n // product list actions\n addProductList(\n params: AddProductListParams\n ): Promise<ShopActionResult<ProductList>>\n removeProductList(params: RemoveProductListParams): Promise<ShopActionResult>\n renameProductList: (\n params: RenameProductListParams\n ) => Promise<ShopActionResult<ProductList>>\n addProductListItem(\n params: AddProductListItemParams\n ): Promise<ShopActionResult>\n removeProductListItem(\n params: RemoveProductListItemParams\n ): Promise<ShopActionResult>\n\n // recommendations actions\n getRecommendedProducts(\n params?: GetRecommendedProductsParams\n ): Promise<ShopActionResult<GetRecommendedProductsResponse>>\n getRecommendedShops(\n params?: GetRecommendedShopsParams\n ): Promise<ShopActionResult<GetRecommendedShopsResponse>>\n searchProductsByShop(\n params?: SearchProductsByShopParams\n ): Promise<ShopActionResult<SearchProductsByShopResponse>>\n\n // orders list actions\n getOrders(\n params?: GetOrdersParams\n ): Promise<ShopActionResult<GetOrdersResponse>>\n\n getBuyerAttributes(): Promise<ShopActionResult<GetBuyerAttributesResponse>>\n\n // content actions\n showFeedbackSheet(params: ShowFeedbackSheetParams): Promise<ShopActionResult>\n\n getPopularProducts(\n params?: GetPopularProductsParams\n ): Promise<ShopActionResult<GetPopularProductsResponse>>\n\n share(params: ShareParams): Promise<ShopActionResult>\n}\n\nexport interface AuthShopActions {\n refreshAccessToken(\n params: RefreshAccessTokenParams\n ): Promise<ShopActionResult<ApiKeys>>\n signOut(): Promise<ShopActionResult>\n}\n\nexport type AllShopActions = ShopActions & AuthShopActions\n\nexport type ShopActionParams<T extends keyof AllShopActions> = Parameters<\n AllShopActions[T]\n>[0]\n\nexport interface FavoriteParams {\n shopId: string\n productId: string\n productVariantId: string\n}\n\nexport interface UnfavoriteParams {\n shopId: string\n productId: string\n productVariantId: string\n}\n\nexport interface LineItemAttribution {\n sourceName: string\n sourceIdentifier: string\n}\n\nexport interface CreateOrderAttributionParams {\n orderId: string\n productVariantId: string\n attribution?: LineItemAttribution\n}\n\nexport interface AddToCartParams extends BuyProductLineItem {\n /**\n * The discount codes to apply to the cart.\n */\n discountCodes?: string[]\n /**\n * Attribution data for the line item.\n * @deprecated\n */\n attribution?: LineItemAttribution\n}\n\nexport interface BuyProductLineItem {\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/456`.\n */\n productVariantId: string\n /**\n * The quantity of the product to add to the cart.\n */\n quantity?: number\n}\n\nexport interface BuyProductsParams {\n items: [BuyProductLineItem, ...BuyProductLineItem[]] // at least one item\n attribution?: LineItemAttribution\n discountCode?: string\n}\n\nexport interface BuyProductParams extends BuyProductLineItem {\n /**\n * Attribution data for the line item.\n * @deprecated\n */\n attribution?: LineItemAttribution\n /**\n * The discount code to apply to the product.\n */\n discountCode?: string\n}\n\nexport interface UpdateLineItemAttributesParams {\n lineItemAttributes: {key: string; value: string}[]\n attribution?: LineItemAttribution\n}\n\nexport interface NavigateToShopParams {\n shopId: string\n}\n\nexport interface NavigateToOrderParams {\n /**\n * The GID of the order. E.g. `gid://shopify/Order/123`.\n */\n orderId: string\n}\n\nexport interface NavigateToCheckoutParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/123`.\n */\n shopId: string\n}\n\nexport interface NavigateToProductParams {\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * If present, the GID of the variant that should be initially selected\n */\n productVariantId?: string\n /*\n * Variants displayed in the product details screen will be limited to those\n * whose ID is included in this list.\n */\n includedProductVariantGIDs?: string[]\n /**\n * @deprecated use includedProductVariantGIDs instead\n */\n includedProductVariantIds?: string[]\n /**\n * @deprecated do not use\n */\n attribution?: LineItemAttribution\n /**\n * The discount code to apply to the product.\n */\n discountCode?: string\n}\n\nexport interface RefreshAccessTokenParams {\n refreshToken: string\n}\n\nexport interface ProductRecommendationImpressionParams {\n // The product GID string\n productId: string\n // Optional section id, could be useful for tracking which UI sections get impressions\n sectionId?: string\n}\n\nexport interface ProductRecommendationClickParams {\n productId: string\n sectionId?: string\n}\n\nexport interface ShowErrorScreenParams {\n /**\n * The message to display in the error screen.\n */\n message?: string\n /**\n * The title of the error screen.\n */\n title?: string\n}\n\nexport interface ShowErrorToastParams {\n message?: string\n}\n\nexport interface GetAccountInformationParams {\n /**\n * To use user account information, a shopId must be given to track on\n * which shop's behalf user information is being accessed\n */\n shopId: string\n type: 'email' | 'name' | 'phone'\n}\n\nexport interface AccountInformationPhoneInfo {\n phoneNumber: string\n countryCode: string\n prefix: string\n}\n\nexport interface GetAccountInformationResponse {\n status: 'available' | 'not-available'\n value?: string | AccountInformationPhoneInfo\n}\n\nexport interface GetShopAppInformationResponse {\n appVersion: string\n buildNumber: string\n buildId: string\n}\n\nexport interface FollowShopParams {\n shopId: string\n}\n\nexport interface UnfollowShopParams {\n shopId: string\n}\n\nexport interface NavigateToDeeplinkParams {\n deeplink: string\n}\n\nexport interface GetDeeplinkPathsResponse {\n matchers: string[]\n}\n\nexport interface ProductRecommendationClickParams {\n productId: string\n productVariantId?: string\n variantGIDs?: string[]\n discountCode?: string\n attribution?: LineItemAttribution\n sectionId?: string\n}\n\nexport interface CreateImageUploadLinkParams {\n input: {\n mimeType: string\n fileSize: number\n }[]\n}\n\nexport interface UploadTarget {\n url: string\n resourceUrl: string\n parameters: {name: string; value: string}[]\n}\n\nexport interface CreateImageUploadLinkResponse {\n targets?: UploadTarget[]\n error?: string\n}\n\nexport interface CompleteImageUploadParams {\n resourceUrls: string[]\n}\n\nexport interface CompleteImageUploadResponse {\n files?: {\n id: string\n fileStatus: 'FAILED' | 'PENDING' | 'PROCESSING' | 'READY'\n image?: {\n url: string\n } | null\n }[]\n error?: string\n}\n\nexport interface PaginationInfo {\n hasNextPage: boolean\n endCursor: string | null\n}\n\nexport interface GetProductListsResponse {\n data: ProductList[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductListResponse {\n data: ProductList | null\n pageInfo: PaginationInfo\n}\n\nexport interface GetRecommendedProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetRecommendedShopsResponse {\n data: Shop[]\n pageInfo: PaginationInfo\n}\n\nexport interface SearchProductsByShopResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetBuyerAttributesResponse {\n data: {\n genderAffinity?: Gender\n categoryAffinities: TaxonomyCategory[]\n }\n}\n\nexport interface GetCurrentUserResponse {\n data: UserProfile\n}\n\nexport interface GetOrdersResponse {\n data: Order[]\n pageInfo: PaginationInfo\n}\n\nexport interface SetSecretParams {\n value: string\n}\n\nexport interface SetAsyncStorageItemParams {\n key: string\n value: string\n}\n\nexport interface GetAsyncStorageItemParams {\n key: string\n}\n\nexport interface RemoveAsyncStorageItemParams {\n key: string\n}\n\nexport interface ReportInteractionParams {\n interactionType: string\n interactionValue?: string\n pageValue?: string\n}\n\nexport interface ReportImpressionParams {\n subjectType?: string\n subjectId?: string\n pageValue?: string\n}\n\nexport interface ReportContentImpressionParams {\n publicId: string\n pageValue: string\n}\n\nexport interface GetProductListsParams {\n /**\n * The number of lists to fetch.\n */\n first?: number\n /**\n * The cursor to fetch the next page of lists.\n */\n after?: string\n /**\n * The number of items per list to fetch.\n */\n itemsFirst?: number\n /**\n * The fetch policy to use.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id?: string\n /**\n * The public ID of the product list.\n */\n publicId?: string\n /**\n * The number of items to fetch.\n */\n first?: number\n /**\n * The cursor to fetch the next page of items.\n */\n after?: string\n /**\n * The fetch policy to use.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface AddProductListParams {\n /**\n * The name of the product list.\n */\n name: string\n /**\n * A description of the product list.\n */\n description?: string\n}\n\nexport interface RemoveProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id: string\n}\n\nexport interface RenameProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id: string\n /**\n * The new name of the product list.\n */\n name: string\n}\n\nexport interface AddProductListItemParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/42`.\n */\n shopId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/101`.\n */\n productVariantId: string\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n * This will soon be deprecated in favor of just `publicListId`.\n */\n listId: string\n /**\n * The public ID of the product list.\n */\n publicListId: string\n}\n\nexport interface RemoveProductListItemParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/42`.\n */\n shopId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/101`.\n */\n productVariantId: string\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n * This will soon be deprecated in favor of just `publicListId`.\n */\n listId: string\n /**\n * The public ID of the product list.\n */\n publicListId: string\n}\n\nexport interface GetRecommendedProductsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetRecommendedShopsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface SearchProductsByShopParams {\n shopId: string\n query?: string\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetBuyerAttributesParams {\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCurrentUserParams {\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetOrdersParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface ShowFeedbackSheetParams {\n publicId: string\n}\n\nexport interface GetPopularProductsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetPopularProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface PreviewProductInARParams {\n id: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCuratedProductsParams {\n handle: string\n requiredTags: string[]\n anyOfTags: string[]\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCuratedProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductMediaParams {\n id: string\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductMediaResponse {\n data: ProductMedia[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductsParams {\n productIds: string[]\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductsResponse {\n data: Product[]\n}\n\nexport interface GetProductParams {\n id: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductResponse {\n data: Product\n}\n\nexport interface ShareParams {\n message?: string\n title?: string\n url?: string\n urls?: string[]\n type?: string\n failOnCancel?: boolean\n}\n\nexport interface MinisParams {\n /** The handle/identifier of the Mini application */\n handle: string\n /** The initial URL that was used to load the Mini (optional) */\n initialUrl?: string\n}\n\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby'\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network'\n\nexport enum CurrencyCode {\n AED = 'AED',\n AFN = 'AFN',\n ALL = 'ALL',\n AMD = 'AMD',\n ANG = 'ANG',\n AOA = 'AOA',\n ARS = 'ARS',\n AUD = 'AUD',\n AWG = 'AWG',\n AZN = 'AZN',\n BAM = 'BAM',\n BBD = 'BBD',\n BDT = 'BDT',\n BGN = 'BGN',\n BHD = 'BHD',\n BIF = 'BIF',\n BMD = 'BMD',\n BND = 'BND',\n BOB = 'BOB',\n BRL = 'BRL',\n BSD = 'BSD',\n BTN = 'BTN',\n BWP = 'BWP',\n BYN = 'BYN',\n BYR = 'BYR',\n BZD = 'BZD',\n CAD = 'CAD',\n CDF = 'CDF',\n CHF = 'CHF',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n CVE = 'CVE',\n CZK = 'CZK',\n DJF = 'DJF',\n DKK = 'DKK',\n DOP = 'DOP',\n DZD = 'DZD',\n EGP = 'EGP',\n ERN = 'ERN',\n ETB = 'ETB',\n EUR = 'EUR',\n FJD = 'FJD',\n FKP = 'FKP',\n GBP = 'GBP',\n GEL = 'GEL',\n GHS = 'GHS',\n GIP = 'GIP',\n GMD = 'GMD',\n GNF = 'GNF',\n GTQ = 'GTQ',\n GYD = 'GYD',\n HKD = 'HKD',\n HNL = 'HNL',\n HRK = 'HRK',\n HTG = 'HTG',\n HUF = 'HUF',\n IDR = 'IDR',\n ILS = 'ILS',\n INR = 'INR',\n IQD = 'IQD',\n IRR = 'IRR',\n ISK = 'ISK',\n JEP = 'JEP',\n JMD = 'JMD',\n JOD = 'JOD',\n JPY = 'JPY',\n KES = 'KES',\n KGS = 'KGS',\n KHR = 'KHR',\n KID = 'KID',\n KMF = 'KMF',\n KRW = 'KRW',\n KWD = 'KWD',\n KYD = 'KYD',\n KZT = 'KZT',\n LAK = 'LAK',\n LBP = 'LBP',\n LKR = 'LKR',\n LRD = 'LRD',\n LSL = 'LSL',\n LTL = 'LTL',\n LVL = 'LVL',\n LYD = 'LYD',\n MAD = 'MAD',\n MDL = 'MDL',\n MGA = 'MGA',\n MKD = 'MKD',\n MMK = 'MMK',\n MNT = 'MNT',\n MOP = 'MOP',\n MRU = 'MRU',\n MUR = 'MUR',\n MVR = 'MVR',\n MWK = 'MWK',\n MXN = 'MXN',\n MYR = 'MYR',\n MZN = 'MZN',\n NAD = 'NAD',\n NGN = 'NGN',\n NIO = 'NIO',\n NOK = 'NOK',\n NPR = 'NPR',\n NZD = 'NZD',\n OMR = 'OMR',\n PAB = 'PAB',\n PEN = 'PEN',\n PGK = 'PGK',\n PHP = 'PHP',\n PKR = 'PKR',\n PLN = 'PLN',\n PYG = 'PYG',\n QAR = 'QAR',\n RON = 'RON',\n RSD = 'RSD',\n RUB = 'RUB',\n RWF = 'RWF',\n SAR = 'SAR',\n SBD = 'SBD',\n SCR = 'SCR',\n SDG = 'SDG',\n SEK = 'SEK',\n SGD = 'SGD',\n SHP = 'SHP',\n SLL = 'SLL',\n SOS = 'SOS',\n SRD = 'SRD',\n SSP = 'SSP',\n STD = 'STD',\n STN = 'STN',\n SYP = 'SYP',\n SZL = 'SZL',\n THB = 'THB',\n TJS = 'TJS',\n TMT = 'TMT',\n TND = 'TND',\n TOP = 'TOP',\n TRY = 'TRY',\n TTD = 'TTD',\n TWD = 'TWD',\n TZS = 'TZS',\n UAH = 'UAH',\n UGX = 'UGX',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VED = 'VED',\n VEF = 'VEF',\n VES = 'VES',\n VND = 'VND',\n VUV = 'VUV',\n WST = 'WST',\n XAF = 'XAF',\n XCD = 'XCD',\n XOF = 'XOF',\n XPF = 'XPF',\n XXX = 'XXX',\n YER = 'YER',\n ZAR = 'ZAR',\n ZMW = 'ZMW',\n}\n\nexport type Decimal = string\n\nexport type MiniAppParams = any\n\nexport interface MiniAppConfig<\n _DeprecatedParams extends MiniAppParams = undefined,\n> {\n /**\n * Root component of used inside the Minis Viewer\n */\n ViewerRoot: () => JSX.Element | null\n}\n\nexport interface MiniManifest {\n trusted_domains?: string[]\n permissions?: string[]\n [key: string]: any\n}\n\nexport type Permission = 'CAMERA' | 'GALLERY' | 'MICROPHONE'\n\nexport interface Money {\n amount: Decimal\n currencyCode: CurrencyCode\n}\n\nexport interface ProductImage {\n id?: string | null\n altText?: string | null\n url: string\n sensitive?: boolean | null\n}\n\nexport interface ProductVariant {\n id: string\n isFavorited: boolean\n image?: ProductImage | null\n price: Money\n compareAtPrice?: Money | null\n}\n\nexport interface ProductShop {\n id: string\n name: string\n}\n\nexport type ProductMedia =\n | {\n id: string\n image: ProductImage | null\n mediaContentType: 'IMAGE'\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'MODEL_3D'\n previewImage: ProductImage | null\n sources: {\n filesize: number\n format: string\n mimeType: string\n url: string\n }[]\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'VIDEO'\n previewImage: ProductImage | null\n sources: {\n format: string\n mimeType: string\n url: string\n width: number\n height: number\n }[]\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'EXTERNAL_VIDEO'\n previewImage: ProductImage | null\n embedUrl: string\n alt: string | null\n }\n\nexport interface Product {\n id: string\n title: string\n reviewAnalytics: {\n averageRating?: number | null\n reviewCount?: number | null\n }\n shop: ProductShop\n selectedVariant?: ProductVariant\n defaultVariantId: string\n isFavorited: boolean\n variants?: ProductVariant[]\n featuredImage?: ProductImage | null\n price: Money\n compareAtPrice?: Money | null\n}\n\nexport interface Shop {\n id: string\n name: string\n isFollowing?: boolean | null\n shareUrl?: string | null\n primaryDomain: {\n url: string\n }\n logoImage?: ProductImage | null\n reviewAnalytics: {\n averageRating?: number | null\n reviewCount: number\n }\n}\n\nexport interface QueryOptions {\n fetchPolicy?: WatchQueryFetchPolicy\n skip?: boolean\n}\n\nexport interface ProductList {\n id: string\n publicId: string | null\n name: string | null\n products: Product[]\n}\n\nexport interface Order {\n id: string\n name: string\n lineItems: {\n productTitle: string\n variantTitle: string | null\n quantity: number\n product: Product | null\n }[]\n shop: Shop | null\n}\n\nexport interface BuyerAttributes {\n genderAffinity?: Gender\n categoryAffinities: TaxonomyCategory[]\n}\n\nexport enum Gender {\n Male = 'MALE',\n Female = 'FEMALE',\n Neutral = 'NEUTRAL',\n}\n\nexport interface TaxonomyCategory {\n id: string\n name: string\n ancestors?: TaxonomyCategory[]\n}\n\n/**\n * A user profile.\n */\nexport interface UserProfile {\n /**\n * The display name of the user.\n */\n displayName?: string | null\n /**\n * The avatar image of the user.\n */\n avatarImage?: {\n url: string\n } | null\n}\n\n/**\n * A user metafield.\n */\nexport interface UserMetafield {\n /**\n * The key of the user metafield.\n */\n key: string\n /**\n * The value of the user metafield.\n */\n value: string\n}\n\nexport interface ContentImage {\n id: string | null\n url: string\n width: number | null\n height: number | null\n}\n\nexport interface ContentProduct {\n id: string\n title: string\n featuredImage: ContentImage | null\n}\n\nexport type ContentVisibility = 'DISCOVERABLE' | 'LINKABLE'\n\nexport interface Content {\n publicId: string\n externalId: string | null\n image: ContentImage\n title: string\n description: string | null\n visibility: ContentVisibility[]\n shareableUrl: string | null\n products: ContentProduct[] | null\n}\n\n/**\n * The fetch policy to use. `cache-first` will only fetch from the network if there is no\n * cached data. `network-only` will fetch from the network regardless of whether there\n * is cached data.\n */\nexport type DataHookFetchPolicy = 'cache-first' | 'network-only'\n\nexport interface DataHookOptionsBase {\n /**\n * When true, the data will not be fetched immediately.\n */\n skip?: boolean\n /**\n * The fetch policy to use for the initial data load. Subsequent loads may use different policies.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface PaginatedDataHookOptionsBase extends DataHookOptionsBase {\n /**\n * The number of products to fetch.\n * @default 20\n */\n first?: number\n}\n\nexport interface DataHookReturnsBase {\n /**\n * Whether data is loading. Represents the initial data load but not `refetch`/`fetchMore` calls.\n */\n loading: boolean\n /**\n * The error that occurred while loading. Represents the initial data load and `refetch` calls but not `fetchMore`\n */\n error: Error | null\n /**\n * Refetch the data. Data is updated in place. The `loading` state will not update but the `error` state will.\n */\n refetch: () => Promise<void>\n}\n\nexport interface PaginatedDataHookReturnsBase extends DataHookReturnsBase {\n /**\n * Whether there is a next page to fetch.\n */\n hasNextPage: boolean\n /**\n * Fetch more data. Data is updated in place. The `loading` and `error` states will not update\n */\n fetchMore: () => Promise<void>\n}\n\nexport const Consent = {\n MiniConsent: 'mini_consent',\n CameraConsent: 'camera_consent',\n PhotoLibraryConsent: 'photo_library_consent',\n MicrophoneConsent: 'microphone_consent',\n} as const\n\nexport const ConsentStatus = {\n Granted: 'granted',\n Dismissed: 'dismissed',\n Idle: 'idle',\n} as const\n\nexport type ConsentType = (typeof Consent)[keyof typeof Consent]\n\nexport type ConsentStatusType =\n (typeof ConsentStatus)[keyof typeof ConsentStatus]\n\nexport interface PaginatedDataHookPageInfo {\n /**\n * Whether there is a next page to fetch.\n */\n hasNextPage: boolean\n /**\n * The cursor to use for the next page of data.\n */\n endCursor: string | null\n}\n\ndeclare global {\n interface Window {\n minisSDK: ShopActions\n minisParams: MinisParams\n }\n}\n\nexport {}\n"],"names":["CurrencyCode","Gender","Consent","ConsentStatus"],"mappings":"AA0uBY,IAAAA,sBAAAA,OACVA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OAjKIA,IAAAA,KAAA,CAAA,CAAA,GAuTAC,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA;AAwHL,MAAMC,IAAU;AAAA,EACrB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,mBAAmB;AACrB,GAEaC,IAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AACR;"}
1
+ {"version":3,"file":"minisSDK.generated.d.js","sources":["../../src/types/minisSDK.generated.d.ts"],"sourcesContent":["/* eslint-disable @shopify/typescript/prefer-pascal-case-enums */\n// Auto-generated type definitions for MinisSDK\n// Generated on: 2025-06-18T21:41:30.210Z\n// Do not edit this file manually - run the generation script instead\n// Source: useShopActionsImplementationV3.ts + shopActionsV3Definitions.ts + shopActionsV3Types.ts\n// Generated using TypeScript compiler API for reliable AST parsing\n//\n// This file is self-contained and can be shipped independently\n\n// ============================================================================\n// Base Types (extracted using TypeScript AST parsing)\n// ============================================================================\n\nexport interface ApiKeys {\n refreshToken: string\n accessToken: string\n}\n\nexport interface ShopActionOk<T> {\n ok: true\n data: T\n}\n\nexport interface ShopActionError {\n ok: false\n error: Error & {code?: string}\n}\n\nexport type ShopActionResult<T = void> = ShopActionOk<T> | ShopActionError\n\nexport interface ShopActions {\n getShopAppInformation: () => Promise<\n ShopActionResult<GetShopAppInformationResponse>\n >\n productRecommendationImpression(\n params: ProductRecommendationImpressionParams\n ): Promise<ShopActionResult>\n productRecommendationClick(\n params: ProductRecommendationClickParams\n ): Promise<ShopActionResult>\n hideEntryPoint(): Promise<ShopActionResult>\n closeMini(): Promise<ShopActionResult>\n\n // account actions\n followShop(params: FollowShopParams): Promise<ShopActionResult<boolean>>\n unfollowShop(params: UnfollowShopParams): Promise<ShopActionResult<boolean>>\n favorite(params: FavoriteParams): Promise<ShopActionResult>\n unfavorite(params: UnfavoriteParams): Promise<ShopActionResult>\n getAccountInformation: (\n params: GetAccountInformationParams\n ) => Promise<ShopActionResult<GetAccountInformationResponse>>\n\n // user actions\n getCurrentUser(\n params?: GetCurrentUserParams\n ): Promise<ShopActionResult<GetCurrentUserResponse>>\n\n // product actions\n createOrderAttribution(\n params: CreateOrderAttributionParams\n ): Promise<ShopActionResult>\n addToCart(params: AddToCartParams): Promise<ShopActionResult>\n buyProduct(params: BuyProductParams): Promise<ShopActionResult>\n buyProducts(params: BuyProductsParams): Promise<ShopActionResult>\n\n // error actions\n showErrorScreen: (params: ShowErrorScreenParams) => Promise<ShopActionResult>\n showErrorToast: (message: ShowErrorToastParams) => Promise<ShopActionResult>\n\n // deeplink actions\n getDeeplinkPaths(): Promise<ShopActionResult<GetDeeplinkPathsResponse>>\n navigateToDeeplink(\n params: NavigateToDeeplinkParams\n ): Promise<ShopActionResult>\n\n // navigation actions\n navigateToShop(params: NavigateToShopParams): Promise<ShopActionResult>\n navigateToProduct(params: NavigateToProductParams): Promise<ShopActionResult>\n navigateToOrder(params: NavigateToOrderParams): Promise<ShopActionResult>\n navigateToCheckout(\n params: NavigateToCheckoutParams\n ): Promise<ShopActionResult>\n\n // image upload actions\n createImageUploadLink(\n params: CreateImageUploadLinkParams\n ): Promise<ShopActionResult<CreateImageUploadLinkResponse>>\n completeImageUpload(\n params: CompleteImageUploadParams\n ): Promise<ShopActionResult<CompleteImageUploadResponse>>\n\n // async storage actions\n getPersistedItem(\n params: GetAsyncStorageItemParams\n ): Promise<ShopActionResult<string | null>>\n setPersistedItem(params: SetAsyncStorageItemParams): Promise<ShopActionResult>\n removePersistedItem(\n params: RemoveAsyncStorageItemParams\n ): Promise<ShopActionResult>\n getAllPersistedKeys(): Promise<ShopActionResult<string[]>>\n clearPersistedItems(): Promise<ShopActionResult>\n\n getInternalPersistedItem(\n params: GetAsyncStorageItemParams\n ): Promise<ShopActionResult<string | null>>\n setInternalPersistedItem(\n params: SetAsyncStorageItemParams\n ): Promise<ShopActionResult>\n removeInternalPersistedItem(\n params: RemoveAsyncStorageItemParams\n ): Promise<ShopActionResult>\n getAllInternalPersistedKeys(): Promise<ShopActionResult<string[]>>\n clearInternalPersistedItems(): Promise<ShopActionResult>\n\n // secure storage actions\n getSecret(): Promise<ShopActionResult<string | null>>\n setSecret(params: SetSecretParams): Promise<ShopActionResult>\n removeSecret(): Promise<ShopActionResult>\n\n // event reporting actions\n reportInteraction(params: ReportInteractionParams): Promise<ShopActionResult>\n reportImpression(params: ReportImpressionParams): Promise<ShopActionResult>\n reportContentImpression(\n params: ReportContentImpressionParams\n ): Promise<ShopActionResult>\n\n getProductLists(\n params?: GetProductListsParams\n ): Promise<ShopActionResult<GetProductListsResponse>>\n\n getProductList(\n params?: GetProductListParams\n ): Promise<ShopActionResult<GetProductListResponse>>\n\n // product list actions\n addProductList(\n params: AddProductListParams\n ): Promise<ShopActionResult<ProductList>>\n removeProductList(params: RemoveProductListParams): Promise<ShopActionResult>\n renameProductList: (\n params: RenameProductListParams\n ) => Promise<ShopActionResult<ProductList>>\n addProductListItem(\n params: AddProductListItemParams\n ): Promise<ShopActionResult>\n removeProductListItem(\n params: RemoveProductListItemParams\n ): Promise<ShopActionResult>\n\n // recommendations actions\n getRecommendedProducts(\n params?: GetRecommendedProductsParams\n ): Promise<ShopActionResult<GetRecommendedProductsResponse>>\n getRecommendedShops(\n params?: GetRecommendedShopsParams\n ): Promise<ShopActionResult<GetRecommendedShopsResponse>>\n searchProductsByShop(\n params?: SearchProductsByShopParams\n ): Promise<ShopActionResult<SearchProductsByShopResponse>>\n\n // orders list actions\n getOrders(\n params?: GetOrdersParams\n ): Promise<ShopActionResult<GetOrdersResponse>>\n\n getBuyerAttributes(): Promise<ShopActionResult<GetBuyerAttributesResponse>>\n\n // content actions\n showFeedbackSheet(params: ShowFeedbackSheetParams): Promise<ShopActionResult>\n\n getPopularProducts(\n params?: GetPopularProductsParams\n ): Promise<ShopActionResult<GetPopularProductsResponse>>\n\n share(params: ShareParams): Promise<ShopActionResult>\n\n getCuratedProducts(\n params: GetCuratedProductsParams\n ): Promise<ShopActionResult<GetCuratedProductsResponse>>\n\n getSavedProducts(\n params?: GetSavedProductsParams\n ): Promise<ShopActionResult<GetSavedProductsResponse>>\n\n getRecentProducts(\n params?: GetRecentProductsParams\n ): Promise<ShopActionResult<GetRecentProductsResponse>>\n\n getProductSearch(\n params: GetProductSearchParams\n ): Promise<ShopActionResult<GetProductSearchResponse>>\n\n getProducts(\n params: GetProductsParams\n ): Promise<ShopActionResult<GetProductsResponse>>\n\n getProduct(\n params: GetProductParams\n ): Promise<ShopActionResult<GetProductResponse>>\n\n getProductVariants(\n params: GetProductVariantsParams\n ): Promise<ShopActionResult<GetProductVariantsResponse>>\n\n getProductMedia(\n params: GetProductMediaParams\n ): Promise<ShopActionResult<GetProductMediaResponse>>\n\n getShop(params: GetShopParams): Promise<ShopActionResult<GetShopResponse>>\n\n getRecentShops(\n params?: GetRecentShopsParams\n ): Promise<ShopActionResult<GetRecentShopsResponse>>\n\n getFollowedShops(\n params?: GetFollowedShopsParams\n ): Promise<ShopActionResult<GetFollowedShopsResponse>>\n}\n\nexport interface AuthShopActions {\n refreshAccessToken(\n params: RefreshAccessTokenParams\n ): Promise<ShopActionResult<ApiKeys>>\n signOut(): Promise<ShopActionResult>\n}\n\nexport type AllShopActions = ShopActions & AuthShopActions\n\nexport type ShopActionParams<T extends keyof AllShopActions> = Parameters<\n AllShopActions[T]\n>[0]\n\nexport interface FavoriteParams {\n shopId: string\n productId: string\n productVariantId: string\n}\n\nexport interface UnfavoriteParams {\n shopId: string\n productId: string\n productVariantId: string\n}\n\nexport interface LineItemAttribution {\n sourceName: string\n sourceIdentifier: string\n}\n\nexport interface CreateOrderAttributionParams {\n orderId: string\n productVariantId: string\n attribution?: LineItemAttribution\n}\n\nexport interface AddToCartParams extends BuyProductLineItem {\n /**\n * The discount codes to apply to the cart.\n */\n discountCodes?: string[]\n /**\n * Attribution data for the line item.\n * @deprecated\n */\n attribution?: LineItemAttribution\n}\n\nexport interface BuyProductLineItem {\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/456`.\n */\n productVariantId: string\n /**\n * The quantity of the product to add to the cart.\n */\n quantity?: number\n}\n\nexport interface BuyProductsParams {\n items: [BuyProductLineItem, ...BuyProductLineItem[]] // at least one item\n attribution?: LineItemAttribution\n discountCode?: string\n}\n\nexport interface BuyProductParams extends BuyProductLineItem {\n /**\n * Attribution data for the line item.\n * @deprecated\n */\n attribution?: LineItemAttribution\n /**\n * The discount code to apply to the product.\n */\n discountCode?: string\n}\n\nexport interface UpdateLineItemAttributesParams {\n lineItemAttributes: {key: string; value: string}[]\n attribution?: LineItemAttribution\n}\n\nexport interface NavigateToShopParams {\n shopId: string\n}\n\nexport interface NavigateToOrderParams {\n /**\n * The GID of the order. E.g. `gid://shopify/Order/123`.\n */\n orderId: string\n}\n\nexport interface NavigateToCheckoutParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/123`.\n */\n shopId: string\n}\n\nexport interface NavigateToProductParams {\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * If present, the GID of the variant that should be initially selected\n */\n productVariantId?: string\n /*\n * Variants displayed in the product details screen will be limited to those\n * whose ID is included in this list.\n */\n includedProductVariantGIDs?: string[]\n /**\n * @deprecated use includedProductVariantGIDs instead\n */\n includedProductVariantIds?: string[]\n /**\n * @deprecated do not use\n */\n attribution?: LineItemAttribution\n /**\n * The discount code to apply to the product.\n */\n discountCode?: string\n}\n\nexport interface RefreshAccessTokenParams {\n refreshToken: string\n}\n\nexport interface ProductRecommendationImpressionParams {\n // The product GID string\n productId: string\n // Optional section id, could be useful for tracking which UI sections get impressions\n sectionId?: string\n}\n\nexport interface ProductRecommendationClickParams {\n productId: string\n sectionId?: string\n}\n\nexport interface ShowErrorScreenParams {\n /**\n * The message to display in the error screen.\n */\n message?: string\n /**\n * The title of the error screen.\n */\n title?: string\n}\n\nexport interface ShowErrorToastParams {\n message?: string\n}\n\nexport interface GetAccountInformationParams {\n /**\n * To use user account information, a shopId must be given to track on\n * which shop's behalf user information is being accessed\n */\n shopId: string\n type: 'email' | 'name' | 'phone'\n}\n\nexport interface AccountInformationPhoneInfo {\n phoneNumber: string\n countryCode: string\n prefix: string\n}\n\nexport interface GetAccountInformationResponse {\n status: 'available' | 'not-available'\n value?: string | AccountInformationPhoneInfo\n}\n\nexport interface GetShopAppInformationResponse {\n appVersion: string\n buildNumber: string\n buildId: string\n}\n\nexport interface FollowShopParams {\n shopId: string\n}\n\nexport interface UnfollowShopParams {\n shopId: string\n}\n\nexport interface NavigateToDeeplinkParams {\n deeplink: string\n}\n\nexport interface GetDeeplinkPathsResponse {\n matchers: string[]\n}\n\nexport interface ProductRecommendationClickParams {\n productId: string\n productVariantId?: string\n variantGIDs?: string[]\n discountCode?: string\n attribution?: LineItemAttribution\n sectionId?: string\n}\n\nexport interface CreateImageUploadLinkParams {\n input: {\n mimeType: string\n fileSize: number\n }[]\n}\n\nexport interface UploadTarget {\n url: string\n resourceUrl: string\n parameters: {name: string; value: string}[]\n}\n\nexport interface CreateImageUploadLinkResponse {\n targets?: UploadTarget[]\n error?: string\n}\n\nexport interface CompleteImageUploadParams {\n resourceUrls: string[]\n}\n\nexport interface CompleteImageUploadResponse {\n files?: {\n id: string\n fileStatus: 'FAILED' | 'PENDING' | 'PROCESSING' | 'READY'\n image?: {\n url: string\n } | null\n }[]\n error?: string\n}\n\nexport interface PaginationInfo {\n hasNextPage: boolean\n endCursor: string | null\n}\n\nexport interface GetProductListsResponse {\n data: ProductList[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductListResponse {\n data: ProductList | null\n pageInfo: PaginationInfo\n}\n\nexport interface GetRecommendedProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetRecommendedShopsResponse {\n data: Shop[]\n pageInfo: PaginationInfo\n}\n\nexport interface SearchProductsByShopResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetBuyerAttributesResponse {\n data: {\n genderAffinity?: Gender\n categoryAffinities: TaxonomyCategory[]\n }\n}\n\nexport interface GetCurrentUserResponse {\n data: UserProfile\n}\n\nexport interface GetOrdersResponse {\n data: Order[]\n pageInfo: PaginationInfo\n}\n\nexport interface SetSecretParams {\n value: string\n}\n\nexport interface SetAsyncStorageItemParams {\n key: string\n value: string\n}\n\nexport interface GetAsyncStorageItemParams {\n key: string\n}\n\nexport interface RemoveAsyncStorageItemParams {\n key: string\n}\n\nexport interface ReportInteractionParams {\n interactionType: string\n interactionValue?: string\n pageValue?: string\n}\n\nexport interface ReportImpressionParams {\n subjectType?: string\n subjectId?: string\n pageValue?: string\n}\n\nexport interface ReportContentImpressionParams {\n publicId: string\n pageValue: string\n}\n\nexport interface GetProductListsParams {\n /**\n * The number of lists to fetch.\n */\n first?: number\n /**\n * The cursor to fetch the next page of lists.\n */\n after?: string\n /**\n * The number of items per list to fetch.\n */\n itemsFirst?: number\n /**\n * The fetch policy to use.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id?: string\n /**\n * The public ID of the product list.\n */\n publicId?: string\n /**\n * The number of items to fetch.\n */\n first?: number\n /**\n * The cursor to fetch the next page of items.\n */\n after?: string\n /**\n * The fetch policy to use.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface AddProductListParams {\n /**\n * The name of the product list.\n */\n name: string\n /**\n * A description of the product list.\n */\n description?: string\n}\n\nexport interface RemoveProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id: string\n}\n\nexport interface RenameProductListParams {\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n */\n id: string\n /**\n * The new name of the product list.\n */\n name: string\n}\n\nexport interface AddProductListItemParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/42`.\n */\n shopId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/101`.\n */\n productVariantId: string\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n * This will soon be deprecated in favor of just `publicListId`.\n */\n listId: string\n /**\n * The public ID of the product list.\n */\n publicListId: string\n}\n\nexport interface RemoveProductListItemParams {\n /**\n * The GID of the shop. E.g. `gid://shopify/Shop/42`.\n */\n shopId: string\n /**\n * The GID of the product variant. E.g. `gid://shopify/ProductVariant/101`.\n */\n productVariantId: string\n /**\n * The GID of the product. E.g. `gid://shopify/Product/123`.\n */\n productId: string\n /**\n * The GID of the product list. E.g. `gid://shopapp/ProductList/123`.\n * This will soon be deprecated in favor of just `publicListId`.\n */\n listId: string\n /**\n * The public ID of the product list.\n */\n publicListId: string\n}\n\nexport interface GetRecommendedProductsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetRecommendedShopsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface SearchProductsByShopParams {\n shopId: string\n query?: string\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetBuyerAttributesParams {\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCurrentUserParams {\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetOrdersParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface ShowFeedbackSheetParams {\n publicId: string\n}\n\nexport interface GetPopularProductsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetPopularProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface PreviewProductInARParams {\n id: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCuratedProductsParams {\n handle: string\n requiredTags?: string[]\n anyOfTags?: string[]\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetCuratedProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductMediaParams {\n id: string\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductMediaResponse {\n data: ProductMedia[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetShopParams {\n id: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetShopResponse {\n data: Shop\n}\n\nexport interface GetRecentShopsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetRecentShopsResponse {\n data: Shop[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetFollowedShopsParams {\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetFollowedShopsResponse {\n data: Shop[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductsParams {\n ids: string[]\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductsResponse {\n data: Product[]\n}\n\nexport interface GetProductParams {\n id: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductResponse {\n data: Product\n}\n\nexport interface ShareParams {\n message?: string\n title?: string\n url?: string\n urls?: string[]\n type?: string\n failOnCancel?: boolean\n}\n\nexport interface GetSavedProductsParams {\n includeSensitive?: boolean\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetSavedProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetRecentProductsParams {\n includeSensitive?: boolean\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetRecentProductsResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductSearchParams {\n query: string\n filters?: ProductFilters\n sortBy?: ProductSearchSortBy\n includeSensitive?: boolean\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductSearchResponse {\n data: Product[]\n pageInfo: PaginationInfo\n}\n\nexport interface GetProductVariantsParams {\n id: string\n first?: number\n after?: string\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface GetProductVariantsResponse {\n data: ProductVariant[]\n pageInfo: PaginationInfo\n}\n\nexport interface MinisParams {\n /** The handle/identifier of the Mini application */\n handle: string\n /** The initial URL that was used to load the Mini (optional) */\n initialUrl?: string\n}\n\nexport type FetchPolicy =\n | 'cache-first'\n | 'network-only'\n | 'cache-only'\n | 'no-cache'\n | 'standby'\n\nexport type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network'\n\nexport enum CurrencyCode {\n AED = 'AED',\n AFN = 'AFN',\n ALL = 'ALL',\n AMD = 'AMD',\n ANG = 'ANG',\n AOA = 'AOA',\n ARS = 'ARS',\n AUD = 'AUD',\n AWG = 'AWG',\n AZN = 'AZN',\n BAM = 'BAM',\n BBD = 'BBD',\n BDT = 'BDT',\n BGN = 'BGN',\n BHD = 'BHD',\n BIF = 'BIF',\n BMD = 'BMD',\n BND = 'BND',\n BOB = 'BOB',\n BRL = 'BRL',\n BSD = 'BSD',\n BTN = 'BTN',\n BWP = 'BWP',\n BYN = 'BYN',\n BYR = 'BYR',\n BZD = 'BZD',\n CAD = 'CAD',\n CDF = 'CDF',\n CHF = 'CHF',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n CVE = 'CVE',\n CZK = 'CZK',\n DJF = 'DJF',\n DKK = 'DKK',\n DOP = 'DOP',\n DZD = 'DZD',\n EGP = 'EGP',\n ERN = 'ERN',\n ETB = 'ETB',\n EUR = 'EUR',\n FJD = 'FJD',\n FKP = 'FKP',\n GBP = 'GBP',\n GEL = 'GEL',\n GHS = 'GHS',\n GIP = 'GIP',\n GMD = 'GMD',\n GNF = 'GNF',\n GTQ = 'GTQ',\n GYD = 'GYD',\n HKD = 'HKD',\n HNL = 'HNL',\n HRK = 'HRK',\n HTG = 'HTG',\n HUF = 'HUF',\n IDR = 'IDR',\n ILS = 'ILS',\n INR = 'INR',\n IQD = 'IQD',\n IRR = 'IRR',\n ISK = 'ISK',\n JEP = 'JEP',\n JMD = 'JMD',\n JOD = 'JOD',\n JPY = 'JPY',\n KES = 'KES',\n KGS = 'KGS',\n KHR = 'KHR',\n KID = 'KID',\n KMF = 'KMF',\n KRW = 'KRW',\n KWD = 'KWD',\n KYD = 'KYD',\n KZT = 'KZT',\n LAK = 'LAK',\n LBP = 'LBP',\n LKR = 'LKR',\n LRD = 'LRD',\n LSL = 'LSL',\n LTL = 'LTL',\n LVL = 'LVL',\n LYD = 'LYD',\n MAD = 'MAD',\n MDL = 'MDL',\n MGA = 'MGA',\n MKD = 'MKD',\n MMK = 'MMK',\n MNT = 'MNT',\n MOP = 'MOP',\n MRU = 'MRU',\n MUR = 'MUR',\n MVR = 'MVR',\n MWK = 'MWK',\n MXN = 'MXN',\n MYR = 'MYR',\n MZN = 'MZN',\n NAD = 'NAD',\n NGN = 'NGN',\n NIO = 'NIO',\n NOK = 'NOK',\n NPR = 'NPR',\n NZD = 'NZD',\n OMR = 'OMR',\n PAB = 'PAB',\n PEN = 'PEN',\n PGK = 'PGK',\n PHP = 'PHP',\n PKR = 'PKR',\n PLN = 'PLN',\n PYG = 'PYG',\n QAR = 'QAR',\n RON = 'RON',\n RSD = 'RSD',\n RUB = 'RUB',\n RWF = 'RWF',\n SAR = 'SAR',\n SBD = 'SBD',\n SCR = 'SCR',\n SDG = 'SDG',\n SEK = 'SEK',\n SGD = 'SGD',\n SHP = 'SHP',\n SLL = 'SLL',\n SOS = 'SOS',\n SRD = 'SRD',\n SSP = 'SSP',\n STD = 'STD',\n STN = 'STN',\n SYP = 'SYP',\n SZL = 'SZL',\n THB = 'THB',\n TJS = 'TJS',\n TMT = 'TMT',\n TND = 'TND',\n TOP = 'TOP',\n TRY = 'TRY',\n TTD = 'TTD',\n TWD = 'TWD',\n TZS = 'TZS',\n UAH = 'UAH',\n UGX = 'UGX',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VED = 'VED',\n VEF = 'VEF',\n VES = 'VES',\n VND = 'VND',\n VUV = 'VUV',\n WST = 'WST',\n XAF = 'XAF',\n XCD = 'XCD',\n XOF = 'XOF',\n XPF = 'XPF',\n XXX = 'XXX',\n YER = 'YER',\n ZAR = 'ZAR',\n ZMW = 'ZMW',\n}\n\nexport type Decimal = string\n\nexport type MiniAppParams = any\n\nexport interface MiniAppConfig<\n _DeprecatedParams extends MiniAppParams = undefined,\n> {\n /**\n * Root component of used inside the Minis Viewer\n */\n ViewerRoot: () => JSX.Element | null\n}\n\nexport interface MiniManifest {\n trusted_domains?: string[]\n permissions?: string[]\n [key: string]: any\n}\n\nexport type Permission = 'CAMERA' | 'GALLERY' | 'MICROPHONE'\n\nexport interface Money {\n amount: Decimal\n currencyCode: CurrencyCode\n}\n\nexport interface ProductImage {\n id?: string | null\n altText?: string | null\n url: string\n sensitive?: boolean | null\n}\n\nexport interface ProductVariant {\n id: string\n isFavorited: boolean\n image?: ProductImage | null\n price: Money\n compareAtPrice?: Money | null\n}\n\nexport interface ProductShop {\n id: string\n name: string\n}\n\nexport type ProductMedia =\n | {\n id: string\n image: ProductImage | null\n mediaContentType: 'IMAGE'\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'MODEL_3D'\n previewImage: ProductImage | null\n sources: {\n filesize: number\n format: string\n mimeType: string\n url: string\n }[]\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'VIDEO'\n previewImage: ProductImage | null\n sources: {\n format: string\n mimeType: string\n url: string\n width: number\n height: number\n }[]\n alt: string | null\n }\n | {\n id: string\n mediaContentType: 'EXTERNAL_VIDEO'\n previewImage: ProductImage | null\n embedUrl: string\n alt: string | null\n }\n\nexport interface Product {\n id: string\n title: string\n reviewAnalytics: {\n averageRating?: number | null\n reviewCount?: number | null\n }\n shop: ProductShop\n selectedVariant?: ProductVariant\n defaultVariantId: string\n isFavorited: boolean\n variants?: ProductVariant[]\n featuredImage?: ProductImage | null\n price: Money\n compareAtPrice?: Money | null\n}\n\nexport interface Shop {\n id: string\n name: string\n isFollowing?: boolean | null\n shareUrl?: string | null\n primaryDomain: {\n url: string\n }\n logoImage?: ProductImage | null\n reviewAnalytics: {\n averageRating?: number | null\n reviewCount: number\n }\n}\n\nexport interface QueryOptions {\n fetchPolicy?: WatchQueryFetchPolicy\n skip?: boolean\n}\n\nexport interface ProductList {\n id: string\n publicId: string | null\n name: string | null\n products: Product[]\n}\n\nexport interface Order {\n id: string\n name: string\n lineItems: {\n productTitle: string\n variantTitle: string | null\n quantity: number\n product: Product | null\n }[]\n shop: Shop | null\n}\n\nexport interface BuyerAttributes {\n genderAffinity?: Gender\n categoryAffinities: TaxonomyCategory[]\n}\n\nexport enum Gender {\n Male = 'MALE',\n Female = 'FEMALE',\n Neutral = 'NEUTRAL',\n}\n\nexport interface TaxonomyCategory {\n id: string\n name: string\n ancestors?: TaxonomyCategory[]\n}\n\n/**\n * A user profile.\n */\nexport interface UserProfile {\n /**\n * The display name of the user.\n */\n displayName?: string | null\n /**\n * The avatar image of the user.\n */\n avatarImage?: {\n url: string\n } | null\n}\n\n/**\n * A user metafield.\n */\nexport interface UserMetafield {\n /**\n * The key of the user metafield.\n */\n key: string\n /**\n * The value of the user metafield.\n */\n value: string\n}\n\nexport interface ContentImage {\n id: string | null\n url: string\n width: number | null\n height: number | null\n}\n\nexport interface ContentProduct {\n id: string\n title: string\n featuredImage: ContentImage | null\n}\n\nexport type ContentVisibility = 'DISCOVERABLE' | 'LINKABLE'\n\nexport interface Content {\n publicId: string\n externalId: string | null\n image: ContentImage\n title: string\n description: string | null\n visibility: ContentVisibility[]\n shareableUrl: string | null\n products: ContentProduct[] | null\n}\n\n/**\n * The fetch policy to use. `cache-first` will only fetch from the network if there is no\n * cached data. `network-only` will fetch from the network regardless of whether there\n * is cached data.\n */\nexport type DataHookFetchPolicy = 'cache-first' | 'network-only'\n\nexport interface DataHookOptionsBase {\n /**\n * When true, the data will not be fetched immediately.\n */\n skip?: boolean\n /**\n * The fetch policy to use for the initial data load. Subsequent loads may use different policies.\n */\n fetchPolicy?: DataHookFetchPolicy\n}\n\nexport interface PaginatedDataHookOptionsBase extends DataHookOptionsBase {\n /**\n * The number of products to fetch.\n * @default 20\n */\n first?: number\n}\n\nexport interface DataHookReturnsBase {\n /**\n * Whether data is loading. Represents the initial data load but not `refetch`/`fetchMore` calls.\n */\n loading: boolean\n /**\n * The error that occurred while loading. Represents the initial data load and `refetch` calls but not `fetchMore`\n */\n error: Error | null\n /**\n * Refetch the data. Data is updated in place. The `loading` state will not update but the `error` state will.\n */\n refetch: () => Promise<void>\n}\n\nexport interface PaginatedDataHookReturnsBase extends DataHookReturnsBase {\n /**\n * Whether there is a next page to fetch.\n */\n hasNextPage: boolean\n /**\n * Fetch more data. Data is updated in place. The `loading` and `error` states will not update\n */\n fetchMore: () => Promise<void>\n}\n\nexport const Consent = {\n MiniConsent: 'mini_consent',\n CameraConsent: 'camera_consent',\n PhotoLibraryConsent: 'photo_library_consent',\n MicrophoneConsent: 'microphone_consent',\n} as const\n\nexport const ConsentStatus = {\n Granted: 'granted',\n Dismissed: 'dismissed',\n Idle: 'idle',\n} as const\n\nexport type ConsentType = (typeof Consent)[keyof typeof Consent]\n\nexport type ConsentStatusType =\n (typeof ConsentStatus)[keyof typeof ConsentStatus]\n\nexport interface PaginatedDataHookPageInfo {\n /**\n * Whether there is a next page to fetch.\n */\n hasNextPage: boolean\n /**\n * The cursor to use for the next page of data.\n */\n endCursor: string | null\n}\n\nexport type ProductColorFilter =\n | 'BEIGE'\n | 'BLACK'\n | 'BLUE'\n | 'BROWN'\n | 'GOLD'\n | 'GREEN'\n | 'GREY'\n | 'NAVY'\n | 'ORANGE'\n | 'PINK'\n | 'PURPLE'\n | 'RED'\n | 'SILVER'\n | 'WHITE'\n | 'YELLOW'\n\nexport type ProductApparelSizeFilter =\n | 'SIZE_3XL'\n | 'SIZE_4XL'\n | 'SIZE_5XL'\n | 'SIZE_L'\n | 'SIZE_M'\n | 'SIZE_S'\n | 'SIZE_XL'\n | 'SIZE_XS'\n | 'SIZE_XXL'\n | 'SIZE_XXS'\n\nexport interface ProductFilters {\n /**\n * The apparel sizes to filter by.\n */\n apparelSize?: ProductApparelSizeFilter[]\n /**\n * Whether the product is in stock or not.\n */\n available?: boolean\n /**\n * The category IDs to filter by.\n */\n category?: string[]\n /**\n * The colors to filter by.\n */\n color?: ProductColorFilter[]\n /**\n * The gender to filter by.\n */\n gender?: 'MALE' | 'FEMALE' | 'NEUTRAL'\n /**\n * The shop IDs to include in the search.\n */\n includeShopIds?: string[]\n /**\n * The minimum rating to filter by.\n */\n minimumRating?: number\n /**\n * The price range to filter by.\n */\n price?: {\n min?: number\n max?: number\n }\n /**\n * The shoe sizes to filter by.\n */\n shoeSize?: ProductShoeSizeFilter[]\n}\n\nexport type ProductShoeSizeFilter =\n | 'SIZE_4'\n | 'SIZE_4_5'\n | 'SIZE_5'\n | 'SIZE_5_5'\n | 'SIZE_6'\n | 'SIZE_6_5'\n | 'SIZE_7'\n | 'SIZE_7_5'\n | 'SIZE_8'\n | 'SIZE_8_5'\n | 'SIZE_9'\n | 'SIZE_9_5'\n | 'SIZE_10'\n | 'SIZE_10_5'\n | 'SIZE_11'\n | 'SIZE_11_5'\n | 'SIZE_12'\n | 'SIZE_12_5'\n | 'SIZE_13'\n | 'SIZE_13_5'\n | 'SIZE_14'\n | 'SIZE_14_5'\n | 'SIZE_15'\n\nexport type ProductSizeFilter =\n | 'SIZE_XS'\n | 'SIZE_S'\n | 'SIZE_M'\n | 'SIZE_L'\n | 'SIZE_XL'\n | 'SIZE_XXL'\n | 'SIZE_XXS'\n\nexport type ProductSearchSortBy =\n | 'MOST_RECENT'\n | 'PRICE_HIGH_TO_LOW'\n | 'PRICE_LOW_TO_HIGH'\n | 'RELEVANCE'\n\ndeclare global {\n interface Window {\n minisSDK: ShopActions\n minisParams: MinisParams\n }\n}\n\nexport {}\n"],"names":["CurrencyCode","Gender","Consent","ConsentStatus"],"mappings":"AAs2BY,IAAAA,sBAAAA,OACVA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OACNA,EAAA,MAAM,OAjKIA,IAAAA,KAAA,CAAA,CAAA,GAuTAC,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA;AAwHL,MAAMC,IAAU;AAAA,EACrB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,mBAAmB;AACrB,GAEaC,IAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AACR;"}