@mx-cartographer/experiences 9.1.5 → 9.2.0

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 (30) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{Analytics-CkYXKvco.mjs → Analytics-B8AaC22u.mjs} +2 -2
  3. package/dist/{Analytics-CkYXKvco.mjs.map → Analytics-B8AaC22u.mjs.map} +1 -1
  4. package/dist/ErrorBoundary-C7BlHx04.mjs +27 -0
  5. package/dist/ErrorBoundary-C7BlHx04.mjs.map +1 -0
  6. package/dist/GlobalCopyApi-CLhyon-B.mjs +145 -0
  7. package/dist/GlobalCopyApi-CLhyon-B.mjs.map +1 -0
  8. package/dist/{Help-zVZdcmlk.mjs → Help-D4sOpItq.mjs} +2 -2
  9. package/dist/{Help-zVZdcmlk.mjs.map → Help-D4sOpItq.mjs.map} +1 -1
  10. package/dist/{UserStore-DApsX4aO.mjs → UserStore-BBceqFxh.mjs} +676 -612
  11. package/dist/UserStore-BBceqFxh.mjs.map +1 -0
  12. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs → ViewMoreMicroCard-B4oeGrbE.mjs} +3 -3
  13. package/dist/{ViewMoreMicroCard-fnwE0hqd.mjs.map → ViewMoreMicroCard-B4oeGrbE.mjs.map} +1 -1
  14. package/dist/common/components/ErrorBoundary.d.ts +2 -0
  15. package/dist/common/index.es.js +3 -3
  16. package/dist/core/index.es.js +3 -3
  17. package/dist/core/stores/GlobalStore.d.ts +4 -2
  18. package/dist/core/types/Handlers.d.ts +1 -0
  19. package/dist/core/types/index.d.ts +1 -1
  20. package/dist/core/utils/Fetch.d.ts +4 -0
  21. package/dist/help/index.es.js +1 -1
  22. package/dist/microinsights/index.es.js +1 -1
  23. package/dist/settings/index.es.js +1 -1
  24. package/dist/trends/index.es.js +1 -1
  25. package/package.json +5 -2
  26. package/dist/ErrorBoundary-CsdOcnJ9.mjs +0 -24
  27. package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +0 -1
  28. package/dist/GlobalCopyApi-wcnDUzMV.mjs +0 -129
  29. package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +0 -1
  30. package/dist/UserStore-DApsX4aO.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [9.2.0] - 07-09-2026
2
+
3
+ - **ADDED** - `GlobalCaptureException` callback pipeline for error observability for Account, Transaction, AppData, RecurringTransactions, Budgets, Category, Goal, NetWorth, Settings, Beat, GlobalCopy, Finstrong, Help, Holding, and Notification
4
+
5
+ ## [9.1.6] - 07-08-2026
6
+
7
+ - **ADDED** - `GlobalCaptureException` callback pipeline for error observability for User
8
+
1
9
  ## [9.1.5] - 07-07-2026
2
10
 
3
11
  - **FIXED** - Transaction dates displayed, grouped, and filtered one day early in negative-offset (US) timezones when the feed stored the date at midnight UTC
@@ -1,6 +1,6 @@
1
1
  import u from "react";
2
2
  import { getUnixTime as r } from "date-fns/getUnixTime";
