@onairos/react-native 3.7.1 → 3.7.3

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 (241) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/assets/icons/spotify.png +0 -0
  3. package/lib/commonjs/assets/images/spotify.png +0 -0
  4. package/lib/commonjs/components/BodyText.js +27 -9
  5. package/lib/commonjs/components/BrandMark.js +111 -10
  6. package/lib/commonjs/components/CodeInput.js +116 -9
  7. package/lib/commonjs/components/EmailInput.js +30 -8
  8. package/lib/commonjs/components/GoogleButton.js +56 -9
  9. package/lib/commonjs/components/HeadingGroup.js +43 -9
  10. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  11. package/lib/commonjs/components/ModalHeader.js +99 -9
  12. package/lib/commonjs/components/ModalSheet.js +47 -9
  13. package/lib/commonjs/components/Onairos.js +380 -14
  14. package/lib/commonjs/components/OnairosButton.js +313 -13
  15. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  16. package/lib/commonjs/components/Overlay.js +465 -13
  17. package/lib/commonjs/components/PersonaImage.js +137 -10
  18. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  19. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  20. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  21. package/lib/commonjs/components/PinInput.js +464 -9
  22. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  23. package/lib/commonjs/components/PlatformList.js +137 -10
  24. package/lib/commonjs/components/PlatformToggle.js +180 -9
  25. package/lib/commonjs/components/PrimaryButton.js +180 -10
  26. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  27. package/lib/commonjs/components/SignInStep.js +345 -12
  28. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  29. package/lib/commonjs/components/VerificationStep.js +176 -11
  30. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  31. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  32. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  33. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  34. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  35. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  36. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  37. package/lib/commonjs/components/icons/EnochE.js +41 -8
  38. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  39. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  40. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  41. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  42. package/lib/commonjs/components/icons/index.js +84 -17
  43. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  44. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  45. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  46. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  47. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  48. package/lib/commonjs/config/api.js +56 -7
  49. package/lib/commonjs/constants/index.js +120 -7
  50. package/lib/commonjs/context/AuthContext.js +345 -10
  51. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  52. package/lib/commonjs/hooks/useConnections.js +102 -8
  53. package/lib/commonjs/hooks/useCredentials.js +178 -10
  54. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  55. package/lib/commonjs/index.js +439 -34
  56. package/lib/commonjs/services/apiClient.js +298 -8
  57. package/lib/commonjs/services/biometricPinService.js +180 -8
  58. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  59. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  60. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  61. package/lib/commonjs/services/claudeConversationService.js +158 -9
  62. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  63. package/lib/commonjs/services/googleAuthService.js +252 -11
  64. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  65. package/lib/commonjs/services/hingeDataService.js +150 -9
  66. package/lib/commonjs/services/imageCompressionService.js +260 -7
  67. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  68. package/lib/commonjs/services/instagramDataService.js +163 -9
  69. package/lib/commonjs/services/jwtStorageService.js +276 -7
  70. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  71. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  72. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  73. package/lib/commonjs/services/llmDataStorage.js +294 -8
  74. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  75. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  76. package/lib/commonjs/services/netflixDataService.js +198 -9
  77. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  78. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  79. package/lib/commonjs/services/platformAuthService.js +1484 -12
  80. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  81. package/lib/commonjs/services/sephoraDataService.js +200 -9
  82. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  83. package/lib/commonjs/services/spotifyDataService.js +241 -9
  84. package/lib/commonjs/services/storageService.js +404 -8
  85. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  86. package/lib/commonjs/services/telegramDataService.js +499 -9
  87. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  88. package/lib/commonjs/services/userConnectionsService.js +340 -10
  89. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  90. package/lib/commonjs/theme/index.js +250 -7
  91. package/lib/commonjs/types/ambient.d.js +2 -1
  92. package/lib/commonjs/types/declarations.d.js +2 -1
  93. package/lib/commonjs/types/index.js +6 -1
  94. package/lib/commonjs/types/node-fix.d.js +2 -1
  95. package/lib/commonjs/types/node-override.d.js +2 -1
  96. package/lib/commonjs/types/opacity.d.js +2 -1
  97. package/lib/commonjs/types.js +14 -1
  98. package/lib/commonjs/utils/Portal.js +98 -8
  99. package/lib/commonjs/utils/api.js +130 -9
  100. package/lib/commonjs/utils/assetRegistry.js +210 -35
  101. package/lib/commonjs/utils/auth.js +112 -9
  102. package/lib/commonjs/utils/connectorTests.js +613 -29
  103. package/lib/commonjs/utils/crypto.js +62 -8
  104. package/lib/commonjs/utils/debugHelper.js +64 -1
  105. package/lib/commonjs/utils/encryption.js +76 -7
  106. package/lib/commonjs/utils/eventUtils.js +288 -1
  107. package/lib/commonjs/utils/haptics.js +66 -9
  108. package/lib/commonjs/utils/imagePreloader.js +6 -1
  109. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  110. package/lib/commonjs/utils/onairosApi.js +350 -9
  111. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  112. package/lib/commonjs/utils/retryHelper.js +220 -1
  113. package/lib/commonjs/utils/secureStorage.js +349 -10
  114. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  115. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  116. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  117. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  118. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  119. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  120. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  121. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  122. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  123. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  124. package/lib/module/api/index.js +211 -1
  125. package/lib/module/assets/icons/spotify.png +0 -0
  126. package/lib/module/assets/images/spotify.png +0 -0
  127. package/lib/module/components/BodyText.js +20 -1
  128. package/lib/module/components/BrandMark.js +104 -1
  129. package/lib/module/components/CodeInput.js +109 -1
  130. package/lib/module/components/EmailInput.js +23 -1
  131. package/lib/module/components/GoogleButton.js +49 -1
  132. package/lib/module/components/HeadingGroup.js +36 -1
  133. package/lib/module/components/LLMDataInputModal.js +656 -7
  134. package/lib/module/components/ModalHeader.js +92 -1
  135. package/lib/module/components/ModalSheet.js +39 -1
  136. package/lib/module/components/Onairos.js +373 -1
  137. package/lib/module/components/OnairosButton.js +305 -1
  138. package/lib/module/components/OnairosSignInButton.js +121 -1
  139. package/lib/module/components/Overlay.js +456 -1
  140. package/lib/module/components/PersonaImage.js +129 -1
  141. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  142. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  143. package/lib/module/components/PinCreationScreen.js +396 -1
  144. package/lib/module/components/PinInput.js +456 -1
  145. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  146. package/lib/module/components/PlatformList.js +129 -1
  147. package/lib/module/components/PlatformToggle.js +173 -1
  148. package/lib/module/components/PrimaryButton.js +172 -1
  149. package/lib/module/components/SignInMatchAnimation.js +189 -1
  150. package/lib/module/components/SignInStep.js +338 -1
  151. package/lib/module/components/UniversalOnboarding.js +2770 -1
  152. package/lib/module/components/VerificationStep.js +168 -1
  153. package/lib/module/components/WelcomeScreen.js +453 -1
  154. package/lib/module/components/icons/Basicproficon.js +30 -1
  155. package/lib/module/components/icons/Basicprofile.js +14 -1
  156. package/lib/module/components/icons/Checkbox.js +14 -1
  157. package/lib/module/components/icons/Checkmark.js +20 -1
  158. package/lib/module/components/icons/Contentanalysis.js +14 -1
  159. package/lib/module/components/icons/Contenticon.js +32 -1
  160. package/lib/module/components/icons/EnochE.js +34 -1
  161. package/lib/module/components/icons/Personalityicon.js +23 -1
  162. package/lib/module/components/icons/Personalityprofile.js +14 -1
  163. package/lib/module/components/icons/Personalitytraits.js +14 -1
  164. package/lib/module/components/icons/Userpreferences.js +14 -1
  165. package/lib/module/components/icons/index.js +13 -1
  166. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  167. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  168. package/lib/module/components/onboarding/PinInput.js +274 -1
  169. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  170. package/lib/module/config/PLATFORM_APIS.md +849 -0
  171. package/lib/module/config/api.js +47 -1
  172. package/lib/module/constants/index.js +114 -1
  173. package/lib/module/context/AuthContext.js +335 -1
  174. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  175. package/lib/module/hooks/useConnections.js +95 -1
  176. package/lib/module/hooks/useCredentials.js +171 -6
  177. package/lib/module/hooks/useUserConnections.js +140 -1
  178. package/lib/module/index.js +172 -1
  179. package/lib/module/services/apiClient.js +295 -1
  180. package/lib/module/services/biometricPinService.js +169 -1
  181. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  182. package/lib/module/services/chatGPTConversationService.js +268 -1
  183. package/lib/module/services/claudeConversationExtractor.js +97 -1
  184. package/lib/module/services/claudeConversationService.js +151 -1
  185. package/lib/module/services/connectedAccountsService.js +293 -1
  186. package/lib/module/services/googleAuthService.js +241 -1
  187. package/lib/module/services/hingeDataExtractor.js +99 -1
  188. package/lib/module/services/hingeDataService.js +143 -1
  189. package/lib/module/services/imageCompressionService.js +250 -1
  190. package/lib/module/services/instagramDataExtractor.js +120 -1
  191. package/lib/module/services/instagramDataService.js +156 -1
  192. package/lib/module/services/jwtStorageService.js +257 -1
  193. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  194. package/lib/module/services/linkedinProfileService.js +210 -1
  195. package/lib/module/services/linkedinScrapingService.js +219 -1
  196. package/lib/module/services/llmDataStorage.js +277 -1
  197. package/lib/module/services/mobileTrainingService.js +173 -1
  198. package/lib/module/services/netflixDataExtractor.js +114 -1
  199. package/lib/module/services/netflixDataService.js +191 -1
  200. package/lib/module/services/pinEncryptionService.js +74 -6
  201. package/lib/module/services/pinStorageUtils.js +93 -1
  202. package/lib/module/services/platformAuthService.js +1461 -1
  203. package/lib/module/services/sephoraDataExtractor.js +134 -1
  204. package/lib/module/services/sephoraDataService.js +193 -1
  205. package/lib/module/services/spotifyDataExtractor.js +142 -1
  206. package/lib/module/services/spotifyDataService.js +234 -1
  207. package/lib/module/services/storageService.js +383 -1
  208. package/lib/module/services/telegramDataExtractor.js +109 -1
  209. package/lib/module/services/telegramDataService.js +493 -1
  210. package/lib/module/services/trainingApiHelpers.js +67 -1
  211. package/lib/module/services/userConnectionsService.js +329 -1
  212. package/lib/module/services/youtubeMigrationService.js +405 -1
  213. package/lib/module/theme/index.js +245 -1
  214. package/lib/module/types.js +10 -1
  215. package/lib/module/utils/Portal.js +90 -1
  216. package/lib/module/utils/api.js +118 -1
  217. package/lib/module/utils/assetRegistry.js +200 -34
  218. package/lib/module/utils/auth.js +100 -1
  219. package/lib/module/utils/connectorTests.js +600 -27
  220. package/lib/module/utils/crypto.js +54 -1
  221. package/lib/module/utils/debugHelper.js +54 -1
  222. package/lib/module/utils/encryption.js +67 -1
  223. package/lib/module/utils/eventUtils.js +270 -1
  224. package/lib/module/utils/haptics.js +59 -8
  225. package/lib/module/utils/imagePreloader.js +3 -1
  226. package/lib/module/utils/networkDiagnostics.js +217 -1
  227. package/lib/module/utils/onairosApi.js +333 -1
  228. package/lib/module/utils/programmaticFlow.js +111 -1
  229. package/lib/module/utils/retryHelper.js +211 -1
  230. package/lib/module/utils/secureStorage.js +330 -6
  231. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  232. package/lib/module/utils/webviewScripts/claude.js +370 -1
  233. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  234. package/lib/module/utils/webviewScripts/index.js +434 -1
  235. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  236. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  237. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  238. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  239. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  240. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  241. package/package.json +2 -2
