react-native-inapp-inspector 2.4.2 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +523 -2
- package/dist/commonjs/capture.d.ts +2 -0
- package/dist/commonjs/capture.js +1 -1
- package/dist/commonjs/components/AnalyticsDetail.js +23 -23
- package/dist/commonjs/components/AnalyticsEventCard.js +1 -1
- package/dist/commonjs/components/AnalyticsGraph.js +44 -44
- package/dist/commonjs/components/AnimatedBrandOwl.js +32 -32
- package/dist/commonjs/components/AppHeaderLogo.js +6 -6
- package/dist/commonjs/components/BrandCircleIcon.js +28 -28
- package/dist/commonjs/components/BrandSquareIcon.js +33 -33
- package/dist/commonjs/components/ConsoleLogCard.js +1 -1
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +2 -2
- package/dist/commonjs/components/Inspector/ConfirmationModal.js +23 -25
- package/dist/commonjs/components/Inspector/ConsoleTab.js +5 -5
- package/dist/commonjs/components/Inspector/CrashTab.js +44 -11
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +1 -1
- package/dist/commonjs/components/Inspector/FabLauncher.js +30 -25
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +54 -0
- package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
- package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.js +234 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +137 -127
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +1 -1
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +114 -32
- package/dist/commonjs/components/Inspector/MainScreen.js +26 -19
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +38 -35
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +36 -0
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +345 -123
- package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
- package/dist/commonjs/components/Inspector/PushCard.js +1 -1
- package/dist/commonjs/components/Inspector/PushDetail.js +9 -9
- package/dist/commonjs/components/Inspector/PushTab.js +3 -3
- package/dist/commonjs/components/Inspector/ReduxTab.js +9 -7
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +43 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.js +102 -73
- package/dist/commonjs/components/Inspector/SocketCard.js +1 -1
- package/dist/commonjs/components/Inspector/SocketDetail.js +73 -63
- package/dist/commonjs/components/Inspector/SocketTab.js +4 -4
- package/dist/commonjs/components/Inspector/StorageTab.js +10 -10
- package/dist/commonjs/components/Inspector/SupportModal.js +2 -2
- package/dist/commonjs/components/Inspector/SupportPage.js +1 -1
- package/dist/commonjs/components/JsonViewer.js +47 -45
- package/dist/commonjs/components/LogCard.js +22 -20
- package/dist/commonjs/components/ModuleErrorBoundary.js +5 -5
- package/dist/commonjs/components/NetworkIcons.d.ts +27 -0
- package/dist/commonjs/components/NetworkIcons.js +103 -5
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/crash.d.ts +1 -1
- package/dist/commonjs/crash.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +2 -1
- package/dist/commonjs/customHooks/crashHandler.js +7 -7
- package/dist/commonjs/editor.d.ts +13 -0
- package/dist/commonjs/editor.js +1 -0
- package/dist/commonjs/helpers/index.d.ts +1 -0
- package/dist/commonjs/helpers/index.js +1 -1
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/helpers/telemetry.js +1 -1
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -1
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -1
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -1
- package/dist/commonjs/i18n/locales/it.json +1 -1
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -1
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -1
- package/dist/commonjs/i18n/locales/mr.json +1 -1
- package/dist/commonjs/i18n/locales/nl.json +1 -1
- package/dist/commonjs/i18n/locales/pa.json +1 -1
- package/dist/commonjs/i18n/locales/pl.json +1 -1
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -1
- package/dist/commonjs/i18n/locales/te.json +1 -1
- package/dist/commonjs/i18n/locales/tr.json +1 -1
- package/dist/commonjs/i18n/locales/vi.json +1 -1
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +4 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/native/NativeInspector.d.ts +3 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
- package/dist/commonjs/styles/AppColors.d.ts +42 -2
- package/dist/commonjs/styles/AppColors.js +1 -1
- package/dist/commonjs/styles/common.js +1 -1
- package/dist/commonjs/styles/index.d.ts +7 -0
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/editor.d.ts +96 -0
- package/dist/commonjs/types/editor.js +1 -0
- package/dist/commonjs/types/interfaces.d.ts +21 -0
- package/dist/esm/capture.d.ts +2 -0
- package/dist/esm/capture.js +1 -1
- package/dist/esm/components/AnalyticsDetail.js +31 -31
- package/dist/esm/components/AnalyticsEventCard.js +1 -1
- package/dist/esm/components/AnalyticsGraph.js +74 -74
- package/dist/esm/components/AnimatedBrandOwl.js +114 -114
- package/dist/esm/components/AppHeaderLogo.js +7 -7
- package/dist/esm/components/BrandCircleIcon.js +70 -70
- package/dist/esm/components/BrandSquareIcon.js +61 -61
- package/dist/esm/components/ConsoleLogCard.js +1 -1
- package/dist/esm/components/Inspector/AnalyticsTab.js +14 -14
- package/dist/esm/components/Inspector/ConfirmationModal.js +23 -25
- package/dist/esm/components/Inspector/ConsoleTab.js +17 -17
- package/dist/esm/components/Inspector/CrashTab.js +202 -169
- package/dist/esm/components/Inspector/DeviceInfoTab.js +75 -75
- package/dist/esm/components/Inspector/FabLauncher.js +56 -51
- package/dist/esm/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +54 -0
- package/dist/esm/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
- package/dist/esm/components/Inspector/GlobalCrashScreenModal.js +234 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +162 -152
- package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +1 -1
- package/dist/esm/components/Inspector/LanguageSelectorModal.js +140 -58
- package/dist/esm/components/Inspector/MainScreen.js +61 -54
- package/dist/esm/components/Inspector/MediaGalleryTab.js +55 -52
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +36 -0
- package/dist/esm/components/Inspector/MediaPreviewModal.js +345 -123
- package/dist/esm/components/Inspector/NetworkTab.js +74 -74
- package/dist/esm/components/Inspector/PushCard.js +1 -1
- package/dist/esm/components/Inspector/PushDetail.js +18 -18
- package/dist/esm/components/Inspector/PushTab.js +1 -1
- package/dist/esm/components/Inspector/ReduxTab.js +18 -16
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +43 -0
- package/dist/esm/components/Inspector/SettingsPanel.js +224 -195
- package/dist/esm/components/Inspector/SocketCard.js +8 -8
- package/dist/esm/components/Inspector/SocketDetail.js +106 -96
- package/dist/esm/components/Inspector/SocketTab.js +18 -18
- package/dist/esm/components/Inspector/StorageTab.js +47 -47
- package/dist/esm/components/Inspector/SupportModal.js +64 -64
- package/dist/esm/components/Inspector/SupportPage.js +5 -5
- package/dist/esm/components/JsonViewer.js +51 -49
- package/dist/esm/components/LogCard.js +41 -39
- package/dist/esm/components/ModuleErrorBoundary.js +10 -10
- package/dist/esm/components/NetworkIcons.d.ts +27 -0
- package/dist/esm/components/NetworkIcons.js +101 -3
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/crash.d.ts +1 -1
- package/dist/esm/crash.js +1 -1
- package/dist/esm/customHooks/crashHandler.d.ts +2 -1
- package/dist/esm/customHooks/crashHandler.js +7 -7
- package/dist/esm/editor.d.ts +13 -0
- package/dist/esm/editor.js +1 -0
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/helpers/telemetry.js +1 -1
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -1
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -1
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -1
- package/dist/esm/i18n/locales/it.json +1 -1
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -1
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -1
- package/dist/esm/i18n/locales/mr.json +1 -1
- package/dist/esm/i18n/locales/nl.json +1 -1
- package/dist/esm/i18n/locales/pa.json +1 -1
- package/dist/esm/i18n/locales/pl.json +1 -1
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -1
- package/dist/esm/i18n/locales/te.json +1 -1
- package/dist/esm/i18n/locales/tr.json +1 -1
- package/dist/esm/i18n/locales/vi.json +1 -1
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/native/NativeInspector.d.ts +3 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
- package/dist/esm/styles/AppColors.d.ts +42 -2
- package/dist/esm/styles/AppColors.js +1 -1
- package/dist/esm/styles/common.js +1 -1
- package/dist/esm/styles/index.d.ts +7 -0
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/editor.d.ts +96 -0
- package/dist/esm/types/editor.js +1 -0
- package/dist/esm/types/interfaces.d.ts +21 -0
- package/editor.d.ts +1 -0
- package/editor.js +1 -0
- package/ios/NetworkInspectorModule.mm +429 -0
- package/package.json +10 -1
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/native/NativeInspector.ts +57 -4
- package/src/native/NativeNetworkInspector.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setTelemetryEnabled=setTelemetryEnabled,exports.markSearchFilterUsed=markSearchFilterUsed,exports.trackActiveTelemetryHeartbeat=trackActiveTelemetryHeartbeat,exports.trackTelemetryEvent=trackTelemetryEvent,exports.trackInspectorTabView=trackInspectorTabView,exports.trackInspectorScreenView=trackInspectorScreenView,exports.trackInspectorScreenRecord=trackInspectorScreenRecord;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),version_1=require("../constants/version"),settingsStore_1=require("./settingsStore"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),networkLogger_1=require("../customHooks/networkLogger"),NativeInspector_1=require("../native/NativeInspector"),index_1=require("./index"),telemetryConfig_1=require("../constants/telemetryConfig"),PKG_NAME="react-native-inapp-inspector",KEY_MATERIAL=`${PKG_NAME}::${telemetryConfig_1.TELEMETRY_SALT}`;function getKeystream(t,o){const i=[];let r=1518500249;for(let a=0;a<o;a++){const e=t.charCodeAt(a%t.length);r=(r*31+e*17+a*13^r>>>7)&4294967295,i.push(r>>>a%24&255)}return i}function deobfuscate(t){if(!t)return"";const o=[];for(let a=0;a<t.length;a+=2)o.push(parseInt(t.substring(a,a+2),16));const i=getKeystream(KEY_MATERIAL,o.length),r=[];for(let a=0;a<o.length;a++){const e=i[a],l=telemetryConfig_1.TELEMETRY_SALT.charCodeAt(a%telemetryConfig_1.TELEMETRY_SALT.length),c=(o[a]^e^l)&255;r.push(String.fromCharCode(c))}return r.join("")}let _cachedMid=null,_cachedSec=null;function getCredentials(){if(_cachedMid!==null&&_cachedSec!==null)return{measurementId:_cachedMid,apiSecret:_cachedSec};if(!telemetryConfig_1.ENC_MID||!telemetryConfig_1.ENC_SEC||!telemetryConfig_1.TELEMETRY_SALT)return _cachedMid="",_cachedSec="",{measurementId:"",apiSecret:""};try{_cachedMid=deobfuscate(telemetryConfig_1.ENC_MID),_cachedSec=deobfuscate(telemetryConfig_1.ENC_SEC)}catch{_cachedMid="",_cachedSec=""}return{measurementId:_cachedMid,apiSecret:_cachedSec}}function getCollectUrl(){const{measurementId:t,apiSecret:o}=getCredentials();return!t||!o?"":`https://www.google-analytics.com/mp/collect?measurement_id=${t}&api_secret=${o}`}const PING_INTERVAL_MS=1440*60*1e3;let isTelemetryEnabled=!0,_hasSearchFilterBeenUsed=!1;function setTelemetryEnabled(t){isTelemetryEnabled=t}function markSearchFilterUsed(){_hasSearchFilterBeenUsed=!0}async function getOrCreateClientId(){try{const t=await(0,settingsStore_1.loadSettings)();if(t.telemetryClientId||t.telemetryDeviceId){const e=t.telemetryClientId||t.telemetryDeviceId||"";return t.telemetryDeviceId||await(0,settingsStore_1.saveSettings)({...t,telemetryDeviceId:e}),e}const o=Math.floor(1e8+Math.random()*9e8),i=Math.floor(1e9+Math.random()*9e9),r=`${o}.${i}`,a=Date.now();return await(0,settingsStore_1.saveSettings)({...t,telemetryClientId:r,telemetryDeviceId:r,deviceFirstSeen:t.deviceFirstSeen||a}),r}catch{return`${Math.floor(1e8+Math.random()*9e8)}.${Math.floor(1e9+Math.random()*9e9)}`}}function isDeviceEmulator(){try{if(react_native_1.Platform.OS==="android"){const t=react_native_1.Platform.constants||{},o=String(t.Model||"").toLowerCase(),i=String(t.Brand||"").toLowerCase(),r=String(t.Fingerprint||"").toLowerCase(),a=String(t.Hardware||"").toLowerCase(),e=String(t.Manufacturer||"").toLowerCase();return o.includes("emulator")||o.includes("sdk")||o.includes("google_sdk")||o.includes("vbox")||i.includes("generic")||r.startsWith("generic")||a.includes("goldfish")||a.includes("ranchu")||e.includes("genymotion")}if(react_native_1.Platform.OS==="ios"){const t=react_native_1.Platform.constants||{};return String(t.Model||"").toLowerCase().includes("simulator")||!!t.isSimulator}}catch{return!1}return!1}function getDeviceLocaleInfo(){try{const t=typeof Intl<"u"&&Intl.DateTimeFormat?Intl.DateTimeFormat().resolvedOptions():{},o=t.timeZone||"unknown",i=t.locale||"unknown";let r="unknown";if(i&&i!=="unknown"){const a=i.split(/[-_]/);a.length>1&&(r=a[a.length-1].toUpperCase())}return{countryCode:r,locale:i,timeZone:o}}catch{return{countryCode:"unknown",locale:"unknown",timeZone:"unknown"}}}function getSystemMetadata(t,o){const i=react_native_1.Platform.constants,r=i?.reactNativeVersion?`${i.reactNativeVersion.major}.${i.reactNativeVersion.minor}.${i.reactNativeVersion.patch}`:"unknown",a=typeof global.HermesInternal=="object"&&global.HermesInternal!==null,e=global?.nativeFabricUIManager!==void 0,l=!!(global?._rn_bridgeless||global?.RN$Bridgeless),c=!!(typeof __DEV__<"u"&&__DEV__),n=isDeviceEmulator(),{countryCode:_,locale:d,timeZone:L}=getDeviceLocaleInfo();let m="unknown",p=1,f=1,g="phone",h="portrait";try{const s=react_native_1.Dimensions.get("window");m=`${Math.round(s.width)}x${Math.round(s.height)}`,p=react_native_1.PixelRatio.get(),f=react_native_1.PixelRatio.getFontScale(),h=s.width>s.height?"landscape":"portrait",g=react_native_1.Platform.OS==="ios"&&!!react_native_1.Platform.isPad||Math.min(s.width,s.height)>=600?"tablet":"phone"}catch{}let b="unknown";try{b=react_native_1.Appearance?.getColorScheme?.()||"unknown"}catch{}const P=!!(globalThis?.expo||globalThis?.__expo||globalThis?.__turboModuleProxy?.name==="Expo"||react_native_1.Platform.constants?.ExpoVersion);let u="non_hermes",v="jsc";if(a){v="hermes";try{const s=global.HermesInternal?.getRuntimeProperties?.()||{};u=s["OSS Release Version"]||(s["Bytecode Version"]?`bc_v${s["Bytecode Version"]}`:"hermes")}catch{u="hermes"}}else globalThis?._v8&&(v="v8");let y=!1;try{y=(0,reduxLogger_1.isReduxConnected)()}catch{}let S=!1;try{S=(0,analyticsLogger_1.isFirebaseAnalyticsPatched)()}catch{}const k=(0,NativeInspector_1.isNativeModuleAvailable)(),N=!!(react_native_1.NativeModules?.RNMMKV||globalThis?.MMKV);let w=0;try{w=(0,crashHandler_1.getCrashRecords)().length}catch{}let I="0";try{const s=(0,networkLogger_1.getNetworkLogs)().length;I=s===0?"0":s<=10?"1-10":s<=50?"11-50":s<=100?"51-100":"100+"}catch{}let M=!1;try{M=(0,index_1.isLocalDebugEnvironment)()}catch{}const A=o?.defaultTab||"apis",D=k&&o?.useNativeFab!==!1?"native_ui_thread":"js_floating_button",V=String(i?.Brand||(react_native_1.Platform.OS==="ios"?"Apple":"unknown")),B=String(i?.Model||i?.systemName||(react_native_1.Platform.OS==="ios"?"iPhone/iPad":"unknown")),R=String(i?.Manufacturer||(react_native_1.Platform.OS==="ios"?"Apple":"unknown"));let C="App",E="unknown",T="unknown",x="unknown";try{C=(0,index_1.getAppName)()||"App",E=(0,index_1.getBundleIdentifier)()||"unknown";const s=(0,index_1.getAppVersionAndBuild)();T=s.version||"unknown",x=s.build||"unknown"}catch{}const O=typeof react_1.default<"u"&&react_1.default.version?react_1.default.version:"unknown";return{pkg_name:PKG_NAME,pkg_version:version_1.LIB_VERSION,lib_version:version_1.LIB_VERSION,install_type:c?"local_dev":"bundled_production",app_name:C,bundle_id:E,app_version:T,app_build:x,react_version:O,platform:react_native_1.Platform.OS,os_version:String(react_native_1.Platform.Version||"unknown"),rn_version:r,country_code:_,device_locale:d,time_zone:L,device_brand:V,device_model:B,device_manufacturer:R,device_form_factor:g,screen_resolution:m,screen_density:p,screen_orientation:h,font_scale:f,appearance_mode:b,is_expo:P,js_engine:v,hermes_version:u,is_hermes:a,is_fabric:e,is_bridgeless:l,has_native_module:k,has_mmkv:N,fab_mode:D,default_landing_tab:A,captured_crashes_count:w,captured_apis_bracket:I,search_filter_used:_hasSearchFilterBeenUsed,is_metro_connected:M,is_dev:c,is_emulator:n,device_type:n?"emulator":"real_device",app_mode:c?"local_mode":"bundled_application",redux_attached:y,analytics_attached:S,environment:t||(c?"DEV":"PROD"),engagement_time_msec:1e3}}async function trackActiveTelemetryHeartbeat(t=!0,o){if(t===!1){isTelemetryEnabled=!1;return}isTelemetryEnabled=!0;const i=getCollectUrl();if(i)try{const r=await(0,settingsStore_1.loadSettings)(),a=r.telemetryLastPing||0,e=Date.now(),l=!r.deviceRegistered;if(!l&&e-a<PING_INTERVAL_MS)return;const c=await getOrCreateClientId(),n=getSystemMetadata(o,r),_={...n,device_id:c,is_new_device:l,device_first_seen:r.deviceFirstSeen||e},d=l?[{name:"active_device",params:_},{name:"first_device_install",params:_},{name:"inspector_active_heartbeat",params:_}]:[{name:"active_device",params:_},{name:"inspector_active_heartbeat",params:_}];await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:c,user_id:c,non_personalized_ads:!0,user_properties:{device_id:{value:c},pkg_name:{value:n.pkg_name},pkg_version:{value:n.pkg_version},install_type:{value:n.install_type},app_name:{value:n.app_name},bundle_id:{value:n.bundle_id},app_version:{value:n.app_version},react_version:{value:n.react_version},country:{value:n.country_code},country_code:{value:n.country_code},locale:{value:n.device_locale},time_zone:{value:n.time_zone},device_brand:{value:n.device_brand},device_model:{value:n.device_model},device_form_factor:{value:n.device_form_factor},screen_resolution:{value:n.screen_resolution},appearance_mode:{value:n.appearance_mode},is_expo:{value:String(n.is_expo)},js_engine:{value:n.js_engine},is_fabric:{value:String(n.is_fabric)},is_bridgeless:{value:String(n.is_bridgeless)},has_native_module:{value:String(n.has_native_module)},has_mmkv:{value:String(n.has_mmkv)},fab_mode:{value:n.fab_mode},default_landing_tab:{value:n.default_landing_tab},captured_crashes_count:{value:String(n.captured_crashes_count)},captured_apis_bracket:{value:n.captured_apis_bracket},search_filter_used:{value:String(n.search_filter_used)},is_metro_connected:{value:String(n.is_metro_connected)},redux_attached:{value:String(n.redux_attached)},analytics_attached:{value:String(n.analytics_attached)},platform:{value:n.platform},rn_version:{value:n.rn_version},lib_version:{value:n.lib_version}},events:d})}),await(0,settingsStore_1.saveSettings)({...r,telemetryClientId:c,telemetryDeviceId:c,deviceRegistered:!0,deviceFirstSeen:r.deviceFirstSeen||e,telemetryLastPing:e,telemetryLastActive:e})}catch{}}async function trackTelemetryEvent(t,o){if(!isTelemetryEnabled)return;const i=getCollectUrl();if(i)try{const r=await getOrCreateClientId(),a=await(0,settingsStore_1.loadSettings)().catch(()=>({})),e=getSystemMetadata(void 0,a),l={...e,device_id:r,...o,engagement_time_msec:100};await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:r,user_id:r,non_personalized_ads:!0,user_properties:{device_id:{value:r},pkg_name:{value:e.pkg_name},pkg_version:{value:e.pkg_version},install_type:{value:e.install_type},app_name:{value:e.app_name},bundle_id:{value:e.bundle_id},app_version:{value:e.app_version},react_version:{value:e.react_version},country:{value:e.country_code},country_code:{value:e.country_code},locale:{value:e.device_locale},time_zone:{value:e.time_zone},device_brand:{value:e.device_brand},device_model:{value:e.device_model},device_form_factor:{value:e.device_form_factor},screen_resolution:{value:e.screen_resolution},appearance_mode:{value:e.appearance_mode},is_expo:{value:String(e.is_expo)},js_engine:{value:e.js_engine},is_fabric:{value:String(e.is_fabric)},is_bridgeless:{value:String(e.is_bridgeless)},has_native_module:{value:String(e.has_native_module)},has_mmkv:{value:String(e.has_mmkv)},fab_mode:{value:e.fab_mode},default_landing_tab:{value:e.default_landing_tab},captured_crashes_count:{value:String(e.captured_crashes_count)},captured_apis_bracket:{value:e.captured_apis_bracket},search_filter_used:{value:String(e.search_filter_used)},is_metro_connected:{value:String(e.is_metro_connected)},redux_attached:{value:String(e.redux_attached)},analytics_attached:{value:String(e.analytics_attached)},platform:{value:e.platform},rn_version:{value:e.rn_version},lib_version:{value:e.lib_version}},events:[{name:t,params:l}]})})}catch{}}function trackInspectorTabView(t){trackTelemetryEvent("inspector_tab_view",{tab_name:t,screen_name:`tab_${t}`,screen_class:"NetworkInspector"})}function trackInspectorScreenView(t){trackTelemetryEvent("screen_view",{screen_name:t,screen_class:"NetworkInspector"})}function trackInspectorScreenRecord(t,o="screen"){trackTelemetryEvent("inspector_screen_record",{action:t,recording_type:o})}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setTelemetryEnabled=setTelemetryEnabled,exports.markSearchFilterUsed=markSearchFilterUsed,exports.trackActiveTelemetryHeartbeat=trackActiveTelemetryHeartbeat,exports.trackTelemetryEvent=trackTelemetryEvent,exports.trackInspectorTabView=trackInspectorTabView,exports.trackInspectorScreenView=trackInspectorScreenView,exports.trackInspectorScreenRecord=trackInspectorScreenRecord;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),version_1=require("../constants/version"),settingsStore_1=require("./settingsStore"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),networkLogger_1=require("../customHooks/networkLogger"),NativeInspector_1=require("../native/NativeInspector"),index_1=require("./index"),telemetryConfig_1=require("../constants/telemetryConfig"),PKG_NAME="react-native-inapp-inspector",KEY_MATERIAL=`${PKG_NAME}::${telemetryConfig_1.TELEMETRY_SALT}`;function getKeystream(t,o){const i=[];let r=1518500249;for(let a=0;a<o;a++){const e=t.charCodeAt(a%t.length);r=(r*31+e*17+a*13^r>>>7)&4294967295,i.push(r>>>a%24&255)}return i}function deobfuscate(t){if(!t)return"";const o=[];for(let a=0;a<t.length;a+=2)o.push(parseInt(t.substring(a,a+2),16));const i=getKeystream(KEY_MATERIAL,o.length),r=[];for(let a=0;a<o.length;a++){const e=i[a],l=telemetryConfig_1.TELEMETRY_SALT.charCodeAt(a%telemetryConfig_1.TELEMETRY_SALT.length),c=(o[a]^e^l)&255;r.push(String.fromCharCode(c))}return r.join("")}let _cachedMid=null,_cachedSec=null;function getCredentials(){if(_cachedMid!==null&&_cachedSec!==null)return{measurementId:_cachedMid,apiSecret:_cachedSec};if(!telemetryConfig_1.ENC_MID||!telemetryConfig_1.ENC_SEC||!telemetryConfig_1.TELEMETRY_SALT)return _cachedMid="",_cachedSec="",{measurementId:"",apiSecret:""};try{_cachedMid=deobfuscate(telemetryConfig_1.ENC_MID),_cachedSec=deobfuscate(telemetryConfig_1.ENC_SEC)}catch{_cachedMid="",_cachedSec=""}return{measurementId:_cachedMid,apiSecret:_cachedSec}}function getCollectUrl(){const{measurementId:t,apiSecret:o}=getCredentials();return!t||!o?"":`https://www.google-analytics.com/mp/collect?measurement_id=${t}&api_secret=${o}`}const PING_INTERVAL_MS=1440*60*1e3;let isTelemetryEnabled=!0,_hasSearchFilterBeenUsed=!1;function setTelemetryEnabled(t){isTelemetryEnabled=t}function markSearchFilterUsed(){_hasSearchFilterBeenUsed=!0}async function getOrCreateClientId(){try{const t=await(0,settingsStore_1.loadSettings)();if(t.telemetryClientId||t.telemetryDeviceId){const e=t.telemetryClientId||t.telemetryDeviceId||"";return t.telemetryDeviceId||await(0,settingsStore_1.saveSettings)({...t,telemetryDeviceId:e}),e}const o=Math.floor(1e8+Math.random()*9e8),i=Math.floor(1e9+Math.random()*9e9),r=`${o}.${i}`,a=Date.now();return await(0,settingsStore_1.saveSettings)({...t,telemetryClientId:r,telemetryDeviceId:r,deviceFirstSeen:t.deviceFirstSeen||a}),r}catch{return`${Math.floor(1e8+Math.random()*9e8)}.${Math.floor(1e9+Math.random()*9e9)}`}}function isDeviceEmulator(){try{if(react_native_1.Platform.OS==="android"){const t=react_native_1.Platform.constants||{},o=String(t.Model||"").toLowerCase(),i=String(t.Brand||"").toLowerCase(),r=String(t.Fingerprint||"").toLowerCase(),a=String(t.Hardware||"").toLowerCase(),e=String(t.Manufacturer||"").toLowerCase();return o.includes("emulator")||o.includes("sdk")||o.includes("google_sdk")||o.includes("vbox")||i.includes("generic")||r.startsWith("generic")||a.includes("goldfish")||a.includes("ranchu")||e.includes("genymotion")}if(react_native_1.Platform.OS==="ios"){const t=react_native_1.Platform.constants||{};return String(t.Model||"").toLowerCase().includes("simulator")||!!t.isSimulator}}catch{return!1}return!1}function getDeviceLocaleInfo(){try{const t=typeof Intl<"u"&&Intl.DateTimeFormat?Intl.DateTimeFormat().resolvedOptions():{},o=t.timeZone||"unknown",i=t.locale||"unknown";let r="unknown";if(i&&i!=="unknown"){const a=i.split(/[-_]/);a.length>1&&(r=a[a.length-1].toUpperCase())}return{countryCode:r,locale:i,timeZone:o}}catch{return{countryCode:"unknown",locale:"unknown",timeZone:"unknown"}}}function getSystemMetadata(t,o){const i=react_native_1.Platform.constants,r=i?.reactNativeVersion?`${i.reactNativeVersion.major}.${i.reactNativeVersion.minor}.${i.reactNativeVersion.patch}`:"unknown",a=typeof global.HermesInternal=="object"&&global.HermesInternal!==null,e=global?.nativeFabricUIManager!==void 0,l=!!(global?._rn_bridgeless||global?.RN$Bridgeless),c=!!(typeof __DEV__<"u"&&__DEV__),n=isDeviceEmulator(),{countryCode:_,locale:d,timeZone:L}=getDeviceLocaleInfo();let m="unknown",p=1,f=1,g="phone",h="portrait";try{const s=react_native_1.Dimensions.get("window");m=`${Math.round(s.width)}x${Math.round(s.height)}`,p=react_native_1.PixelRatio.get(),f=react_native_1.PixelRatio.getFontScale(),h=s.width>s.height?"landscape":"portrait",g=react_native_1.Platform.OS==="ios"&&!!react_native_1.Platform.isPad||Math.min(s.width,s.height)>=600?"tablet":"phone"}catch{}let b="unknown";try{b=react_native_1.Appearance?.getColorScheme?.()||"unknown"}catch{}const N=!!(globalThis?.expo||globalThis?.__expo||globalThis?.__turboModuleProxy?.name==="Expo"||react_native_1.Platform.constants?.ExpoVersion);let u="non_hermes",v="jsc";if(a){v="hermes";try{const s=global.HermesInternal?.getRuntimeProperties?.()||{};u=s["OSS Release Version"]||(s["Bytecode Version"]?`bc_v${s["Bytecode Version"]}`:"hermes")}catch{u="hermes"}}else globalThis?._v8&&(v="v8");let y=!1;try{y=(0,reduxLogger_1.isReduxConnected)()}catch{}let S=!1;try{S=(0,analyticsLogger_1.isFirebaseAnalyticsPatched)()}catch{}const k=(0,NativeInspector_1.isNativeModuleAvailable)(),P=!!(react_native_1.NativeModules?.RNMMKV||globalThis?.MMKV);let w=0;try{w=(0,crashHandler_1.getCrashRecords)().length}catch{}let I="0";try{const s=(0,networkLogger_1.getNetworkLogs)().length;I=s===0?"0":s<=10?"1-10":s<=50?"11-50":s<=100?"51-100":"100+"}catch{}let M=!1;try{M=(0,index_1.isLocalDebugEnvironment)()}catch{}const D=o?.defaultTab||"apis",V=k&&o?.useNativeFab!==!1?"native_ui_thread":"js_floating_button",A=String(i?.Brand||(react_native_1.Platform.OS==="ios"?"Apple":"unknown")),B=String(i?.Model||i?.systemName||(react_native_1.Platform.OS==="ios"?"iPhone/iPad":"unknown")),R=String(i?.Manufacturer||(react_native_1.Platform.OS==="ios"?"Apple":"unknown"));let C="App",E="unknown",T="unknown",x="unknown";try{C=(0,index_1.getAppName)()||"App",E=(0,index_1.getBundleIdentifier)()||"unknown";const s=(0,index_1.getAppVersionAndBuild)();T=s.version||"unknown",x=s.build||"unknown"}catch{}const O=typeof react_1.default<"u"&&react_1.default.version?react_1.default.version:"unknown";return{pkg_name:PKG_NAME,pkg_version:version_1.LIB_VERSION,lib_version:version_1.LIB_VERSION,install_type:c?"local_dev":"bundled_production",app_name:C,bundle_id:E,app_version:T,app_build:x,react_version:O,platform:react_native_1.Platform.OS,os_version:String(react_native_1.Platform.Version||"unknown"),rn_version:r,country_code:_,device_locale:d,time_zone:L,device_brand:A,device_model:B,device_manufacturer:R,device_form_factor:g,screen_resolution:m,screen_density:p,screen_orientation:h,font_scale:f,appearance_mode:b,is_expo:N,js_engine:v,hermes_version:u,is_hermes:a,is_fabric:e,is_bridgeless:l,has_native_module:k,has_mmkv:P,fab_mode:V,default_landing_tab:D,captured_crashes_count:w,captured_apis_bracket:I,search_filter_used:_hasSearchFilterBeenUsed,is_metro_connected:M,is_dev:c,is_emulator:n,device_type:n?"emulator":"real_device",app_mode:c?"local_mode":"bundled_application",redux_attached:y,analytics_attached:S,environment:t||(c?"DEV":"PROD"),engagement_time_msec:1e3}}async function trackActiveTelemetryHeartbeat(t=!0,o){if(t===!1){isTelemetryEnabled=!1;return}if(isTelemetryEnabled=!0,process.env.NODE_ENV==="test"||typeof globalThis.jest<"u")return;const i=getCollectUrl();if(i)try{const r=await(0,settingsStore_1.loadSettings)(),a=r.telemetryLastPing||0,e=Date.now(),l=!r.deviceRegistered;if(!l&&e-a<PING_INTERVAL_MS)return;const c=await getOrCreateClientId(),n=getSystemMetadata(o,r),_={...n,device_id:c,is_new_device:l,device_first_seen:r.deviceFirstSeen||e},d=l?[{name:"active_device",params:_},{name:"first_device_install",params:_},{name:"inspector_active_heartbeat",params:_}]:[{name:"active_device",params:_},{name:"inspector_active_heartbeat",params:_}];await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:c,user_id:c,non_personalized_ads:!0,user_properties:{device_id:{value:c},pkg_name:{value:n.pkg_name},pkg_version:{value:n.pkg_version},install_type:{value:n.install_type},app_name:{value:n.app_name},bundle_id:{value:n.bundle_id},app_version:{value:n.app_version},react_version:{value:n.react_version},country:{value:n.country_code},country_code:{value:n.country_code},locale:{value:n.device_locale},time_zone:{value:n.time_zone},device_brand:{value:n.device_brand},device_model:{value:n.device_model},device_form_factor:{value:n.device_form_factor},screen_resolution:{value:n.screen_resolution},appearance_mode:{value:n.appearance_mode},is_expo:{value:String(n.is_expo)},js_engine:{value:n.js_engine},is_fabric:{value:String(n.is_fabric)},is_bridgeless:{value:String(n.is_bridgeless)},has_native_module:{value:String(n.has_native_module)},has_mmkv:{value:String(n.has_mmkv)},fab_mode:{value:n.fab_mode},default_landing_tab:{value:n.default_landing_tab},captured_crashes_count:{value:String(n.captured_crashes_count)},captured_apis_bracket:{value:n.captured_apis_bracket},search_filter_used:{value:String(n.search_filter_used)},is_metro_connected:{value:String(n.is_metro_connected)},redux_attached:{value:String(n.redux_attached)},analytics_attached:{value:String(n.analytics_attached)},platform:{value:n.platform},rn_version:{value:n.rn_version},lib_version:{value:n.lib_version}},events:d})}),await(0,settingsStore_1.saveSettings)({...r,telemetryClientId:c,telemetryDeviceId:c,deviceRegistered:!0,deviceFirstSeen:r.deviceFirstSeen||e,telemetryLastPing:e,telemetryLastActive:e})}catch{}}async function trackTelemetryEvent(t,o){if(!isTelemetryEnabled)return;const i=getCollectUrl();if(i)try{const r=await getOrCreateClientId(),a=await(0,settingsStore_1.loadSettings)().catch(()=>({})),e=getSystemMetadata(void 0,a),l={...e,device_id:r,...o,engagement_time_msec:100};await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:r,user_id:r,non_personalized_ads:!0,user_properties:{device_id:{value:r},pkg_name:{value:e.pkg_name},pkg_version:{value:e.pkg_version},install_type:{value:e.install_type},app_name:{value:e.app_name},bundle_id:{value:e.bundle_id},app_version:{value:e.app_version},react_version:{value:e.react_version},country:{value:e.country_code},country_code:{value:e.country_code},locale:{value:e.device_locale},time_zone:{value:e.time_zone},device_brand:{value:e.device_brand},device_model:{value:e.device_model},device_form_factor:{value:e.device_form_factor},screen_resolution:{value:e.screen_resolution},appearance_mode:{value:e.appearance_mode},is_expo:{value:String(e.is_expo)},js_engine:{value:e.js_engine},is_fabric:{value:String(e.is_fabric)},is_bridgeless:{value:String(e.is_bridgeless)},has_native_module:{value:String(e.has_native_module)},has_mmkv:{value:String(e.has_mmkv)},fab_mode:{value:e.fab_mode},default_landing_tab:{value:e.default_landing_tab},captured_crashes_count:{value:String(e.captured_crashes_count)},captured_apis_bracket:{value:e.captured_apis_bracket},search_filter_used:{value:String(e.search_filter_used)},is_metro_connected:{value:String(e.is_metro_connected)},redux_attached:{value:String(e.redux_attached)},analytics_attached:{value:String(e.analytics_attached)},platform:{value:e.platform},rn_version:{value:e.rn_version},lib_version:{value:e.lib_version}},events:[{name:t,params:l}]})})}catch{}}function trackInspectorTabView(t){trackTelemetryEvent("inspector_tab_view",{tab_name:t,screen_name:`tab_${t}`,screen_class:"NetworkInspector"})}function trackInspectorScreenView(t){trackTelemetryEvent("screen_view",{screen_name:t,screen_class:"NetworkInspector"})}function trackInspectorScreenRecord(t,o="screen"){trackTelemetryEvent("inspector_screen_record",{action:t,recording_type:o})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.I18nextProvider=exports.i18n=exports.SUPPORTED_LANGUAGES=void 0,exports.t=t,exports.getLanguage=getLanguage,exports.setLanguage=setLanguage,exports.addTranslations=addTranslations,exports.setTranslations=setTranslations,exports.useTranslation=useTranslation;const react_1=__importDefault(require("react")),en_json_1=__importDefault(require("./locales/en.json")),es_json_1=__importDefault(require("./locales/es.json")),fr_json_1=__importDefault(require("./locales/fr.json")),de_json_1=__importDefault(require("./locales/de.json")),zh_json_1=__importDefault(require("./locales/zh.json")),ja_json_1=__importDefault(require("./locales/ja.json")),ko_json_1=__importDefault(require("./locales/ko.json")),pt_json_1=__importDefault(require("./locales/pt.json")),ru_json_1=__importDefault(require("./locales/ru.json")),hi_json_1=__importDefault(require("./locales/hi.json")),ar_json_1=__importDefault(require("./locales/ar.json")),it_json_1=__importDefault(require("./locales/it.json")),id_json_1=__importDefault(require("./locales/id.json")),tr_json_1=__importDefault(require("./locales/tr.json")),vi_json_1=__importDefault(require("./locales/vi.json")),nl_json_1=__importDefault(require("./locales/nl.json")),pl_json_1=__importDefault(require("./locales/pl.json")),ta_json_1=__importDefault(require("./locales/ta.json")),te_json_1=__importDefault(require("./locales/te.json")),kn_json_1=__importDefault(require("./locales/kn.json")),ml_json_1=__importDefault(require("./locales/ml.json")),bn_json_1=__importDefault(require("./locales/bn.json")),mr_json_1=__importDefault(require("./locales/mr.json")),gu_json_1=__importDefault(require("./locales/gu.json")),pa_json_1=__importDefault(require("./locales/pa.json"));exports.SUPPORTED_LANGUAGES=[{code:"en",name:"English",nativeName:"English",flag:"\u{1F1FA}\u{1F1F8}"},{code:"es",name:"Espa\xF1ol",nativeName:"Espa\xF1ol",flag:"\u{1F1EA}\u{1F1F8}"},{code:"fr",name:"Fran\xE7ais",nativeName:"Fran\xE7ais",flag:"\u{1F1EB}\u{1F1F7}"},{code:"de",name:"Deutsch",nativeName:"Deutsch",flag:"\u{1F1E9}\u{1F1EA}"},{code:"zh",name:"\u4E2D\u6587",nativeName:"\u7B80\u4F53\u4E2D\u6587",flag:"\u{1F1E8}\u{1F1F3}"},{code:"ja",name:"\u65E5\u672C\u8A9E",nativeName:"\u65E5\u672C\u8A9E",flag:"\u{1F1EF}\u{1F1F5}"},{code:"ko",name:"\uD55C\uAD6D\uC5B4",nativeName:"\uD55C\uAD6D\uC5B4",flag:"\u{1F1F0}\u{1F1F7}"},{code:"pt",name:"Portugu\xEAs",nativeName:"Portugu\xEAs",flag:"\u{1F1E7}\u{1F1F7}"},{code:"ru",name:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",nativeName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",flag:"\u{1F1F7}\u{1F1FA}"},{code:"hi",name:"\u0939\u093F\u0928\u094D\u0926\u0940",nativeName:"\u0939\u093F\u0928\u094D\u0926\u0940",flag:"\u{1F1EE}\u{1F1F3}"},{code:"ta",name:"Tamil",nativeName:"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",flag:"\u{1F1EE}\u{1F1F3}"},{code:"te",name:"Telugu",nativeName:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",flag:"\u{1F1EE}\u{1F1F3}"},{code:"kn",name:"Kannada",nativeName:"\u0C95\u0CA8\u0CCD\u0CA8\u0CA1",flag:"\u{1F1EE}\u{1F1F3}"},{code:"ml",name:"Malayalam",nativeName:"\u0D2E\u0D32\u0D2F\u0D3E\u0D33\u0D02",flag:"\u{1F1EE}\u{1F1F3}"},{code:"bn",name:"Bengali",nativeName:"\u09AC\u09BE\u0982\u09B2\u09BE",flag:"\u{1F1EE}\u{1F1F3}"},{code:"mr",name:"Marathi",nativeName:"\u092E\u0930\u093E\u0920\u0940",flag:"\u{1F1EE}\u{1F1F3}"},{code:"gu",name:"Gujarati",nativeName:"\u0A97\u0AC1\u0A9C\u0AB0\u0ABE\u0AA4\u0AC0",flag:"\u{1F1EE}\u{1F1F3}"},{code:"pa",name:"Punjabi",nativeName:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40",flag:"\u{1F1EE}\u{1F1F3}"},{code:"ar",name:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",nativeName:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",flag:"\u{1F1F8}\u{1F1E6}"},{code:"it",name:"Italiano",nativeName:"Italiano",flag:"\u{1F1EE}\u{1F1F9}"},{code:"id",name:"Bahasa Indonesia",nativeName:"Bahasa Indonesia",flag:"\u{1F1EE}\u{1F1E9}"},{code:"tr",name:"T\xFCrk\xE7e",nativeName:"T\xFCrk\xE7e",flag:"\u{1F1F9}\u{1F1F7}"},{code:"vi",name:"Ti\u1EBFng Vi\u1EC7t",nativeName:"Ti\u1EBFng Vi\u1EC7t",flag:"\u{1F1FB}\u{1F1F3}"},{code:"nl",name:"Nederlands",nativeName:"Nederlands",flag:"\u{1F1F3}\u{1F1F1}"},{code:"pl",name:"Polski",nativeName:"Polski",flag:"\u{1F1F5}\u{1F1F1}"}];const localeRegistry={en:en_json_1.default,es:es_json_1.default,fr:fr_json_1.default,de:de_json_1.default,zh:zh_json_1.default,ja:ja_json_1.default,ko:ko_json_1.default,pt:pt_json_1.default,ru:ru_json_1.default,hi:hi_json_1.default,ta:ta_json_1.default,te:te_json_1.default,kn:kn_json_1.default,ml:ml_json_1.default,bn:bn_json_1.default,mr:mr_json_1.default,gu:gu_json_1.default,pa:pa_json_1.default,ar:ar_json_1.default,it:it_json_1.default,id:id_json_1.default,tr:tr_json_1.default,vi:vi_json_1.default,nl:nl_json_1.default,pl:pl_json_1.default};let currentLanguage="en";const listeners=new Set;function lookupKey(n,e){if(!n||!e)return;const a=e.split(".");let o=n;for(let s=0;s<a.length;s++){if(o==null)return;o=o[a[s]]}return o}function interpolate(n,e){return!e||typeof n!="string"?n:n.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,(a,o)=>e[o]!==void 0?String(e[o]):`{{${o}}}`)}function t(n,e,a){const o=localeRegistry[currentLanguage]||localeRegistry.en;let s=lookupKey(o,n);return s===void 0&¤tLanguage!=="en"&&(s=lookupKey(localeRegistry.en,n)),typeof s=="string"?typeof e=="object"&&e!==null?interpolate(s,e):s:typeof e=="string"?e:typeof a=="string"?typeof e=="object"&&e!==null?interpolate(a,e):a:typeof e=="object"&&e!==null&&typeof e.defaultValue=="string"?interpolate(e.defaultValue,e):n}function getLanguage(){return currentLanguage}function setLanguage(n){typeof n=="string"&&n.trim()&&(currentLanguage=n.trim(),exports.i18n.language=currentLanguage,listeners.forEach(e=>{try{e()}catch{}}))}function addTranslations(n,e){!n||!e||typeof e!="object"||(localeRegistry[n]={...localeRegistry[n]||{},...e},listeners.forEach(a=>{try{a()}catch{}}))}function setTranslations(n,e="en"){addTranslations(e,n)}exports.i18n={t,language:currentLanguage,changeLanguage:setLanguage,addResourceBundle:(n,e,a)=>addTranslations(n,a),getLanguage,setLanguage,addTranslations,setTranslations};function useTranslation(){const[,n]=react_1.default.useState(0);return react_1.default.useEffect(()=>{const e=()=>n(a=>a+1);return listeners.add(e),()=>{listeners.delete(e)}},[]),{t,i18n:exports.i18n,language:currentLanguage,currentLanguage,setLanguage}}const I18nextProvider=({children:n})=>react_1.default.createElement(react_1.default.Fragment,null,n);exports.I18nextProvider=I18nextProvider,exports.default=exports.i18n;
|