@droppii-org/chat-mobile 0.2.15 → 0.2.16

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 (71) hide show
  1. package/lib/module/components/ThreadCard/ThreadCard.js +2 -1
  2. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  3. package/lib/module/components/messages/imageMessage/index.js.map +1 -1
  4. package/lib/module/hooks/useImageAttachment.js +34 -63
  5. package/lib/module/hooks/useImageAttachment.js.map +1 -1
  6. package/lib/module/index.js +1 -1
  7. package/lib/module/index.js.map +1 -1
  8. package/lib/module/screens/MediaView/index.js +1 -1
  9. package/lib/module/screens/chat-detail/ChatComposer.js +10 -3
  10. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  11. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +66 -25
  12. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -1
  13. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +6 -3
  14. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -1
  15. package/lib/module/services/auth.js +69 -0
  16. package/lib/module/services/auth.js.map +1 -1
  17. package/lib/module/services/imageUpload.js +84 -58
  18. package/lib/module/services/imageUpload.js.map +1 -1
  19. package/lib/module/utils/chatImageDimens.js +18 -1
  20. package/lib/module/utils/chatImageDimens.js.map +1 -1
  21. package/lib/module/utils/dateTimeUtils.js +44 -0
  22. package/lib/module/utils/dateTimeUtils.js.map +1 -0
  23. package/lib/module/utils/device.js +2 -1
  24. package/lib/module/utils/device.js.map +1 -1
  25. package/lib/module/utils/imageUtils.js +4 -2
  26. package/lib/module/utils/imageUtils.js.map +1 -1
  27. package/lib/module/{components/ThreadCard/thread-card.utils.js → utils/messageUtils.js} +18 -42
  28. package/lib/module/utils/messageUtils.js.map +1 -0
  29. package/lib/module/utils/videoThumbnail.js +11 -5
  30. package/lib/module/utils/videoThumbnail.js.map +1 -1
  31. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  32. package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -1
  33. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
  34. package/lib/typescript/src/index.d.ts +1 -1
  35. package/lib/typescript/src/index.d.ts.map +1 -1
  36. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  37. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -1
  38. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -1
  39. package/lib/typescript/src/services/auth.d.ts +32 -0
  40. package/lib/typescript/src/services/auth.d.ts.map +1 -1
  41. package/lib/typescript/src/services/imageUpload.d.ts.map +1 -1
  42. package/lib/typescript/src/utils/chatImageDimens.d.ts +1 -0
  43. package/lib/typescript/src/utils/chatImageDimens.d.ts.map +1 -1
  44. package/lib/typescript/src/utils/dateTimeUtils.d.ts +6 -0
  45. package/lib/typescript/src/utils/dateTimeUtils.d.ts.map +1 -0
  46. package/lib/typescript/src/utils/device.d.ts.map +1 -1
  47. package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
  48. package/lib/typescript/src/utils/messageUtils.d.ts +8 -0
  49. package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -0
  50. package/lib/typescript/src/utils/videoThumbnail.d.ts +1 -0
  51. package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -1
  52. package/package.json +2 -2
  53. package/src/components/ThreadCard/ThreadCard.tsx +2 -1
  54. package/src/components/messages/imageMessage/index.tsx +0 -1
  55. package/src/hooks/useImageAttachment.ts +45 -70
  56. package/src/index.tsx +8 -1
  57. package/src/screens/MediaView/index.tsx +1 -1
  58. package/src/screens/chat-detail/ChatComposer.tsx +9 -3
  59. package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +81 -25
  60. package/src/services/attachmentHandlers/imageAttachmentHandler.ts +11 -1
  61. package/src/services/auth.ts +77 -0
  62. package/src/services/imageUpload.ts +116 -73
  63. package/src/utils/chatImageDimens.ts +21 -1
  64. package/src/utils/dateTimeUtils.ts +48 -0
  65. package/src/utils/device.ts +1 -0
  66. package/src/utils/imageUtils.ts +10 -2
  67. package/src/{components/ThreadCard/thread-card.utils.ts → utils/messageUtils.ts} +18 -56
  68. package/src/utils/videoThumbnail.ts +14 -3
  69. package/lib/module/components/ThreadCard/thread-card.utils.js.map +0 -1
  70. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts +0 -4
  71. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","RNFS","isVideoFromPicker","VideoThumbnailUtil","ImageUploadAPI","UIUtils","useAttachmentSendHandler","selectedImages","sendAttachments","clearAllImages","onSend","onMessageSent","textMessage","urlMetadata","onSendText","handleSend","console","log","selectedImagesCount","length","selectedImagesData","map","img","filename","image","isUploading","uploadedUrl","uploadProgress","actualImages","filter","videosFromGallery","actualImagesCount","videosFromGalleryCount","videosFromGalleryList","v","uploadedImages","uploadedVideosFromGallery","vid","galleryVideoThumbnails","vidItem","cachedVideoPath","originalVideoPath","path","videoDuration","duration","videoMime","mime","ext","split","pop","cachedFileName","Date","now","Math","random","toString","slice","DocumentDirectoryPath","from","to","copyFile","timeMs","min","floor","quality","videoPath","thumbnail","generateThumbnail","time","Error","width","height","baseName","uploadedThumbnail","uploadImageFile","size","progress","percentage","url","error","toast","open","title","message","theme","unlink","err","warn","allUploadedVideos","forEach","thumbnailUrl","videoUrl","attachmentItems","type","video","thumbnailSize","imagesCount","videosCount","hasTextMessage","success","undefined","hasPreview","previewUrl"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/hooks/useAttachmentSendHandler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","RNFS","isVideoFromPicker","VideoThumbnailUtil","ImageUploadAPI","UIUtils","useAttachmentSendHandler","selectedImages","sendAttachments","clearAllImages","onSend","onMessageSent","textMessage","urlMetadata","onSendText","handleSend","console","log","selectedImagesCount","length","selectedImagesData","map","img","filename","image","isUploading","uploadedUrl","uploadProgress","actualImages","filter","videosFromGallery","actualImagesCount","videosFromGalleryCount","videosFromGalleryList","v","uploadedImages","uploadedVideosFromGallery","vid","galleryVideoThumbnails","failedVideos","idx","vidItem","videoId","cachedVideoPath","originalVideoPath","path","videoDuration","duration","videoMime","mime","index","warn","ext","split","pop","cachedFileName","Date","now","Math","random","toString","slice","DocumentDirectoryPath","from","to","copyFile","timeMs","min","max","floor","quality","videoPath","thumbnail","generateThumbnail","time","cacheId","Error","width","height","baseName","uploadedThumbnail","uploadImageFile","size","progress","videoIndex","percentage","url","error","errorMsg","message","String","push","unlink","err","toast","open","title","join","theme","allUploadedVideos","forEach","vidIdx","thumbnailUrl","videoUrl","attachmentItems","type","video","thumbnailSize","imagesCount","videosCount","hasTextMessage","success","undefined","hasPreview","previewUrl"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/hooks/useAttachmentSendHandler.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAOC,IAAI,MAAM,iBAAiB;AAClC,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,OAAOC,kBAAkB,MAAM,kCAA+B;AAC9D,SAASC,cAAc,QAAQ,kCAA+B;AAC9D,OAAOC,OAAO,MAAM,sBAAmB;AA0BvC,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACvCC,cAAc;EACdC,eAAe;EACfC,cAAc;EACdC,MAAM;EACNC,aAAa;EACbC,WAAW;EACXC,WAAW;EACXC;AAC6B,CAAC,KAAK;EACnC,MAAMC,UAAU,GAAGf,WAAW,CAAC,YAAY;IACzCgB,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAE;MAC9CC,mBAAmB,EAAEX,cAAc,CAACY,MAAM;MAC1CC,kBAAkB,EAAEb,cAAc,CAACc,GAAG,CAAEC,GAAQ,KAAM;QACpDC,QAAQ,EAAED,GAAG,CAACE,KAAK,CAACD,QAAQ;QAC5BE,WAAW,EAAEH,GAAG,CAACG,WAAW;QAC5BC,WAAW,EAAEJ,GAAG,CAACI,WAAW,GAAG,KAAK,GAAG,SAAS;QAChDC,cAAc,EAAEL,GAAG,CAACK;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;;IAEF;IACA,MAAMC,YAAY,GAAGrB,cAAc,CAACsB,MAAM,CACvCP,GAAQ,IAAK,CAACpB,iBAAiB,CAACoB,GAAG,CAACE,KAAK,CAC5C,CAAC;IACD,MAAMM,iBAAiB,GAAGvB,cAAc,CAACsB,MAAM,CAAEP,GAAQ,IACvDpB,iBAAiB,CAACoB,GAAG,CAACE,KAAK,CAC7B,CAAC;IAEDR,OAAO,CAACC,GAAG,CAAC,sCAAsC,EAAE;MAClDc,iBAAiB,EAAEH,YAAY,CAACT,MAAM;MACtCa,sBAAsB,EAAEF,iBAAiB,CAACX,MAAM;MAChDc,qBAAqB,EAAEH,iBAAiB,CAACT,GAAG,CAAEa,CAAM,KAAM;QACxDX,QAAQ,EAAEW,CAAC,CAACV,KAAK,CAACD,QAAQ;QAC1BG,WAAW,EAAEQ,CAAC,CAACR;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMS,cAAc,GAAGP,YAAY,CAACC,MAAM,CAAEP,GAAQ,IAAKA,GAAG,CAACI,WAAW,CAAC;IACzE,MAAMU,yBAAyB,GAAGN,iBAAiB,CAACD,MAAM,CACvDQ,GAAQ,IAAKA,GAAG,CAACX,WACpB,CAAC;;IAED;IACA;IACA,MAAMY,sBAGL,GAAG,CAAC,CAAC;IACN,MAAMC,YAAsB,GAAG,EAAE,CAAC,CAAC;;IAEnC,IAAIH,yBAAyB,CAACjB,MAAM,GAAG,CAAC,EAAE;MACxCH,OAAO,CAACC,GAAG,CACT,iEACF,CAAC;MAED,KAAK,IAAIuB,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGJ,yBAAyB,CAACjB,MAAM,EAAEqB,GAAG,EAAE,EAAE;QAC/D,MAAMC,OAAO,GAAGL,yBAAyB,CAACI,GAAG,CAAE;QAC/C,MAAME,OAAO,GAAGD,OAAO,CAACf,WAAW,IAAI,SAASc,GAAG,EAAE,CAAC,CAAC;QACvD,IAAIG,eAA8B,GAAG,IAAI;QAEzC,IAAI;UACF,MAAMC,iBAAiB,GAAGH,OAAO,CAACjB,KAAK,CAACqB,IAAI;UAC5C,IAAIC,aAAa,GAAIL,OAAO,CAACjB,KAAK,CAASuB,QAAQ,IAAI,CAAC;UACxD,MAAMC,SAAS,GAAIP,OAAO,CAACjB,KAAK,CAASyB,IAAI;UAC7C,MAAM1B,QAAQ,GAAGkB,OAAO,CAACjB,KAAK,CAACD,QAAQ,IAAI,WAAW;UAEtDP,OAAO,CAACC,GAAG,CAAC,gDAAgD,EAAE;YAC5DiC,KAAK,EAAEV,GAAG;YACVjB,QAAQ;YACRqB,iBAAiB;YACjBE,aAAa;YACbE,SAAS;YACTtB,WAAW,EAAEe,OAAO,CAACf;UACvB,CAAC,CAAC;;UAEF;UACA,IAAIoB,aAAa,IAAI,CAAC,IAAIA,aAAa,GAAG,OAAO,EAAE;YACjD;YACA9B,OAAO,CAACmC,IAAI,CACV,iDAAiD,EACjDL,aACF,CAAC;YACDA,aAAa,GAAG,IAAI,CAAC,CAAC;UACxB;;UAEA;UACA,MAAMM,GAAG,GAAG7B,QAAQ,CAAC8B,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,KAAK;UAC9C;UACA,MAAMC,cAAc,GAAG,eAAef,GAAG,IAAIgB,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,CACrEC,QAAQ,CAAC,EAAE,CAAC,CACZC,KAAK,CAAC,CAAC,CAAC,IAAIT,GAAG,EAAE;UACpBT,eAAe,GAAG,GAAG1C,IAAI,CAAC6D,qBAAqB,IAAIP,cAAc,EAAE;UAEnEvC,OAAO,CAACC,GAAG,CAAC,wCAAwC,EAAE;YACpD8C,IAAI,EAAEnB,iBAAiB;YACvBoB,EAAE,EAAErB;UACN,CAAC,CAAC;UAEF,MAAM1C,IAAI,CAACgE,QAAQ,CAACrB,iBAAiB,EAAED,eAAe,CAAC;UACvD3B,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;;UAEvD;UACA;UACA,MAAMiD,MAAM,GAAGR,IAAI,CAACS,GAAG,CACrBT,IAAI,CAACU,GAAG,CAAC,IAAI,EAAEV,IAAI,CAACW,KAAK,CAACvB,aAAa,GAAG,IAAI,CAAC,CAAC,EAChDA,aAAa,GAAG,IAClB,CAAC;UAED9B,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;YAC1DiC,KAAK,EAAEV,GAAG;YACVM,aAAa;YACboB,MAAM;YACNI,OAAO,EAAE,EAAE;YACXC,SAAS,EAAE5B;UACb,CAAC,CAAC;;UAEF;UACA,MAAM6B,SAAS,GAAG,MAAMrE,kBAAkB,CAACsE,iBAAiB,CAC1D9B,eAAe,EACf;YACE+B,IAAI,EAAER,MAAM;YACZI,OAAO,EAAE,EAAE;YACXK,OAAO,EAAE,SAASnC,GAAG,IAAIgB,IAAI,CAACC,GAAG,CAAC,CAAC;UACrC,CACF,CAAC;UAED,IAAI,CAACe,SAAS,EAAE;YACd,MAAM,IAAII,KAAK,CAAC,8BAA8B,CAAC;UACjD;UAEA5D,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;YAC3DiC,KAAK,EAAEV,GAAG;YACVK,IAAI,EAAE2B,SAAS,CAAC3B,IAAI;YACpBgC,KAAK,EAAEL,SAAS,CAACK,KAAK;YACtBC,MAAM,EAAEN,SAAS,CAACM;UACpB,CAAC,CAAC;;UAEF;UACA,MAAMC,QAAQ,GACZtC,OAAO,CAACjB,KAAK,CAACD,QAAQ,EAAE8B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAASb,GAAG,EAAE;UACzD,MAAMwC,iBAAiB,GAAG,MAAM5E,cAAc,CAAC6E,eAAe,CAC5D;YACEpC,IAAI,EAAE2B,SAAS,CAAC3B,IAAI;YACpBtB,QAAQ,EAAE,SAASwD,QAAQ,MAAM;YACjCG,IAAI,EAAE,CAAC;YACPL,KAAK,EAAEL,SAAS,CAACK,KAAK,IAAI,GAAG;YAC7BC,MAAM,EAAEN,SAAS,CAACM,MAAM,IAAI,GAAG;YAC/B7B,IAAI,EAAE;UACR,CAAC,EACAkC,QAAQ,IAAK;YACZnE,OAAO,CAACC,GAAG,CAAC,2CAA2C,EAAE;cACvDmE,UAAU,EAAE5C,GAAG;cACf6C,UAAU,EAAEF;YACd,CAAC,CAAC;UACJ,CACF,CAAC;UAED,IAAI,CAACH,iBAAiB,EAAEM,GAAG,EAAE;YAC3B,MAAM,IAAIV,KAAK,CAAC,2BAA2B,CAAC;UAC9C;;UAEA;UACAtC,sBAAsB,CAACI,OAAO,CAAC,GAAG;YAChC4C,GAAG,EAAEN,iBAAiB,CAACM,GAAG;YAC1BJ,IAAI,EAAEF,iBAAiB,CAACE,IAAI,IAAI;UAClC,CAAC;UAEDlE,OAAO,CAACC,GAAG,CAAC,2CAA2C,EAAE;YACvDmE,UAAU,EAAE5C,GAAG;YACfE,OAAO;YACP4C,GAAG,EAAEN,iBAAiB,CAACM,GAAG;YAC1BJ,IAAI,EAAEF,iBAAiB,CAACE;UAC1B,CAAC,CAAC;UACFlE,OAAO,CAACC,GAAG,CACT,2BAA2BuB,GAAG,mBAAmBwC,iBAAiB,CAACM,GAAG,EACxE,CAAC;QACH,CAAC,CAAC,OAAOC,KAAK,EAAE;UACd;UACA,MAAMC,QAAQ,GACZD,KAAK,YAAYX,KAAK,GAAGW,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,CAAC;UACxDvE,OAAO,CAACuE,KAAK,CACX,sDAAsD,EACtD/C,GAAG,EACHgD,QACF,CAAC;UACDjD,YAAY,CAACoD,IAAI,CAAClD,OAAO,CAACjB,KAAK,CAACD,QAAQ,CAAC;;UAEzC;UACAe,sBAAsB,CAACI,OAAO,CAAC,GAAG;YAAE4C,GAAG,EAAE,EAAE;YAAEJ,IAAI,EAAE;UAAE,CAAC;QACxD,CAAC,SAAS;UACR;UACA,IAAIvC,eAAe,EAAE;YACnB,IAAI;cACF,MAAM1C,IAAI,CAAC2F,MAAM,CAACjD,eAAe,CAAC;cAClC3B,OAAO,CAACC,GAAG,CAAC,yCAAyC,EAAE;gBACrDmE,UAAU,EAAE5C,GAAG;gBACfK,IAAI,EAAEF;cACR,CAAC,CAAC;YACJ,CAAC,CAAC,OAAOkD,GAAG,EAAE;cACZ7E,OAAO,CAACmC,IAAI,CAAC,8CAA8C,EAAE0C,GAAG,CAAC;YACnE;UACF;QACF;MACF;;MAEA;MACA,IAAItD,YAAY,CAACpB,MAAM,GAAG,CAAC,EAAE;QAC3Bd,OAAO,CAACyF,KAAK,CAACC,IAAI,CAAC;UACjBC,KAAK,EAAE,6BAA6B;UACpCP,OAAO,EAAE,eAAelD,YAAY,CAAC0D,IAAI,CAAC,IAAI,CAAC,2CAA2C;UAC1FC,KAAK,EAAE;QACT,CAAC,CAAC;QACFlF,OAAO,CAACmC,IAAI,CACV,mDAAmD,EACnDZ,YACF,CAAC;MACH;IACF;IAEA,MAAM4D,iBAAiB,GAAG,CAAC,GAAG/D,yBAAyB,CAAC;IAExDpB,OAAO,CAACC,GAAG,CAAC,oCAAoC,EAAE;MAChDW,YAAY,EAAEA,YAAY,CAACT,MAAM;MACjCgB,cAAc,EAAEA,cAAc,CAAChB,MAAM;MACrCW,iBAAiB,EAAEA,iBAAiB,CAACX,MAAM;MAC3CiB,yBAAyB,EAAEA,yBAAyB,CAACjB,MAAM;MAC3DgF,iBAAiB,EAAEA,iBAAiB,CAAChF;IACvC,CAAC,CAAC;;IAEF;IACA,IAAIiB,yBAAyB,CAACjB,MAAM,GAAG,CAAC,EAAE;MACxCiB,yBAAyB,CAACgE,OAAO,CAAC,CAAC/D,GAAQ,EAAEgE,MAAc,KAAK;QAC9D;QACA,MAAM3D,OAAO,GAAGL,GAAG,CAACX,WAAW,IAAI,SAAS2E,MAAM,EAAE;QACpD,MAAM7B,SAAS,GAAGlC,sBAAsB,CAACI,OAAO,CAAC;QACjD1B,OAAO,CAACC,GAAG,CAAC,2CAA2C,EAAE;UACvDM,QAAQ,EAAEc,GAAG,CAACb,KAAK,CAACD,QAAQ;UAC5BmB,OAAO;UACP4D,YAAY,EAAE9B,SAAS,EAAEc,GAAG,IAAI,WAAW;UAC3CiB,QAAQ,EAAElE,GAAG,CAACX;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIS,cAAc,CAAChB,MAAM,GAAG,CAAC,IAAIgF,iBAAiB,CAAChF,MAAM,GAAG,CAAC,EAAE;MAC7D,MAAMqF,eAAe,GAAG,CACtB,GAAGrE,cAAc,CAACd,GAAG,CAAEC,GAAQ,KAAM;QACnC,GAAGA,GAAG;QACNmF,IAAI,EAAE;MACR,CAAC,CAAC,CAAC;MACH;MACA,GAAGrE,yBAAyB,CAACf,GAAG,CAAC,CAACgB,GAAQ,EAAEgE,MAAc,KAAK;QAC7D;QACA,MAAM3D,OAAO,GAAGL,GAAG,CAACX,WAAW,IAAI,SAAS2E,MAAM,EAAE;QACpD,MAAM7B,SAAS,GAAGlC,sBAAsB,CAACI,OAAO,CAAC;QACjD,OAAO;UACL+D,IAAI,EAAE,OAAgB;UACtBC,KAAK,EAAErE,GAAG,CAACb,KAAK;UAChBG,cAAc,EAAEU,GAAG,CAACV,cAAc;UAClC4D,KAAK,EAAElD,GAAG,CAACkD,KAAK;UAChB9D,WAAW,EAAEY,GAAG,CAACZ,WAAW;UAC5BC,WAAW,EAAEW,GAAG,CAACX,WAAW;UAC5B4E,YAAY,EAAE9B,SAAS,EAAEc,GAAG;UAC5BqB,aAAa,EAAEnC,SAAS,EAAEU;QAC5B,CAAC;MACH,CAAC,CAAC,CACH;MAEDlE,OAAO,CAACC,GAAG,CAAC,uCAAuC,EAAE;QACnD2F,WAAW,EAAEzE,cAAc,CAAChB,MAAM;QAClC0F,WAAW,EAAEzE,yBAAyB,CAACjB,MAAM;QAC7C2F,cAAc,EAAE,CAAC,CAAClG;MACpB,CAAC,CAAC;MAEF,MAAMmG,OAAO,GAAG,MAAMvG,eAAe,CACnCgG,eAAe,EACfQ,SAAS,EACTrG,aACF,CAAC;MAEDK,OAAO,CAACC,GAAG,CAAC,yCAAyC,EAAE;QAAE8F;MAAQ,CAAC,CAAC;MAEnE,IAAIA,OAAO,EAAE;QACXtG,cAAc,CAAC,CAAC;QAChBO,OAAO,CAACC,GAAG,CAAC,qDAAqD,CAAC;;QAElE;QACA;QACA,IAAIL,WAAW,IAAIE,UAAU,EAAE;UAC7BE,OAAO,CAACC,GAAG,CAAC,uDAAuD,EAAE;YACnEgG,UAAU,EAAE,CAAC,CAACpG,WAAW;YACzBqG,UAAU,EAAErG,WAAW,EAAEyE;UAC3B,CAAC,CAAC;UACFxE,UAAU,CAACF,WAAW,EAAEC,WAAW,CAAC;QACtC;MACF;MACA;IACF;;IAEA;IACAH,MAAM,GAAG,CAAC;EACZ,CAAC,EAAE,CACDH,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,MAAM,EACNC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,UAAU,CACX,CAAC;EAEF,OAAO;IAAEC;EAAW,CAAC;AACvB,CAAC","ignoreList":[]}
