{"_id":"@databrief/flow-react-native","_rev":"5-66f3597001d5c5bfd7f1c5621a01c037","name":"@databrief/flow-react-native","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@databrief/flow-react-native","version":"0.1.0","license":"UNLICENSED","_id":"@databrief/flow-react-native@0.1.0","maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"homepage":"https://flow.databrief.sa","dist":{"shasum":"2ff3f67a8bcc8bdf7b16968254cfdb7be5cf465b","tarball":"https://registry.npmjs.org/@databrief/flow-react-native/-/flow-react-native-0.1.0.tgz","fileCount":26,"integrity":"sha512-OiysLBPilEezJPhIPGQDSDgvLctcpEouhI/qFqsSa15CVevhlppbXMSPBcB9Mz8nplhazSzD9Jm8HWldQ4viAQ==","signatures":[{"sig":"MEQCIGW8FpbRpY0t+UXLsdk9s7Udd34HVl0CswpCcm4pJecaAiBWp+fLaXchiVPGoAPm+X3V3lTIazccPK80gJcGV4epyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86603},"main":"index.js","types":"index.d.ts","gitHead":"11c33952e6b5da8ef6506a5f8a428cb6d475f86d","_npmUser":{"name":"databrief","email":"tech@databrief.sa"},"_npmVersion":"11.16.0","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/flow-react-native_0.1.0_1784641311971_0.0913941583432063","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@databrief/flow-react-native","version":"0.1.1","license":"UNLICENSED","_id":"@databrief/flow-react-native@0.1.1","maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"homepage":"https://flow.databrief.sa","dist":{"shasum":"fec8fc25b8b955cc8ec7a5c4613b8dc4e54cd75a","tarball":"https://registry.npmjs.org/@databrief/flow-react-native/-/flow-react-native-0.1.1.tgz","fileCount":26,"integrity":"sha512-ZsJzGImyauiDmYVzxD4SWiM7Wj8oLjaNxdOBDesV4QL4sVDKoGnFatiXyGzNibOhPUQnJU8xQIcIuKk2NDpBjw==","signatures":[{"sig":"MEUCIDucE2CXFSdZDr3b65WDqdp+TgFDIDDB4KpLE0iGlvjrAiEAzccgRNnPH5GhWgqhM34nZG/ZjscUaSw+uDwX7tmAuHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95223},"main":"index.js","types":"index.d.ts","gitHead":"1875fd1d0efcb9ea91ea105413f4307a04aa2da4","_npmUser":{"name":"databrief","email":"tech@databrief.sa"},"_npmVersion":"11.16.0","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/flow-react-native_0.1.1_1784644390939_0.05605325477536116","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@databrief/flow-react-native","version":"0.1.2","license":"UNLICENSED","_id":"@databrief/flow-react-native@0.1.2","maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"homepage":"https://flow.databrief.sa","dist":{"shasum":"c2ee24e16ee7d5a7b930b87403edb020f8086842","tarball":"https://registry.npmjs.org/@databrief/flow-react-native/-/flow-react-native-0.1.2.tgz","fileCount":26,"integrity":"sha512-3q1cGlYlM0ao/7ApMbRXQNkfdtnzVWnX/Yv0y73qQlzaTi0V1E/FrwoBoorQ/4QBaBZHJjGEe4RwxonZluVvZw==","signatures":[{"sig":"MEUCIQCcqrPHpz+mr9z+If8CdRq1XTfpLLgph3WqCdU1gTTmZAIgS6CVcpHslPp8NdZGfvMA3Vpcteb4e8p1yrfQNXIoM5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95517},"main":"index.js","types":"index.d.ts","gitHead":"675b037f605e89c82a26edc1484c98ed7606b5df","_npmUser":{"name":"databrief","email":"tech@databrief.sa"},"_npmVersion":"11.16.0","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/flow-react-native_0.1.2_1784647490580_0.35939941864609226","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@databrief/flow-react-native","version":"0.2.0","license":"UNLICENSED","_id":"@databrief/flow-react-native@0.2.0","maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"homepage":"https://flow.databrief.sa","dist":{"shasum":"40e4adde949535c6717d22c098f17278d99f72f6","tarball":"https://registry.npmjs.org/@databrief/flow-react-native/-/flow-react-native-0.2.0.tgz","fileCount":26,"integrity":"sha512-GlVd3bKjAw7Dm3/Mii0aAii5THTJau5Mp0QR7p7frF7G9lpBmrVP+2VsKMnrFn8XRmGFIO/zg7W6tVo6XZfOxA==","signatures":[{"sig":"MEUCIDLd8ktpv/NXXvOaOrx6M2xXcKpJgRXwVYIzk9wLoRyXAiEA3JGbXdFPEVwWvpa6UcNtnE6A3in02g7YlOvPqV0Gbw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96807},"main":"index.js","types":"index.d.ts","gitHead":"3c482e312ba877c593a29a9e9eec21a4752021bf","_npmUser":{"name":"databrief","email":"tech@databrief.sa"},"_npmVersion":"11.16.0","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"react-native":">=0.70.0"},"_npmOperationalInternal":{"tmp":"tmp/flow-react-native_0.2.0_1784648106570_0.8757466033876133","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@databrief/flow-react-native","version":"0.2.1","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","main":"index.js","types":"index.d.ts","homepage":"https://flow.databrief.sa","license":"UNLICENSED","peerDependencies":{"react-native":">=0.70.0"},"gitHead":"0d3d8e1d013c1dc88867df0618b5362b23b1c919","_id":"@databrief/flow-react-native@0.2.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-r7ONzEGxzJoAUbdYBTt7f/ak4ZuyBfDPDUtQ80zO6INcR/aph3hh7z1WTvayQ0ak/ri7oVadtMedAYIhnr+WMQ==","shasum":"b49b8163ddd867aaf9c452db77f2c4684cc427ef","tarball":"https://registry.npmjs.org/@databrief/flow-react-native/-/flow-react-native-0.2.1.tgz","fileCount":26,"unpackedSize":96807,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDiy117LnqNVEehNYFl1qmpDIOS86G9D5TO/lnOzjgCbQIhAJCS05XBO3P6DIHEgmnPGPMZmSWyLDNVb9Kj2pmYKosz"}]},"_npmUser":{"name":"databrief","email":"tech@databrief.sa"},"directories":{},"maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/flow-react-native_0.2.1_1784703795499_0.6310044226265044"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T13:41:51.762Z","modified":"2026-07-22T07:03:15.830Z","0.1.0":"2026-07-21T13:41:52.106Z","0.1.1":"2026-07-21T14:33:11.157Z","0.1.2":"2026-07-21T15:24:50.724Z","0.2.0":"2026-07-21T15:35:06.704Z","0.2.1":"2026-07-22T07:03:15.677Z"},"license":"UNLICENSED","homepage":"https://flow.databrief.sa","description":"Flow by Databrief — React Native bridge over the native Flow SDKs (unified web+app analytics & attribution).","maintainers":[{"name":"databrief","email":"tech@databrief.sa"}],"readme":"# @databrief/flow-react-native\n\nحزمة React Native لمنصة **Flow by Databrief** — جسر رفيع فوق الـ SDKs الأصلية\n(Kotlin / Swift)، فسلوك القياس مطابق للتطبيقات الأصلية: جلسات ٣٠ دقيقة، إسناد\nالتثبيت (Play Install Referrer / Apple Ads)، والروابط المؤجلة.\n\n**أوضاع التشغيل:**\n- **بناء أصلي** (development build / bare / EAS): الوضع الكامل — كل المزايا.\n- **Expo Go** (الوحدة الأصلية غير متاحة): يتفعّل **JS fallback** تلقائيًا —\n  الأحداث والجلسات تُرسل مباشرة بالـ HTTP، لكن بدون إسناد تثبيت ولا روابط\n  مؤجلة. ممتاز للتجربة والتطوير.\n- **Web preview**: الـ fallback لا يعمل افتراضيًا (حتى لا يُسجَّل تصفح متصفح\n  على تدفق تطبيق جوال) — فعّله صراحةً وقت الاختبار فقط:\n  `Flow.init(key, { webFallback: true })`.\n\n## التركيب\n\nالحزمة **self-contained** (مصادر الـ SDK الأصلية مضمّنة داخلها):\n\n```bash\n# بعد النشر على npm:\nnpm install @databrief/flow-react-native\n\n# أو حاليًا من المستودع/مجلد محلي:\nnpm install file:../orient-analytics/mobile-sdk/react-native\n```\n\nثم `pod install` في iOS كالمعتاد. لو الـ autolinking ما لقط الحزمة في\nأندرويد، سجّلها في MainApplication:\n\n```kotlin\nimport sa.databrief.flow.reactnative.FlowRNPackage\n// داخل getPackages():  add(FlowRNPackage())\n```\n\n## الاستخدام\n\n> تطبيق أندرويد وتطبيق iOS = تدفّقان منفصلان بمفتاحين مختلفين من\n> لوحة فلو (المواقع ← التطبيقات).\n\n```js\nimport { Platform } from \"react-native\";\nimport Flow from \"@databrief/flow-react-native\";\n\n// قبل init عشان ما يفوتنا رابط مؤجل عند أول تشغيل (أندرويد)\nconst sub = Flow.onDeferredDeepLink((url) => {\n  // وجّه المستخدم لوجهته داخل التطبيق\n});\n\nFlow.init(Platform.OS === \"ios\" ? \"ak_IOS_KEY\" : \"ak_ANDROID_KEY\");\n\n// الأحداث\nFlow.screen(\"Home\");\n\n// تفاصيل المنتجات في items تغذي تقرير المنتجات:\nconst item = { item_id: \"SKU-1\", item_name: \"عطر العود\", price: 149.0, quantity: 1 };\nFlow.track(\"view_item\", { items: [item] });\nFlow.track(\"add_to_cart\", { value: 149.0, currency: \"SAR\", items: [item] });\nFlow.trackPurchase(320.0, \"SAR\", \"ORD-10023\", { items: [item] });\n\n// نفس معرف العميل المستخدم على الموقع = دمج الويب والتطبيق\n// (الاسم يظهر في تقارير العملاء، والإيميل والجوال يُرسلان مع تجزئة SHA-256\n//  لمطابقة منصات الإعلانات)\nFlow.identify(\"customer-8812\", {\n  name: \"محمد العتيبي\", email: \"c@example.com\", phone: \"9665xxxxxxxx\",\n});\n\nFlow.reset(); // عند تسجيل الخروج\n\n// روابط الحملات — مع Linking:\nimport { Linking } from \"react-native\";\nLinking.addEventListener(\"url\", ({ url }) => Flow.trackDeepLink(url));\n```\n\n> **مرجع الأحداث الكامل** (رحلة التسوق كاملة بما فيها خطوات الدفع): [mobile-sdk/EVENTS.md](../EVENTS.md)\n","readmeFilename":"README.md"}