@timardex/cluemart-shared 1.5.810 → 1.5.812

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.
@@ -37,9 +37,11 @@ __export(utils_exports, {
37
37
  CM_SCHOOL_PROMO_CODE: () => CM_SCHOOL_PROMO_CODE,
38
38
  DEFAULT_RESOURCES_RETURN_LIMIT: () => DEFAULT_RESOURCES_RETURN_LIMIT,
39
39
  DEFAULT_RESOURCES_RETURN_OFFSET: () => DEFAULT_RESOURCES_RETURN_OFFSET,
40
+ DEFAULT_USER_FACING_ERROR: () => DEFAULT_USER_FACING_ERROR,
40
41
  EVENT_DATE_STATUS_PERIOD_MAP: () => EVENT_DATE_STATUS_PERIOD_MAP,
41
42
  IOS_URL: () => IOS_URL,
42
43
  KNOWN_EVENT_SCHEDULE_STATUSES: () => KNOWN_EVENT_SCHEDULE_STATUSES,
44
+ NETWORK_USER_FACING_ERROR: () => NETWORK_USER_FACING_ERROR,
43
45
  PostTypeLabels: () => PostTypeLabels,
44
46
  SCHOOL_MAX_STUDENT_COUNT: () => SCHOOL_MAX_STUDENT_COUNT,
45
47
  SCHOOL_MIN_STUDENT_COUNT: () => SCHOOL_MIN_STUDENT_COUNT,
@@ -70,6 +72,7 @@ __export(utils_exports, {
70
72
  futureTimePeriods: () => futureTimePeriods,
71
73
  getAllowedEventDateStatuses: () => getAllowedEventDateStatuses,
72
74
  getCurrentAndFutureDates: () => getCurrentAndFutureDates,
75
+ getErrorMessage: () => getErrorMessage,
73
76
  getEventCalendarIsoDates: () => getEventCalendarIsoDates,
74
77
  getEventDatesWithStallholders: () => getEventDatesWithStallholders,
75
78
  getEventScheduleStatusLabel: () => getEventScheduleStatusLabel,
@@ -87,8 +90,10 @@ __export(utils_exports, {
87
90
  getVendorEventsEmptyMessage: () => getVendorEventsEmptyMessage,
88
91
  hasMatchingEventDate: () => hasMatchingEventDate,
89
92
  isFutureDatesBeforeThreshold: () => isFutureDatesBeforeThreshold,
93
+ isInternalErrorMessage: () => isInternalErrorMessage,
90
94
  isIsoDateString: () => isIsoDateString,
91
95
  isResourceImageActive: () => isResourceImageActive,
96
+ isTransientNetworkError: () => isTransientNetworkError,
92
97
  isValidIrdNumber: () => isValidIrdNumber,
93
98
  licenseNiceNames: () => licenseNiceNames,
94
99
  mapArrayToOptions: () => mapArrayToOptions,
@@ -110,6 +115,7 @@ __export(utils_exports, {
110
115
  timeFormat: () => timeFormat,
111
116
  toCalendarIsoDate: () => toCalendarIsoDate,
112
117
  toNZTime: () => toNZTime,
118
+ toUserFacingErrorMessage: () => toUserFacingErrorMessage,
113
119
  truncateText: () => truncateText
114
120
  });
115
121
  module.exports = __toCommonJS(utils_exports);
@@ -1934,6 +1940,86 @@ function isValidIrdNumber(value) {
1934
1940
  }
1935
1941
  return calculated === checkDigit;
1936
1942
  }
1943
+
1944
+ // src/utils/isTransientNetworkError.ts
1945
+ var TRANSIENT_NETWORK_PATTERNS = [
1946
+ /network connection was lost/i,
1947
+ /network request failed/i,
1948
+ /fetch failed/i,
1949
+ /failed to fetch/i,
1950
+ /internet connection appears to be offline/i,
1951
+ // Transport-layer timeouts only — avoid generic "timeout" (backend/query timeouts).
1952
+ /\b(request|connection|network)\s+timed\s+out\b/i,
1953
+ /\b(connect|read|write|socket)\s+timeout\b/i,
1954
+ /\bsocket\s+timed\s+out\b/i,
1955
+ /\betimedout\b/i,
1956
+ /\benotfound\b/i,
1957
+ /\beconnreset\b/i,
1958
+ /\beconnrefused\b/i
1959
+ ];
1960
+ function extractErrorMessage(err) {
1961
+ if (err instanceof Error) return err.message;
1962
+ if (typeof err === "string") return err;
1963
+ if (err && typeof err === "object") {
1964
+ const obj = err;
1965
+ if (typeof obj.message === "string") return obj.message;
1966
+ if (obj.networkError) return extractErrorMessage(obj.networkError);
1967
+ try {
1968
+ return JSON.stringify(err);
1969
+ } catch {
1970
+ return "[object]";
1971
+ }
1972
+ }
1973
+ if (err == null) return "";
1974
+ if (typeof err === "number" || typeof err === "boolean" || typeof err === "bigint") {
1975
+ return String(err);
1976
+ }
1977
+ if (typeof err === "symbol") return err.toString();
1978
+ return "";
1979
+ }
1980
+ function isTransientNetworkError(err) {
1981
+ const message = extractErrorMessage(err);
1982
+ return TRANSIENT_NETWORK_PATTERNS.some((pattern) => pattern.test(message));
1983
+ }
1984
+
1985
+ // src/utils/toUserFacingErrorMessage.ts
1986
+ var DEFAULT_USER_FACING_ERROR = "Something went wrong. Please try again.";
1987
+ var NETWORK_USER_FACING_ERROR = "Unable to connect. Please check your internet connection and try again.";
1988
+ var INTERNAL_ERROR_PATTERNS = [
1989
+ /connection\s*<monitor>/i,
1990
+ /\bmongo/i,
1991
+ /\b\d{1,3}(?:\.\d{1,3}){3}(?::\d+)?\b/,
1992
+ /\beconn(?:refused|reset|aborted)\b/i,
1993
+ /\betimedout\b/i,
1994
+ /\benotfound\b/i,
1995
+ /\bsocket hang up\b/i,
1996
+ /\binternal server error\b/i,
1997
+ /received status code 5\d\d/i,
1998
+ /\bat\s+\S+\s+\([^)]+:\d+:\d+\)/
1999
+ ];
2000
+ function isInternalErrorMessage(message) {
2001
+ return INTERNAL_ERROR_PATTERNS.some((pattern) => pattern.test(message));
2002
+ }
2003
+ function toUserFacingErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
2004
+ const message = (error ?? "").trim();
2005
+ if (!message) return fallback;
2006
+ if (isTransientNetworkError(message)) {
2007
+ return NETWORK_USER_FACING_ERROR;
2008
+ }
2009
+ if (isInternalErrorMessage(message)) {
2010
+ return fallback;
2011
+ }
2012
+ return message;
2013
+ }
2014
+ function getErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
2015
+ let raw;
2016
+ if (error instanceof Error) {
2017
+ raw = error.message;
2018
+ } else if (typeof error === "string") {
2019
+ raw = error;
2020
+ }
2021
+ return toUserFacingErrorMessage(raw, fallback);
2022
+ }
1937
2023
  // Annotate the CommonJS export names for ESM import in node:
1938
2024
  0 && (module.exports = {
1939
2025
  AFFILIATE_PARTICIPANT_TYPE_LABELS,
@@ -1943,9 +2029,11 @@ function isValidIrdNumber(value) {
1943
2029
  CM_SCHOOL_PROMO_CODE,
1944
2030
  DEFAULT_RESOURCES_RETURN_LIMIT,
1945
2031
  DEFAULT_RESOURCES_RETURN_OFFSET,
2032
+ DEFAULT_USER_FACING_ERROR,
1946
2033
  EVENT_DATE_STATUS_PERIOD_MAP,
1947
2034
  IOS_URL,
1948
2035
  KNOWN_EVENT_SCHEDULE_STATUSES,
2036
+ NETWORK_USER_FACING_ERROR,
1949
2037
  PostTypeLabels,
1950
2038
  SCHOOL_MAX_STUDENT_COUNT,
1951
2039
  SCHOOL_MIN_STUDENT_COUNT,
@@ -1976,6 +2064,7 @@ function isValidIrdNumber(value) {
1976
2064
  futureTimePeriods,
1977
2065
  getAllowedEventDateStatuses,
1978
2066
  getCurrentAndFutureDates,
2067
+ getErrorMessage,
1979
2068
  getEventCalendarIsoDates,
1980
2069
  getEventDatesWithStallholders,
1981
2070
  getEventScheduleStatusLabel,
@@ -1993,8 +2082,10 @@ function isValidIrdNumber(value) {
1993
2082
  getVendorEventsEmptyMessage,
1994
2083
  hasMatchingEventDate,
1995
2084
  isFutureDatesBeforeThreshold,
2085
+ isInternalErrorMessage,
1996
2086
  isIsoDateString,
1997
2087
  isResourceImageActive,
2088
+ isTransientNetworkError,
1998
2089
  isValidIrdNumber,
1999
2090
  licenseNiceNames,
2000
2091
  mapArrayToOptions,
@@ -2016,6 +2107,7 @@ function isValidIrdNumber(value) {
2016
2107
  timeFormat,
2017
2108
  toCalendarIsoDate,
2018
2109
  toNZTime,
2110
+ toUserFacingErrorMessage,
2019
2111
  truncateText
2020
2112
  });
2021
2113
  //# sourceMappingURL=index.cjs.map