@@ -10,7 +10,7 @@ export const ImageAttachmentHandler = {
10
10
  reason: 'Image exceeds 5MB limit'
11
11
  };
12
12
  }
13
- const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/jpg'];
13
+ const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/jpg', 'image/heic', 'image/heif'];
14
14
  if (!validMimes.includes(attachment.sourceFile.mimeType)) {
15
15
  return {
16
16
  valid: false,
@@ -31,6 +31,7 @@ export const ImageAttachmentHandler = {
31
31
  console.log('[ImageAttachmentHandler] Building payload for', {
32
32
  filename: attachment.sourceFile.filename,
33
33
  url: uploadedUrl
34
+ // path: attachment.sourceFile.path,
34
35
  });
35
36
  const picInfo = {
36
37
  uuid: generateUUID(),
@@ -43,10 +44,12 @@ export const ImageAttachmentHandler = {
43
44
  const payload = {
44
45
  sourcePicture: picInfo,
45
46
  bigPicture: picInfo,
46
- snapshotPicture: picInfo
47
+ snapshotPicture: picInfo,
48
+ sourcePath: attachment.sourceFile.path // Required by OpenIM SDK to attach image to message
47
49
  };
48
50
  console.log('[ImageAttachmentHandler] Payload created for', {
49
- fileName: attachment.sourceFile.filename
51
+ fileName: attachment.sourceFile.filename,
52
+ sourcePath: attachment.sourceFile.path
50
53
  });
51
54
  return payload;
52
55
  }
@@ -1 +1 @@
1
- {"version":3,"names":["generateUUID","ImageAttachmentHandler","validate","attachment","MAX_SIZE","sourceFile","size","valid","reason","validMimes","includes","mimeType","metadata","width","height","buildPayload","uploadedUrl","console","log","filename","url","picInfo","uuid","type","payload","sourcePicture","bigPicture","snapshotPicture","fileName"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/imageAttachmentHandler.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,2BAAwB;AAErD,OAAO,MAAMC,sBAA0C,GAAG;EACxDC,QAAQA,CAACC,UAA2B,EAAE;IACpC,MAAMC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAChC,IAAID,UAAU,CAACE,UAAU,CAACC,IAAI,GAAGF,QAAQ,EAAE;MACzC,OAAO;QAAEG,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA0B,CAAC;IAC5D;IAEA,MAAMC,UAAU,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;IACzE,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACP,UAAU,CAACE,UAAU,CAACM,QAAQ,CAAC,EAAE;MACxD,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,uBAAuBL,UAAU,CAACE,UAAU,CAACM,QAAQ;MAC/D,CAAC;IACH;IAEA,IAAIR,UAAU,CAACS,QAAQ,CAACC,KAAK,IAAI,CAAC,IAAIV,UAAU,CAACS,QAAQ,CAACE,MAAM,IAAI,CAAC,EAAE;MACrE,OAAO;QAAEP,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA2B,CAAC;IAC7D;IAEA,OAAO;MAAED,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;EAED,MAAMQ,YAAYA,CAACZ,UAA2B,EAAEa,WAAmB,EAAE;IACnEC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;MAC3DC,QAAQ,EAAEhB,UAAU,CAACE,UAAU,CAACc,QAAQ;MACxCC,GAAG,EAAEJ;IACP,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAG;MACdC,IAAI,EAAEtB,YAAY,CAAC,CAAC;MACpBuB,IAAI,EAAEpB,UAAU,CAACE,UAAU,CAACM,QAAQ;MACpCL,IAAI,EAAEH,UAAU,CAACE,UAAU,CAACC,IAAI;MAChCO,KAAK,EAAEV,UAAU,CAACS,QAAQ,CAACC,KAAK;MAChCC,MAAM,EAAEX,UAAU,CAACS,QAAQ,CAACE,MAAM;MAClCM,GAAG,EAAEJ;IACP,CAAC;IAED,MAAMQ,OAAO,GAAG;MACdC,aAAa,EAAEJ,OAAO;MACtBK,UAAU,EAAEL,OAAO;MACnBM,eAAe,EAAEN;IACnB,CAAC;IAEDJ,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;MAC1DU,QAAQ,EAAEzB,UAAU,CAACE,UAAU,CAACc;IAClC,CAAC,CAAC;IAEF,OAAOK,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["generateUUID","ImageAttachmentHandler","validate","attachment","MAX_SIZE","sourceFile","size","valid","reason","validMimes","includes","mimeType","metadata","width","height","buildPayload","uploadedUrl","console","log","filename","url","picInfo","uuid","type","payload","sourcePicture","bigPicture","snapshotPicture","sourcePath","path","fileName"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/imageAttachmentHandler.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,2BAAwB;AAErD,OAAO,MAAMC,sBAA0C,GAAG;EACxDC,QAAQA,CAACC,UAA2B,EAAE;IACpC,MAAMC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAChC,IAAID,UAAU,CAACE,UAAU,CAACC,IAAI,GAAGF,QAAQ,EAAE;MACzC,OAAO;QAAEG,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA0B,CAAC;IAC5D;IAEA,MAAMC,UAAU,GAAG,CACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,CACb;IACD,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACP,UAAU,CAACE,UAAU,CAACM,QAAQ,CAAC,EAAE;MACxD,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,uBAAuBL,UAAU,CAACE,UAAU,CAACM,QAAQ;MAC/D,CAAC;IACH;IAEA,IAAIR,UAAU,CAACS,QAAQ,CAACC,KAAK,IAAI,CAAC,IAAIV,UAAU,CAACS,QAAQ,CAACE,MAAM,IAAI,CAAC,EAAE;MACrE,OAAO;QAAEP,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA2B,CAAC;IAC7D;IAEA,OAAO;MAAED,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;EAED,MAAMQ,YAAYA,CAACZ,UAA2B,EAAEa,WAAmB,EAAE;IACnEC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;MAC3DC,QAAQ,EAAEhB,UAAU,CAACE,UAAU,CAACc,QAAQ;MACxCC,GAAG,EAAEJ;MACL;IACF,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAG;MACdC,IAAI,EAAEtB,YAAY,CAAC,CAAC;MACpBuB,IAAI,EAAEpB,UAAU,CAACE,UAAU,CAACM,QAAQ;MACpCL,IAAI,EAAEH,UAAU,CAACE,UAAU,CAACC,IAAI;MAChCO,KAAK,EAAEV,UAAU,CAACS,QAAQ,CAACC,KAAK;MAChCC,MAAM,EAAEX,UAAU,CAACS,QAAQ,CAACE,MAAM;MAClCM,GAAG,EAAEJ;IACP,CAAC;IAED,MAAMQ,OAAO,GAAG;MACdC,aAAa,EAAEJ,OAAO;MACtBK,UAAU,EAAEL,OAAO;MACnBM,eAAe,EAAEN,OAAO;MACxBO,UAAU,EAAEzB,UAAU,CAACE,UAAU,CAACwB,IAAI,CAAE;IAC1C,CAAC;IAEDZ,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;MAC1DY,QAAQ,EAAE3B,UAAU,CAACE,UAAU,CAACc,QAAQ;MACxCS,UAAU,EAAEzB,UAAU,CAACE,UAAU,CAACwB;IACpC,CAAC,CAAC;IAEF,OAAOL,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
@@ -7,6 +7,8 @@
7
7
  */
8
8
 
9
9
  let authToken = null;
10
+ let tokenRefreshCallback = null;
11
+ let tokenRefreshFailedCallback = null;
10
12
 
11
13
  /**
12
14
  * Set auth token (call once at app startup)
@@ -26,10 +28,77 @@ export const getAuthToken = () => {
26
28
  return authToken;
27
29
  };
28
30
 
31
+ /**
32
+ * Set callback for token refresh when 401 Unauthorized occurs
33
+ * Callback should refresh token from server and return the new token
34
+ * Example:
35
+ * setTokenRefreshCallback(async () => {
36
+ * const newToken = await api.post('/auth/refresh');
37
+ * return newToken;
38
+ * });
39
+ */
40
+ export const setTokenRefreshCallback = callback => {
41
+ tokenRefreshCallback = callback;
42
+ };
43
+
44
+ /**
45
+ * Set callback when token refresh fails
46
+ * Called when token refresh throws error or returns invalid token
47
+ * Use this to redirect to login, show error message, etc.
48
+ * Example:
49
+ * setTokenRefreshFailedCallback(() => {
50
+ * navigation.navigate('Login');
51
+ * showToast('Your session expired. Please login again.');
52
+ * });
53
+ */
54
+ export const setTokenRefreshFailedCallback = callback => {
55
+ tokenRefreshFailedCallback = callback;
56
+ };
57
+
58
+ /**
59
+ * Refresh auth token when 401 Unauthorized occurs
60
+ * Calls the refresh callback and updates the stored token
61
+ * If refresh fails:
62
+ * 1. Clears the invalid token
63
+ * 2. Calls tokenRefreshFailedCallback (if set) to notify app
64
+ * 3. Throws error
65
+ * @returns new auth token
66
+ * @throws Error if callback not set or refresh fails
67
+ */
68
+ export const refreshAuthToken = async () => {
69
+ if (!tokenRefreshCallback) {
70
+ throw new Error('Token refresh callback not set. Call setTokenRefreshCallback() during app initialization.');
71
+ }
72
+ try {
73
+ const newToken = await tokenRefreshCallback();
74
+ if (!newToken) {
75
+ throw new Error('Refresh callback returned empty token');
76
+ }
77
+ setAuthToken(newToken);
78
+ return newToken;
79
+ } catch (error) {
80
+ // Clear invalid token
81
+ clearAuthToken();
82
+
83
+ // Notify app that refresh failed
84
+ if (tokenRefreshFailedCallback) {
85
+ try {
86
+ tokenRefreshFailedCallback();
87
+ } catch (callbackError) {
88
+ console.error('[Auth] Token refresh failed callback error:', callbackError);
89
+ }
90
+ }
91
+
92
+ // Throw original error
93
+ throw error instanceof Error ? error : new Error('Token refresh failed');
94
+ }
95
+ };
96
+
29
97
  /**
30
98
  * Clear token (logout)
31
99
  */
32
100
  export const clearAuthToken = () => {
33
101
  authToken = null;
102
+ tokenRefreshCallback = null;
34
103
  };
35
104
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["authToken","setAuthToken","token","getAuthToken","Error","clearAuthToken"],"sourceRoot":"../../../src","sources":["services/auth.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,SAAwB,GAAG,IAAI;;AAEnC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAIC,KAAa,IAAK;EAC7CF,SAAS,GAAGE,KAAK;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAc;EACxC,IAAI,CAACH,SAAS,EAAE;IACd,MAAM,IAAII,KAAK,CACb,sEACF,CAAC;EACH;EACA,OAAOJ,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClCL,SAAS,GAAG,IAAI;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["authToken","tokenRefreshCallback","tokenRefreshFailedCallback","setAuthToken","token","getAuthToken","Error","setTokenRefreshCallback","callback","setTokenRefreshFailedCallback","refreshAuthToken","newToken","error","clearAuthToken","callbackError","console"],"sourceRoot":"../../../src","sources":["services/auth.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,SAAwB,GAAG,IAAI;AACnC,IAAIC,oBAAoD,GAAG,IAAI;AAC/D,IAAIC,0BAA+C,GAAG,IAAI;;AAE1D;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAIC,KAAa,IAAK;EAC7CJ,SAAS,GAAGI,KAAK;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAc;EACxC,IAAI,CAACL,SAAS,EAAE;IACd,MAAM,IAAIM,KAAK,CACb,sEACF,CAAC;EACH;EACA,OAAON,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,uBAAuB,GAClCC,QAA+B,IACtB;EACTP,oBAAoB,GAAGO,QAAQ;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAID,QAAoB,IAAW;EAC3EN,0BAA0B,GAAGM,QAAQ;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,gBAAgB,GAAG,MAAAA,CAAA,KAA6B;EAC3D,IAAI,CAACT,oBAAoB,EAAE;IACzB,MAAM,IAAIK,KAAK,CACb,2FACF,CAAC;EACH;EAEA,IAAI;IACF,MAAMK,QAAQ,GAAG,MAAMV,oBAAoB,CAAC,CAAC;IAC7C,IAAI,CAACU,QAAQ,EAAE;MACb,MAAM,IAAIL,KAAK,CAAC,uCAAuC,CAAC;IAC1D;IACAH,YAAY,CAACQ,QAAQ,CAAC;IACtB,OAAOA,QAAQ;EACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd;IACAC,cAAc,CAAC,CAAC;;IAEhB;IACA,IAAIX,0BAA0B,EAAE;MAC9B,IAAI;QACFA,0BAA0B,CAAC,CAAC;MAC9B,CAAC,CAAC,OAAOY,aAAa,EAAE;QACtBC,OAAO,CAACH,KAAK,CACX,6CAA6C,EAC7CE,aACF,CAAC;MACH;IACF;;IAEA;IACA,MAAMF,KAAK,YAAYN,KAAK,GAAGM,KAAK,GAAG,IAAIN,KAAK,CAAC,sBAAsB,CAAC;EAC1E;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,cAAc,GAAGA,CAAA,KAAM;EAClCb,SAAS,GAAG,IAAI;EAChBC,oBAAoB,GAAG,IAAI;AAC7B,CAAC","ignoreList":[]}
@@ -3,83 +3,109 @@
3
3
  import ReactNativeBlobUtil from 'react-native-blob-util';
4
4
  import RNFS from 'react-native-fs';
5
5
  import { getImageUploadEndpoint, getMimeType } from "../utils/imageUtils.js";
6
- import { getAuthToken } from "./auth.js";
6
+ import { getAuthToken, refreshAuthToken } from "./auth.js";
7
7
  import { getApiEndpoint } from "../config/api-endpoints.js";
8
- import { getBaseUrl } from "../config/configuration.js";
8
+ import { apiInstance } from "./apis.js";
9
9
  export let ImageUploadAPI;
10
10
  (function (_ImageUploadAPI) {
11
+ const performUpload = async (uploadUrl, file, token, onProgress) => {
12
+ return new Promise((resolve, reject) => {
13
+ ReactNativeBlobUtil.fetch('POST', uploadUrl, {
14
+ Authorization: `Bearer ${token}`
15
+ }, [{
16
+ name: 'files',
17
+ filename: file.filename,
18
+ data: ReactNativeBlobUtil.wrap(file.path),
19
+ type: getMimeType(file.filename)
20
+ }]).uploadProgress((written, total) => {
21
+ const progress = Math.round(written / total * 100);
22
+ onProgress?.(progress);
23
+ }).then(response => resolve(response)).catch(error => reject(error));
24
+ });
25
+ };
26
+ const parseUploadResponse = responseData => {
27
+ try {
28
+ const json = JSON.parse(responseData);
29
+ const uploaded = json.data?.[0] || json.files?.[0];
30
+ const imageUrl = uploaded?.publicUrl || uploaded?.url || uploaded?.data;
31
+ if (imageUrl) {
32
+ return {
33
+ url: imageUrl,
34
+ name: uploaded?.fileName,
35
+ width: uploaded?.width,
36
+ height: uploaded?.height,
37
+ size: uploaded?.size
38
+ };
39
+ }
40
+ return null;
41
+ } catch (err) {
42
+ if (__DEV__) console.error('[ImageUploadAPI] Parse error:', err);
43
+ return null;
44
+ }
45
+ };
11
46
  const uploadImageFile = _ImageUploadAPI.uploadImageFile = async (file, onProgress) => {
12
47
  let token;
13
48
  let uploadUrl;
14
49
  try {
15
50
  token = getAuthToken();
16
51
  const relativePath = getApiEndpoint('imageUpload');
17
- const baseUrl = getBaseUrl();
52
+ const baseUrl = apiInstance?.defaults?.baseURL;
18
53
  if (!baseUrl) {
19
- throw new Error('Image upload base URL not configured. Call initChatSdk() with apiBaseUrl during app initialization.');
54
+ throw new Error('Image upload base URL not configured. Call initApiInstance() during app initialization.');
20
55
  }
21
-
22
- // Construct absolute URL for ReactNativeBlobUtil.fetch()
23
56
  uploadUrl = getImageUploadEndpoint(`${baseUrl}${relativePath}`);
24
57
  } catch (e) {
25
58
  if (__DEV__) console.error('[ImageUploadAPI] Auth error:', e);
26
59
  throw e;
27
60
  }
28
- return new Promise((resolve, reject) => {
29
- ReactNativeBlobUtil.fetch('POST', uploadUrl, {
30
- Authorization: `Bearer ${token}`
31
- }, [{
32
- name: 'files',
33
- filename: file.filename,
34
- data: ReactNativeBlobUtil.wrap(file.path),
35
- type: getMimeType(file.filename)
36
- }]).uploadProgress((written, total) => {
37
- const progress = Math.round(written / total * 100);
38
- onProgress?.(progress);
39
- }).then(response => {
40
- // Check for HTTP error status
41
- const status = response.respInfo?.status;
42
- if (status && status >= 400) {
43
- if (__DEV__) console.error('[ImageUploadAPI] Server error response', {
44
- status,
45
- data: response.data
46
- });
47
- reject(new Error(`Upload failed with status ${status}`));
48
- return;
49
- }
50
- if (!response.data || response.data.length === 0) {
51
- if (__DEV__) console.error('[ImageUploadAPI] Empty response', {
52
- dataType: typeof response.data,
53
- data: response.data
54
- });
55
- reject(new Error('Empty response from server'));
56
- return;
61
+ let response = await performUpload(uploadUrl, file, token, onProgress);
62
+ const status = response.respInfo?.status;
63
+
64
+ // Handle 401 Unauthorized - refresh token and retry once
65
+ if (status === 401) {
66
+ if (__DEV__) console.warn('[ImageUploadAPI] Got 401, attempting token refresh...');
67
+ try {
68
+ const newToken = await refreshAuthToken();
69
+ if (__DEV__) console.log('[ImageUploadAPI] Token refreshed, retrying upload...');
70
+
71
+ // Retry upload with new token
72
+ response = await performUpload(uploadUrl, file, newToken, onProgress);
73
+ const retryStatus = response.respInfo?.status;
74
+ if (retryStatus === 401) {
75
+ throw new Error('Auth token still invalid after refresh. (401 Unauthorized)');
57
76
  }
58
- try {
59
- const json = JSON.parse(response.data);
60
- const uploaded = json.data?.[0] || json.files?.[0];
61
- const imageUrl = uploaded?.publicUrl || uploaded?.url || uploaded?.data;
62
- if (imageUrl) {
63
- resolve({
64
- url: imageUrl,
65
- name: uploaded?.fileName,
66
- width: file.width,
67
- height: file.height,
68
- size: file.size
69
- });
70
- } else {
71
- if (__DEV__) console.error('[ImageUploadAPI] No URL in response:', json);
72
- reject(new Error('No URL in response'));
73
- }
74
- } catch (err) {
75
- if (__DEV__) console.error('[ImageUploadAPI] Parse error:', err);
76
- reject(new Error('Invalid response format'));
77
+ if (retryStatus && retryStatus >= 400) {
78
+ throw new Error(`Upload failed with status ${retryStatus}`);
77
79
  }
78
- }).catch(error => {
79
- if (__DEV__) console.error('[ImageUploadAPI] Fetch error:', error);
80
- reject(error);
80
+ } catch (refreshError) {
81
+ if (__DEV__) console.error('[ImageUploadAPI] Token refresh failed:', refreshError);
82
+ throw refreshError instanceof Error ? refreshError : new Error('Token refresh failed');
83
+ }
84
+ } else if (status && status >= 400) {
85
+ if (__DEV__) console.error('[ImageUploadAPI] Server error response', {
86
+ status,
87
+ data: response.data
81
88
  });
82
- });
89
+ throw new Error(`Upload failed with status ${status}`);
90
+ }
91
+ if (!response.data || response.data.length === 0) {
92
+ if (__DEV__) console.error('[ImageUploadAPI] Empty response', {
93
+ dataType: typeof response.data,
94
+ data: response.data
95
+ });
96
+ throw new Error('Empty response from server');
97
+ }
98
+ const uploadedImage = parseUploadResponse(response.data);
99
+ if (!uploadedImage) {
100
+ throw new Error('No URL in response');
101
+ }
102
+ return {
103
+ url: uploadedImage.url,
104
+ name: uploadedImage.name,
105
+ width: file.width,
106
+ height: file.height,
107
+ size: file.size
108
+ };
83
109
  };
84
110
  const uploadImageQueue = _ImageUploadAPI.uploadImageQueue = async (files, config = {}, onProgress) => {
85
111
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["ReactNativeBlobUtil","RNFS","getImageUploadEndpoint","getMimeType","getAuthToken","getApiEndpoint","getBaseUrl","ImageUploadAPI","_ImageUploadAPI","uploadImageFile","file","onProgress","token","uploadUrl","relativePath","baseUrl","Error","e","__DEV__","console","error","Promise","resolve","reject","fetch","Authorization","name","filename","data","wrap","path","type","uploadProgress","written","total","progress","Math","round","then","response","status","respInfo","length","dataType","json","JSON","parse","uploaded","files","imageUrl","publicUrl","url","fileName","width","height","size","err","catch","uploadImageQueue","config","maxConcurrent","results","queue","activeCount","_reject","processNext","shift","result","push","i","cleanupImageFile","filePath","unlink","warn"],"sourceRoot":"../../../src","sources":["services/imageUpload.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ReactNativeBlobUtil","RNFS","getImageUploadEndpoint","getMimeType","getAuthToken","refreshAuthToken","getApiEndpoint","apiInstance","ImageUploadAPI","_ImageUploadAPI","performUpload","uploadUrl","file","token","onProgress","Promise","resolve","reject","fetch","Authorization","name","filename","data","wrap","path","type","uploadProgress","written","total","progress","Math","round","then","response","catch","error","parseUploadResponse","responseData","json","JSON","parse","uploaded","files","imageUrl","publicUrl","url","fileName","width","height","size","err","__DEV__","console","uploadImageFile","relativePath","baseUrl","defaults","baseURL","Error","e","status","respInfo","warn","newToken","log","retryStatus","refreshError","length","dataType","uploadedImage","uploadImageQueue","config","maxConcurrent","results","queue","activeCount","_reject","processNext","shift","result","push","i","cleanupImageFile","filePath","unlink"],"sourceRoot":"../../../src","sources":["services/imageUpload.ts"],"mappings":"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","ignoreList":[]}
@@ -118,6 +118,7 @@ class ChatImageDimens {
118
118
  /**
119
119
  * Get optimized image URL with custom dimensions (generic approach)
120
120
  * Useful for dynamic sizing based on actual content
121
+ * Automatically applies pixel ratio for high-DPI displays
121
122
  */
122
123
  static getOptimizedImageUrlWithDimensions(url, width, height) {
123
124
  if (!url) {
@@ -128,6 +129,17 @@ class ChatImageDimens {
128
129
  if (!url.startsWith('http') || !url.match(ChatImageDimens.regexCDN)) {
129
130
  return url;
130
131
  }
132
+
133
+ // Check if image format is supported for WebP conversion
134
+ // Only convert standard formats (jpg, jpeg, png) to WebP
135
+ // For unsupported formats (heic, heif, etc.), return original URL
136
+ const unsupportedFormats = ['.heic', '.heif'];
137
+ const urlLower = url.toLowerCase();
138
+ const isUnsupportedFormat = unsupportedFormats.some(format => urlLower.includes(format));
139
+ if (isUnsupportedFormat) {
140
+ // Return original URL without optimization for unsupported formats
141
+ return url;
142
+ }
131
143
  const domainRegex = /^(https?:\/\/[^/]+)/;
132
144
  const domainMatches = url.match(domainRegex);
133
145
  if (!domainMatches || domainMatches.length < 2) {
@@ -136,8 +148,13 @@ class ChatImageDimens {
136
148
  const domain = domainMatches[1];
137
149
  const restOfUrl = url.replace(domain, '');
138
150
 
151
+ // Account for device pixel ratio: request higher resolution for high-DPI displays
152
+ const pixelRatio = PixelRatio.get();
153
+ const optimizedWidth = Math.round(width * pixelRatio);
154
+ const optimizedHeight = Math.round(height * pixelRatio);
155
+
139
156
  // Build optimized URL: domain/cache/WIDTHxHEIGHT/path.webp
140
- let optimizedUrl = `${domain}/cache/${width}x${height}${restOfUrl}`;
157
+ let optimizedUrl = `${domain}/cache/${optimizedWidth}x${optimizedHeight}${restOfUrl}`;
141
158
  if (!restOfUrl.endsWith('.webp')) {
142
159
  optimizedUrl += '.webp';
143
160
  }
@@ -1 +1 @@
1
- {"version":3,"names":["PixelRatio","isTablet","CHAT_IMAGE_VIEW_SOURCE","getSizeReduction","originalSize","factor","PIXEL_RATIO","get","Math","round","CHAT_IMAGE_DIMENSIONS_PLATFORM","TABLET","MessageListThumbnail","width","height","MessageDetailBubble","ImagePreviewSmall","ImagePreviewMedium","ImagePreviewLarge","MOBILE","ChatImageDimens","regexCDN","dimens","constructor","calculateDimensions","baseDimens","key","source","baseDimen","getInstance","instance","updateFactor","getDimensions","dimen","getOptimizedImageUrl","url","getOptimizedImageUrlWithDimensions","startsWith","match","domainRegex","domainMatches","length","domain","restOfUrl","replace","optimizedUrl","endsWith"],"sourceRoot":"../../../src","sources":["utils/chatImageDimens.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PixelRatio","isTablet","CHAT_IMAGE_VIEW_SOURCE","getSizeReduction","originalSize","factor","PIXEL_RATIO","get","Math","round","CHAT_IMAGE_DIMENSIONS_PLATFORM","TABLET","MessageListThumbnail","width","height","MessageDetailBubble","ImagePreviewSmall","ImagePreviewMedium","ImagePreviewLarge","MOBILE","ChatImageDimens","regexCDN","dimens","constructor","calculateDimensions","baseDimens","key","source","baseDimen","getInstance","instance","updateFactor","getDimensions","dimen","getOptimizedImageUrl","url","getOptimizedImageUrlWithDimensions","startsWith","match","unsupportedFormats","urlLower","toLowerCase","isUnsupportedFormat","some","format","includes","domainRegex","domainMatches","length","domain","restOfUrl","replace","pixelRatio","optimizedWidth","optimizedHeight","optimizedUrl","endsWith"],"sourceRoot":"../../../src","sources":["utils/chatImageDimens.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Date and time formatting utilities
5
+ */
6
+
7
+ export const formatDuration = durationMs => {
8
+ // Convert milliseconds to seconds
9
+ const totalSeconds = Math.floor(durationMs / 1000);
10
+ const mins = Math.floor(totalSeconds / 60);
11
+ const secs = totalSeconds % 60;
12
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
13
+ };
14
+ export const formatTimestamp = ts => {
15
+ if (!ts) return '';
16
+ try {
17
+ const date = new Date(ts);
18
+ if (isNaN(date.getTime())) return '';
19
+ const now = new Date();
20
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
21
+ // const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000);
22
+ const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());
23
+
24
+ // Today: show time (HH:mm)
25
+ if (dateOnly.getTime() === today.getTime()) {
26
+ const h = date.getHours().toString().padStart(2, '0');
27
+ const m = date.getMinutes().toString().padStart(2, '0');
28
+ return `${h}:${m}`;
29
+ }
30
+
31
+ // // Yesterday: show "Hôm qua"
32
+ // if (dateOnly.getTime() === yesterday.getTime()) {
33
+ // return 'Hôm qua';
34
+ // }
35
+
36
+ // All previous days: show dd/mm format (no weekday)
37
+ const d = date.getDate().toString().padStart(2, '0');
38
+ const mo = (date.getMonth() + 1).toString().padStart(2, '0');
39
+ return `${d}/${mo}`;
40
+ } catch {
41
+ return '';
42
+ }
43
+ };
44
+ //# sourceMappingURL=dateTimeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatDuration","durationMs","totalSeconds","Math","floor","mins","secs","toString","padStart","formatTimestamp","ts","date","Date","isNaN","getTime","now","today","getFullYear","getMonth","getDate","dateOnly","h","getHours","m","getMinutes","d","mo"],"sourceRoot":"../../../src","sources":["utils/dateTimeUtils.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,OAAO,MAAMA,cAAc,GAAIC,UAAkB,IAAa;EAC5D;EACA,MAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACH,UAAU,GAAG,IAAI,CAAC;EAClD,MAAMI,IAAI,GAAGF,IAAI,CAACC,KAAK,CAACF,YAAY,GAAG,EAAE,CAAC;EAC1C,MAAMI,IAAI,GAAGJ,YAAY,GAAG,EAAE;EAC9B,OAAO,GAAGG,IAAI,IAAIC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACtD,CAAC;AAED,OAAO,MAAMC,eAAe,GAAIC,EAA0B,IAAa;EACrE,IAAI,CAACA,EAAE,EAAE,OAAO,EAAE;EAElB,IAAI;IACF,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,EAAE,CAAC;IACzB,IAAIG,KAAK,CAACF,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;IAEpC,MAAMC,GAAG,GAAG,IAAIH,IAAI,CAAC,CAAC;IACtB,MAAMI,KAAK,GAAG,IAAIJ,IAAI,CAACG,GAAG,CAACE,WAAW,CAAC,CAAC,EAAEF,GAAG,CAACG,QAAQ,CAAC,CAAC,EAAEH,GAAG,CAACI,OAAO,CAAC,CAAC,CAAC;IACxE;IACA,MAAMC,QAAQ,GAAG,IAAIR,IAAI,CACvBD,IAAI,CAACM,WAAW,CAAC,CAAC,EAClBN,IAAI,CAACO,QAAQ,CAAC,CAAC,EACfP,IAAI,CAACQ,OAAO,CAAC,CACf,CAAC;;IAED;IACA,IAAIC,QAAQ,CAACN,OAAO,CAAC,CAAC,KAAKE,KAAK,CAACF,OAAO,CAAC,CAAC,EAAE;MAC1C,MAAMO,CAAC,GAAGV,IAAI,CAACW,QAAQ,CAAC,CAAC,CAACf,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;MACrD,MAAMe,CAAC,GAAGZ,IAAI,CAACa,UAAU,CAAC,CAAC,CAACjB,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;MACvD,OAAO,GAAGa,CAAC,IAAIE,CAAC,EAAE;IACpB;;IAEA;IACA;IACA;IACA;;IAEA;IACA,MAAME,CAAC,GAAGd,IAAI,CAACQ,OAAO,CAAC,CAAC,CAACZ,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACpD,MAAMkB,EAAE,GAAG,CAACf,IAAI,CAACO,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAEX,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5D,OAAO,GAAGiB,CAAC,IAAIC,EAAE,EAAE;EACrB,CAAC,CAAC,MAAM;IACN,OAAO,EAAE;EACX;AACF,CAAC","ignoreList":[]}
@@ -8,7 +8,8 @@ const DeviceUtils = {
8
8
  // cropping: true,
9
9
  mediaType: 'any',
10
10
  compressImageQuality: 0.8,
11
- multiple
11
+ multiple,
12
+ forceJpg: true
12
13
  });
13
14
  const images = Array.isArray(result) ? result : [result];
14
15
  console.log('[Image Picker] Selected:', {
@@ -1 +1 @@
1
- {"version":3,"names":["ImagePicker","DeviceUtils","openImagePicker","multiple","result","openPicker","mediaType","compressImageQuality","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":";;AAAA,OAAOA,WAAW,MAAM,gCAAgC;AAExD,MAAMC,WAAW,GAAG;EAClBC,eAAe,EAAE,MAAAA,CAAOC,QAAiB,GAAG,KAAK,KAAK;IACpD,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMJ,WAAW,CAACK,UAAU,CAAC;QAC1C;QACAC,SAAS,EAAE,KAAK;QAChBC,oBAAoB,EAAE,GAAG;QACzBJ;MACF,CAAC,CAAC;MAEF,MAAMK,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACN,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;MACxDO,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAE;QACtCC,KAAK,EAAEL,MAAM,CAACM,MAAM;QACpBN,MAAM,EAAEA,MAAM,CAACO,GAAG,CAAEC,GAAG,KAAM;UAC3BC,QAAQ,EAAED,GAAG,CAACC,QAAQ;UACtBC,IAAI,EAAEF,GAAG,CAACE,IAAI;UACdC,KAAK,EAAEH,GAAG,CAACG,KAAK;UAChBC,MAAM,EAAEJ,GAAG,CAACI;QACd,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOZ,MAAM;IACf,CAAC,CAAC,OAAOa,KAAU,EAAE;MACnB;MACA,IACEA,KAAK,CAACC,IAAI,KAAK,oBAAoB,IACnCD,KAAK,CAACC,IAAI,KAAK,yBAAyB,EACxC;QACAX,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;QAC5D,OAAO,IAAI;MACb;MACAD,OAAO,CAACU,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF,CAAC;EAEDE,eAAe,EAAE,MAAAA,CAAOpB,QAAiB,GAAG,KAAK,KAAK;IACpD,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMJ,WAAW,CAACK,UAAU,CAAC;QAC1CC,SAAS,EAAE,OAAO;QAClBH;MACF,CAAC,CAAC;MAEF,MAAMqB,MAAM,GAAGf,KAAK,CAACC,OAAO,CAACN,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;MACxDO,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAE;QACtCC,KAAK,EAAEW,MAAM,CAACV,MAAM;QACpBU,MAAM,EAAEA,MAAM,CAACT,GAAG,CAAEU,GAAG,KAAM;UAC3BR,QAAQ,EAAEQ,GAAG,CAACR,QAAQ;UACtBC,IAAI,EAAEO,GAAG,CAACP,IAAI;UACdC,KAAK,EAAEM,GAAG,CAACN,KAAK;UAChBC,MAAM,EAAEK,GAAG,CAACL,MAAM;UAClBM,QAAQ,EAAED,GAAG,CAACC;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOF,MAAM;IACf,CAAC,CAAC,OAAOH,KAAU,EAAE;MACnB;MACA,IACEA,KAAK,CAACC,IAAI,KAAK,oBAAoB,IACnCD,KAAK,CAACC,IAAI,KAAK,yBAAyB,EACxC;QACAX,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;QAC5D,OAAO,IAAI;MACb;MACAD,OAAO,CAACU,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF;AACF,CAAC;AAED,eAAepB,WAAW;AAC1B,SAASA,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["ImagePicker","DeviceUtils","openImagePicker","multiple","result","openPicker","mediaType","compressImageQuality","forceJpg","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":";;AAAA,OAAOA,WAAW,MAAM,gCAAgC;AAExD,MAAMC,WAAW,GAAG;EAClBC,eAAe,EAAE,MAAAA,CAAOC,QAAiB,GAAG,KAAK,KAAK;IACpD,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMJ,WAAW,CAACK,UAAU,CAAC;QAC1C;QACAC,SAAS,EAAE,KAAK;QAChBC,oBAAoB,EAAE,GAAG;QACzBJ,QAAQ;QACRK,QAAQ,EAAE;MACZ,CAAC,CAAC;MAEF,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACP,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;MACxDQ,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAE;QACtCC,KAAK,EAAEL,MAAM,CAACM,MAAM;QACpBN,MAAM,EAAEA,MAAM,CAACO,GAAG,CAAEC,GAAG,KAAM;UAC3BC,QAAQ,EAAED,GAAG,CAACC,QAAQ;UACtBC,IAAI,EAAEF,GAAG,CAACE,IAAI;UACdC,KAAK,EAAEH,GAAG,CAACG,KAAK;UAChBC,MAAM,EAAEJ,GAAG,CAACI;QACd,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOZ,MAAM;IACf,CAAC,CAAC,OAAOa,KAAU,EAAE;MACnB;MACA,IACEA,KAAK,CAACC,IAAI,KAAK,oBAAoB,IACnCD,KAAK,CAACC,IAAI,KAAK,yBAAyB,EACxC;QACAX,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;QAC5D,OAAO,IAAI;MACb;MACAD,OAAO,CAACU,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF,CAAC;EAEDE,eAAe,EAAE,MAAAA,CAAOrB,QAAiB,GAAG,KAAK,KAAK;IACpD,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMJ,WAAW,CAACK,UAAU,CAAC;QAC1CC,SAAS,EAAE,OAAO;QAClBH;MACF,CAAC,CAAC;MAEF,MAAMsB,MAAM,GAAGf,KAAK,CAACC,OAAO,CAACP,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;MACxDQ,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAE;QACtCC,KAAK,EAAEW,MAAM,CAACV,MAAM;QACpBU,MAAM,EAAEA,MAAM,CAACT,GAAG,CAAEU,GAAG,KAAM;UAC3BR,QAAQ,EAAEQ,GAAG,CAACR,QAAQ;UACtBC,IAAI,EAAEO,GAAG,CAACP,IAAI;UACdC,KAAK,EAAEM,GAAG,CAACN,KAAK;UAChBC,MAAM,EAAEK,GAAG,CAACL,MAAM;UAClBM,QAAQ,EAAED,GAAG,CAACC;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOF,MAAM;IACf,CAAC,CAAC,OAAOH,KAAU,EAAE;MACnB;MACA,IACEA,KAAK,CAACC,IAAI,KAAK,oBAAoB,IACnCD,KAAK,CAACC,IAAI,KAAK,yBAAyB,EACxC;QACAX,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;QAC5D,OAAO,IAAI;MACb;MACAD,OAAO,CAACU,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF;AACF,CAAC;AAED,eAAerB,WAAW;AAC1B,SAASA,WAAW","ignoreList":[]}
@@ -22,6 +22,8 @@ export const getMimeType = fileName => {
22
22
  jpeg: 'image/jpeg',
23
23
  png: 'image/png',
24
24
  webp: 'image/webp',
25
+ heic: 'image/heic',
26
+ heif: 'image/heif',
25
27
  mp4: 'video/mp4',
26
28
  mov: 'video/quicktime',
27
29
  avi: 'video/x-msvideo',
@@ -57,9 +59,9 @@ export const validateImageFile = file => {
57
59
  if (file.size > MAX_SIZE) {
58
60
  return `Image too large. Max ${formatFileSize(MAX_SIZE)}`;
59
61
  }
60
- const validMimes = ['image/jpeg', 'image/png', 'image/webp'];
62
+ const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/heic', 'image/heif'];
61
63
  if (!validMimes.includes(file.mime)) {
62
- return 'Unsupported format. Only JPEG, PNG, WebP';
64
+ return 'Unsupported format. Only JPEG, PNG, WebP, HEIC';
63
65
  }
64
66
  return null;
65
67
  };
@@ -1 +1 @@
1
- {"version":3,"names":["generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","fileName","ext","split","pop","toLowerCase","mimeMap","jpg","jpeg","png","webp","mp4","mov","avi","mkv","webm","m4v","flv","wmv","mp3","wav","m4a","aac","flac","ogg","pdf","doc","docx","xls","xlsx","zip","formatFileSize","bytes","k","sizes","i","floor","log","round","pow","validateImageFile","file","MAX_SIZE","size","validMimes","includes","getImageUploadEndpoint","baseUrl"],"sourceRoot":"../../../src","sources":["utils/imageUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","fileName","ext","split","pop","toLowerCase","mimeMap","jpg","jpeg","png","webp","heic","heif","mp4","mov","avi","mkv","webm","m4v","flv","wmv","mp3","wav","m4a","aac","flac","ogg","pdf","doc","docx","xls","xlsx","zip","formatFileSize","bytes","k","sizes","i","floor","log","round","pow","validateImageFile","file","MAX_SIZE","size","validMimes","includes","getImageUploadEndpoint","baseUrl"],"sourceRoot":"../../../src","sources":["utils/imageUtils.ts"],"mappings":"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","ignoreList":[]}