@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.
package/dist/index.cjs CHANGED
@@ -38,6 +38,7 @@ __export(index_exports, {
38
38
  DEFAULT_RESOURCES_RETURN_LIMIT: () => DEFAULT_RESOURCES_RETURN_LIMIT,
39
39
  DEFAULT_RESOURCES_RETURN_OFFSET: () => DEFAULT_RESOURCES_RETURN_OFFSET,
40
40
  DEFAULT_SHARE_OG_IMAGE: () => DEFAULT_SHARE_OG_IMAGE,
41
+ DEFAULT_USER_FACING_ERROR: () => DEFAULT_USER_FACING_ERROR,
41
42
  EVENT_DATE_STATUS_PERIOD_MAP: () => EVENT_DATE_STATUS_PERIOD_MAP,
42
43
  EnumActivity: () => EnumActivity,
43
44
  EnumAdShowOn: () => EnumAdShowOn,
@@ -88,6 +89,7 @@ __export(index_exports, {
88
89
  IOS_URL: () => IOS_URL,
89
90
  ImageTypeEnum: () => ImageTypeEnum,
90
91
  KNOWN_EVENT_SCHEDULE_STATUSES: () => KNOWN_EVENT_SCHEDULE_STATUSES,
92
+ NETWORK_USER_FACING_ERROR: () => NETWORK_USER_FACING_ERROR,
91
93
  OG_DESCRIPTION_LINE_BREAK: () => OG_DESCRIPTION_LINE_BREAK,
92
94
  POST_SHARE_RESOURCE_TYPES: () => POST_SHARE_RESOURCE_TYPES,
93
95
  PROMO_CODE_PREFIX: () => PROMO_CODE_PREFIX,
@@ -207,6 +209,7 @@ __export(index_exports, {
207
209
  gameTypeToDisplayName: () => gameTypeToDisplayName,
208
210
  getAllowedEventDateStatuses: () => getAllowedEventDateStatuses,
209
211
  getCurrentAndFutureDates: () => getCurrentAndFutureDates,
212
+ getErrorMessage: () => getErrorMessage,
210
213
  getEventCalendarIsoDates: () => getEventCalendarIsoDates,
211
214
  getEventDatesWithStallholders: () => getEventDatesWithStallholders,
212
215
  getEventScheduleStatusLabel: () => getEventScheduleStatusLabel,
@@ -227,10 +230,12 @@ __export(index_exports, {
227
230
  iconIds: () => iconIds,
228
231
  icons: () => icons,
229
232
  isFutureDatesBeforeThreshold: () => isFutureDatesBeforeThreshold,
233
+ isInternalErrorMessage: () => isInternalErrorMessage,
230
234
  isIsoDateString: () => isIsoDateString,
231
235
  isPostShareResourceType: () => isPostShareResourceType,
232
236
  isRelationShareResourceType: () => isRelationShareResourceType,
233
237
  isResourceImageActive: () => isResourceImageActive,
238
+ isTransientNetworkError: () => isTransientNetworkError,
234
239
  isValidIrdNumber: () => isValidIrdNumber,
235
240
  joinShareDescriptionSections: () => joinShareDescriptionSections,
236
241
  joinShareOgDescriptionSections: () => joinShareOgDescriptionSections,
@@ -288,6 +293,7 @@ __export(index_exports, {
288
293
  toGraphqlQueryString: () => toGraphqlQueryString,
289
294
  toNZTime: () => toNZTime,
290
295
  toShareSocialImageCacheVersion: () => toShareSocialImageCacheVersion,
296
+ toUserFacingErrorMessage: () => toUserFacingErrorMessage,
291
297
  truncateText: () => truncateText,
292
298
  useAddParticipantToChat: () => useAddParticipantToChat,
293
299
  useAddUserFavouriteResource: () => useAddUserFavouriteResource,
@@ -2884,6 +2890,86 @@ function isValidIrdNumber(value) {
2884
2890
  return calculated === checkDigit;
2885
2891
  }
2886
2892
 
2893
+ // src/utils/isTransientNetworkError.ts
2894
+ var TRANSIENT_NETWORK_PATTERNS = [
2895
+ /network connection was lost/i,
2896
+ /network request failed/i,
2897
+ /fetch failed/i,
2898
+ /failed to fetch/i,
2899
+ /internet connection appears to be offline/i,
2900
+ // Transport-layer timeouts only — avoid generic "timeout" (backend/query timeouts).
2901
+ /\b(request|connection|network)\s+timed\s+out\b/i,
2902
+ /\b(connect|read|write|socket)\s+timeout\b/i,
2903
+ /\bsocket\s+timed\s+out\b/i,
2904
+ /\betimedout\b/i,
2905
+ /\benotfound\b/i,
2906
+ /\beconnreset\b/i,
2907
+ /\beconnrefused\b/i
2908
+ ];
2909
+ function extractErrorMessage(err) {
2910
+ if (err instanceof Error) return err.message;
2911
+ if (typeof err === "string") return err;
2912
+ if (err && typeof err === "object") {
2913
+ const obj = err;
2914
+ if (typeof obj.message === "string") return obj.message;
2915
+ if (obj.networkError) return extractErrorMessage(obj.networkError);
2916
+ try {
2917
+ return JSON.stringify(err);
2918
+ } catch {
2919
+ return "[object]";
2920
+ }
2921
+ }
2922
+ if (err == null) return "";
2923
+ if (typeof err === "number" || typeof err === "boolean" || typeof err === "bigint") {
2924
+ return String(err);
2925
+ }
2926
+ if (typeof err === "symbol") return err.toString();
2927
+ return "";
2928
+ }
2929
+ function isTransientNetworkError(err) {
2930
+ const message = extractErrorMessage(err);
2931
+ return TRANSIENT_NETWORK_PATTERNS.some((pattern) => pattern.test(message));
2932
+ }
2933
+
2934
+ // src/utils/toUserFacingErrorMessage.ts
2935
+ var DEFAULT_USER_FACING_ERROR = "Something went wrong. Please try again.";
2936
+ var NETWORK_USER_FACING_ERROR = "Unable to connect. Please check your internet connection and try again.";
2937
+ var INTERNAL_ERROR_PATTERNS = [
2938
+ /connection\s*<monitor>/i,
2939
+ /\bmongo/i,
2940
+ /\b\d{1,3}(?:\.\d{1,3}){3}(?::\d+)?\b/,
2941
+ /\beconn(?:refused|reset|aborted)\b/i,
2942
+ /\betimedout\b/i,
2943
+ /\benotfound\b/i,
2944
+ /\bsocket hang up\b/i,
2945
+ /\binternal server error\b/i,
2946
+ /received status code 5\d\d/i,
2947
+ /\bat\s+\S+\s+\([^)]+:\d+:\d+\)/
2948
+ ];
2949
+ function isInternalErrorMessage(message) {
2950
+ return INTERNAL_ERROR_PATTERNS.some((pattern) => pattern.test(message));
2951
+ }
2952
+ function toUserFacingErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
2953
+ const message = (error ?? "").trim();
2954
+ if (!message) return fallback;
2955
+ if (isTransientNetworkError(message)) {
2956
+ return NETWORK_USER_FACING_ERROR;
2957
+ }
2958
+ if (isInternalErrorMessage(message)) {
2959
+ return fallback;
2960
+ }
2961
+ return message;
2962
+ }
2963
+ function getErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
2964
+ let raw;
2965
+ if (error instanceof Error) {
2966
+ raw = error.message;
2967
+ } else if (typeof error === "string") {
2968
+ raw = error;
2969
+ }
2970
+ return toUserFacingErrorMessage(raw, fallback);
2971
+ }
2972
+
2887
2973
  // src/formFields/vendor/vendorInfo.ts
2888
2974
  var vendorElectricity = {
2889
2975
  details: {
@@ -9187,6 +9273,7 @@ var fonts = {
9187
9273
  DEFAULT_RESOURCES_RETURN_LIMIT,
9188
9274
  DEFAULT_RESOURCES_RETURN_OFFSET,
9189
9275
  DEFAULT_SHARE_OG_IMAGE,
9276
+ DEFAULT_USER_FACING_ERROR,
9190
9277
  EVENT_DATE_STATUS_PERIOD_MAP,
9191
9278
  EnumActivity,
9192
9279
  EnumAdShowOn,
@@ -9237,6 +9324,7 @@ var fonts = {
9237
9324
  IOS_URL,
9238
9325
  ImageTypeEnum,
9239
9326
  KNOWN_EVENT_SCHEDULE_STATUSES,
9327
+ NETWORK_USER_FACING_ERROR,
9240
9328
  OG_DESCRIPTION_LINE_BREAK,
9241
9329
  POST_SHARE_RESOURCE_TYPES,
9242
9330
  PROMO_CODE_PREFIX,
@@ -9356,6 +9444,7 @@ var fonts = {
9356
9444
  gameTypeToDisplayName,
9357
9445
  getAllowedEventDateStatuses,
9358
9446
  getCurrentAndFutureDates,
9447
+ getErrorMessage,
9359
9448
  getEventCalendarIsoDates,
9360
9449
  getEventDatesWithStallholders,
9361
9450
  getEventScheduleStatusLabel,
@@ -9376,10 +9465,12 @@ var fonts = {
9376
9465
  iconIds,
9377
9466
  icons,
9378
9467
  isFutureDatesBeforeThreshold,
9468
+ isInternalErrorMessage,
9379
9469
  isIsoDateString,
9380
9470
  isPostShareResourceType,
9381
9471
  isRelationShareResourceType,
9382
9472
  isResourceImageActive,
9473
+ isTransientNetworkError,
9383
9474
  isValidIrdNumber,
9384
9475
  joinShareDescriptionSections,
9385
9476
  joinShareOgDescriptionSections,
@@ -9437,6 +9528,7 @@ var fonts = {
9437
9528
  toGraphqlQueryString,
9438
9529
  toNZTime,
9439
9530
  toShareSocialImageCacheVersion,
9531
+ toUserFacingErrorMessage,
9440
9532
  truncateText,
9441
9533
  useAddParticipantToChat,
9442
9534
  useAddUserFavouriteResource,