3
- import { A as l } from "./GlobalCopyApi-wcnDUzMV.mjs";
3
+ import { A as l } from "./GlobalCopyApi-CLhyon-B.mjs";
4
4
  const A = (s, i) => {
5
5
  const { session: t } = i, o = Object.values(i).reduce((e, n) => t && n?.onAnalyticEvent && typeof n?.onAnalyticEvent == "function" ? [...e, n.onAnalyticEvent] : e, []), a = [...s, ...o];
6
6
  return u.useMemo(() => (e) => {
@@ -51,4 +51,4 @@ export {
51
51
  d as b,
52
52
  A as u
53
53
  };
54
- //# sourceMappingURL=Analytics-CkYXKvco.mjs.map
54
+ //# sourceMappingURL=Analytics-B8AaC22u.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics-CkYXKvco.mjs","sources":["../src/common/hooks/useCombineEvents.tsx","../src/common/utils/Analytics.ts"],"sourcesContent":["import React from 'react'\n\nimport { AnalyticEventFunction, AnalyticPageviewFunction } from '../../core'\n\nexport const useCombineEvents = (events: AnalyticEventFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticEventFunction[], curr: any) => {\n if (session && curr?.onAnalyticEvent && typeof curr?.onAnalyticEvent === 'function') {\n return [...acc, curr.onAnalyticEvent]\n }\n\n return acc\n }, [])\n const eventFunctions = [...events, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [events, session])\n}\n\nexport const useCombinePageviews = (pages: AnalyticPageviewFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticPageviewFunction[], curr: any) => {\n if (session && curr?.onAnalyticPageView && typeof curr?.onAnalyticPageView === 'function') {\n return [...acc, curr.onAnalyticPageView]\n }\n\n return acc\n }, [])\n const eventFunctions = [...pages, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [pages, session])\n}\n","import { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AnalyticsApi } from '../../core/api'\nimport { BasicAnalyticsEvent, AnalyticsSession, BasicAnalyticsPageview } from '../../core'\n\nexport const analyticsSession = async (\n endpoint: string,\n token: string,\n version = '1.0.0',\n featureName = 'Experiences',\n) => {\n const analyticsApi = new AnalyticsApi(endpoint, token)\n const { analytics_session } = (await analyticsApi.initializeAnalyticsSession(\n version,\n featureName,\n )) as {\n analytics_session: AnalyticsSession\n }\n\n const host = window.location.hostname\n\n return {\n sendAnalyticEvent: async (event: BasicAnalyticsEvent) => {\n return await analyticsApi.sendAnalyticEvent({\n analytics_event: {\n ...event,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: event?.label || '',\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n version: 2,\n },\n })\n },\n sendAnalyticsPageview: async (pageview: BasicAnalyticsPageview) => {\n return await analyticsApi.sendAnalyticsPageview({\n analytics_pageview: {\n ...pageview,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: pageview.name,\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n },\n })\n },\n }\n}\n"],"names":["useCombineEvents","events","store","session","storeEvents","acc","curr","eventFunctions","React","event","e","useCombinePageviews","pages","analyticsSession","endpoint","token","version","featureName","analyticsApi","AnalyticsApi","analytics_session","host","getUnixTime","pageview"],"mappings":";;;AAIO,MAAMA,IAAmB,CAACC,GAAiCC,MAAe;AAC/E,QAAM,EAAE,SAAAC,MAAYD,GAEdE,IAAc,OAAO,OAAOF,CAAK,EAAE,OAAO,CAACG,GAA8BC,MACzEH,KAAWG,GAAM,mBAAmB,OAAOA,GAAM,mBAAoB,aAChE,CAAC,GAAGD,GAAKC,EAAK,eAAe,IAG/BD,GACN,CAAA,CAAE,GACCE,IAAiB,CAAC,GAAGN,GAAQ,GAAGG,CAAW;AAEjD,SAAOI,EAAM,QAAQ,MACZ,CAACC,MAAkB;AACxB,IAAAF,EAAe,QAAQ,CAACG,MAAM;AAC5B,MAAKP,IAGHO,EAAED,GAAON,CAAO,IAFhBO,EAAED,CAAK;AAAA,IAIX,CAAC;AAAA,EACH,GACC,CAACR,GAAQE,CAAO,CAAC;AACtB,GAEaQ,IAAsB,CAACC,GAAmCV,MAAe;AACpF,QAAM,EAAE,SAAAC,MAAYD,GAEdE,IAAc,OAAO,OAAOF,CAAK,EAAE,OAAO,CAACG,GAAiCC,MAC5EH,KAAWG,GAAM,sBAAsB,OAAOA,GAAM,sBAAuB,aACtE,CAAC,GAAGD,GAAKC,EAAK,kBAAkB,IAGlCD,GACN,CAAA,CAAE,GACCE,IAAiB,CAAC,GAAGK,GAAO,GAAGR,CAAW;AAEhD,SAAOI,EAAM,QAAQ,MACZ,CAACC,MAAkB;AACxB,IAAAF,EAAe,QAAQ,CAACG,MAAM;AAC5B,MAAKP,IAGHO,EAAED,GAAON,CAAO,IAFhBO,EAAED,CAAK;AAAA,IAIX,CAAC;AAAA,EACH,GACC,CAACG,GAAOT,CAAO,CAAC;AACrB,GC/CaU,IAAmB,OAC9BC,GACAC,GACAC,IAAU,SACVC,IAAc,kBACX;AACH,QAAMC,IAAe,IAAIC,EAAaL,GAAUC,CAAK,GAC/C,EAAE,mBAAAK,EAAA,IAAuB,MAAMF,EAAa;AAAA,IAChDF;AAAA,IACAC;AAAA,EAAA,GAKII,IAAO,OAAO,SAAS;AAE7B,SAAO;AAAA,IACL,mBAAmB,OAAOZ,MACjB,MAAMS,EAAa,kBAAkB;AAAA,MAC1C,iBAAiB;AAAA,QACf,GAAGT;AAAA,QACH,aAAa;AAAA,QACb,YAAYa,EAAY,oBAAI,KAAA,CAAM,EAAE,SAAA;AAAA,QACpC,MAAAD;AAAA,QACA,MAAMZ,GAAO,SAAS;AAAA,QACtB,YAAYW,EAAkB;AAAA,QAC9B,YAAY,UAAU,aAAa;AAAA,QACnC,SAAS;AAAA,MAAA;AAAA,IACX,CACD;AAAA,IAEH,uBAAuB,OAAOG,MACrB,MAAML,EAAa,sBAAsB;AAAA,MAC9C,oBAAoB;AAAA,QAClB,GAAGK;AAAA,QACH,aAAa;AAAA,QACb,YAAYD,EAAY,oBAAI,KAAA,CAAM,EAAE,SAAA;AAAA,QACpC,MAAAD;AAAA,QACA,MAAME,EAAS;AAAA,QACf,YAAYH,EAAkB;AAAA,QAC9B,YAAY,UAAU,aAAa;AAAA,MAAA;AAAA,IACrC,CACD;AAAA,EACH;AAEJ;"}
1
+ {"version":3,"file":"Analytics-B8AaC22u.mjs","sources":["../src/common/hooks/useCombineEvents.tsx","../src/common/utils/Analytics.ts"],"sourcesContent":["import React from 'react'\n\nimport { AnalyticEventFunction, AnalyticPageviewFunction } from '../../core'\n\nexport const useCombineEvents = (events: AnalyticEventFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticEventFunction[], curr: any) => {\n if (session && curr?.onAnalyticEvent && typeof curr?.onAnalyticEvent === 'function') {\n return [...acc, curr.onAnalyticEvent]\n }\n\n return acc\n }, [])\n const eventFunctions = [...events, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [events, session])\n}\n\nexport const useCombinePageviews = (pages: AnalyticPageviewFunction[], store: any) => {\n const { session } = store\n\n const storeEvents = Object.values(store).reduce((acc: AnalyticPageviewFunction[], curr: any) => {\n if (session && curr?.onAnalyticPageView && typeof curr?.onAnalyticPageView === 'function') {\n return [...acc, curr.onAnalyticPageView]\n }\n\n return acc\n }, [])\n const eventFunctions = [...pages, ...storeEvents]\n\n return React.useMemo(() => {\n return (event: string) => {\n eventFunctions.forEach((e) => {\n if (!session) {\n e(event)\n } else {\n e(event, session)\n }\n })\n }\n }, [pages, session])\n}\n","import { getUnixTime } from 'date-fns/getUnixTime'\n\nimport { AnalyticsApi } from '../../core/api'\nimport { BasicAnalyticsEvent, AnalyticsSession, BasicAnalyticsPageview } from '../../core'\n\nexport const analyticsSession = async (\n endpoint: string,\n token: string,\n version = '1.0.0',\n featureName = 'Experiences',\n) => {\n const analyticsApi = new AnalyticsApi(endpoint, token)\n const { analytics_session } = (await analyticsApi.initializeAnalyticsSession(\n version,\n featureName,\n )) as {\n analytics_session: AnalyticsSession\n }\n\n const host = window.location.hostname\n\n return {\n sendAnalyticEvent: async (event: BasicAnalyticsEvent) => {\n return await analyticsApi.sendAnalyticEvent({\n analytics_event: {\n ...event,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: event?.label || '',\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n version: 2,\n },\n })\n },\n sendAnalyticsPageview: async (pageview: BasicAnalyticsPageview) => {\n return await analyticsApi.sendAnalyticsPageview({\n analytics_pageview: {\n ...pageview,\n app_version: 'widgets-v2',\n created_at: getUnixTime(new Date()).toString(),\n host,\n name: pageview.name,\n session_id: analytics_session.guid,\n user_agent: navigator.userAgent || '',\n },\n })\n },\n }\n}\n"],"names":["useCombineEvents","events","store","session","storeEvents","acc","curr","eventFunctions","React","event","e","useCombinePageviews","pages","analyticsSession","endpoint","token","version","featureName","analyticsApi","AnalyticsApi","analytics_session","host","getUnixTime","pageview"],"mappings":";;;AAIO,MAAMA,IAAmB,CAACC,GAAiCC,MAAe;AAC/E,QAAM,EAAE,SAAAC,MAAYD,GAEdE,IAAc,OAAO,OAAOF,CAAK,EAAE,OAAO,CAACG,GAA8BC,MACzEH,KAAWG,GAAM,mBAAmB,OAAOA,GAAM,mBAAoB,aAChE,CAAC,GAAGD,GAAKC,EAAK,eAAe,IAG/BD,GACN,CAAA,CAAE,GACCE,IAAiB,CAAC,GAAGN,GAAQ,GAAGG,CAAW;AAEjD,SAAOI,EAAM,QAAQ,MACZ,CAACC,MAAkB;AACxB,IAAAF,EAAe,QAAQ,CAACG,MAAM;AAC5B,MAAKP,IAGHO,EAAED,GAAON,CAAO,IAFhBO,EAAED,CAAK;AAAA,IAIX,CAAC;AAAA,EACH,GACC,CAACR,GAAQE,CAAO,CAAC;AACtB,GAEaQ,IAAsB,CAACC,GAAmCV,MAAe;AACpF,QAAM,EAAE,SAAAC,MAAYD,GAEdE,IAAc,OAAO,OAAOF,CAAK,EAAE,OAAO,CAACG,GAAiCC,MAC5EH,KAAWG,GAAM,sBAAsB,OAAOA,GAAM,sBAAuB,aACtE,CAAC,GAAGD,GAAKC,EAAK,kBAAkB,IAGlCD,GACN,CAAA,CAAE,GACCE,IAAiB,CAAC,GAAGK,GAAO,GAAGR,CAAW;AAEhD,SAAOI,EAAM,QAAQ,MACZ,CAACC,MAAkB;AACxB,IAAAF,EAAe,QAAQ,CAACG,MAAM;AAC5B,MAAKP,IAGHO,EAAED,GAAON,CAAO,IAFhBO,EAAED,CAAK;AAAA,IAIX,CAAC;AAAA,EACH,GACC,CAACG,GAAOT,CAAO,CAAC;AACrB,GC/CaU,IAAmB,OAC9BC,GACAC,GACAC,IAAU,SACVC,IAAc,kBACX;AACH,QAAMC,IAAe,IAAIC,EAAaL,GAAUC,CAAK,GAC/C,EAAE,mBAAAK,EAAA,IAAuB,MAAMF,EAAa;AAAA,IAChDF;AAAA,IACAC;AAAA,EAAA,GAKII,IAAO,OAAO,SAAS;AAE7B,SAAO;AAAA,IACL,mBAAmB,OAAOZ,MACjB,MAAMS,EAAa,kBAAkB;AAAA,MAC1C,iBAAiB;AAAA,QACf,GAAGT;AAAA,QACH,aAAa;AAAA,QACb,YAAYa,EAAY,oBAAI,KAAA,CAAM,EAAE,SAAA;AAAA,QACpC,MAAAD;AAAA,QACA,MAAMZ,GAAO,SAAS;AAAA,QACtB,YAAYW,EAAkB;AAAA,QAC9B,YAAY,UAAU,aAAa;AAAA,QACnC,SAAS;AAAA,MAAA;AAAA,IACX,CACD;AAAA,IAEH,uBAAuB,OAAOG,MACrB,MAAML,EAAa,sBAAsB;AAAA,MAC9C,oBAAoB;AAAA,QAClB,GAAGK;AAAA,QACH,aAAa;AAAA,QACb,YAAYD,EAAY,oBAAI,KAAA,CAAM,EAAE,SAAA;AAAA,QACpC,MAAAD;AAAA,QACA,MAAME,EAAS;AAAA,QACf,YAAYH,EAAkB;AAAA,QAC9B,YAAY,UAAU,aAAa;AAAA,MAAA;AAAA,IACrC,CACD;AAAA,EACH;AAEJ;"}
@@ -0,0 +1,27 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import e from "react";
3
+ import { H3 as n } from "@mxenabled/mxui";
4
+ const s = {
5
+ text: "Oops! Something went wrong."
6
+ };
7
+ class m extends e.Component {
8
+ state = {
9
+ hasError: !1
10
+ };
11
+ componentDidCatch(r, t) {
12
+ console.error("Uncaught error:", r, t), this.props.onCaptureException?.(r, {
13
+ component: "ErrorBoundary",
14
+ componentStack: t.componentStack ?? ""
15
+ });
16
+ }
17
+ static getDerivedStateFromError() {
18
+ return { hasError: !0 };
19
+ }
20
+ render() {
21
+ return this.state.hasError ? /* @__PURE__ */ o(n, { sx: { pt: 24 }, children: s.text }) : this.props.children;
22
+ }
23
+ }
24
+ export {
25
+ m as E
26
+ };
27
+ //# sourceMappingURL=ErrorBoundary-C7BlHx04.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary-C7BlHx04.mjs","sources":["../src/common/components/ErrorBoundary.tsx"],"sourcesContent":["import React from 'react'\n\nimport { H3 } from '@mxenabled/mxui'\n\nimport type { GlobalCaptureException } from '../../core'\n\nexport interface ErrorProps {\n children?: React.ReactNode\n onCaptureException?: GlobalCaptureException\n}\n\nexport interface ErrorState {\n hasError: boolean\n}\n\nconst copy = {\n text: 'Oops! Something went wrong.',\n}\n\nclass ErrorBoundary extends React.Component<ErrorProps, ErrorState> {\n state: ErrorState = {\n hasError: false,\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error('Uncaught error:', error, errorInfo)\n this.props.onCaptureException?.(error, {\n component: 'ErrorBoundary',\n componentStack: errorInfo.componentStack ?? '',\n })\n }\n\n static getDerivedStateFromError(): ErrorState {\n return { hasError: true }\n }\n\n render() {\n if (this.state.hasError) return <H3 sx={{ pt: 24 }}>{copy.text}</H3>\n\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n"],"names":["copy","ErrorBoundary","React","error","errorInfo","jsx","H3"],"mappings":";;;AAeA,MAAMA,IAAO;AAAA,EACX,MAAM;AACR;AAEA,MAAMC,UAAsBC,EAAM,UAAkC;AAAA,EAClE,QAAoB;AAAA,IAClB,UAAU;AAAA,EAAA;AAAA,EAGZ,kBAAkBC,GAAcC,GAA4B;AAC1D,YAAQ,MAAM,mBAAmBD,GAAOC,CAAS,GACjD,KAAK,MAAM,qBAAqBD,GAAO;AAAA,MACrC,WAAW;AAAA,MACX,gBAAgBC,EAAU,kBAAkB;AAAA,IAAA,CAC7C;AAAA,EACH;AAAA,EAEA,OAAO,2BAAuC;AAC5C,WAAO,EAAE,UAAU,GAAA;AAAA,EACrB;AAAA,EAEA,SAAS;AACP,WAAI,KAAK,MAAM,WAAiB,gBAAAC,EAACC,GAAA,EAAG,IAAI,EAAE,IAAI,GAAA,GAAO,UAAAN,EAAK,KAAA,CAAK,IAExD,KAAK,MAAM;AAAA,EACpB;AACF;"}
@@ -0,0 +1,145 @@
1
+ import h from "bowser";
2
+ import { A as r } from "./ApiEndpoints-DXwIYNUV.mjs";
3
+ import { g as u } from "./Localization-DnoVyBNK.mjs";
4
+ class o extends Error {
5
+ status;
6
+ constructor(e, s) {
7
+ super(e), this.name = "ApiError", this.status = s;
8
+ }
9
+ }
10
+ class c {
11
+ endpoint = "/";
12
+ headers;
13
+ onError;
14
+ constructor(e, s, t, a) {
15
+ this.endpoint = e;
16
+ const n = {
17
+ Accept: "application/json",
18
+ "Accept-Language": u(),
19
+ "Content-Type": "application/json",
20
+ "MD-Session-Token": s
21
+ };
22
+ this.headers = t || n, this.onError = a;
23
+ }
24
+ get = async (e) => {
25
+ const s = {
26
+ method: "GET",
27
+ headers: this.headers
28
+ };
29
+ return fetch(`${this.endpoint}${e}`, s).then((t) => {
30
+ if (!t.ok)
31
+ throw new o(
32
+ `ApiGetRequestError: ${t.status} ${t.statusText}`,
33
+ t.status
34
+ );
35
+ return t.text();
36
+ }).then((t) => t.length ? JSON.parse(t) : {}).then((t) => t).catch((t) => {
37
+ throw this.onError?.(t, void 0, "ApiGetRequestError"), t;
38
+ });
39
+ };
40
+ post = async (e, s) => {
41
+ const t = s ? JSON.stringify(s) : void 0, a = {
42
+ method: "POST",
43
+ headers: this.headers,
44
+ body: t
45
+ };
46
+ return fetch(`${this.endpoint}${e}`, a).then((n) => {
47
+ if (!n.ok)
48
+ throw new o(
49
+ `ApiPostRequestError: ${n.status} ${n.statusText}`,
50
+ n.status
51
+ );
52
+ return n.text();
53
+ }).then((n) => n.length ? JSON.parse(n) : {}).then((n) => n);
54
+ };
55
+ put = async (e, s) => {
56
+ const t = JSON.stringify(s), a = {
57
+ method: "PUT",
58
+ headers: this.headers,
59
+ body: t
60
+ };
61
+ return fetch(`${this.endpoint}${e}`, a).then((n) => {
62
+ if (!n.ok)
63
+ throw new o(
64
+ `ApiPutRequestError: ${n.status} ${n.statusText}`,
65
+ n.status
66
+ );
67
+ return n.text();
68
+ }).then((n) => n.length ? JSON.parse(n) : {}).then((n) => n).catch((n) => {
69
+ throw window?.app?.config?.type === "pulse" && this.onError?.(n, void 0, "ApiPutRequestError"), n;
70
+ });
71
+ };
72
+ delete = async (e) => {
73
+ const s = {
74
+ method: "DELETE",
75
+ headers: this.headers
76
+ };
77
+ return fetch(`${this.endpoint}${e}`, s).then((t) => {
78
+ if (!t.ok)
79
+ throw new o(
80
+ `ApiDeleteRequestError: ${t.status} ${t.statusText}`,
81
+ t.status
82
+ );
83
+ return t.text();
84
+ }).then((t) => t.length ? JSON.parse(t) : {}).then((t) => t);
85
+ };
86
+ }
87
+ class A {
88
+ fetchInstance;
89
+ constructor(e, s, t) {
90
+ this.fetchInstance = new c(e, s, void 0, t);
91
+ }
92
+ initializeAnalyticsSession = async (e, s) => {
93
+ const t = h.getParser(window.navigator.userAgent), { analytics_session: a } = await this.fetchInstance.post(r.ANALYTICS_SESSION, {
94
+ browser_name: t.getBrowserName() || "Unknown",
95
+ browser_version: t.getBrowserVersion() || "0.0.0",
96
+ is_first_visit: !1,
97
+ product_name: "Individual Widget",
98
+ product_version: e
99
+ });
100
+ return a ? (this.fetchInstance.post(r.ANALYTICS_FEATURE_VISITS, {
101
+ feature_visit: {
102
+ analytics_session_guid: a.guid,
103
+ feature_name: s || "Experiences",
104
+ is_first_visit: a.is_first_visit
105
+ }
106
+ }), { analytics_session: a }) : { analytics_session: null };
107
+ };
108
+ sendAnalyticEvent = async (e) => this.fetchInstance.post(r.ANALYTICS_EVENTS, e).catch((s) => {
109
+ throw s;
110
+ });
111
+ sendAnalyticsPageview = async (e) => this.fetchInstance.post(r.ANALYTICS_PAGEVIEWS, e).catch((s) => {
112
+ throw s;
113
+ });
114
+ }
115
+ class l {
116
+ fetchInstance;
117
+ constructor(e, s, t) {
118
+ this.fetchInstance = new c(e, s, void 0, t);
119
+ }
120
+ getBeats = async (e, s) => {
121
+ const t = `page=${e || 1}&per_page=${s || 5}`;
122
+ return this.fetchInstance.get(`${r.BEATS}?${t}`).then((a) => a.beats);
123
+ };
124
+ getBeatsWithAssociatedTransaction = async (e) => {
125
+ let s = "has_associated_transaction_guid=true";
126
+ return s += e ? `&from_date=${e}` : "", this.fetchInstance.get(`${r.BEATS}?${s}`).then((t) => t.beats);
127
+ };
128
+ getOffers = async () => this.fetchInstance.get(`${r.OFFERS}/${r.PULSE_COMMUNICATIONS}`).then((e) => e.pulse_communications);
129
+ updateBeat = async (e) => this.fetchInstance.put(`${r.BEATS}/${e.guid}`, e).then((s) => s.beat);
130
+ updateOffer = async (e) => this.fetchInstance.put(`${r.OFFERS}/${e.guid}`, e).then((s) => s.beat);
131
+ }
132
+ class E {
133
+ fetchInstance;
134
+ constructor(e, s, t) {
135
+ this.fetchInstance = new c(e, s, void 0, t);
136
+ }
137
+ getGlobalCopy = async (e, s) => this.fetchInstance.post(`${r.LOCALIZED_CONTENT}/${e}`, { translation_key: s }).then((t) => t);
138
+ }
139
+ export {
140
+ A,
141
+ l as B,
142
+ c as F,
143
+ E as G
144
+ };
145
+ //# sourceMappingURL=GlobalCopyApi-CLhyon-B.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalCopyApi-CLhyon-B.mjs","sources":["../src/core/utils/Fetch.ts","../src/core/api/AnalyticsApi.ts","../src/core/api/BeatApi.ts","../src/core/api/GlobalCopyApi.ts"],"sourcesContent":["import { type GlobalErrorHandler } from '../types'\nimport { getLocale } from './Localization'\n\nexport class ApiError extends Error {\n public status: number\n constructor(message: string, status: number) {\n super(message)\n this.name = 'ApiError'\n this.status = status\n }\n}\n\nexport class Fetch {\n endpoint = '/'\n headers: Record<string, string>\n onError?: GlobalErrorHandler\n\n constructor(\n endpoint: string,\n token: string,\n headers?: Record<string, string>,\n onError?: GlobalErrorHandler,\n ) {\n this.endpoint = endpoint\n const defaultHeaders = {\n Accept: 'application/json',\n 'Accept-Language': getLocale(),\n 'Content-Type': 'application/json',\n 'MD-Session-Token': token,\n }\n this.headers = headers || defaultHeaders\n this.onError = onError\n }\n\n get = async (url: string) => {\n const options = {\n method: 'GET',\n headers: this.headers,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (!response.ok) {\n throw new ApiError(\n `ApiGetRequestError: ${response.status} ${response.statusText}`,\n response.status,\n )\n }\n return response.text()\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((err) => {\n this.onError?.(err, undefined, 'ApiGetRequestError')\n throw err\n })\n }\n\n post = async (url: string, data?: any) => {\n const body = data ? JSON.stringify(data) : undefined\n const options = {\n method: 'POST',\n headers: this.headers,\n body,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (!response.ok) {\n throw new ApiError(\n `ApiPostRequestError: ${response.status} ${response.statusText}`,\n response.status,\n )\n }\n\n return response.text()\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n }\n\n put = async (url: string, data: any) => {\n const body = JSON.stringify(data)\n const options = {\n method: 'PUT',\n headers: this.headers,\n body,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (!response.ok) {\n throw new ApiError(\n `ApiPutRequestError: ${response.status} ${response.statusText}`,\n response.status,\n )\n }\n return response.text()\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n .catch((err) => {\n if (window?.app?.config?.type === 'pulse') {\n this.onError?.(err, undefined, 'ApiPutRequestError')\n }\n throw err\n })\n }\n\n delete = async (url: string) => {\n const options = {\n method: 'DELETE',\n headers: this.headers,\n }\n\n return fetch(`${this.endpoint}${url}`, options)\n .then((response) => {\n if (!response.ok) {\n throw new ApiError(\n `ApiDeleteRequestError: ${response.status} ${response.statusText}`,\n response.status,\n )\n }\n return response.text()\n })\n .then((text) => (text.length ? JSON.parse(text) : {}))\n .then((data) => data)\n }\n}\n\nexport default Fetch\n","import Bowser from 'bowser'\n\nimport { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { AnalyticsEvent, GlobalErrorHandler } from '..'\n\nexport class AnalyticsApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n initializeAnalyticsSession = async (version: string, featureName?: string) => {\n const browser = Bowser.getParser(window.navigator.userAgent)\n\n const { analytics_session } = await this.fetchInstance.post(ApiEndpoints.ANALYTICS_SESSION, {\n browser_name: browser.getBrowserName() || 'Unknown',\n browser_version: browser.getBrowserVersion() || '0.0.0',\n is_first_visit: false,\n product_name: 'Individual Widget',\n product_version: version,\n })\n if (!analytics_session) {\n return { analytics_session: null }\n }\n this.fetchInstance.post(ApiEndpoints.ANALYTICS_FEATURE_VISITS, {\n feature_visit: {\n analytics_session_guid: analytics_session.guid,\n feature_name: featureName ? featureName : 'Experiences',\n is_first_visit: analytics_session.is_first_visit,\n },\n })\n return { analytics_session }\n }\n\n sendAnalyticEvent = async (event: AnalyticsEvent) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_EVENTS, event).catch((err) => {\n throw err\n })\n }\n\n sendAnalyticsPageview = async (event: any) => {\n return this.fetchInstance.post(ApiEndpoints.ANALYTICS_PAGEVIEWS, event).catch((err) => {\n throw err\n })\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { Beat, GlobalErrorHandler } from '..'\n\nexport class BeatApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getBeats = async (pageNum?: number, perPage?: number) => {\n const beatParams = `page=${pageNum ? pageNum : 1}&per_page=${perPage ? perPage : 5}`\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n getBeatsWithAssociatedTransaction = async (fromDate?: string) => {\n let beatParams = 'has_associated_transaction_guid=true'\n beatParams += fromDate ? `&from_date=${fromDate}` : ''\n\n return this.fetchInstance.get(`${ApiEndpoints.BEATS}?${beatParams}`).then((data) => data.beats)\n }\n\n getOffers = async () => {\n return this.fetchInstance\n .get(`${ApiEndpoints.OFFERS}/${ApiEndpoints.PULSE_COMMUNICATIONS}`)\n .then((data) => data.pulse_communications)\n }\n\n updateBeat = async (beat: Beat) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.BEATS}/${beat.guid}`, beat)\n .then((data) => data.beat)\n }\n\n updateOffer = async (beat: Beat) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.OFFERS}/${beat.guid}`, beat)\n .then((data) => data.beat)\n }\n}\n","import { Fetch } from '../utils'\nimport { ApiEndpoints } from '../constants'\nimport type { GlobalErrorHandler } from '..'\n\nexport class GlobalCopyApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string, onError?: GlobalErrorHandler) {\n this.fetchInstance = new Fetch(endpoint, token, undefined, onError)\n }\n\n getGlobalCopy = async (namespace: string, translationKey: string) => {\n return this.fetchInstance\n .post(`${ApiEndpoints.LOCALIZED_CONTENT}/${namespace}`, { translation_key: translationKey })\n .then((data) => data)\n }\n}\n"],"names":["ApiError","message","status","Fetch","endpoint","token","headers","onError","defaultHeaders","getLocale","url","options","response","text","data","err","body","AnalyticsApi","version","featureName","browser","Bowser","analytics_session","ApiEndpoints","event","BeatApi","pageNum","perPage","beatParams","fromDate","beat","GlobalCopyApi","namespace","translationKey"],"mappings":"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"}
@@ -17,7 +17,7 @@ import { A as k } from "./Analytics-D-jdcL72.mjs";
17
17
  import At from "@mui/material/Breadcrumbs";
18
18
  import { useTheme as Q } from "@mui/material/styles";
19
19
  import { b as s } from "./Localization-DnoVyBNK.mjs";
20
- import { E as Ot } from "./ErrorBoundary-CsdOcnJ9.mjs";
20
+ import { E as Ot } from "./ErrorBoundary-C7BlHx04.mjs";
21
21
  import { u as Nt } from "./useScreenSize-mWpmnh5w.mjs";
22
22
  import { observer as lt } from "mobx-react-lite";
23
23
  import { H as Lt, P as Dt } from "./Help-CkQTjORd.mjs";
@@ -3207,4 +3207,4 @@ const kt = ({
3207
3207
  export {
3208
3208
  Ve as H
3209
3209
  };
3210
- //# sourceMappingURL=Help-zVZdcmlk.mjs.map
3210
+ //# sourceMappingURL=Help-D4sOpItq.mjs.map