@beamimpact/web-sdk 1.57.4 → 1.57.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{_share-dialog-dependencies-BvaXft1r.esm.js → _share-dialog-dependencies-DsJ2sKCC.esm.js} +2 -2
- package/dist/chunks/{_share-dialog-dependencies-BvaXft1r.esm.js.map → _share-dialog-dependencies-DsJ2sKCC.esm.js.map} +1 -1
- package/dist/chunks/{cart-DCezceUX.esm.d.ts → cart-DKQHSz5X.esm.d.ts} +1 -1
- package/dist/chunks/{index-Di1IwSgk.esm.js → index-B-QZylCa.esm.js} +2 -2
- package/dist/chunks/{index-Di1IwSgk.esm.js.map → index-B-QZylCa.esm.js.map} +1 -1
- package/dist/chunks/{index-Bc_hD09J.esm.js → index-B8g4VHgI.esm.js} +2 -2
- package/dist/chunks/{index-Bc_hD09J.esm.js.map → index-B8g4VHgI.esm.js.map} +1 -1
- package/dist/chunks/{index-726Vfz5u.esm.js → index-BX0p4BVY.esm.js} +2 -2
- package/dist/chunks/{index-726Vfz5u.esm.js.map → index-BX0p4BVY.esm.js.map} +1 -1
- package/dist/chunks/{index-Bt4Ob1Fi.esm.js → index-BaAhcyM6.esm.js} +2 -2
- package/dist/chunks/{index-Bt4Ob1Fi.esm.js.map → index-BaAhcyM6.esm.js.map} +1 -1
- package/dist/chunks/{index-BOHlIBDq.esm.js → index-BebFL9KU.esm.js} +2 -2
- package/dist/chunks/{index-BOHlIBDq.esm.js.map → index-BebFL9KU.esm.js.map} +1 -1
- package/dist/chunks/index-Beh5bQDw.esm.js +31 -0
- package/dist/chunks/index-Beh5bQDw.esm.js.map +1 -0
- package/dist/chunks/{index-C6gns2ul.esm.d.ts → index-DGOC8m2r.esm.d.ts} +1 -1
- package/dist/chunks/index-Duq6tIq8.esm.js +2 -0
- package/dist/chunks/index-Duq6tIq8.esm.js.map +1 -0
- package/dist/chunks/{promo-pill-label-D-VXaB27.esm.js → promo-pill-label-BWPhroK6.esm.js} +2 -2
- package/dist/chunks/{promo-pill-label-D-VXaB27.esm.js.map → promo-pill-label-BWPhroK6.esm.js.map} +1 -1
- package/dist/chunks/{routes-D6Gtw6kZ.esm.d.ts → routes-BW8Dd3C1.esm.d.ts} +8 -4
- package/dist/chunks/{share-button-DFuEWa2h.esm.js → share-button-C-QLknal.esm.js} +2 -2
- package/dist/chunks/{share-button-DFuEWa2h.esm.js.map → share-button-C-QLknal.esm.js.map} +1 -1
- package/dist/chunks/{share-button-o8IBYAxH.esm.js → share-button-CIP03E7T.esm.js} +2 -2
- package/dist/chunks/{share-button-o8IBYAxH.esm.js.map → share-button-CIP03E7T.esm.js.map} +1 -1
- package/dist/components/community-impact.esm.js +1 -1
- package/dist/components/community-impact.js +1 -1
- package/dist/components/cumulative-impact.esm.js +1 -1
- package/dist/components/cumulative-impact.js +1 -1
- package/dist/components/impact-overview.esm.js +1 -1
- package/dist/components/impact-overview.js +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.esm.js +1 -1
- package/dist/components/post-purchase.js +1 -1
- package/dist/components/product-details-page.d.ts +1 -1
- package/dist/components/product-details-page.esm.js +1 -1
- package/dist/components/product-details-page.js +1 -1
- package/dist/components/redeem-transaction.esm.js +1 -1
- package/dist/components/redeem-transaction.js +1 -1
- package/dist/components/select-nonprofit.esm.js +1 -1
- package/dist/components/select-nonprofit.js +1 -1
- package/dist/components/select-subscription-nonprofit.esm.js +1 -1
- package/dist/components/select-subscription-nonprofit.js +1 -1
- package/dist/components/shopify.d.ts +2 -2
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/social-share.esm.js +1 -1
- package/dist/components/social-share.js +1 -1
- package/dist/components/subscriber-select-nonprofit.esm.js +1 -1
- package/dist/components/subscriber-select-nonprofit.js +1 -1
- package/dist/components/subscription-impact.esm.js +1 -1
- package/dist/components/subscription-impact.js +1 -1
- package/dist/components/subscription-management.d.ts +1 -1
- package/dist/components/subscription-management.esm.js +1 -1
- package/dist/components/subscription-management.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/beam.esm.js +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/shopify-order.d.ts +1 -1
- package/dist/integrations/shopify-order.esm.js +1 -1
- package/dist/integrations/shopify-order.js +1 -1
- package/dist/integrations/shopify.d.ts +1 -1
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.esm.js +2 -2
- package/dist/integrations/statsig.esm.js.map +1 -1
- package/dist/integrations/statsig.js +2 -2
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/product-details-page.d.ts +1 -1
- package/dist/react/product-details-page.esm.js +1 -1
- package/dist/react/product-details-page.js +1 -1
- package/dist/react/redeem-transaction.esm.js +1 -1
- package/dist/react/redeem-transaction.js +1 -1
- package/dist/react/select-nonprofit.esm.js +1 -1
- package/dist/react/select-nonprofit.js +1 -1
- package/dist/react/select-subscription-nonprofit.esm.js +1 -1
- package/dist/react/select-subscription-nonprofit.js +1 -1
- package/dist/react/social-share.esm.js +1 -1
- package/dist/react/social-share.js +1 -1
- package/dist/react/subscriber-select-nonprofit.esm.js +1 -1
- package/dist/react/subscriber-select-nonprofit.js +1 -1
- package/dist/react/subscription-impact.esm.js +1 -1
- package/dist/react/subscription-impact.js +1 -1
- package/dist/react/subscription-management.d.ts +1 -1
- package/dist/react/subscription-management.esm.js +1 -1
- package/dist/react/subscription-management.js +1 -1
- package/package.json +4 -4
- package/dist/chunks/index-B7OkmoYI.esm.js +0 -2
- package/dist/chunks/index-B7OkmoYI.esm.js.map +0 -1
- package/dist/chunks/index-CVHrQ1WC.esm.js +0 -31
- package/dist/chunks/index-CVHrQ1WC.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CVHrQ1WC.esm.js","sources":["../../src/shared/fragments/css-variable-map.ts","../../src/shared/controllers/async-controller.ts","../../src/api-sdk/fetch-json.ts","../../src/api-sdk/make-openapi-method.ts","../../src/api-sdk/v3/routes.ts","../../src/shared/fragments/error-message-template.ts","../../src/shared/fragments/loading-template.ts","../../src/shared/fragments/custom-text.ts","../../src/shared/localize.ts","../../src/shared/is-all-html-elements.ts","../../src/shared/cart-contents.ts","../../src/integrations/logs/index.ts"],"sourcesContent":["export const _cssVariableMap = (variables: Record<string, string>) => {\n return Object.entries(variables)\n .map(([k, v]) => `${k}: ${v};`)\n .join(\"\\n\");\n};\n","import { ReactiveController, ReactiveControllerHost } from \"lit\";\n\ntype AsyncFunction = (...args: any[]) => Promise<any>;\n\n/**\n * Creates a declarative wrapper around async operations\n * @example\n * class MyElement extends LitElement {\n * private user = new AsyncController(\n * this,\n * async ({ id }) => get(url, { id }));\n *\n * async updated(changedProperties) {\n * if (changedProperties.has(\"userId\")) {\n * await this.user.exec({ id: this.userId })\n * }\n * }\n *\n * render() {\n * const { data, loading, error } = this.user;\n * if (loading) return html`Please wait...`\n * if (error) return html`Error! <button @click=${this.user.retry}>Reload</button>`;\n * return html`My name is: ${data.name}`\n * }\n * }\n */\nexport class AsyncController<TFn extends AsyncFunction> implements ReactiveController {\n public data: Awaited<ReturnType<TFn>> | null = null;\n public loading = false;\n public error: Error | null = null;\n\n private readonly host: ReactiveControllerHost;\n private readonly asyncFn: TFn;\n private lastArgs?: Parameters<TFn>;\n\n constructor(host: ReactiveControllerHost, asyncFn: TFn) {\n (this.host = host).addController(this);\n this.asyncFn = asyncFn;\n }\n\n public async exec(...args: Parameters<TFn>): Promise<ReturnType<TFn> | null> {\n this.lastArgs = args;\n this.loading = true;\n this.host.requestUpdate();\n try {\n // TODO: prevent race condition if later invocation returns before earlier\n this.data = await this.asyncFn(...args);\n this.error = null;\n } catch (err) {\n if (err instanceof Error) {\n this.error = err;\n this.data = null;\n }\n }\n this.loading = false;\n this.host.requestUpdate();\n return this.data;\n }\n\n public async retry() {\n return this.exec(...((this.lastArgs || []) as Parameters<TFn>));\n }\n\n hostDisconnected() {\n // TODO: cancel API calls\n }\n}\n","/**\n * Wrapper over window.fetch that expects/returns JSON\n */\nimport { BeamError, NetworkError } from \"../utils/beam-errors\";\nimport { logger } from \"../utils/logger\";\nimport { version as pkgVersion } from \"../../package.json\";\n\nexport async function fetchJson<T = unknown>(url: RequestInfo, options?: RequestInit): Promise<T> {\n const fetchOptions = {\n method: \"GET\",\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n \"X-Beam-Client\": \"WebSDK\",\n \"X-Beam-Client-Version\": pkgVersion,\n ...options?.headers,\n },\n preflightContinue: true,\n mode: options?.mode || \"cors\",\n body: options?.body != null ? options.body : undefined,\n };\n\n let response;\n try {\n response = await fetch(url, fetchOptions);\n // fetch can throw a TypeError if the server can't be reached, catch and log below\n } catch (err) {\n const error = new BeamError(`Network call failed (${fetchOptions?.method.toUpperCase()} ${url})`);\n error.cause = err;\n logger.error(error, url);\n throw error;\n }\n let body;\n let text;\n // This can throw a SyntaxError if response payload is malformed JSON\n try {\n text = await response.text();\n if (text) {\n // (response can be empty)\n body = JSON.parse(text);\n }\n } catch (err) {\n let error = err as Error;\n if (err instanceof SyntaxError) {\n error = new NetworkError(response, body, `Response invalid. Expected JSON. Received: \"${text}\"`);\n error.cause = err;\n }\n logger.error(error);\n throw error;\n }\n // Translate 4xx, 5xx status to runtime error\n if (!response.ok) {\n const error = new NetworkError(response, body, \"Response was not OK\");\n logger.error(error);\n throw error;\n }\n\n return body;\n}\n","import { DEFAULT_BASE_URL } from \"./constants\";\nimport { fetchJson } from \"./fetch-json\";\nimport { paths } from \"./openapi-spec\";\nimport { THttpMethod } from \"./types\";\n\nexport const makeOpenApiMethod = <\n TPathName extends keyof paths,\n TMethod extends keyof paths[TPathName],\n TStatusCode extends paths[TPathName][TMethod] extends { responses: any }\n ? keyof paths[TPathName][TMethod][\"responses\"]\n : never,\n>(\n pathName: TPathName,\n method: TMethod,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- used as `typeof okHttpStatus` in type positions\n okHttpStatus: TStatusCode,\n) => {\n type TRouteSpec = paths[typeof pathName];\n type TRouteMethod = TRouteSpec[typeof method];\n type TParams = \"parameters\" extends keyof TRouteMethod ? TRouteMethod[\"parameters\"] : never;\n type TPathParams = TParams extends { path: any } ? TParams[\"path\"] : Record<string, never>;\n type TQueryParams = TParams extends { query: any } ? TParams[\"query\"] : Record<string, never>;\n type TRequestBody = TRouteMethod extends { requestBody: { content: { \"application/json\": any } } }\n ? TRouteMethod[\"requestBody\"][\"content\"][\"application/json\"]\n : never;\n type TAllResponses = TRouteMethod extends { responses: any } ? TRouteMethod[\"responses\"] : never;\n type TOkResponse = TAllResponses[typeof okHttpStatus] extends { content: { \"application/json\": any } }\n ? TAllResponses[typeof okHttpStatus][\"content\"][\"application/json\"]\n : never;\n const openApi = {\n [pathName]: async function ({\n headers = {},\n baseUrl = DEFAULT_BASE_URL,\n apiRoot = \"/api/v3\",\n pathParams = {},\n queryParams = {},\n requestBody,\n }: {\n baseUrl?: string;\n apiRoot?: string;\n pathParams?: TPathParams;\n queryParams?: TQueryParams;\n requestBody?: TRequestBody;\n headers?: Record<string, string>;\n }) {\n const pathWithParams: string = Object.entries(pathParams).reduce((newPath: string, [k, v]) => {\n return newPath.replace(`{${k}}`, v as string);\n }, pathName as string);\n const cleanQueryParams = JSON.parse(JSON.stringify(queryParams));\n const search = new URLSearchParams(cleanQueryParams as unknown as Record<string, string>).toString();\n const url = baseUrl + apiRoot + pathWithParams + (search && `?${search}`);\n const options = { headers, method: method as THttpMethod, body: JSON.stringify(requestBody) };\n\n return fetchJson<TOkResponse>(url, options);\n },\n };\n\n // Use object to create function with dynamic name, for better stacktraces\n return openApi[pathName];\n};\n","import { makeOpenApiMethod } from \"../make-openapi-method\";\nimport { memoizeLast } from \"../../utils\";\n\nexport const getChainNonprofits = makeOpenApiMethod(\"/chain/{chainId}/nonprofits\", \"get\", 200);\n\nexport const getImpact = makeOpenApiMethod(\"/impact\", \"get\", 200);\n\nexport const getCumulativeImpact = makeOpenApiMethod(\"/chain/{chainId}/cumulativeImpact\", \"get\", 200);\n\nexport const postSelectNonprofit = makeOpenApiMethod(\"/selectNonprofit\", \"post\", 201);\n\nexport const postTransaction = makeOpenApiMethod(\"/transaction\", \"post\", 201);\n\nexport const putTransaction = makeOpenApiMethod(\"/transaction/{transactionId}\", \"put\", 204);\n\nexport const postCart = makeOpenApiMethod(\"/cart\", \"post\", 200);\n\nexport const postChainEligibleNonprofitsForCart = memoizeLast(\n makeOpenApiMethod(\"/chain/findEligibleNonprofitsForCart\", \"post\", 200),\n);\n\nexport const postLogs = makeOpenApiMethod(\"/logs\", \"post\", 200);\n\nexport const postExperimentSession = makeOpenApiMethod(\"/experimentSession\", \"post\", 200);\n\nexport const updateSubscription = makeOpenApiMethod(\"/subscriptions/updateSubscriptionNonprofit\", \"post\", 200);\n\nexport const postFindOrCreateSubscription = makeOpenApiMethod(\"/subscriptions/findOrCreateSubscription\", \"post\", 200);\n\nexport const postProductDetailsPage = makeOpenApiMethod(\"/productDetailsPage\", \"post\", 200);\n","import { html } from \"lit\";\nimport { MissingConfig, NetworkError } from \"../../utils/beam-errors\";\n\nconst strings = {\n errorTitle: `Beam encountered an error. Please try again.`,\n retry: `Retry`,\n};\n\nexport const _errorMessage = ({ error, retry }: { error: Error; retry?: (...args: never) => void }) => {\n let details = html``;\n if (error instanceof NetworkError) {\n const response = JSON.stringify(\n {\n status: error.response.status,\n statusText: error.response.statusText,\n url: error.response.url,\n body: error.body,\n },\n null,\n 4,\n );\n details = html`\n <p><b>Network Response:</b></p>\n <p>${response}</p>\n `;\n }\n if (error instanceof MissingConfig) {\n details = html`\n <p><b>Missing Required Config Options:</b></p>\n <p>${error.missingConfigKeyNames.join(\", \")}</p>\n `;\n }\n return html`<div class=\"beam-error\" style=\"text-align: left\">\n <p>${strings.errorTitle} ${retry ? html` <button type=\"reset\" @click=\"${retry}\">${strings.retry}</button>` : \"\"}</p>\n <br />\n <details>\n <div style=\"white-space: pre-wrap; font-family: monospace; line-height: 1;\">\n ${details}\n <p><b>Message:</b> ${error.message || html`<i>None</i>`}</p>\n <p><b>Stack:</b> ${error.stack}</p>\n </div>\n </details>\n <br />\n <p>Help: <a href=\"https://www.beamimpact.com\">www.beamimpact.com</a></p>\n </div>`;\n};\n","import { html } from \"lit\";\n\nconst strings = {\n loading: \"\", // Default is no loading content\n};\n\nexport const _loading = () => {\n return html`<p class=\"beam-loading\">${strings.loading}</p>`;\n};\n","import { CSSResult, unsafeCSS } from \"lit\";\n\n/**\n * Create an object that can be passed to cssVariableMap\n * to define CSS variables in a style tag. The default properties\n * are the ones exposed for customization in the remote config interface.\n * @example\n * const variables = {\n * ...customizableTextJs(\"widget-header\",\n * \"widget-border-color\": \"red\"\n * };\n *\n * html`<style>:host { ${_cssVariableMap(variables)} }</style>`;\n * @returns {{[p: string]: string}}\n */\nexport const defineCustomText = (\n namespace = \"\",\n {\n fontFamily = \"inherit\",\n fontStyle = \"inherit\",\n fontSize = \"inherit\",\n fontWeight = \"inherit\",\n textTransform = \"none\",\n textDecoration = \"none\",\n marginTop = \"0\",\n lineHeight = \"inherit\",\n color = \"inherit\",\n letterSpacing = \"normal\",\n } = {},\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-fontFamily`]: fontFamily,\n [`${prefix}-fontStyle`]: fontStyle,\n [`${prefix}-fontSize`]: fontSize,\n [`${prefix}-fontWeight`]: fontWeight,\n [`${prefix}-textTransform`]: textTransform,\n [`${prefix}-marginTop`]: marginTop,\n [`${prefix}-lineHeight`]: lineHeight,\n [`${prefix}-color`]: color,\n [`${prefix}-letterSpacing`]: letterSpacing,\n [`${prefix}-textDecoration`]: textDecoration,\n };\n};\n\n/**\n * Returns a string that defines css properties based on variables,\n * which can be used in a css`` template. The default properties are the\n * ones exposed for customization in the remote config interface.\n * @example\n * css`.widget-header { ${customizableTextCss(\"widget-header\")} border: none; }`\n * @returns {CSSResult}\n */\nexport const useCustomText = (\n namespace = \"\",\n {\n fontFamily = \"inherit\",\n fontStyle = \"inherit\",\n fontSize = \"inherit\",\n fontWeight = \"inherit\",\n textTransform = \"none\",\n textDecoration = \"none\",\n marginTop = \"0\",\n lineHeight = \"inherit\",\n color = \"inherit\",\n letterSpacing = \"normal\",\n } = {},\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n font-family: var(${prefix}-fontFamily, ${fontFamily});\n font-style: var(${prefix}-fontStyle, ${fontStyle});\n font-size: var(${prefix}-fontSize, ${fontSize});\n font-weight: var(${prefix}-fontWeight, ${fontWeight});\n text-transform: var(${prefix}-textTransform, ${textTransform});\n margin-top: var(${prefix}-marginTop, ${marginTop});\n line-height: var(${prefix}-lineHeight, ${lineHeight});\n text-decoration: var(${prefix}-textDecoration, ${textDecoration});\n color: var(${prefix}-color, ${color});\n letter-spacing: var(${prefix}-letterSpacing, ${letterSpacing});\n `);\n};\n\n/**\n * Same as useCustomText except returns an object that can be passed to styleMap\n */\nexport const useCustomTextMap = (\n namespace = \"\",\n {\n fontSize = \"inherit\",\n fontStyle = \"inherit\",\n fontWeight = \"inherit\",\n textTransform = \"none\",\n textDecoration = \"none\",\n marginTop = \"0\",\n lineHeight = \"inherit\",\n letterSpacing = \"normal\",\n } = {},\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n fontSize: `var(${prefix}-fontSize, ${fontSize})`,\n fontStyle: `var(${prefix}-fontStyle, ${fontStyle})`,\n fontWeight: `var(${prefix}-fontWeight, ${fontWeight})`,\n textTransform: `var(${prefix}-textTransform, ${textTransform})`,\n textDecoration: `var(${prefix}-textDecoration, ${textDecoration})`,\n marginTop: `var(${prefix}-marginTop, ${marginTop})`,\n lineHeight: `var(${prefix}-lineHeight, ${lineHeight})`,\n letterSpacing: `var(${prefix}-letterSpacing, ${letterSpacing})`,\n };\n};\n","import { LANGUAGES } from \"../api-sdk/types\";\nimport { logger } from \"../utils/logger\";\nimport { BeamError } from \"../utils/beam-errors\";\n\n/**\n * User-provided strings may include embedded translations in JSON form\n * This function extracts the string for the provided language\n * If it fails to parse, or the string is not json-like, it returns the whole string\n */\nconst localizeUserString = (lang: LANGUAGES, str: string): string => {\n const isJson = str.startsWith(\"{\") && !str.startsWith(\"{{\");\n if (isJson) {\n try {\n const json = JSON.parse(str);\n return json[lang] ?? json[\"en\"] ?? str;\n } catch (err) {\n logger.error(new BeamError(\"Failed to extract JSON translation from string\"), str);\n return str;\n }\n }\n return str;\n};\n\nexport { localizeUserString };\n","export const isAllHtmlElements = (a: Array<unknown>): a is Array<HTMLElement> => {\n return a.every((el) => el instanceof HTMLElement);\n};\n","import { paths } from \"../api-sdk/openapi-spec\";\nimport { BEAM_COOKIE_NAMES } from \"../api-sdk/constants\";\nexport type TCartApi =\n paths[\"/chain/findEligibleNonprofitsForCart\"][\"post\"][\"requestBody\"][\"content\"][\"application/json\"][\"cart\"];\n\n// Same as type from API but with non-optional fields, so we can use where Shopify guarantees values\nexport type TCart = TCartApi & {\n content: {\n items: Record<string, any>[];\n discounts?: Record<string, any>[] | undefined | null;\n };\n};\n\nexport type TCartItems = TCart[\"content\"][\"items\"];\n\nexport type TCartDiscounts = TCart[\"content\"][\"discounts\"];\n\nexport type TBeamCartLocalStorage = {\n cartId: string;\n beamCartId?: string;\n subtotal: number;\n itemCount: number;\n currencyCode: string;\n} & TCart;\n\nexport const BEAM_CART_COOKIE_NAME = BEAM_COOKIE_NAMES.CART;\n\nexport type Discount = {\n code: string;\n applicable: boolean;\n};\n","import { postLogs } from \"../../api-sdk/v3/routes\";\nimport { logger } from \"../../utils/logger\";\nimport { DEFAULT_LOG_URL } from \"../../api-sdk/constants\";\nimport { paths } from \"../../api-sdk/openapi-spec\";\n\ntype PostLogsReq = paths[\"/logs\"][\"post\"][\"requestBody\"][\"content\"][\"application/json\"];\n\ninterface SendLogConfig {\n apiKey: string;\n baseUrl?: string;\n}\n\nexport async function sendLog(config: SendLogConfig, payload: PostLogsReq): Promise<void> {\n const { apiKey, baseUrl } = config;\n try {\n await postLogs({\n baseUrl: baseUrl || DEFAULT_LOG_URL,\n headers: {\n authorization: `Api-Key ${apiKey}`,\n },\n requestBody: {\n ...payload,\n },\n });\n } catch (err) {\n logger.error(\"Failed to send log\", err);\n }\n}\n"],"names":["_cssVariableMap","variables","k","v","AsyncController","host","asyncFn","args","err","fetchJson","url","options","fetchOptions","pkgVersion","response","error","BeamError","logger","body","text","NetworkError","makeOpenApiMethod","pathName","method","okHttpStatus","headers","baseUrl","DEFAULT_BASE_URL","apiRoot","pathParams","queryParams","requestBody","pathWithParams","newPath","cleanQueryParams","search","getImpact","getCumulativeImpact","postSelectNonprofit","postCart","postChainEligibleNonprofitsForCart","memoizeLast","postLogs","postExperimentSession","updateSubscription","postFindOrCreateSubscription","postProductDetailsPage","strings","_errorMessage","retry","details","html","MissingConfig","_loading","defineCustomText","namespace","fontFamily","fontStyle","fontSize","fontWeight","textTransform","textDecoration","marginTop","lineHeight","color","letterSpacing","prefix","useCustomText","unsafeCSS","localizeUserString","lang","str","json","isAllHtmlElements","a","el","BEAM_CART_COOKIE_NAME","BEAM_COOKIE_NAMES","sendLog","config","payload","apiKey","DEFAULT_LOG_URL"],"mappings":"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"}
|