@@ -1,8 +1,62 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react-native-rsa-native"),
5
- require("react-native-crypto-js")
6
- ];
7
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
8
- function _0x4661(){const _0x3a99cb=['defineProperty','__esModule','rsaEncrypt','-----BEGIN\x20PUBLIC\x20KEY-----','-----END\x20PUBLIC\x20KEY-----','replace','tUAmn','LsmpX','trim','-----BEGIN\x20PUBLIC\x20KEY-----\x0a','\x0a-----END\x20PUBLIC\x20KEY-----','RSA','error','RSA\x20encryption\x20failed:','sha256','base64','binary','from','IfTng','toString','length','sGncE','Acrom','sXZBA','charCodeAt','buffer','HUxUa','JkMMP','base64ToBuffer'];_0x4661=function(){return _0x3a99cb;};return _0x4661();}Object[_0x54b5(0x0)](exports,_0x54b5(0x1),{'value':!![]}),exports['sha256']=exports[_0x54b5(0x2)]=exports['base64ToBuffer']=void 0x0;var _reactNativeRsaNative=__ONAIROS_REQ_FUNC__(0x0),_reactNativeCryptoJs=__ONAIROS_REQ_FUNC__(0x1);const rsaEncrypt=async(_0xd195e8,_0x455e78)=>{const _0xfb2413={'tUAmn':_0x54b5(0x3),'LsmpX':_0x54b5(0x4)};try{const _0x37c381=_0xd195e8[_0x54b5(0x5)](/\\n/g,'')[_0x54b5(0x5)](/^\s+|\s+$/g,'')[_0x54b5(0x5)](_0xfb2413[_0x54b5(0x6)],'')['replace'](_0xfb2413[_0x54b5(0x7)],'')[_0x54b5(0x8)](),_0x55e1d9=_0x54b5(0x9)+_0x37c381+_0x54b5(0xa),_0x35bfdd=await _reactNativeRsaNative[_0x54b5(0xb)]['encrypt'](_0x455e78,_0x55e1d9);return _0x35bfdd;}catch(_0x21674d){console[_0x54b5(0xc)](_0x54b5(0xd),_0x21674d);throw _0x21674d;}};function _0x54b5(_0x4661ea,_0x54b5ee){_0x4661ea=_0x4661ea-0x0;const _0x51b1ff=_0x4661();let _0x26a904=_0x51b1ff[_0x4661ea];return _0x26a904;}exports[_0x54b5(0x2)]=rsaEncrypt;const sha256=_0x19dfa2=>{return(0x0,_reactNativeCryptoJs['sha256'])(_0x19dfa2)['toString']();};exports[_0x54b5(0xe)]=sha256;const base64ToBuffer=_0x18f0b1=>{const _0x56163c={'IfTng':_0x54b5(0xf),'Acrom':_0x54b5(0x10),'sXZBA':function(_0x1133f8,_0xab162b){return _0x1133f8<_0xab162b;},'BsNLL':function(_0x3a2eea,_0x5c68a1){return _0x3a2eea!==_0x5c68a1;},'sGncE':'Wdtqf','HUxUa':function(_0x255497,_0x5b56be){return _0x255497===_0x5b56be;},'JkMMP':'JzTxy','inNvV':'Error\x20converting\x20base64\x20to\x20buffer:'};try{const _0x194e9d=Buffer[_0x54b5(0x11)](_0x18f0b1,_0x56163c[_0x54b5(0x12)])[_0x54b5(0x13)](_0x54b5(0x10)),_0x474acc=new Uint8Array(_0x194e9d[_0x54b5(0x14)]);for(let _0x4b22db=0x0;_0x4b22db<_0x194e9d[_0x54b5(0x14)];_0x4b22db++){if(_0x56163c['BsNLL'](_0x56163c[_0x54b5(0x15)],_0x56163c[_0x54b5(0x15)])){const _0x466f28=_0x1b432d[_0x54b5(0x11)](_0x1db668,_0x56163c[_0x54b5(0x12)])[_0x54b5(0x13)](_0x56163c[_0x54b5(0x16)]),_0x12075a=new _0x2ca264(_0x466f28[_0x54b5(0x14)]);for(let _0x247d08=0x0;_0x56163c[_0x54b5(0x17)](_0x247d08,_0x466f28[_0x54b5(0x14)]);_0x247d08++){_0x12075a[_0x247d08]=_0x466f28[_0x54b5(0x18)](_0x247d08);}return _0x12075a[_0x54b5(0x19)];}else _0x474acc[_0x4b22db]=_0x194e9d[_0x54b5(0x18)](_0x4b22db);}return _0x474acc[_0x54b5(0x19)];}catch(_0x9d9ebb){if(_0x56163c[_0x54b5(0x1a)](_0x56163c[_0x54b5(0x1b)],_0x56163c[_0x54b5(0x1b)])){console[_0x54b5(0xc)](_0x56163c['inNvV'],_0x9d9ebb);throw _0x9d9ebb;}else return(0x0,_0x24e8c4[_0x54b5(0xe)])(_0x1f0726)['toString']();}};exports[_0x54b5(0x1c)]=base64ToBuffer;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sha256 = exports.rsaEncrypt = exports.base64ToBuffer = void 0;
7
+ var _reactNativeRsaNative = require("react-native-rsa-native");
8
+ var _reactNativeCryptoJs = require("react-native-crypto-js");
9
+ /**
10
+ * Encrypt data using RSA
11
+ * @param {string} publicKey - The RSA public key
12
+ * @param {string} data - The data to encrypt
13
+ * @returns {Promise<string>} - The encrypted data
14
+ */
15
+ const rsaEncrypt = async (publicKey, data) => {
16
+ try {
17
+ // Clean the public key format
18
+ const cleanedKey = publicKey.replace(/\\n/g, '').replace(/^\s+|\s+$/g, '').replace('-----BEGIN PUBLIC KEY-----', '').replace('-----END PUBLIC KEY-----', '').trim();
19
+
20
+ // Format the key properly for the library
21
+ const formattedKey = `-----BEGIN PUBLIC KEY-----\n${cleanedKey}\n-----END PUBLIC KEY-----`;
22
+
23
+ // Encrypt the data
24
+ const encrypted = await _reactNativeRsaNative.RSA.encrypt(data, formattedKey);
25
+ return encrypted;
26
+ } catch (error) {
27
+ console.error('RSA encryption failed:', error);
28
+ throw error;
29
+ }
30
+ };
31
+
32
+ /**
33
+ * Hash data using SHA-256
34
+ * @param {string} data - The data to hash
35
+ * @returns {string} - The hashed data
36
+ */
37
+ exports.rsaEncrypt = rsaEncrypt;
38
+ const sha256 = data => {
39
+ return (0, _reactNativeCryptoJs.sha256)(data).toString();
40
+ };
41
+
42
+ /**
43
+ * Convert a base64 string to a buffer
44
+ * @param {string} base64String - The base64 string to convert
45
+ * @returns {ArrayBuffer} - The converted buffer
46
+ */
47
+ exports.sha256 = sha256;
48
+ const base64ToBuffer = base64String => {
49
+ try {
50
+ const binaryString = Buffer.from(base64String, 'base64').toString('binary');
51
+ const bytes = new Uint8Array(binaryString.length);
52
+ for (let i = 0; i < binaryString.length; i++) {
53
+ bytes[i] = binaryString.charCodeAt(i);
54
+ }
55
+ return bytes.buffer;
56
+ } catch (error) {
57
+ console.error('Error converting base64 to buffer:', error);
58
+ throw error;
59
+ }
60
+ };
61
+ exports.base64ToBuffer = base64ToBuffer;
62
+ //# sourceMappingURL=crypto.js.map
@@ -1 +1,64 @@
1
- 'use strict';function _0xd781(){const _0x5dcf22=['defineProperty','logError','logApiRequest','isDebugMode','env','NODE_ENV','production','mjtvm','IVSdV','VHaMf','log','[Onairos\x20Debug]\x20','error','[Onairos\x20Error]\x20','logDebug','API\x20Request','Hdgzw'];_0xd781=function(){return _0x5dcf22;};return _0xd781();}Object[_0x43b5(0x0)](exports,'__esModule',{'value':!![]}),exports[_0x43b5(0x1)]=exports['logDebug']=exports[_0x43b5(0x2)]=exports[_0x43b5(0x3)]=void 0x0;const __DEV__=process[_0x43b5(0x4)][_0x43b5(0x5)]!==_0x43b5(0x6),logDebug=(_0x4b5546,_0x52ea67)=>{const _0x1a5b16={'HPWfV':function(_0x3cf767,_0x33b4ed){return _0x3cf767!==_0x33b4ed;},'IVSdV':_0x43b5(0x7),'KnAqd':function(_0x52f547,_0xef880a){return _0x52f547||_0xef880a;}};__DEV__&&(_0x1a5b16['HPWfV'](_0x1a5b16[_0x43b5(0x8)],_0x43b5(0x9))?console[_0x43b5(0xa)](_0x43b5(0xb)+_0x4b5546+':',_0x1a5b16['KnAqd'](_0x52ea67,'')):_0x24a3c3&&_0xaee678[_0x43b5(0xc)](_0x43b5(0xd)+_0x2a0f90+':',_0x3e099e));};exports[_0x43b5(0xe)]=logDebug;const logError=(_0x2795d8,_0x54278b)=>{__DEV__&&console[_0x43b5(0xc)](_0x43b5(0xd)+_0x2795d8+':',_0x54278b);};exports[_0x43b5(0x1)]=logError;const isDebugMode=_0x154b41=>{const _0x43799f={'QLYIf':function(_0x33747f,_0x3715a0){return _0x33747f===_0x3715a0;}};return _0x43799f['QLYIf'](_0x154b41,!![])||__DEV__;};function _0x43b5(_0xd78186,_0x43b529){_0xd78186=_0xd78186-0x0;const _0x2903f6=_0xd781();let _0x3d8919=_0x2903f6[_0xd78186];return _0x3d8919;}exports['isDebugMode']=isDebugMode;const logApiRequest=(_0x274589,_0xb3729e,_0x5f1a28)=>{const _0x4a4ce9={'vxTum':function(_0x41e1d4,_0x26cb41,_0x588f9a){return _0x41e1d4(_0x26cb41,_0x588f9a);},'Hdgzw':_0x43b5(0xf),'RogCT':function(_0x4bcf87,_0x3fa652){return _0x4bcf87||_0x3fa652;}};__DEV__&&_0x4a4ce9['vxTum'](logDebug,_0x4a4ce9[_0x43b5(0x10)],{'method':_0x274589,'url':_0xb3729e,'data':_0x4a4ce9['RogCT'](_0x5f1a28,{})});};exports[_0x43b5(0x2)]=logApiRequest;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logError = exports.logDebug = exports.logApiRequest = exports.isDebugMode = void 0;
7
+ /**
8
+ * Debug utility functions for Onairos React Native SDK
9
+ */
10
+
11
+ // Determine if we're in dev mode
12
+ const __DEV__ = process.env.NODE_ENV !== 'production';
13
+
14
+ /**
15
+ * Log debug message to console when in development mode
16
+ * @param label Label for the debug message
17
+ * @param data Data to log
18
+ */
19
+ const logDebug = (label, data) => {
20
+ if (__DEV__) {
21
+ console.log(`[Onairos Debug] ${label}:`, data || '');
22
+ }
23
+ };
24
+
25
+ /**
26
+ * Log error message to console
27
+ * @param label Label for the error message
28
+ * @param error Error object or message
29
+ */
30
+ exports.logDebug = logDebug;
31
+ const logError = (label, error) => {
32
+ if (__DEV__) {
33
+ console.error(`[Onairos Error] ${label}:`, error);
34
+ }
35
+ };
36
+
37
+ /**
38
+ * Check if debug mode is enabled
39
+ * @param debug Debug flag passed to component
40
+ * @returns Whether debug mode is enabled
41
+ */
42
+ exports.logError = logError;
43
+ const isDebugMode = debug => {
44
+ return debug === true || __DEV__;
45
+ };
46
+
47
+ /**
48
+ * Format and log API request details
49
+ * @param method HTTP method
50
+ * @param url API URL
51
+ * @param data Request data
52
+ */
53
+ exports.isDebugMode = isDebugMode;
54
+ const logApiRequest = (method, url, data) => {
55
+ if (__DEV__) {
56
+ logDebug('API Request', {
57
+ method,
58
+ url,
59
+ data: data || {}
60
+ });
61
+ }
62
+ };
63
+ exports.logApiRequest = logApiRequest;
64
+ //# sourceMappingURL=debugHelper.js.map
@@ -1,7 +1,76 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("../api")
5
- ];
6
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
7
- function _0x5157(_0x7fd8da,_0x515786){_0x7fd8da=_0x7fd8da-0x0;const _0x1184e3=_0x7fd8();let _0xe0dd83=_0x1184e3[_0x7fd8da];return _0xe0dd83;}Object['defineProperty'](exports,_0x5157(0x0),{'value':!![]}),exports[_0x5157(0x1)]=exports[_0x5157(0x2)]=exports[_0x5157(0x3)]=void 0x0;var _api=__ONAIROS_REQ_FUNC__(0x0);const encryptModelKey=(_0x4f822a,_0x47f7e6)=>{const _0x2a7a74={'TJTDk':'Error\x20getting\x20server\x20public\x20key:','KSrbg':_0x5157(0x4),'AbbMv':'Encrypting\x20model\x20key','aDxsq':_0x5157(0x5),'DopDm':_0x5157(0x6)};try{if(_0x5157(0x7)===_0x5157(0x8))return _0x1a5237['error'](_0x2a7a74[_0x5157(0x9)],_0x595954),_0x2a7a74[_0x5157(0xa)];else{console[_0x5157(0xb)](_0x2a7a74[_0x5157(0xc)]);if(!_0x4f822a||!_0x47f7e6)throw new Error(_0x2a7a74[_0x5157(0xd)]);return'encrypted_'+_0x47f7e6+'_'+Date[_0x5157(0xe)]();}}catch(_0x31cb23){console[_0x5157(0xf)](_0x2a7a74[_0x5157(0x10)],_0x31cb23);throw _0x31cb23;}};exports['encryptModelKey']=encryptModelKey;function _0x7fd8(){const _0x3ad1b1=['__esModule','hashString','getServerPublicKey','encryptModelKey','mock_public_key_for_testing','Public\x20key\x20or\x20model\x20key\x20is\x20missing','Error\x20encrypting\x20model\x20key:','zwfIy','yQeNj','TJTDk','KSrbg','log','AbbMv','aDxsq','now','error','DopDm','Encrypting\x20model\x20key','TEGNA','CMlIx','tteGP','No\x20public\x20key\x20found\x20in\x20response','onairosApi','get','JVhMd','data','JFswt','publicKey','bhKUu','UboBs','mkXnG','ZMIEW','AlUlR','AKrsY','iivxw','TOaKl','RadqF','Error\x20getting\x20server\x20public\x20key:','replace','Error\x20hashing\x20string:','fallback_hash_'];_0x7fd8=function(){return _0x3ad1b1;};return _0x7fd8();}const getServerPublicKey=async()=>{const _0x15c8aa={'ZMIEW':_0x5157(0x11),'ivcpB':function(_0x27abe5,_0x585b18){return _0x27abe5||_0x585b18;},'AlUlR':_0x5157(0x6),'OMCJG':'public/getPublicKey','JVhMd':function(_0x453ada,_0x3a5f61){return _0x453ada!==_0x3a5f61;},'JFswt':function(_0x4039af,_0x528274){return _0x4039af!==_0x528274;},'bhKUu':function(_0x752b6,_0x3c10c0){return _0x752b6!==_0x3c10c0;},'UboBs':_0x5157(0x12),'mkXnG':_0x5157(0x13),'AKrsY':function(_0x5540c7,_0x3b7325){return _0x5540c7!==_0x3b7325;},'iivxw':function(_0x21be88,_0x21904d){return _0x21be88===_0x21904d;},'TOaKl':'wRUhx','jrdzX':_0x5157(0x14),'RadqF':_0x5157(0x15),'Luaxt':_0x5157(0x4)};try{var _0x5b03ea,_0x5091a7;const _0x2bb3d7=await _api[_0x5157(0x16)][_0x5157(0x17)](_0x15c8aa['OMCJG']);if(_0x15c8aa['JVhMd'](_0x2bb3d7,null)&&_0x15c8aa[_0x5157(0x18)](_0x2bb3d7,void 0x0)&&_0x15c8aa[_0x5157(0x18)](_0x5b03ea=_0x2bb3d7[_0x5157(0x19)],null)&&_0x5b03ea!==void 0x0&&_0x15c8aa[_0x5157(0x1a)](_0x5b03ea=_0x5b03ea[_0x5157(0x19)],null)&&_0x5b03ea!==void 0x0&&_0x5b03ea[_0x5157(0x1b)]){if(_0x15c8aa[_0x5157(0x1c)](_0x15c8aa[_0x5157(0x1d)],_0x15c8aa[_0x5157(0x1e)]))return _0x2bb3d7['data'][_0x5157(0x19)]['publicKey'];else try{_0xa61a19['log'](_0x15c8aa[_0x5157(0x1f)]);if(_0x15c8aa['ivcpB'](!_0x28e686,!_0x12742c))throw new _0x14e6f1('Public\x20key\x20or\x20model\x20key\x20is\x20missing');return'encrypted_'+_0x1b6841+'_'+_0x51b2f9[_0x5157(0xe)]();}catch(_0x59e4d1){_0xc61d7[_0x5157(0xf)](_0x15c8aa[_0x5157(0x20)],_0x59e4d1);throw _0x59e4d1;}}else{if(_0x15c8aa[_0x5157(0x18)](_0x2bb3d7,null)&&_0x15c8aa[_0x5157(0x21)](_0x2bb3d7,void 0x0)&&_0x15c8aa[_0x5157(0x18)](_0x5091a7=_0x2bb3d7[_0x5157(0x19)],null)&&_0x5091a7!==void 0x0&&_0x5091a7[_0x5157(0x1b)])return _0x2bb3d7[_0x5157(0x19)][_0x5157(0x1b)];else{if(_0x15c8aa[_0x5157(0x22)](_0x15c8aa[_0x5157(0x23)],_0x15c8aa['jrdzX'])){_0x3ba134[_0x5157(0xf)](_0x15c8aa['AlUlR'],_0x33e4ee);throw _0x58e5c9;}else throw new Error(_0x15c8aa[_0x5157(0x24)]);}}}catch(_0x4a8e20){return console[_0x5157(0xf)](_0x5157(0x25),_0x4a8e20),_0x15c8aa['Luaxt'];}};exports['getServerPublicKey']=getServerPublicKey;const hashString=async _0x131bcb=>{try{return'hash_'+_0x131bcb[_0x5157(0x26)](/\s+/g,'_')+'_'+Date[_0x5157(0xe)]();}catch(_0x57bc7f){return console['error'](_0x5157(0x27),_0x57bc7f),_0x5157(0x28)+Date[_0x5157(0xe)]();}};exports[_0x5157(0x1)]=hashString;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hashString = exports.getServerPublicKey = exports.encryptModelKey = void 0;
7
+ var _api = require("../api");
8
+ /**
9
+ * Encrypt a model key using RSA with a public key
10
+ * @param publicKey The public key to encrypt with
11
+ * @param modelKey The model key to encrypt
12
+ * @returns The encrypted model key
13
+ */
14
+ const encryptModelKey = (publicKey, modelKey) => {
15
+ try {
16
+ console.log('Encrypting model key');
17
+ if (!publicKey || !modelKey) {
18
+ throw new Error('Public key or model key is missing');
19
+ }
20
+
21
+ // In a production environment, this would use RSA encryption
22
+ // For now, we'll use a mock implementation
23
+ // return RSA.encrypt(modelKey, publicKey);
24
+
25
+ // Return a fake encrypted value
26
+ return `encrypted_${modelKey}_${Date.now()}`;
27
+ } catch (error) {
28
+ console.error('Error encrypting model key:', error);
29
+ throw error;
30
+ }
31
+ };
32
+
33
+ /**
34
+ * Get the server's public key
35
+ * @returns The server's public key
36
+ */
37
+ exports.encryptModelKey = encryptModelKey;
38
+ const getServerPublicKey = async () => {
39
+ try {
40
+ var _response$data, _response$data2;
41
+ // Use the API without generics to prevent TypeScript errors
42
+ const response = await _api.onairosApi.get('public/getPublicKey');
43
+
44
+ // Check for the public key in the response data
45
+ if (response !== null && response !== void 0 && (_response$data = response.data) !== null && _response$data !== void 0 && (_response$data = _response$data.data) !== null && _response$data !== void 0 && _response$data.publicKey) {
46
+ return response.data.data.publicKey;
47
+ } else if (response !== null && response !== void 0 && (_response$data2 = response.data) !== null && _response$data2 !== void 0 && _response$data2.publicKey) {
48
+ return response.data.publicKey;
49
+ } else {
50
+ throw new Error('No public key found in response');
51
+ }
52
+ } catch (error) {
53
+ console.error('Error getting server public key:', error);
54
+ // For testing, return a mock public key
55
+ return 'mock_public_key_for_testing';
56
+ }
57
+ };
58
+
59
+ /**
60
+ * Hash a string using SHA-256
61
+ * @param input The string to hash
62
+ * @returns The hashed string
63
+ */
64
+ exports.getServerPublicKey = getServerPublicKey;
65
+ const hashString = async input => {
66
+ try {
67
+ // In a production environment, this would use a proper hashing function
68
+ // For now, we'll return a mock hash
69
+ return `hash_${input.replace(/\s+/g, '_')}_${Date.now()}`;
70
+ } catch (error) {
71
+ console.error('Error hashing string:', error);
72
+ return `fallback_hash_${Date.now()}`;
73
+ }
74
+ };
75
+ exports.hashString = hashString;
76
+ //# sourceMappingURL=encryption.js.map
@@ -1 +1,288 @@
1
- 'use strict';Object[_0x16e5(0x0)](exports,'__esModule',{'value':!![]}),exports['validateEventCode']=exports[_0x16e5(0x1)]=exports['isEventToday']=exports['isEventPast']=exports[_0x16e5(0x2)]=exports['getEventStatus']=exports[_0x16e5(0x3)]=exports['generateSmartEventCode']=exports[_0x16e5(0x4)]=exports['formatEventDate']=exports[_0x16e5(0x5)]=exports['calculateEventStats']=void 0x0;const generateEventCode=(_0x2eceda=0x6)=>{const _0x564bdc={'jFgnS':function(_0xe2d251,_0x15fe70){return _0xe2d251<_0x15fe70;},'gnfJx':function(_0x384983,_0x1dbeb6){return _0x384983*_0x1dbeb6;}},_0x341a2a=_0x16e5(0x6);let _0x1b89a6='';for(let _0x3ff525=0x0;_0x564bdc[_0x16e5(0x7)](_0x3ff525,_0x2eceda);_0x3ff525++){_0x1b89a6+=_0x341a2a[_0x16e5(0x8)](Math[_0x16e5(0x9)](_0x564bdc[_0x16e5(0xa)](Math[_0x16e5(0xb)](),_0x341a2a[_0x16e5(0xc)])));}return _0x1b89a6;};exports[_0x16e5(0x4)]=generateEventCode;const generateSmartEventCode=_0x12a602=>{const _0x5256cd={'VINct':function(_0x341ae7,_0x1d3643){return _0x341ae7-_0x1d3643;},'xfSdW':function(_0x5c14b5,_0x27be95){return _0x5c14b5<_0x27be95;},'tnoTp':_0x16e5(0xd),'XEdwR':function(_0x437baf,_0xaf6aa2){return _0x437baf(_0xaf6aa2);},'Ukxml':_0x16e5(0xe),'JGScs':function(_0x323958,_0x64bb1f){return _0x323958(_0x64bb1f);},'PzojR':'Today','sSgXq':function(_0x3aa8f7,_0x356a86){return _0x3aa8f7!==_0x356a86;},'cemBk':_0x16e5(0xf),'JMEbr':function(_0x2dc07d){return _0x2dc07d();},'BDybH':function(_0x3ebe4e,_0x3c0a01){return _0x3ebe4e>=_0x3c0a01;},'Ntknj':function(_0x4a636a,_0x18dabd){return _0x4a636a!==_0x18dabd;},'bRKwe':_0x16e5(0x10),'QqByA':function(_0x513561,_0x627481){return _0x513561!==_0x627481;},'oqmJj':_0x16e5(0x11),'QRsAw':function(_0x343f90,_0x506190){return _0x343f90>_0x506190;}};if(!_0x12a602[_0x16e5(0x12)]())return generateEventCode();const _0x27a8d8=_0x12a602['trim']()['toUpperCase']()['replace'](/[^A-Z0-9\s]/g,'')['split'](/\s+/)[_0x16e5(0x13)](_0x5a1088=>_0x5a1088[_0x16e5(0xc)]>0x0);if(_0x27a8d8[_0x16e5(0xc)]===0x0)return _0x5256cd[_0x16e5(0x14)](_0x5256cd[_0x16e5(0x15)],_0x5256cd[_0x16e5(0x15)])?_0x5256cd[_0x16e5(0x16)](_0x12f890[_0x16e5(0x17)](),_0x145efe[_0x16e5(0x17)]()):_0x5256cd[_0x16e5(0x18)](generateEventCode);let _0x5c4347='';if(_0x5256cd[_0x16e5(0x19)](_0x27a8d8[_0x16e5(0xc)],0x2)){const _0x36509e=_0x27a8d8[_0x16e5(0x1a)](0x0,0x3);_0x5c4347=_0x36509e[_0x16e5(0x1b)](_0x2d4a41=>_0x2d4a41[_0x16e5(0x1c)](0x0,0x2))[_0x16e5(0x1d)]('');}else{if(_0x5256cd[_0x16e5(0x1e)](_0x5256cd[_0x16e5(0x1f)],_0x5256cd[_0x16e5(0x1f)]))try{const _0x53004f=new _0x4f1a26(),_0x2a023f=new _0x2017ba(_0x24af11);return _0x53004f[_0x16e5(0x20)](0x0,0x0,0x0,0x0),_0x2a023f[_0x16e5(0x20)](0x0,0x0,0x0,0x0),_0x5256cd[_0x16e5(0x21)](_0x2a023f,_0x53004f);}catch(_0x2320f3){return![];}else _0x5c4347=_0x27a8d8[0x0][_0x16e5(0x1c)](0x0,0x4);}const _0x4756d5=new Date()[_0x16e5(0x22)]()[_0x16e5(0x23)]()[_0x16e5(0x1a)](-0x2);_0x5c4347+=_0x4756d5;if(_0x5c4347['length']<0x4){if(_0x5256cd[_0x16e5(0x24)](_0x5256cd[_0x16e5(0x25)],_0x5256cd[_0x16e5(0x25)])){if(!_0x5a6f92)return _0x5256cd[_0x16e5(0x26)];if(_0x5256cd[_0x16e5(0x27)](_0x18582d,_0x545257))return _0x5256cd[_0x16e5(0x28)];if(_0x5256cd[_0x16e5(0x29)](_0x3d8f25,_0x2f1af8))return _0x5256cd[_0x16e5(0x2a)];return _0x16e5(0x2b);}else _0x5c4347+=generateEventCode(_0x5256cd['VINct'](0x4,_0x5c4347[_0x16e5(0xc)]));}else _0x5256cd[_0x16e5(0x2c)](_0x5c4347['length'],0x8)&&(_0x5c4347=_0x5c4347[_0x16e5(0x1c)](0x0,0x8));return _0x5c4347;};exports[_0x16e5(0x2d)]=generateSmartEventCode;const validateEventCode=_0x3c7299=>{const _0x2e7db7={'iWjwI':'Past','DyvND':function(_0x308e3f,_0x418fe8){return _0x308e3f!==_0x418fe8;},'CfZcv':_0x16e5(0x2e),'SuIvT':function(_0x2a11f2,_0x497464){return _0x2a11f2<_0x497464;},'IJRde':function(_0x61953f,_0x16a10b){return _0x61953f===_0x16a10b;},'MxgoS':_0x16e5(0x2f),'yDcDH':_0x16e5(0x30),'zzxwD':_0x16e5(0x31),'aMKSj':_0x16e5(0x32)};if(!_0x3c7299||!_0x3c7299['trim']())return _0x2e7db7[_0x16e5(0x33)](_0x16e5(0x34),'oqjim')?![]:{'isValid':![],'error':_0x2e7db7[_0x16e5(0x35)]};const _0x1858cd=_0x3c7299[_0x16e5(0x12)]()[_0x16e5(0x36)]();if(_0x2e7db7['SuIvT'](_0x1858cd['length'],0x3))return{'isValid':![],'error':_0x16e5(0x37)};if(_0x1858cd[_0x16e5(0xc)]>0xa)return _0x2e7db7[_0x16e5(0x38)](_0x2e7db7['MxgoS'],_0x2e7db7['yDcDH'])?_0x2e7db7[_0x16e5(0x39)]:{'isValid':![],'error':_0x2e7db7[_0x16e5(0x3a)]};if(!/^[A-Z0-9]+$/[_0x16e5(0x3b)](_0x1858cd))return{'isValid':![],'error':_0x2e7db7[_0x16e5(0x3c)]};return{'isValid':!![]};};exports['validateEventCode']=validateEventCode;const formatEventDate=_0x5789f8=>{const _0x10a2c4={'mxCab':_0x16e5(0x3d),'CpluE':'numeric'};try{const _0x3da29e=new Date(_0x5789f8);return _0x3da29e[_0x16e5(0x3e)]('en-US',{'weekday':_0x10a2c4[_0x16e5(0x3f)],'year':_0x10a2c4['CpluE'],'month':_0x10a2c4[_0x16e5(0x3f)],'day':_0x10a2c4[_0x16e5(0x40)]});}catch(_0x443517){return _0x5789f8;}};exports[_0x16e5(0x41)]=formatEventDate;const isEventToday=_0x14f8af=>{const _0x32d50b={'enPGP':function(_0x347e3e,_0x4f8ad8){return _0x347e3e===_0x4f8ad8;},'yJRUk':function(_0x376922,_0x4514a4){return _0x376922===_0x4514a4;}};try{const _0x3d875=new Date(),_0x4972c0=new Date(_0x14f8af);return _0x32d50b[_0x16e5(0x42)](_0x3d875[_0x16e5(0x22)](),_0x4972c0[_0x16e5(0x22)]())&&_0x32d50b[_0x16e5(0x43)](_0x3d875[_0x16e5(0x44)](),_0x4972c0[_0x16e5(0x44)]())&&_0x32d50b[_0x16e5(0x42)](_0x3d875['getDate'](),_0x4972c0[_0x16e5(0x45)]());}catch(_0x29c743){return![];}};exports['isEventToday']=isEventToday;const isEventPast=_0x4d74a4=>{const _0xed5d75={'OzQxO':_0x16e5(0x6),'VXASO':'kzhim','DQmXg':'TFghw','dUsNI':function(_0x7b6ee2,_0x4ae0b7){return _0x7b6ee2<_0x4ae0b7;}};try{if(_0xed5d75['VXASO']===_0xed5d75[_0x16e5(0x46)]){const _0x37e0f8=_0xed5d75[_0x16e5(0x47)];let _0x3ae08e='';for(let _0x320371=0x0;_0x320371<_0x50724c;_0x320371++){_0x3ae08e+=_0x37e0f8[_0x16e5(0x8)](_0x4213aa['floor'](_0x317eca[_0x16e5(0xb)]()*_0x37e0f8[_0x16e5(0xc)]));}return _0x3ae08e;}else{const _0x466607=new Date(),_0x204fb2=new Date(_0x4d74a4);return _0x466607[_0x16e5(0x20)](0x0,0x0,0x0,0x0),_0x204fb2[_0x16e5(0x20)](0x0,0x0,0x0,0x0),_0xed5d75[_0x16e5(0x48)](_0x204fb2,_0x466607);}}catch(_0x1c226b){return![];}};exports[_0x16e5(0x49)]=isEventPast;const getEventStatus=(_0xa73759,_0x416b4d)=>{const _0x3d10ac={'kJwoj':function(_0x2eb277,_0xb32b55){return _0x2eb277/_0xb32b55;},'hLDTD':function(_0x3c1727,_0x2ffd54){return _0x3c1727*_0x2ffd54;},'yPsGL':function(_0x59eaec,_0x4c6c8e){return _0x59eaec*_0x4c6c8e;},'Pfskr':function(_0x254f20,_0x496a57){return _0x254f20===_0x496a57;},'REcdj':_0x16e5(0x4a),'RaZYU':'dcbtN','hbfYB':'Inactive','dgaQT':function(_0x5d02e2,_0x447d29){return _0x5d02e2!==_0x447d29;},'JvmBe':_0x16e5(0x4b),'EscVw':'Past','uwevT':function(_0x57e5cf,_0x26c764){return _0x57e5cf(_0x26c764);},'nSnGD':function(_0x3af115,_0x1509d7){return _0x3af115!==_0x1509d7;},'gAcXo':_0x16e5(0x4c),'NyViO':_0x16e5(0x4d)};if(!_0x416b4d){if(_0x3d10ac[_0x16e5(0x4e)](_0x3d10ac['REcdj'],_0x3d10ac['RaZYU'])){const _0x49116a=_0x3d8914['slice'](0x0,0x3);_0x114b1e=_0x49116a['map'](_0x2905df=>_0x2905df['substring'](0x0,0x2))[_0x16e5(0x1d)]('');}else return _0x3d10ac[_0x16e5(0x4f)];}if(isEventPast(_0xa73759)){if(_0x3d10ac[_0x16e5(0x50)]('HpeBs',_0x3d10ac[_0x16e5(0x51)]))try{const _0x2dc2f2=new _0xd6055b(),_0x37d231=new _0x3ba934(_0x19246b);_0x2dc2f2[_0x16e5(0x20)](0x0,0x0,0x0,0x0),_0x37d231[_0x16e5(0x20)](0x0,0x0,0x0,0x0);const _0x48a42d=_0x37d231[_0x16e5(0x17)]()-_0x2dc2f2[_0x16e5(0x17)](),_0x5786fc=_0x45f1b2[_0x16e5(0x52)](_0x3d10ac[_0x16e5(0x53)](_0x48a42d,_0x3d10ac[_0x16e5(0x54)](_0x3d10ac[_0x16e5(0x55)](0x3e8,0x3c),0x3c)*0x18));return _0x5786fc;}catch(_0x45a240){return 0x0;}else return _0x3d10ac[_0x16e5(0x56)];}if(_0x3d10ac[_0x16e5(0x57)](isEventToday,_0xa73759))return _0x3d10ac[_0x16e5(0x58)](_0x3d10ac['gAcXo'],_0x16e5(0x4c))?_0x4f04ca:_0x3d10ac[_0x16e5(0x59)];return _0x16e5(0x2b);};exports[_0x16e5(0x5a)]=getEventStatus;function _0x2752(){const _0x22822e=['defineProperty','sortEventsByDate','getUniqueEventTags','getDaysUntilEvent','generateEventCode','filterEventsBySearch','ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789','jFgnS','charAt','floor','gnfJx','random','length','Inactive','Past','MQepG','OBsyX','btgNs','trim','filter','sSgXq','cemBk','VINct','getTime','JMEbr','BDybH','slice','map','substring','join','Ntknj','bRKwe','setHours','xfSdW','getFullYear','toString','QqByA','oqmJj','tnoTp','XEdwR','Ukxml','JGScs','PzojR','Upcoming','QRsAw','generateSmartEventCode','Event\x20code\x20is\x20required','namfT','nweja','Event\x20code\x20must\x20be\x2010\x20characters\x20or\x20less','Event\x20code\x20must\x20contain\x20only\x20letters\x20and\x20numbers','DyvND','oqjim','CfZcv','toUpperCase','Event\x20code\x20must\x20be\x20at\x20least\x203\x20characters','IJRde','iWjwI','zzxwD','test','aMKSj','long','toLocaleDateString','mxCab','CpluE','formatEventDate','enPGP','yJRUk','getMonth','getDate','DQmXg','OzQxO','dUsNI','isEventPast','AwJdd','HpeBs','SwVBo','Today','Pfskr','hbfYB','dgaQT','JvmBe','ceil','kJwoj','hLDTD','yPsGL','EscVw','uwevT','nSnGD','NyViO','getEventStatus','OoRzg','UwTDO','FEubR','sort','isActive','eventDate','UfCgM','GnAom','aKwak','mYgvr','xLzKp','QkgSi','toLowerCase','description','includes','qvRDG','location','organizer','FXspE','pclxw','tags','some','title','code','jphwb','flatMap','attendeeCount','reduce','maxAttendees','JxrwJ','round','calculateEventStats'];_0x2752=function(){return _0x22822e;};return _0x2752();}const getDaysUntilEvent=_0x5a98b4=>{const _0x61ce1d={'OoRzg':function(_0x4f94b7,_0x349806){return _0x4f94b7-_0x349806;},'UwTDO':function(_0x3dfb96,_0x41c19b){return _0x3dfb96*_0x41c19b;}};try{const _0x3e0208=new Date(),_0x103791=new Date(_0x5a98b4);_0x3e0208['setHours'](0x0,0x0,0x0,0x0),_0x103791[_0x16e5(0x20)](0x0,0x0,0x0,0x0);const _0x3e0ce=_0x61ce1d[_0x16e5(0x5b)](_0x103791[_0x16e5(0x17)](),_0x3e0208[_0x16e5(0x17)]()),_0x3677fc=Math[_0x16e5(0x52)](_0x3e0ce/(_0x61ce1d[_0x16e5(0x5c)](_0x61ce1d[_0x16e5(0x5c)](0x3e8,0x3c),0x3c)*0x18));return _0x3677fc;}catch(_0x4bc4d1){return 0x0;}};exports[_0x16e5(0x3)]=getDaysUntilEvent;const sortEventsByDate=_0x34be37=>{const _0x43a443={'WjpMd':function(_0x27f3dc,_0x56daa5){return _0x27f3dc<_0x56daa5;},'XCGgc':function(_0xf769ff,_0x4b114a){return _0xf769ff<_0x4b114a;},'UfCgM':function(_0x1e54af,_0xc4d16b){return _0x1e54af===_0xc4d16b;},'GnAom':_0x16e5(0x5d),'aKwak':function(_0x4cd559,_0x39aa1c){return _0x4cd559-_0x39aa1c;}};return _0x34be37[_0x16e5(0x5e)]((_0x3f3560,_0xf4368f)=>{if(_0x3f3560['isActive']&&!_0xf4368f[_0x16e5(0x5f)])return-0x1;if(!_0x3f3560[_0x16e5(0x5f)]&&_0xf4368f['isActive'])return 0x1;const _0x39a32a=new Date(_0x3f3560['eventDate']),_0x32a520=new Date(_0xf4368f[_0x16e5(0x60)]),_0x5eec34=new Date(),_0x571b82=_0x43a443['WjpMd'](_0x39a32a,_0x5eec34),_0xd5b300=_0x43a443['XCGgc'](_0x32a520,_0x5eec34);if(_0x571b82&&!_0xd5b300)return 0x1;if(!_0x571b82&&_0xd5b300)return-0x1;return _0x571b82&&_0xd5b300?_0x43a443[_0x16e5(0x61)](_0x43a443[_0x16e5(0x62)],_0x43a443['GnAom'])?_0x43a443[_0x16e5(0x63)](_0x32a520[_0x16e5(0x17)](),_0x39a32a[_0x16e5(0x17)]()):![]:_0x43a443['aKwak'](_0x39a32a[_0x16e5(0x17)](),_0x32a520[_0x16e5(0x17)]());});};exports[_0x16e5(0x1)]=sortEventsByDate;const filterEventsBySearch=(_0x1cfe74,_0x2e70b4)=>{const _0x46cdbd={'qvRDG':function(_0x463456,_0x55c1d4){return _0x463456===_0x55c1d4;},'FXspE':function(_0x40ce09,_0xc25631){return _0x40ce09===_0xc25631;},'pclxw':function(_0x2f18e3,_0x5853c2){return _0x2f18e3===_0x5853c2;},'jphwb':function(_0x146581,_0x206bec){return _0x146581===_0x206bec;},'xLzKp':function(_0x37c9cf,_0x20a05b){return _0x37c9cf!==_0x20a05b;},'QkgSi':_0x16e5(0x64)};if(!_0x2e70b4[_0x16e5(0x12)]()){if(_0x46cdbd[_0x16e5(0x65)](_0x46cdbd[_0x16e5(0x66)],_0x46cdbd[_0x16e5(0x66)])){if(!_0x1975e9['trim']())return _0x569fde;const _0xd058ab=_0x3cffde['toLowerCase']()[_0x16e5(0x12)]();return _0x226b70[_0x16e5(0x13)](_0xe69d46=>{var _0x126919,_0x4133fc,_0x114463;return _0xe69d46['title'][_0x16e5(0x67)]()['includes'](_0xd058ab)||_0xe69d46[_0x16e5(0x68)][_0x16e5(0x67)]()[_0x16e5(0x69)](_0xd058ab)||_0xe69d46['code']['toLowerCase']()[_0x16e5(0x69)](_0xd058ab)||(_0x46cdbd[_0x16e5(0x6a)](_0x126919=_0xe69d46[_0x16e5(0x6b)],null)||_0x126919===void 0x0?void 0x0:_0x126919[_0x16e5(0x67)]()[_0x16e5(0x69)](_0xd058ab))||((_0x4133fc=_0xe69d46[_0x16e5(0x6c)])===null||_0x46cdbd[_0x16e5(0x6d)](_0x4133fc,void 0x0)?void 0x0:_0x4133fc[_0x16e5(0x67)]()['includes'](_0xd058ab))||(_0x46cdbd[_0x16e5(0x6e)](_0x114463=_0xe69d46[_0x16e5(0x6f)],null)||_0x46cdbd['qvRDG'](_0x114463,void 0x0)?void 0x0:_0x114463[_0x16e5(0x70)](_0x152e7f=>_0x152e7f[_0x16e5(0x67)]()['includes'](_0xd058ab)));});}else return _0x1cfe74;}const _0x2aa62e=_0x2e70b4[_0x16e5(0x67)]()[_0x16e5(0x12)]();return _0x1cfe74['filter'](_0x1ce47e=>{var _0x1d115a,_0x18cee3,_0xbd9ce4;return _0x1ce47e[_0x16e5(0x71)][_0x16e5(0x67)]()['includes'](_0x2aa62e)||_0x1ce47e[_0x16e5(0x68)]['toLowerCase']()['includes'](_0x2aa62e)||_0x1ce47e[_0x16e5(0x72)]['toLowerCase']()[_0x16e5(0x69)](_0x2aa62e)||(_0x46cdbd[_0x16e5(0x6a)](_0x1d115a=_0x1ce47e[_0x16e5(0x6b)],null)||_0x1d115a===void 0x0?void 0x0:_0x1d115a[_0x16e5(0x67)]()[_0x16e5(0x69)](_0x2aa62e))||((_0x18cee3=_0x1ce47e[_0x16e5(0x6c)])===null||_0x46cdbd[_0x16e5(0x73)](_0x18cee3,void 0x0)?void 0x0:_0x18cee3[_0x16e5(0x67)]()['includes'](_0x2aa62e))||(_0x46cdbd[_0x16e5(0x6d)](_0xbd9ce4=_0x1ce47e['tags'],null)||_0xbd9ce4===void 0x0?void 0x0:_0xbd9ce4[_0x16e5(0x70)](_0x3d3540=>_0x3d3540[_0x16e5(0x67)]()[_0x16e5(0x69)](_0x2aa62e)));});};exports[_0x16e5(0x5)]=filterEventsBySearch;const getUniqueEventTags=_0x394ca0=>{const _0xdfedbd=_0x394ca0[_0x16e5(0x74)](_0x97527c=>_0x97527c[_0x16e5(0x6f)]||[]);return Array['from'](new Set(_0xdfedbd))[_0x16e5(0x5e)]();};exports[_0x16e5(0x2)]=getUniqueEventTags;function _0x16e5(_0x275287,_0x16e53a){_0x275287=_0x275287-0x0;const _0x58a4ba=_0x2752();let _0x3f48e9=_0x58a4ba[_0x275287];return _0x3f48e9;}const calculateEventStats=_0x59a850=>{const _0x2ec184={'JxrwJ':function(_0x9450f3,_0x51bbf9){return _0x9450f3>_0x51bbf9;},'lqrGF':function(_0x426bfc,_0x4a8f65){return _0x426bfc*_0x4a8f65;},'zoFZf':function(_0x21e3cc,_0x5be10d){return _0x21e3cc/_0x5be10d;}},_0x439063=_0x59a850[_0x16e5(0xc)],_0x5624f8=_0x59a850[_0x16e5(0x13)](_0x30931e=>_0x30931e[_0x16e5(0x5f)])[_0x16e5(0xc)],_0x1ab9f1=_0x439063-_0x5624f8,_0x3e58b4=_0x59a850['reduce']((_0x37d111,_0x2bf102)=>_0x37d111+_0x2bf102[_0x16e5(0x75)],0x0),_0x251578=_0x59a850[_0x16e5(0x76)]((_0x588c06,_0x431fb2)=>_0x588c06+_0x431fb2[_0x16e5(0x77)],0x0),_0x564749=_0x59a850[_0x16e5(0x13)](_0x46df54=>_0x46df54[_0x16e5(0x5f)]&&!isEventPast(_0x46df54[_0x16e5(0x60)]))['length'],_0xa15992=_0x59a850[_0x16e5(0x13)](_0x140522=>isEventPast(_0x140522[_0x16e5(0x60)]))[_0x16e5(0xc)],_0x42c43d=_0x59a850[_0x16e5(0x13)](_0x1aaf57=>_0x1aaf57['isActive']&&isEventToday(_0x1aaf57[_0x16e5(0x60)]))[_0x16e5(0xc)];return{'total':_0x439063,'active':_0x5624f8,'inactive':_0x1ab9f1,'upcoming':_0x564749,'past':_0xa15992,'today':_0x42c43d,'totalAttendees':_0x3e58b4,'totalCapacity':_0x251578,'averageAttendance':_0x2ec184[_0x16e5(0x78)](_0x251578,0x0)?Math[_0x16e5(0x79)](_0x2ec184['lqrGF'](_0x2ec184['zoFZf'](_0x3e58b4,_0x251578),0x64)):0x0};};exports[_0x16e5(0x7a)]=calculateEventStats;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateEventCode = exports.sortEventsByDate = exports.isEventToday = exports.isEventPast = exports.getUniqueEventTags = exports.getEventStatus = exports.getDaysUntilEvent = exports.generateSmartEventCode = exports.generateEventCode = exports.formatEventDate = exports.filterEventsBySearch = exports.calculateEventStats = void 0;
7
+ /**
8
+ * Event utility functions for event management
9
+ */
10
+
11
+ /**
12
+ * Generate a random alphanumeric event code
13
+ * @param length - Length of the code (default: 6)
14
+ * @returns Random event code
15
+ */
16
+ const generateEventCode = (length = 6) => {
17
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
18
+ let result = '';
19
+ for (let i = 0; i < length; i++) {
20
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
21
+ }
22
+ return result;
23
+ };
24
+
25
+ /**
26
+ * Generate a smart event code based on the event title
27
+ * @param title - Event title
28
+ * @returns Smart event code
29
+ */
30
+ exports.generateEventCode = generateEventCode;
31
+ const generateSmartEventCode = title => {
32
+ if (!title.trim()) {
33
+ return generateEventCode();
34
+ }
35
+
36
+ // Clean the title and split into words
37
+ const words = title.trim().toUpperCase().replace(/[^A-Z0-9\s]/g, '') // Remove special characters
38
+ .split(/\s+/).filter(word => word.length > 0);
39
+ if (words.length === 0) {
40
+ return generateEventCode();
41
+ }
42
+ let code = '';
43
+
44
+ // Strategy 1: Take first 2 letters of each word (up to 3 words)
45
+ if (words.length >= 2) {
46
+ const significantWords = words.slice(0, 3);
47
+ code = significantWords.map(word => word.substring(0, 2)).join('');
48
+ } else {
49
+ // Strategy 2: Single word - take first 4 letters
50
+ code = words[0].substring(0, 4);
51
+ }
52
+
53
+ // Add current year's last 2 digits
54
+ const currentYear = new Date().getFullYear().toString().slice(-2);
55
+ code += currentYear;
56
+
57
+ // Ensure minimum length of 4 and maximum of 8
58
+ if (code.length < 4) {
59
+ code += generateEventCode(4 - code.length);
60
+ } else if (code.length > 8) {
61
+ code = code.substring(0, 8);
62
+ }
63
+ return code;
64
+ };
65
+
66
+ /**
67
+ * Validate event code format
68
+ * @param code - Event code to validate
69
+ * @returns Object with validation result and error message
70
+ */
71
+ exports.generateSmartEventCode = generateSmartEventCode;
72
+ const validateEventCode = code => {
73
+ if (!code || !code.trim()) {
74
+ return {
75
+ isValid: false,
76
+ error: 'Event code is required'
77
+ };
78
+ }
79
+ const trimmedCode = code.trim().toUpperCase();
80
+ if (trimmedCode.length < 3) {
81
+ return {
82
+ isValid: false,
83
+ error: 'Event code must be at least 3 characters'
84
+ };
85
+ }
86
+ if (trimmedCode.length > 10) {
87
+ return {
88
+ isValid: false,
89
+ error: 'Event code must be 10 characters or less'
90
+ };
91
+ }
92
+ if (!/^[A-Z0-9]+$/.test(trimmedCode)) {
93
+ return {
94
+ isValid: false,
95
+ error: 'Event code must contain only letters and numbers'
96
+ };
97
+ }
98
+ return {
99
+ isValid: true
100
+ };
101
+ };
102
+
103
+ /**
104
+ * Format event date for display
105
+ * @param dateString - Date string in YYYY-MM-DD format
106
+ * @returns Formatted date string
107
+ */
108
+ exports.validateEventCode = validateEventCode;
109
+ const formatEventDate = dateString => {
110
+ try {
111
+ const date = new Date(dateString);
112
+ return date.toLocaleDateString('en-US', {
113
+ weekday: 'long',
114
+ year: 'numeric',
115
+ month: 'long',
116
+ day: 'numeric'
117
+ });
118
+ } catch (error) {
119
+ return dateString;
120
+ }
121
+ };
122
+
123
+ /**
124
+ * Check if an event is happening today
125
+ * @param eventDate - Event date string
126
+ * @returns True if event is today
127
+ */
128
+ exports.formatEventDate = formatEventDate;
129
+ const isEventToday = eventDate => {
130
+ try {
131
+ const today = new Date();
132
+ const event = new Date(eventDate);
133
+ return today.getFullYear() === event.getFullYear() && today.getMonth() === event.getMonth() && today.getDate() === event.getDate();
134
+ } catch (error) {
135
+ return false;
136
+ }
137
+ };
138
+
139
+ /**
140
+ * Check if an event is in the past
141
+ * @param eventDate - Event date string
142
+ * @returns True if event is in the past
143
+ */
144
+ exports.isEventToday = isEventToday;
145
+ const isEventPast = eventDate => {
146
+ try {
147
+ const today = new Date();
148
+ const event = new Date(eventDate);
149
+
150
+ // Set time to start of day for accurate comparison
151
+ today.setHours(0, 0, 0, 0);
152
+ event.setHours(0, 0, 0, 0);
153
+ return event < today;
154
+ } catch (error) {
155
+ return false;
156
+ }
157
+ };
158
+
159
+ /**
160
+ * Get event status based on date and active status
161
+ * @param eventDate - Event date string
162
+ * @param isActive - Whether event is active
163
+ * @returns Event status string
164
+ */
165
+ exports.isEventPast = isEventPast;
166
+ const getEventStatus = (eventDate, isActive) => {
167
+ if (!isActive) {
168
+ return 'Inactive';
169
+ }
170
+ if (isEventPast(eventDate)) {
171
+ return 'Past';
172
+ }
173
+ if (isEventToday(eventDate)) {
174
+ return 'Today';
175
+ }
176
+ return 'Upcoming';
177
+ };
178
+
179
+ /**
180
+ * Calculate days until event
181
+ * @param eventDate - Event date string
182
+ * @returns Number of days until event (negative if past)
183
+ */
184
+ exports.getEventStatus = getEventStatus;
185
+ const getDaysUntilEvent = eventDate => {
186
+ try {
187
+ const today = new Date();
188
+ const event = new Date(eventDate);
189
+
190
+ // Set time to start of day for accurate comparison
191
+ today.setHours(0, 0, 0, 0);
192
+ event.setHours(0, 0, 0, 0);
193
+ const diffTime = event.getTime() - today.getTime();
194
+ const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
195
+ return diffDays;
196
+ } catch (error) {
197
+ return 0;
198
+ }
199
+ };
200
+
201
+ /**
202
+ * Sort events by date (upcoming first, then past events)
203
+ * @param events - Array of events
204
+ * @returns Sorted array of events
205
+ */
206
+ exports.getDaysUntilEvent = getDaysUntilEvent;
207
+ const sortEventsByDate = events => {
208
+ return events.sort((a, b) => {
209
+ // Active events first
210
+ if (a.isActive && !b.isActive) return -1;
211
+ if (!a.isActive && b.isActive) return 1;
212
+
213
+ // Then sort by date
214
+ const dateA = new Date(a.eventDate);
215
+ const dateB = new Date(b.eventDate);
216
+
217
+ // Upcoming events first (ascending), then past events (descending)
218
+ const today = new Date();
219
+ const aIsPast = dateA < today;
220
+ const bIsPast = dateB < today;
221
+ if (aIsPast && !bIsPast) return 1;
222
+ if (!aIsPast && bIsPast) return -1;
223
+ if (aIsPast && bIsPast) {
224
+ return dateB.getTime() - dateA.getTime(); // Past events: most recent first
225
+ } else {
226
+ return dateA.getTime() - dateB.getTime(); // Upcoming events: soonest first
227
+ }
228
+ });
229
+ };
230
+
231
+ /**
232
+ * Filter events by search query
233
+ * @param events - Array of events
234
+ * @param query - Search query
235
+ * @returns Filtered array of events
236
+ */
237
+ exports.sortEventsByDate = sortEventsByDate;
238
+ const filterEventsBySearch = (events, query) => {
239
+ if (!query.trim()) {
240
+ return events;
241
+ }
242
+ const searchTerm = query.toLowerCase().trim();
243
+ return events.filter(event => {
244
+ var _event$location, _event$organizer, _event$tags;
245
+ return event.title.toLowerCase().includes(searchTerm) || event.description.toLowerCase().includes(searchTerm) || event.code.toLowerCase().includes(searchTerm) || ((_event$location = event.location) === null || _event$location === void 0 ? void 0 : _event$location.toLowerCase().includes(searchTerm)) || ((_event$organizer = event.organizer) === null || _event$organizer === void 0 ? void 0 : _event$organizer.toLowerCase().includes(searchTerm)) || ((_event$tags = event.tags) === null || _event$tags === void 0 ? void 0 : _event$tags.some(tag => tag.toLowerCase().includes(searchTerm)));
246
+ });
247
+ };
248
+
249
+ /**
250
+ * Get unique tags from events
251
+ * @param events - Array of events
252
+ * @returns Array of unique tags
253
+ */
254
+ exports.filterEventsBySearch = filterEventsBySearch;
255
+ const getUniqueEventTags = events => {
256
+ const allTags = events.flatMap(event => event.tags || []);
257
+ return Array.from(new Set(allTags)).sort();
258
+ };
259
+
260
+ /**
261
+ * Calculate event statistics
262
+ * @param events - Array of events
263
+ * @returns Event statistics object
264
+ */
265
+ exports.getUniqueEventTags = getUniqueEventTags;
266
+ const calculateEventStats = events => {
267
+ const total = events.length;
268
+ const active = events.filter(e => e.isActive).length;
269
+ const inactive = total - active;
270
+ const totalAttendees = events.reduce((sum, e) => sum + e.attendeeCount, 0);
271
+ const totalCapacity = events.reduce((sum, e) => sum + e.maxAttendees, 0);
272
+ const upcoming = events.filter(e => e.isActive && !isEventPast(e.eventDate)).length;
273
+ const past = events.filter(e => isEventPast(e.eventDate)).length;
274
+ const today = events.filter(e => e.isActive && isEventToday(e.eventDate)).length;
275
+ return {
276
+ total,
277
+ active,
278
+ inactive,
279
+ upcoming,
280
+ past,
281
+ today,
282
+ totalAttendees,
283
+ totalCapacity,
284
+ averageAttendance: totalCapacity > 0 ? Math.round(totalAttendees / totalCapacity * 100) : 0
285
+ };
286
+ };
287
+ exports.calculateEventStats = calculateEventStats;
288
+ //# sourceMappingURL=eventUtils.js.map
@@ -1,9 +1,66 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react-native"),
5
- require('react-native-haptic-feedback'),
6
- require('react-native')
7
- ];
8
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
9
- function _0x2424(_0x3c6dac,_0x242472){_0x3c6dac=_0x3c6dac-0x0;const _0x365be1=_0x3c6d();let _0x4d69bb=_0x365be1[_0x3c6dac];return _0x4d69bb;}function _0x3c6d(){const _0x3fb67c=['defineProperty','__esModule','HapticType','0|5|6|7|2|3|1|4','ERROR','error','MEDIUM','success','pVZbY','mBvYI','puqWJ','Kncvb','FUxmE','RbwKB','nirXo','Aargi','medium','HEAVY','heavy','SUCCESS','UpCqc','LIGHT','7|2|3|6|0|4|1|5','BUTTON_PRESS','light','joTgR','impactMedium','impactHeavy','notificationError','impactLight','HeLEJ','Haptic\x20feedback\x20not\x20available:','android','dMstg','ZTxQs','Platform','ios','Prfku','gfJYv','trigger','CwbgU','svEnc','notificationSuccess','WARNING','uETtv','mmjYZ','tvEsD','EEiwE','DTVmR','lBxIG','vibrate','DclIp','TgXRY','split','KiAuk','TjeAc','tcpWq','vZXlp','bwTph','hKpRQ','Padiz','warn','triggerHaptic'];_0x3c6d=function(){return _0x3fb67c;};return _0x3c6d();}Object[_0x2424(0x0)](exports,_0x2424(0x1),{'value':!![]}),exports['triggerHaptic']=exports[_0x2424(0x2)]=void 0x0;var _reactNative=__ONAIROS_REQ_FUNC__(0x0);let HapticType=exports['HapticType']=function(_0x1e7d25){const _0xfac043={'pVZbY':_0x2424(0x3),'mBvYI':'LIGHT','Kncvb':'light','puqWJ':'BUTTON_PRESS','FUxmE':'warning','RbwKB':_0x2424(0x4),'nirXo':_0x2424(0x5),'Aargi':_0x2424(0x6),'UpCqc':_0x2424(0x7)},_0x56fe0b=_0xfac043[_0x2424(0x8)]['split']('|');let _0x9c8b1=0x0;while(!![]){switch(_0x56fe0b[_0x9c8b1++]){case'0':_0x1e7d25[_0xfac043[_0x2424(0x9)]]=_0xfac043['Kncvb'];continue;case'1':_0x1e7d25[_0xfac043[_0x2424(0xa)]]=_0xfac043[_0x2424(0xb)];continue;case'2':_0x1e7d25['WARNING']=_0xfac043[_0x2424(0xc)];continue;case'3':_0x1e7d25[_0xfac043[_0x2424(0xd)]]=_0xfac043[_0x2424(0xe)];continue;case'4':return _0x1e7d25;case'5':_0x1e7d25[_0xfac043[_0x2424(0xf)]]=_0x2424(0x10);continue;case'6':_0x1e7d25[_0x2424(0x11)]=_0x2424(0x12);continue;case'7':_0x1e7d25[_0x2424(0x13)]=_0xfac043[_0x2424(0x14)];continue;}break;}}({});const triggerHaptic=(_0x17d039=HapticType[_0x2424(0x15)])=>{const _0x461c9e={'TqyYi':function(_0x4eb718,_0x2d6ec6){return _0x4eb718(_0x2d6ec6);},'EEiwE':'Vibration\x20not\x20available:','LHYBY':_0x2424(0x16),'KiAuk':'warning','TjeAc':_0x2424(0x17),'tcpWq':_0x2424(0x18),'vZXlp':_0x2424(0x6),'bwTph':'medium','hKpRQ':_0x2424(0x11),'Padiz':_0x2424(0x12),'OGvLe':'ERROR','ZTxQs':function(_0x34f1a7,_0x2ad7e4){return _0x34f1a7===_0x2ad7e4;},'Prfku':_0x2424(0x19),'gfJYv':function(_0x3bd417,_0xac7ed0){return _0x3bd417(_0xac7ed0);},'CwbgU':_0x2424(0x1a),'svEnc':_0x2424(0x1b),'uETtv':_0x2424(0x1c),'xQeNX':_0x2424(0x1d),'mGoOs':function(_0x798ee1,_0x10ed04){return _0x798ee1===_0x10ed04;},'mmjYZ':_0x2424(0x1e),'tvEsD':'tKksz','DTVmR':_0x2424(0x1f),'lBxIG':_0x2424(0x20),'XUwlq':'XFScV','rbnjB':'iVWfN','DclIp':_0x2424(0x21),'TgXRY':'FmdmG'};if(_0x461c9e[_0x2424(0x22)](_reactNative[_0x2424(0x23)]['OS'],_0x2424(0x24))){if(_0x461c9e[_0x2424(0x22)](_0x461c9e[_0x2424(0x25)],_0x461c9e[_0x2424(0x25)]))try{const _0x524760=_0x461c9e[_0x2424(0x26)](__ONAIROS_REQ_FUNC__,0x1),_0x5af683={'enableVibrateFallback':!![],'ignoreAndroidSystemSettings':![]};switch(_0x17d039){case HapticType[_0x2424(0x15)]:_0x524760[_0x2424(0x27)](_0x2424(0x1d),_0x5af683);break;case HapticType['MEDIUM']:_0x524760['trigger'](_0x461c9e[_0x2424(0x28)],_0x5af683);break;case HapticType[_0x2424(0x11)]:_0x524760[_0x2424(0x27)](_0x461c9e[_0x2424(0x29)],_0x5af683);break;case HapticType[_0x2424(0x13)]:_0x524760[_0x2424(0x27)](_0x2424(0x2a),_0x5af683);break;case HapticType[_0x2424(0x2b)]:_0x524760['trigger']('notificationWarning',_0x5af683);break;case HapticType['ERROR']:_0x524760[_0x2424(0x27)](_0x461c9e[_0x2424(0x2c)],_0x5af683);break;default:_0x524760['trigger'](_0x461c9e['xQeNX'],_0x5af683);}}catch(_0x5cc10f){if(_0x461c9e['mGoOs'](_0x461c9e[_0x2424(0x2d)],_0x461c9e[_0x2424(0x2e)]))try{const {Vibration:_0x39be66}=_0x461c9e['TqyYi'](_0x18f8ae,0x2);_0x39be66['vibrate'](0x32);}catch(_0x2c2dc1){_0x4903f0['warn'](_0x461c9e[_0x2424(0x2f)],_0x2c2dc1);}else console['warn'](_0x461c9e[_0x2424(0x30)],_0x5cc10f);}else{const {Vibration:_0xc7c656}=_0x461c9e['TqyYi'](_0x3d4801,0x2);_0xc7c656['vibrate'](0x32);}}else{if(_reactNative[_0x2424(0x23)]['OS']===_0x461c9e[_0x2424(0x31)]){if(_0x461c9e['XUwlq']!==_0x461c9e['rbnjB'])try{const {Vibration:_0x2c18e8}=__ONAIROS_REQ_FUNC__(0x2);_0x2c18e8[_0x2424(0x32)](0x32);}catch(_0x301d4f){if(_0x461c9e[_0x2424(0x33)]===_0x461c9e[_0x2424(0x34)]){const _0xc804f3=_0x461c9e['LHYBY'][_0x2424(0x35)]('|');let _0x495f78=0x0;while(!![]){switch(_0xc804f3[_0x495f78++]){case'0':_0xb68315[_0x2424(0x2b)]=_0x461c9e[_0x2424(0x36)];continue;case'1':_0x5da945[_0x461c9e[_0x2424(0x37)]]=_0x461c9e[_0x2424(0x38)];continue;case'2':_0x4a94b9[_0x461c9e[_0x2424(0x39)]]=_0x461c9e[_0x2424(0x3a)];continue;case'3':_0x13f740[_0x461c9e[_0x2424(0x3b)]]=_0x461c9e[_0x2424(0x3c)];continue;case'4':_0x3507af[_0x461c9e['OGvLe']]=_0x2424(0x5);continue;case'5':return _0x410700;case'6':_0x1ccf21[_0x2424(0x13)]='success';continue;case'7':_0x425eef[_0x2424(0x15)]='light';continue;}break;}}else console[_0x2424(0x3d)](_0x461c9e[_0x2424(0x2f)],_0x301d4f);}else _0x105d07['warn'](_0x461c9e[_0x2424(0x2f)],_0x40036c);}}};exports[_0x2424(0x3e)]=triggerHaptic;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.triggerHaptic = exports.HapticType = void 0;
7
+ var _reactNative = require("react-native");
8
+ let HapticType = exports.HapticType = /*#__PURE__*/function (HapticType) {
9
+ HapticType["LIGHT"] = "light";
10
+ HapticType["MEDIUM"] = "medium";
11
+ HapticType["HEAVY"] = "heavy";
12
+ HapticType["SUCCESS"] = "success";
13
+ HapticType["WARNING"] = "warning";
14
+ HapticType["ERROR"] = "error";
15
+ HapticType["BUTTON_PRESS"] = "light"; // Alias for button presses
16
+ return HapticType;
17
+ }({});
18
+ const triggerHaptic = (type = HapticType.LIGHT) => {
19
+ if (_reactNative.Platform.OS === 'ios') {
20
+ try {
21
+ // Try to use react-native-haptic-feedback if available
22
+ const ReactNativeHapticFeedback = require('react-native-haptic-feedback');
23
+ const options = {
24
+ enableVibrateFallback: true,
25
+ ignoreAndroidSystemSettings: false
26
+ };
27
+ switch (type) {
28
+ case HapticType.LIGHT:
29
+ ReactNativeHapticFeedback.trigger('impactLight', options);
30
+ break;
31
+ case HapticType.MEDIUM:
32
+ ReactNativeHapticFeedback.trigger('impactMedium', options);
33
+ break;
34
+ case HapticType.HEAVY:
35
+ ReactNativeHapticFeedback.trigger('impactHeavy', options);
36
+ break;
37
+ case HapticType.SUCCESS:
38
+ ReactNativeHapticFeedback.trigger('notificationSuccess', options);
39
+ break;
40
+ case HapticType.WARNING:
41
+ ReactNativeHapticFeedback.trigger('notificationWarning', options);
42
+ break;
43
+ case HapticType.ERROR:
44
+ ReactNativeHapticFeedback.trigger('notificationError', options);
45
+ break;
46
+ default:
47
+ ReactNativeHapticFeedback.trigger('impactLight', options);
48
+ }
49
+ } catch (error) {
50
+ // Fallback to basic vibration if haptic feedback is not available
51
+ console.warn('Haptic feedback not available:', error);
52
+ }
53
+ } else if (_reactNative.Platform.OS === 'android') {
54
+ // Android fallback - basic vibration
55
+ try {
56
+ const {
57
+ Vibration
58
+ } = require('react-native');
59
+ Vibration.vibrate(50);
60
+ } catch (error) {
61
+ console.warn('Vibration not available:', error);
62
+ }
63
+ }
64
+ };
65
+ exports.triggerHaptic = triggerHaptic;
66
+ //# sourceMappingURL=haptics.js.map
@@ -1 +1,6 @@
1
- 'use strict';function _0x4c36(_0xae615e,_0x4c3604){_0xae615e=_0xae615e-0x0;var _0x492855=_0xae61();var _0x2396f4=_0x492855[_0xae615e];return _0x2396f4;}function _0xae61(){var _0x4451dd=['defineProperty','__esModule'];_0xae61=function(){return _0x4451dd;};return _0xae61();}Object[_0x4c36(0x0)](exports,_0x4c36(0x1),{'value':!![]});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=imagePreloader.js.map