{"_id":"@sikasio/expo-boilerplate","_rev":"30-f32d567e6ded4371a8cbed9264ec5989","name":"@sikasio/expo-boilerplate","dist-tags":{"latest":"0.1.29"},"versions":{"0.1.0":{"name":"@sikasio/expo-boilerplate","version":"0.1.0","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.0","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"c063862206f0245dac41940ca9364e34aa091455","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.0.tgz","fileCount":107,"integrity":"sha512-PeH3YFJGIJfTR1C8xuoYnyWpQKl8eaucLGkWEQ4egocVm9BvLwuY+pKctmGbHwyi8XXVKr/jbZ/o2Q3XBkUdBQ==","signatures":[{"sig":"MEUCIGXePiimN1aYpkSpou08aJqQIk0K3q//gM9j99Qmp3J7AiEA3/7Q6+b5pDXG3hXnqw4MfZtlgU0iMoTZaS/SYiPVQkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115414},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"fb51931a8a0bbfe6e00053f6f8bdb575089fab8b","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-font":"~14.0.4","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.0_1776532829896_0.020116164822679083","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@sikasio/expo-boilerplate","version":"0.1.1","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.1","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"60aac63cbf0a8af2488e28261c60a8b7fe0a499f","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.1.tgz","fileCount":107,"integrity":"sha512-lbQvD982tsyXVDYdKYhVPfabFftJjYD/R1Adhf4p0Lj6ocC3Yf+foUtwCgLROWVsUFJqCdOmUuTt55HwH4sfRQ==","signatures":[{"sig":"MEUCIF2KVTMvKEI55XzCWnkHoJf6Z4ihWxB7BvpuDNRoYlwUAiEAuGf5oFGhAZb7Axz5YQ0eEO57Le7m1u6XNj95K+vupCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115414},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"49d20dac333259fbdea569d6855037bc196ceed4","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-font":"~14.0.4","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.1_1776533403533_0.5131555279552831","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@sikasio/expo-boilerplate","version":"0.1.2","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.2","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"e3aadc4779ef34c00a5c5095e654f638fbb9c2cc","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.2.tgz","fileCount":107,"integrity":"sha512-MqEP2i/vnhmvVxnlABux6v3XyFfpR/ljbVTol/1HAlM+6DtuSd8ERwoJUjs8WabIwk9d3JYGDhfm+Sb7gRUcCw==","signatures":[{"sig":"MEUCIF/BsqdC30C40YyxeWm4XjbO5nZmJ01RmR21qMwokxDlAiEArsF/n352PeJTRjpl8spkLCdH/KywkRfVHF4qxQY8N8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115400},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"dfd7a0ea81db9d232b612868ec689920e115e4e9","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-font":"~14.0.4","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.2_1776533432191_0.34326386531899566","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@sikasio/expo-boilerplate","version":"0.1.3","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.3","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"35a218fb2b368b3c8f773815a0b83aad7335e22d","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.3.tgz","fileCount":107,"integrity":"sha512-cT3iX6Il4pGVmLw50CKHBlGScbGRWRZUhqe+ZoEmbnVy+Cv4ImaPbbs+S6kwF+HG3KfpTGbgAuyY5zOjrSGhZA==","signatures":[{"sig":"MEUCIQDRKUTq34ZP44Rbeb5R+ADgjcF3WYm4BMDr3n7CJY1TTgIgJAgxJ8BiTMRAs4nNc1q8tCAxfH5X9UsR6toR58DCMic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115532},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"06db1b68f82817df4972f34a8c7046768179808d","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.3_1776533610795_0.5289199949573948","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@sikasio/expo-boilerplate","version":"0.1.4","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.4","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"c2ea9558cede243ee3a666420239e659f608e8aa","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.4.tgz","fileCount":107,"integrity":"sha512-2VePvhC3XXCtC8tD1j9njfNRRTFgem0301uC5bhz1VFoPEKmalg51Z8yJ2Op4FArniH0wviX8s+HGkPdFAbs6g==","signatures":[{"sig":"MEUCIQDrdI/eeN6wFZYWiqTk6O+O/FnsHP6M/e84IgLxTHKLOAIgc9zV0rWj4x1iRPaY3kVuHlg1ueaIVfze1rvcBZUG2eM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115354},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"22d2f82e60f0d2f6768e0bb6a43cb1557ea9d2af","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.4_1776533706020_0.9282141545609737","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@sikasio/expo-boilerplate","version":"0.1.5","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.5","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"b5bf59dd7689aa1bee79a0803bc2817496323d91","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.5.tgz","fileCount":107,"integrity":"sha512-X1wMMhUVKOCbj2ZKZGSezfWQa9D1awd+x/lxvrW5Rpt/daYPQlkNpNaJ/fNEQ/7RHakexxXPr22Lj+7cXErqTQ==","signatures":[{"sig":"MEUCIBNWazYozI9qfNx1xC+lZ37NCRtHNkeTE5N02Ajwzt1IAiEAkd/HzaCMxjmSdi0GJZxAlp5VqioqsOFdyYQclprHH2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2114675},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"203f273c911ca577f6e2a8deb4580137cb03cb9d","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.5_1776533821192_0.3748079501549819","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@sikasio/expo-boilerplate","version":"0.1.6","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.6","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"ed30abd813e7f5b21a2d5b6c62fdc0c3a33a4988","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.6.tgz","fileCount":107,"integrity":"sha512-R6IWD81/Z9SJ/hoFDx1e8VJG0YNuvhZQp6noBVZOrpY87K5YSdhg45V9COgypypyUe3yv02ia/NOdaFuO5OIpQ==","signatures":[{"sig":"MEUCIGkORxKzzmWRMdymPD8LxYwIthKy9h0Ir/81q4/uRdMQAiEAo2tG4b+Jr51ithe85wbVgXjnLy4yppOn0fcJCEX/UuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2114675},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"47a11dde0e58d17c03006afde99388dd44774af3","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.6_1776533884339_0.6707802435038144","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@sikasio/expo-boilerplate","version":"0.1.7","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.7","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"4840076b5e323a78a856d991d65c2418ac857af3","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.7.tgz","fileCount":107,"integrity":"sha512-ImiaHqNrEQUxY+eLik48a/6T4NVP1KURWxJzcxPGZgsVdCvd7mFb0IkVw5GHlstmNvRYo9gKSZ/W8jZpjkOElQ==","signatures":[{"sig":"MEQCICB/TUcC1aN8vayo+NhNVnDIyHii3jvYRItr6nNOOCiIAiBZVY5Sx3BRbAh7WNrYF9bBuiyqboFVHKf95ftzFhmyDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2114699},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"05bc0562772d347c21373ea97a55d4699e5f721f","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.7_1776533943983_0.31628429742316744","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@sikasio/expo-boilerplate","version":"0.1.8","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.8","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"11fde6e3aca1c4d5f6578d809db9317627929426","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.8.tgz","fileCount":107,"integrity":"sha512-QE0B9Ve37FwyN3RJU0M2b29EJZSrV7zaVjvK0/1Xh5zdrZIYiG4pq/spj7MhU9uueTmsaKDTM0k3mWWjkfnnbg==","signatures":[{"sig":"MEYCIQDjd+i+gUC0wRZwuV+wDD9dp2zWs1S0zIZmKhBP+ZphWgIhALMI3Ym5bpoQgcCl+oBOnNsp0IYWSBlwPGFL3Nti1DT2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2115337},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"f4e6672a62943e810d33349c45225b1e66fb2044","scripts":{"typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.8_1776535440638_0.1720981852863357","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@sikasio/expo-boilerplate","version":"0.1.9","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.9","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"1aa5278a15c46de48234f0daafaadb8f792d9ef3","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.9.tgz","fileCount":107,"integrity":"sha512-sLy8Bp8zWnKUzP/mlXCEpOB90H6jEtqWLq1xkvdCXpPvzMTv2abWr7Iep4hVv3x498Km5INvuLG98oZXY2Nljw==","signatures":[{"sig":"MEQCIDlNiZ2/KZJKTrFO8/Y4n1DBkk16/tLkbmJe04Y+wSpnAiAvV0eP2XNJMpJ6dchQvRF4cZBLwkaiZimihwNXTQ+4VQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sikasio%2fexpo-boilerplate@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2116207},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"802c43572b93487862cfba41b312580d25c8dd6c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.8.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.9_1776547760642_0.009869490475555853","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@sikasio/expo-boilerplate","version":"0.1.10","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.10","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"61318e3fbdf7081089ff9f27ab5bbb19a77f29f2","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.10.tgz","fileCount":107,"integrity":"sha512-ZKLjO+sEukfspOURidfUcGTKBlG1evskgXS9JsDKnU36I1iyxmGy1EcAEuKA3CkuIkJLnjV9e/KZ6mBfHYgMug==","signatures":[{"sig":"MEYCIQDA5L+XLZ9LshrmoMdx8Cln9LqM5qq7sMKKncZiZetmYwIhAPQ1Mkvr5w1VLAZaEc00I7cB60Jsx7kOBwL3T12uqUru","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2116005},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"d4daa7e7320cca35f91c665343845752e1bfa6ad","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.10_1776552295391_0.15677527675377756","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@sikasio/expo-boilerplate","version":"0.1.11","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.11","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"44279dab78f2af64fc4d27d5275350cb8e195ff3","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.11.tgz","fileCount":107,"integrity":"sha512-h3ce8hWQFNWNK0JcGovYYtHCL41KXDJGVQAIEcCxOwblvMmJgPBFQpzO5Ki/Spsqrlj8hx845BPC6lxpTQF/Wg==","signatures":[{"sig":"MEQCIEDVOFstuLXh6EnyPCVZgiHH1rrEzKvOvyyhqpm+ohp7AiAkyPMQVtTmjUuOJFsF2EVN+laZxCvtjT3ogY/TgmfUuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2116115},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"d4daa7e7320cca35f91c665343845752e1bfa6ad","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.11_1776552562748_0.5339797778179285","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@sikasio/expo-boilerplate","version":"0.1.12","keywords":["expo","react-native","boilerplate","sikasio","rtl","arabic"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.12","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"7cfde380a58ae2b3277230cec96ea5cbd7985fbc","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.12.tgz","fileCount":107,"integrity":"sha512-h72xgEbqVszLyEItrflqqhAjuRRjlFJcwSpW1GEQc1JDNl4GPvbErpLi106u2ka1TEg2G38sBnA+UX/3AAxktA==","signatures":[{"sig":"MEUCIEkJpag7eCaA/PsxC7jyzFB4eYXzHIAOqr+J5ZdNbtBAAiEA1BgweKBrUgCOosf6H78LMI1wnbCjCIBqZmKeRqNW1mE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sikasio%2fexpo-boilerplate@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2135531},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"7126cda560a7f743b10e2ef16b835a3031ea957e","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.8.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.12_1776553775919_0.39856557415368266","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@sikasio/expo-boilerplate","version":"0.1.13","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.13","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"993b84bfd78018edc988a21e05b221de15034bad","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.13.tgz","fileCount":107,"integrity":"sha512-R4jDwyWY8jxEtZK0R1t0+CI9JnOVA2xDLVl5pvUNVtlX1ptqyod9mtoUxnAkQPAGMLuuCImPNWHB9oVvvf77aw==","signatures":[{"sig":"MEQCIDGEN5gfwA54e/ZRjdWZCM+9nHPUWmc0pxC3rNZ6OLnVAiAi+/KDIu91b8EEMV1M0DZt0mW3du3b9+cK73BvFZnG7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sikasio%2fexpo-boilerplate@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2136028},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.8.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.13_1776555654532_0.8146091660482344","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@sikasio/expo-boilerplate","version":"0.1.14","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.14","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"728080b776a526c9d34afdc112cb10c2f92e2c4d","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.14.tgz","fileCount":107,"integrity":"sha512-mFJhFp0xhlC4mpU3NK1PtBCzfC4UHn2jkmswKA6GnfbDENPEP8al7H1dbuMC/vnZOmdaNa1pIaunRsx8P8BZZw==","signatures":[{"sig":"MEQCIBBCRz2ENqzCbPpQyt9B20sIFEKyky+Wf1iByB8HVl3cAiA5t277Ci1ALH+GHgeunPTBY3OwLAoL/2ORuxrKuhWFdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2136303},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.14_1776555886571_0.6574219474822078","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@sikasio/expo-boilerplate","version":"0.1.15","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.15","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"b241af2e0d1f5833280d9087a7e26cf61ccdc132","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.15.tgz","fileCount":107,"integrity":"sha512-0ZGARpMZPSGdtzOEyi/dM3m8RNTOp399FXUtE+gB7LkaqyQ7nYHQlL5/d3Ue1KE+srys7m1q2Z3fT7kHlhiChA==","signatures":[{"sig":"MEUCIQDKjkEHMi2Zrib44l8gXrg9BZTLFb8rfSj2fBIyxA/1jAIgcjep3XmzLe6nyUUuMg8L0brtBMqJNJXo3JXzy6/rzqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2139035},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.15_1776631063989_0.9408133715133951","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@sikasio/expo-boilerplate","version":"0.1.16","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.16","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"a025e9c8765c790cc9f63eee518cb38a3d0e4950","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.16.tgz","fileCount":107,"integrity":"sha512-Ypc6xhWiUZSdxTNeQEd+ltlggS/Mpq09YJnzQPQrpy8/uYanf/tb6mK7eblyTr9SuVprGijKyrWc0RsFyzAmPg==","signatures":[{"sig":"MEYCIQDPiC0DV/u6j3QvFbR/EVqlerzLmh/8D7zRkAQmwoL/lQIhAN/+KZVHQ2gATb9n2Y4PVPnCtaONnvzJOxRV8TvCuixA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2139927},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.16_1776631352394_0.08051585526979821","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@sikasio/expo-boilerplate","version":"0.1.17","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.17","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"bf9658321cfb761425b42700a34552d8cf45cfab","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.17.tgz","fileCount":107,"integrity":"sha512-sMoVACjSWTWByQCttLnhLwpgZ3qiaif0TOwiqIVca0tsre467cHF7V9ainO/mlL1ZoFO3455QGdRhAOrAJ/evg==","signatures":[{"sig":"MEYCIQCEqaxDm1ZtxlZP0lRS1qebQ9Ar6jOry/eVYpOZW55/3AIhAJt+QaI53mBsvd7CnFQNY4GorOsdN3nMhgO8/2Fizgoh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2140317},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.17_1776631540050_0.6393516782966273","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@sikasio/expo-boilerplate","version":"0.1.18","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.18","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"c3c5a51aaa8348a0b54bdef9fcfe5a99c207d5cf","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.18.tgz","fileCount":107,"integrity":"sha512-HFDCUlUSLMPeHToF9uAXs9/tOYxGiJPxWpw2u2WRX6fRfvxMCTOymnC2ztw+mL4blWVGotWg1RcLsOzluyI/MQ==","signatures":[{"sig":"MEYCIQCmtwV2vnfs0tGdrHO+k1crYYcFVlmnLcLV4CQz4kiLJgIhAI8qoGg020+usbuopa8jmvHjTtQ1CPKFxpaef8qLaZed","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2142541},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.18_1776631963815_0.1576144914395492","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@sikasio/expo-boilerplate","version":"0.1.19","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.19","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"c913d2d1220e5b5b522fc70b9abf1792401597a1","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.19.tgz","fileCount":107,"integrity":"sha512-pRBtRmGGVmcZR19777RHq4Ah1LkK9ZBQ2+ZVF1VxU6g2qH6R05N7NhyL3xHZ9FwYi7LmQdvgbYctyxYv3BIzMw==","signatures":[{"sig":"MEQCIAK3jLkxfmltpV/ZgwCfiH3KzeYFqZx6JBDYXFLf5U2oAiBsP9xNFM6GPIFSOgOAaVVGv0c59hhCbMZ1VSflpkReJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2142736},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"b3ba4d5314ac2e0cc8cf5054f7be9a059992063c","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.19_1776632089933_0.852103411891151","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@sikasio/expo-boilerplate","version":"0.1.20","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.20","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"aca89c71f8f66de70c7edf280c86c41d844388e8","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.20.tgz","fileCount":107,"integrity":"sha512-LCZK0MNpwkQZJBEExZc94cUlB9RMhQiB2no7PMG+zZT7W6fna32w1lbBseBxamzbUpaK71tozPbdvlBBWQVA3Q==","signatures":[{"sig":"MEUCIB7Iw+bNTPBbs7uGFPb38y3xOk2E5FausAguamwwFz9XAiEAijWQWbYFgiv4ikkO/CqwJ5iCIw5UVmtABYUf72nNdhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2143175},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"4d93605e7adb0b4700e6191d49afba500518a24b","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.20_1776669192230_0.8564706632942016","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@sikasio/expo-boilerplate","version":"0.1.21","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.21","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"12d566b60d5994396d5e9a868d818edafe116108","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.21.tgz","fileCount":107,"integrity":"sha512-nIv7gVY4kMypYwBX2vIZvVSJ9KtshdenyJpIXTQ7SPEAs2MXctleHGizKueGjPg5LZFTqn4rHL18SXEc3JDqag==","signatures":[{"sig":"MEYCIQDJeSy10t/SLsjnAOMyjYEQply23DDu1xrsynsiCbmqPgIhAMg1TGTpNKg7qTa/G+kbGvGrUZdrRVrTr0qkK/jBSbro","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145533},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"08352cd036f15110c2d393cd3a083c86a83cd899","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.21_1778193978409_0.9799653635898358","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@sikasio/expo-boilerplate","version":"0.1.22","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.22","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"2c00f8c666f7fc92c1327da226b1e1738db4f707","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.22.tgz","fileCount":107,"integrity":"sha512-UY7Vdh4xfXBafXH82TROpTkAD2UQNagcQAtwz0rjgJZUennoA9P8xvJlrua0pm1ULP5YLZg2p+zfsip003iB8Q==","signatures":[{"sig":"MEUCIQDnNfmG+siJsvvewZm8s/XjE6V9vjSoelvi3HEqe373fQIgJF9x6ri3K4iC/5S/QaOVJ/lAWBoahGc+IlNaSm2+kVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145514},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"f87861323cddf85d3523e4dc7ccc8d02a43b32f7","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.22_1778194484676_0.07269795751424901","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@sikasio/expo-boilerplate","version":"0.1.23","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.23","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"37b0a54dabd539004d93a82b350c901fe99552e0","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.23.tgz","fileCount":107,"integrity":"sha512-EsvChBXQjlxcLT3QLkSuwDKMd4GsDXxHHfpCldlp0EfFA0UOt3KHsrBZkhDBeHI2aee0mFSoMtdGsvLsQmuBtg==","signatures":[{"sig":"MEUCIQDWAZd/GlEv1bizzjv7XllAIQ+hHmsJ63zKyN9RefQE3QIgKRL2KF1kuUN+rJhhLjegd1AIB+YQk9alhb+y2nAUOY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145545},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"0449aab24d142b62837fb796f5a86f644e706408","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.23_1778194582026_0.4932441537280614","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@sikasio/expo-boilerplate","version":"0.1.24","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.24","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"e1457b6d9258be07f68261c2b6424c4466f06981","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.24.tgz","fileCount":107,"integrity":"sha512-CtWryYjA6ThYkDvTLe2MutcB5d54sRCovuW1yWk0g7k5nwnDrTfhP34hh99LXpRF+0em/c3WOVqSyjQghonSLw==","signatures":[{"sig":"MEUCICidkcFdDXxA+YLHdHeNERVSfFU2XikGE9dRTobmgA5jAiEAmY1ieRCXV1zCG7YkZD0JN/RDa72ndiFVQd919zHqkeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2147359},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"8497c03b727f52a3272650174343add8d7670871","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.24_1778195168888_0.10259714076590498","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@sikasio/expo-boilerplate","version":"0.1.25","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.25","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"67f197f9731e99ef0e76fc3e763767252b97f7f7","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.25.tgz","fileCount":107,"integrity":"sha512-NY9dK0XHCi5+jm2BhSwreOyDZ25MJnvz5owaw+fPgs47Cs+E8KOjv08UlNOIcIo6pQjtTAA/d+SuFpqaybuoHg==","signatures":[{"sig":"MEUCIHcpHKBtMAlgCvG1XUW6piDC1Z+5E7UoqDLJF/3FOn4nAiEAgTz2srB4myjnPymdShaJwD4xbTbLUGF0nT1LImdh1+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2147702},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"6c585e07c1acf58f1d9ab14a94a27cf0ec24cc59","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.25_1778195208783_0.9141270486096507","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@sikasio/expo-boilerplate","version":"0.1.26","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.26","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"18018347922b36eeef818e0b5a7120ed5e4054df","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.26.tgz","fileCount":107,"integrity":"sha512-IYoosS62B+1Tr9cgrDhxJth87/gd8LnC8tMJwDMQ3VInOxlgCN34z8Xwo3jW6hME5LqDnNz5zXcUR2CndJdVtg==","signatures":[{"sig":"MEUCIGeVh0XFkcEzGCNsd0QxYn5mkOzbUZ7hqOKMkfFOgNOkAiEA0DxpgM+P0K5B0InK1zPI10jc3kd7iWFCY/F0xROJo2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2147994},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"51283ebe6fc2b11700dc09b88ae4f05ef288b78a","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.26_1778195530327_0.6616785974727555","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@sikasio/expo-boilerplate","version":"0.1.27","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.27","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"df0bf85a71e6c7102077f852b9aeb44f9d415c72","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.27.tgz","fileCount":107,"integrity":"sha512-TeU26nk2bQrHfjdtpxyPdQv/5HQ/OrhVSs8rzgISMEe1t57LtG+FQmv0X/kPESsn2B0daoGk0DnXH+/nlsyO7w==","signatures":[{"sig":"MEUCIQDCUqsaYrP9GdVtWGMpulCqSb0WRIetYaz4ILOw4irZNgIgDXCCY4tGl78dcK+AUCFQQvJpff6IMahddvOSqxgHTpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2148637},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"534db8b13079ded3557627d0d9e5aced16032a4f","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.27_1778195663125_0.04045785615852271","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@sikasio/expo-boilerplate","version":"0.1.28","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"author":{"name":"Sikasio"},"license":"Apache-2.0","_id":"@sikasio/expo-boilerplate@0.1.28","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"dist":{"shasum":"9593b2ea1ab977c9c786e45b834c69b4caf40ab7","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.28.tgz","fileCount":118,"integrity":"sha512-5CiWUYtHC7NXEq2b2bu1ClZ5DSZrnV+d0LBuiXPsoN8p7FgrkzqlBZAFHdUvrabG5o3l2EpX2COxX7Ty236KAg==","signatures":[{"sig":"MEUCIAn1XhR9VSve28KZwVXFkLbLUThaRo5JtUud2O03EZaqAiEAuzWH4BEwxFP6r1a3KOLPtlOP042YQ/Pho4r9zXIDz9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6278976},"main":"./src/index.ts","types":"./src/index.ts","source":"./src/index.ts","exports":{".":{"types":"./src/index.ts","source":"./src/index.ts","default":"./src/index.ts","react-native":"./src/index.ts"},"./hooks":"./src/hooks/index.ts","./types":"./src/types/index.ts","./utils":"./src/utils/index.ts","./config":"./src/config/index.ts","./fonts/*":"./assets/fonts/*","./screens":"./src/screens/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./constants":"./src/constants/index.ts","./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/overlays":"./src/components/overlays/index.ts","./components/navigation":"./src/components/navigation/index.ts"},"gitHead":"efd7f017f526204f2eda3cf7ca219a9b57241095","scripts":{"test":"jest","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"repository":{"url":"git+https://github.com/sikasio/expo-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-url-polyfill":"^3.0.0","react-native-toast-message":"^2.3.3"},"react-native":"./src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2","@types/jest":"^30.0.0"},"peerDependencies":{"expo":"~54.0.0","react":"19.1.0","expo-blur":"~15.0.7","expo-font":"~14.0.4","expo-image":"~3.0.8","expo-router":"~6.0.7","expo-haptics":"~15.0.7","expo-linking":"~8.0.8","react-native":"0.81.5","expo-constants":"~18.0.9","expo-system-ui":"~6.0.7","expo-status-bar":"~3.0.8","react-hook-form":"^7.61.1","expo-secure-store":"~15.0.7","@expo/vector-icons":">=14.0.0","expo-notifications":"^0.32.11","expo-splash-screen":"~31.0.10","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1","react-native-reanimated":"~4.1.0","react-native-gesture-handler":"~2.28.0","react-native-safe-area-context":"^5.4.0","@react-native-async-storage/async-storage":"2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/expo-boilerplate_0.1.28_1778195963857_0.8307697506694507","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@sikasio/expo-boilerplate","version":"0.1.29","description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","license":"Apache-2.0","author":{"name":"Sikasio"},"repository":{"type":"git","url":"git+https://github.com/sikasio/expo-boilerplate.git"},"homepage":"https://github.com/sikasio/expo-boilerplate","bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"sideEffects":false,"main":"./src/index.ts","types":"./src/index.ts","react-native":"./src/index.ts","source":"./src/index.ts","exports":{".":{"react-native":"./src/index.ts","source":"./src/index.ts","types":"./src/index.ts","default":"./src/index.ts"},"./components":"./src/components/index.ts","./components/ui":"./src/components/ui/index.ts","./components/forms":"./src/components/forms/index.ts","./components/layout":"./src/components/layout/index.ts","./components/navigation":"./src/components/navigation/index.ts","./components/overlays":"./src/components/overlays/index.ts","./contexts":"./src/contexts/index.ts","./services":"./src/services/index.ts","./hooks":"./src/hooks/index.ts","./utils":"./src/utils/index.ts","./screens":"./src/screens/index.ts","./config":"./src/config/index.ts","./constants":"./src/constants/index.ts","./types":"./src/types/index.ts","./fonts/*":"./assets/fonts/*"},"scripts":{"test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","typecheck":"echo 'typecheck is a no-op for raw-source packages; consumers typecheck.'"},"peerDependencies":{"@expo/vector-icons":">=14.0.0","@react-native-async-storage/async-storage":"2.2.0","expo":"~54.0.0","expo-blur":"~15.0.7","expo-constants":"~18.0.9","expo-font":"~14.0.4","expo-haptics":"~15.0.7","expo-image":"~3.0.8","expo-linking":"~8.0.8","expo-notifications":"^0.32.11","expo-router":"~6.0.7","expo-secure-store":"~15.0.7","expo-splash-screen":"~31.0.10","expo-status-bar":"~3.0.8","expo-system-ui":"~6.0.7","react":"19.1.0","react-hook-form":"^7.61.1","react-native":"0.81.5","react-native-gesture-handler":"~2.28.0","react-native-reanimated":"~4.1.0","react-native-safe-area-context":"^5.4.0","react-native-screens":"~4.16.0","react-native-worklets":"^0.5.1"},"dependencies":{"axios":"^1.11.0","date-fns":"^4.1.0","react-native-toast-message":"^2.3.3","react-native-url-polyfill":"^3.0.0"},"publishConfig":{"access":"public"},"keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"devDependencies":{"@types/jest":"^30.0.0","jest":"^30.3.0","ts-jest":"^29.4.9","ts-node":"^10.9.2","typescript":"~5.9.2"},"_id":"@sikasio/expo-boilerplate@0.1.29","gitHead":"fbfed51bb9319571613e0ae469eed9c7e8488685","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-yLM+CpK3R6MAjMZsWBx4Z0wNOIKs7dQR/667qmJWXpZDvJ2g4WijcjETfkTi5nAlIQZocBRASoKroXyaLijOkQ==","shasum":"f08dfa78a75060ec89b8b35a7bcc902b056a736b","tarball":"https://registry.npmjs.org/@sikasio/expo-boilerplate/-/expo-boilerplate-0.1.29.tgz","fileCount":118,"unpackedSize":6279569,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDv9nG+jW2jkLJh0jJx7y6jXIjmptB5tDyF2WscbR1oQAIgYIqoYwciPrGreNWH3bENzvWod6vb5JDI7UW/4ivyCtE="}]},"_npmUser":{"name":"ahmedsk","email":"ahmedsk128@gmail.com"},"directories":{},"maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-boilerplate_0.1.29_1778196167124_0.7946331278098941"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T17:20:29.829Z","modified":"2026-05-07T23:22:47.556Z","0.1.0":"2026-04-18T17:20:30.152Z","0.1.1":"2026-04-18T17:30:03.752Z","0.1.2":"2026-04-18T17:30:32.381Z","0.1.3":"2026-04-18T17:33:31.053Z","0.1.4":"2026-04-18T17:35:06.222Z","0.1.5":"2026-04-18T17:37:01.405Z","0.1.6":"2026-04-18T17:38:04.519Z","0.1.7":"2026-04-18T17:39:04.176Z","0.1.8":"2026-04-18T18:04:00.896Z","0.1.9":"2026-04-18T21:29:20.861Z","0.1.10":"2026-04-18T22:44:55.557Z","0.1.11":"2026-04-18T22:49:22.955Z","0.1.12":"2026-04-18T23:09:36.179Z","0.1.13":"2026-04-18T23:40:54.714Z","0.1.14":"2026-04-18T23:44:46.761Z","0.1.15":"2026-04-19T20:37:44.177Z","0.1.16":"2026-04-19T20:42:32.648Z","0.1.17":"2026-04-19T20:45:40.271Z","0.1.18":"2026-04-19T20:52:44.036Z","0.1.19":"2026-04-19T20:54:50.138Z","0.1.20":"2026-04-20T07:13:12.402Z","0.1.21":"2026-05-07T22:46:18.632Z","0.1.22":"2026-05-07T22:54:44.886Z","0.1.23":"2026-05-07T22:56:22.258Z","0.1.24":"2026-05-07T23:06:09.098Z","0.1.25":"2026-05-07T23:06:49.004Z","0.1.26":"2026-05-07T23:12:10.578Z","0.1.27":"2026-05-07T23:14:23.294Z","0.1.28":"2026-05-07T23:19:24.191Z","0.1.29":"2026-05-07T23:22:47.458Z"},"bugs":{"url":"https://github.com/sikasio/expo-boilerplate/issues"},"author":{"name":"Sikasio"},"license":"Apache-2.0","homepage":"https://github.com/sikasio/expo-boilerplate","keywords":["expo","expo-boilerplate","expo-template","expo-starter","expo-router","react-native","react-native-boilerplate","react-native-template","react-native-starter","react-native-ui","ui-components","ui-kit","component-library","theme","dark-mode","rtl","arabic","i18n","auth-screen","form-components","react-hook-form","async-storage","typescript","hooks","boilerplate","template","starter","mobile","zain-font","subpath-exports","sikasio"],"repository":{"type":"git","url":"git+https://github.com/sikasio/expo-boilerplate.git"},"description":"Sikasio Expo/React Native boilerplate — UI, contexts, services, hooks, utils.","maintainers":[{"name":"ahmedsk","email":"ahmedsk128@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/sikasio/expo-boilerplate/main/examples/_default/assets/logo.png\" alt=\"@sikasio/expo-boilerplate\" width=\"120\" />\n</p>\n\n<h1 align=\"center\">Production-Ready Expo / React Native Boilerplate</h1>\n\n<p align=\"center\">\n  <strong>The Expo / React Native boilerplate you stop writing from scratch.</strong><br/>\n  26 themed UI components · 5 form components · 4 reusable screens · 7 contexts · 8 services · 6 hooks · 9 utility modules · <strong>111 unit tests</strong> — all TypeScript, all tree-shakable via subpath exports, RTL-ready from day one.<br/>\n  Battle-tested in multiple shipped Expo/React Native apps.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@sikasio/expo-boilerplate\"><img src=\"https://img.shields.io/npm/v/@sikasio/expo-boilerplate?style=flat-square&logo=npm&color=CB3837\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/@sikasio/expo-boilerplate\"><img src=\"https://img.shields.io/npm/dw/@sikasio/expo-boilerplate?style=flat-square&logo=npm&color=CB3837\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/sikasio/expo-boilerplate/actions/workflows/test.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/sikasio/expo-boilerplate/test.yml?style=flat-square&logo=github&label=tests\" alt=\"tests\" /></a>\n  <img src=\"https://img.shields.io/badge/tests-111_passing-success?style=flat-square\" alt=\"111 tests passing\" />\n  <img src=\"https://img.shields.io/badge/Expo-SDK_54-000020?style=flat-square&logo=expo&logoColor=white\" alt=\"Expo SDK 54\" />\n  <img src=\"https://img.shields.io/badge/React_Native-0.81-61DAFB?style=flat-square&logo=react&logoColor=white\" alt=\"React Native 0.81\" />\n  <img src=\"https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat-square&logo=typescript&logoColor=white\" alt=\"TypeScript 5.9\" />\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/npm/l/@sikasio/expo-boilerplate?style=flat-square&color=blue\" alt=\"Apache 2.0 license\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#quick-start\">Quick Start</a> &bull;\n  <a href=\"#why-sikasioexpo-boilerplate\">Why?</a> &bull;\n  <a href=\"#features\">Features</a> &bull;\n  <a href=\"#installation\">Install</a> &bull;\n  <a href=\"#usage\">Usage</a> &bull;\n  <a href=\"#api-surface\">API</a> &bull;\n  <a href=\"./examples/_default\">Example</a> &bull;\n  <a href=\"#testing\">Testing</a> &bull;\n  <a href=\"#contributing\">Contributing</a>\n</p>\n\n---\n\n## Quick Start\n\n```bash\nnpm install @sikasio/expo-boilerplate\n```\n\n```tsx\n// Drop a production-grade auth screen into your app\nimport { AuthScreen } from '@sikasio/expo-boilerplate/screens';\n\nexport default function LoginRoute() {\n  return (\n    <AuthScreen\n      variant=\"login-email\"\n      layout=\"centered\"\n      onSubmit={async ({ email, password }) => { /* your auth logic */ }}\n    />\n  );\n}\n```\n\n**Full setup with peers →** [Installation](#installation)  ·  **Runnable example app →** [`examples/_default`](./examples/_default)  ·  **See every export →** [API Surface](#api-surface)\n\n---\n\n## Why @sikasio/expo-boilerplate?\n\n| Problem every Expo/RN app has on day one | This package's answer |\n|---|---|\n| Writing `Button`, `Card`, `Text`, `Modal`, `Avatar`, `List`, `Icon`, … from scratch | **26 themed UI components** with variants, sizes, loading states, animations, and a11y |\n| Forms that need password toggle, OTP, phone mask, searchable select | **5 form components** with validation and controlled/uncontrolled modes |\n| Writing an auth flow with 10 variants (login, register, forgot password, OTP, verification, …) | **AuthScreen** with 13 variants × 6 layouts × 6 themes, or pass `customFields` to extend |\n| RTL is a nightmare — `marginLeft`/`marginRight` don't flip, icons point the wrong way | **Full RTL utility suite** — `transformRTLStyle`, `getRTLMargin`, `getRTLPadding`, icon flipping, 25/26 components RTL-ready |\n| AsyncStorage everywhere, no namespacing, can't clear per-app | **StorageService** with app-prefixed keys + `smartClear`, `nuclearClear`, `showClearingDialog` |\n| Theme + dark mode + color schemes require 200 lines of Context plumbing | **ThemeProvider + useTheme** with 6 color schemes, system/light/dark, persistent via AsyncStorage |\n| Fonts are a pain — especially Arabic fonts that look right at every weight | **8 weights of Zain Arabic** bundled and require-able via subpath: `@sikasio/expo-boilerplate/fonts/Zain-Regular.ttf` |\n| No shared code between apps means bug fixes don't propagate | **Versioned npm package** — semver releases, one source of truth, your fix ships to every app |\n| Utilities (date formatting, validation, color parsing) are re-implemented per app | **9 utility modules with 111 unit tests** — validation, formatters, helpers, RTL, async retry, and more |\n\n---\n\n## Features\n\n### 🎨 UI Components (26)\n\n| Component | Variants / Key Props |\n|-----------|---------------------|\n| **Avatar** | sizes, status badges, initials fallback |\n| **Button** | 10 variants, 5 sizes, icons, loading states |\n| **ButtonGroup** | multi-select, orientation |\n| **Card** | 8 color schemes, header/footer/actions |\n| **Checkbox** | indeterminate, ReactNode labels |\n| **CountdownTimer** | threshold states, animations |\n| **EnhancedIcon** | icon families, smart fallbacks |\n| **GallerySlider** | carousel with pagination |\n| **HeroSection** | landing-page hero with variants |\n| **HorizontalCardScroll** | horizontal scroll, empty states |\n| **Icon** | auto RTL flipping |\n| **LazyImage** | progressive loading, blurhash-friendly |\n| **List** | collapsible sections, nested items |\n| **LoadingScreen** | 4 variants (Simple, Detailed, Progress, Error) |\n| **LoadingSpinner** | 3 variants, positioned |\n| **MiniView** | RTL-aware `View` wrapper |\n| **Modal** | 4 sizes × 5 variants, animated |\n| **NetworkConnectivityBar** | online/offline indicator |\n| **SkeletonCard** | 5 skeleton variants |\n| **SplashLoader** | custom splash |\n| **StarRating** | interactive, read-only modes |\n| **Switch** | toggle, theme-aware |\n| **TabBarIcon** | tab nav icons |\n| **Text** | 5 variants, auto RTL alignment |\n| **ThemeStatusBar** | auto-theme-aware status bar |\n| **ThemeToast** | theme-aware notification toasts |\n\n### 📝 Form Components (5)\n\n- **TextInput** — password toggle, icons, validation hints, RTL\n- **MaskedTextInput** — phone, credit card, date masks\n- **OTPInput** — auto-focus, completion callback\n- **Select** — searchable, multi-select, icons\n- **SimpleDatePicker** — button-based date picker, theme-aware\n\n### 🖼 Reusable Screens (4)\n\n- **AuthScreen** — 13 variants (login, register, forgot-password, OTP, verification, …) × 6 layouts × 6 themes. `customFields` slot for extending.\n- **SettingsScreen** — 4 layout variants, pre-built sections, pull-to-refresh.\n- **OnboardingScreen** — swipe navigation, auto-play, progress indicators.\n- **SplashScreen** — customizable splash with animations.\n\n### 🧠 Contexts (7)\n\n| Context | Responsibility |\n|---------|----------------|\n| **ThemeProvider** | Theme mode (system/light/dark) + color schemes, persistent |\n| **RTLProvider** | RTL/LTR direction, persistent, per-app defaults |\n| **FontProvider** | Font family + size, platform-aware line heights |\n| **AuthProvider** | Generic auth state + token refresh |\n| **AppProvider** | Global app state via useReducer |\n| **SplashProvider** | Splash screen visibility |\n| **CartProvider** | Shopping-cart state (generic `<T extends BaseProduct>`) |\n\n### ⚙️ Services (8)\n\n- **StorageService** — AsyncStorage wrapper with type safety + app-key prefixing\n- **AuthService** — login, register, session, token refresh\n- **CartService** — add/remove/update cart items with persistence\n- **NotificationService** — push notification setup (expo-notifications)\n- **NetworkConnectivityService** — online/offline monitoring\n- **AppInitializationService** — startup orchestration (theme/RTL/font/auth checks)\n- **StorageClearingService** — `smartClear`, `nuclearClear`, `quickTestClear`\n- **FirstTimeService** — first-run detection per app+version\n\n### 🪝 Hooks (6)\n\n- **useAsync** — async state (`{ loading, error, data, execute }`)\n- **useDebounce** — value + callback debouncing\n- **useStorage** — reactive AsyncStorage hook\n- **useKeyboard** — keyboard visibility tracking\n- **useOrientation** — device orientation\n- **use3ButtonNavigationDetector** — Android 3-button nav bar detection\n\n### 🛠 Utilities (9 modules, 111 unit tests)\n\n- **rtl** — `getFlexDirection`, `getTextAlign`, `getRTLMargin`, `getRTLPadding`, `getRTLBorder`, `transformRTLStyle`, `getRTLIconName`\n- **validation** — email, password, phone, URL, numeric, alphabetic, alphanumeric, length boundaries, credit card (Luhn)\n- **format** — currency, number, percentage, file size, phone, credit card, email masking, date\n- **formatters** — `formatNumberWithCommas`, `formatPrice`, `formatPercentage`, `formatQuantity`\n- **helpers** — `ArrayUtils` (unique, groupBy, chunk, shuffle), `ObjectUtils` (pick, omit, isEmpty, deepEqual), `ColorUtils` (hexToRgb, rgbToHex, adjustOpacity), `RandomUtils` (id, number, boolean, color), `AsyncUtils` (delay, retry)\n- **logger** — scoped log channels (`logAuth`, `logAPI`, `logNavigation`, `logPerformance`, …)\n- **fontUtils** — font-loading helpers\n- **getCurrentApp** — multi-app environment detection\n\n### 🌍 Zain Arabic Fonts (bundled)\n\nAll 8 weights ship with the package and are `require()`-able via subpath:\n\n```ts\n'Zain-Regular'     // 400\n'Zain-Light'       // 300\n'Zain-ExtraLight'  // 200\n'Zain-Bold'        // 700\n'Zain-ExtraBold'   // 800\n'Zain-Black'       // 900\n'Zain-Italic'\n'Zain-LightItalic'\n```\n\nLicensed under [SIL Open Font License 1.1](assets/fonts/Zain/OFL.txt).\n\n---\n\n## Tech Stack\n\n```\nFramework     Expo SDK 54  ·  React Native 0.81  ·  Expo Router 6\nLanguage      TypeScript 5.9 (ships as raw .ts, consumer Metro transpiles)\nPeers         react 19  ·  react-hook-form 7  ·  reanimated 4  ·  gesture-handler 2\nStorage       @react-native-async-storage/async-storage  ·  expo-secure-store\nFonts         Zain Arabic family (8 weights, OFL 1.1)\nTesting       Jest  ·  ts-jest (111 tests, node env, RN mocked)\nCI            GitHub Actions (test on every push/PR, publish on tag)\n```\n\n---\n\n## Installation\n\n```bash\nnpm install @sikasio/expo-boilerplate\n```\n\nThen install the peer dependencies your app uses (common set):\n\n```bash\nnpx expo install expo-router expo-font expo-constants expo-linking \\\n  expo-splash-screen expo-status-bar expo-system-ui expo-haptics \\\n  expo-secure-store expo-blur expo-image expo-notifications \\\n  @react-native-async-storage/async-storage \\\n  @expo/vector-icons react-hook-form \\\n  react-native-gesture-handler react-native-reanimated \\\n  react-native-safe-area-context react-native-screens \\\n  react-native-worklets\n```\n\n> **Note**: Metro resolves this package's raw `.ts` source directly — no build step required on your side. If you hit resolver issues with subpath imports, confirm your `metro.config.js` uses Expo's default config (`getDefaultConfig(__dirname)`).\n\n---\n\n## Usage\n\n### Common imports\n\n```ts\nimport { Button, Card, Text, Modal } from '@sikasio/expo-boilerplate/components/ui';\nimport { TextInput, OTPInput, Select } from '@sikasio/expo-boilerplate/components/forms';\nimport { ThemeProvider, useTheme, useRTL, useFont } from '@sikasio/expo-boilerplate/contexts';\nimport { StorageService, AuthService, networkConnectivityService } from '@sikasio/expo-boilerplate/services';\nimport { useDebounce, useAsync } from '@sikasio/expo-boilerplate/hooks';\nimport { ValidationUtils, FormatUtils, ArrayUtils } from '@sikasio/expo-boilerplate/utils';\nimport { AuthScreen, SettingsScreen, OnboardingScreen } from '@sikasio/expo-boilerplate/screens';\n```\n\n### Bootstrap your app with the provider stack\n\n```tsx\nimport { ExpoRoot } from 'expo-router';\nimport {\n  AppProvider, AuthProvider, ThemeProvider, RTLProvider,\n  FontProvider, SplashProvider\n} from '@sikasio/expo-boilerplate/contexts';\n\nexport default function App() {\n  return (\n    <AppProvider>\n      <AuthProvider>\n        <ThemeProvider>\n          <RTLProvider>\n            <FontProvider>\n              <SplashProvider>\n                <ExpoRoot context={require.context('./app')} />\n              </SplashProvider>\n            </FontProvider>\n          </RTLProvider>\n        </ThemeProvider>\n      </AuthProvider>\n    </AppProvider>\n  );\n}\n```\n\n### Use the shared Auth screen\n\n```tsx\nimport { AuthScreen } from '@sikasio/expo-boilerplate/screens';\n\nexport default function LoginRoute() {\n  return (\n    <AuthScreen\n      variant=\"login-email\"\n      layout=\"centered\"\n      theme=\"light\"\n      logoSource={require('./assets/logo.png')}\n      onSubmit={async ({ email, password }) => { /* ... */ }}\n    />\n  );\n}\n```\n\n### Load Zain Arabic fonts\n\n```tsx\nimport { useFonts } from 'expo-font';\n\nconst [loaded] = useFonts({\n  'Zain-Regular':   require('@sikasio/expo-boilerplate/fonts/Zain-Regular.ttf'),\n  'Zain-Bold':      require('@sikasio/expo-boilerplate/fonts/Zain-Bold.ttf'),\n  'Zain-Black':     require('@sikasio/expo-boilerplate/fonts/Zain-Black.ttf'),\n});\n```\n\n### RTL-safe styles\n\n```tsx\nimport { useRTL } from '@sikasio/expo-boilerplate/contexts';\nimport { getRTLPadding, getFlexDirection } from '@sikasio/expo-boilerplate/utils';\n\nfunction MyCard() {\n  const { isRTL } = useRTL();\n  return (\n    <View style={{\n      flexDirection: getFlexDirection(isRTL),\n      ...getRTLPadding(isRTL).paddingStart(16),\n      ...getRTLPadding(isRTL).paddingHorizontal(8),\n    }}>\n      <Text>مرحبا</Text>\n    </View>\n  );\n}\n```\n\n---\n\n## API Surface\n\nThe package uses **subpath exports** for clean tree-shaking. Import each category from its own barrel:\n\n| Subpath | Exports |\n|---------|---------|\n| `@sikasio/expo-boilerplate` | root barrel re-exporting everything |\n| `@sikasio/expo-boilerplate/components` | all components (UI + forms + layout + nav + overlays) |\n| `@sikasio/expo-boilerplate/components/ui` | 26 UI components |\n| `@sikasio/expo-boilerplate/components/forms` | TextInput, OTPInput, MaskedTextInput, Select, SimpleDatePicker |\n| `@sikasio/expo-boilerplate/components/layout` | Container, KeyboardAvoidingContainer |\n| `@sikasio/expo-boilerplate/components/navigation` | Header, BackButton, ThemedStackScreen, BottomTabNavigator |\n| `@sikasio/expo-boilerplate/components/overlays` | GlobalConfigPanel |\n| `@sikasio/expo-boilerplate/contexts` | 7 context providers + hooks |\n| `@sikasio/expo-boilerplate/services` | 8 services |\n| `@sikasio/expo-boilerplate/hooks` | 6 custom hooks |\n| `@sikasio/expo-boilerplate/utils` | 9 utility modules |\n| `@sikasio/expo-boilerplate/screens` | AuthScreen, SettingsScreen, OnboardingScreen, SplashScreen |\n| `@sikasio/expo-boilerplate/config` | theme, navigation, fonts |\n| `@sikasio/expo-boilerplate/constants` | shared constants |\n| `@sikasio/expo-boilerplate/types` | TypeScript types |\n| `@sikasio/expo-boilerplate/fonts/<file>.ttf` | Zain Arabic font files (8 weights) |\n\n<details>\n<summary><strong>Full peer-dependency matrix</strong></summary>\n\nThe package declares the following as `peerDependencies` — your app pins the versions:\n\n| Package | Range |\n|---------|-------|\n| `expo` | `~54.0.0` |\n| `react` | `19.1.0` |\n| `react-native` | `0.81.5` |\n| `expo-router` | `~6.0.7` |\n| `expo-font` | `~14.0.4` |\n| `expo-constants` | `~18.0.9` |\n| `expo-linking` | `~8.0.8` |\n| `expo-splash-screen` | `~31.0.10` |\n| `expo-status-bar` | `~3.0.8` |\n| `expo-system-ui` | `~6.0.7` |\n| `expo-haptics` | `~15.0.7` |\n| `expo-secure-store` | `~15.0.7` |\n| `expo-blur` | `~15.0.7` |\n| `expo-image` | `~3.0.8` |\n| `expo-notifications` | `^0.32.11` |\n| `@react-native-async-storage/async-storage` | `2.2.0` |\n| `@expo/vector-icons` | `>=14.0.0` |\n| `react-hook-form` | `^7.61.1` |\n| `react-native-gesture-handler` | `~2.28.0` |\n| `react-native-reanimated` | `~4.1.0` |\n| `react-native-safe-area-context` | `^5.4.0` |\n| `react-native-screens` | `~4.16.0` |\n| `react-native-worklets` | `^0.5.1` |\n\nDirect `dependencies` (owned by this package): `axios`, `date-fns`, `react-native-toast-message`, `react-native-url-polyfill`.\n\n</details>\n\n---\n\n## Example\n\nA full runnable example lives in [`examples/_default`](./examples/_default):\n\n```bash\ncd examples/_default\nnpm install\nnpx expo start\n```\n\nThe example uses `\"@sikasio/expo-boilerplate\": \"file:../..\"` so edits to `src/` live-reload into the example without a publish cycle. Metro's `watchFolders` is configured in the example's `metro.config.js` to include this package root.\n\nIt's also the fastest way to **scaffold a new Sikasio app**:\n\n```bash\ncp -r examples/_default ~/projects/my-new-app\ncd ~/projects/my-new-app\n# 1. swap \"file:../..\" for the published version in package.json:\n#      \"@sikasio/expo-boilerplate\": \"^0.1.9\"\n# 2. edit app.json (name, slug, bundleIdentifier, package)\nnpm install\nnpx expo start\n```\n\n---\n\n## Testing\n\nThe package ships a 111-test Jest suite covering the utility layer. Tests run in a Node environment with a minimal React Native mock — no RN rendering surface, no jest-expo — so the suite finishes in **~1 second**.\n\n```bash\nnpm test                  # full suite\nnpm run test:coverage     # with lcov report in coverage/\nnpm run test:watch        # TDD mode\n```\n\n| Module | Tests | Focus |\n|--------|-------|-------|\n| `utils/rtl` | 19 | flex/text/margin/padding/border direction, style transforms, icon flipping |\n| `utils/validation` | 15 | email, password, phone, URL, length, numeric/alpha checks |\n| `utils/format` | 17 | currency, number, percentage, file size, phone, card, email masking |\n| `utils/formatters` | 10 | `formatNumberWithCommas`, `formatPrice`, `formatPercentage`, `formatQuantity` |\n| `utils/helpers` | 47 | `ArrayUtils`, `ObjectUtils`, `ColorUtils`, `RandomUtils` |\n| `utils/helpers` (AsyncUtils) | 3 | `delay`, `retry` success/failure paths |\n\nCI runs the full suite on every push and pull request via [`.github/workflows/test.yml`](.github/workflows/test.yml). Publishing to npm is automated via `v*` tag pushes (`.github/workflows/publish.yml`).\n\n---\n\n## Project Structure\n\n```\n@sikasio/expo-boilerplate/\n├── src/\n│   ├── components/\n│   │   ├── ui/              26 themed UI components\n│   │   ├── forms/           5 form components\n│   │   ├── layout/          Container, KeyboardAvoidingContainer\n│   │   ├── navigation/      Header, BackButton, ThemedStackScreen, BottomTabNavigator\n│   │   └── overlays/        GlobalConfigPanel\n│   ├── contexts/            7 context providers (Theme, RTL, Font, Auth, App, Splash, Cart)\n│   ├── services/            8 services (storage, auth, cart, notifications, …)\n│   ├── hooks/               6 custom hooks\n│   ├── utils/               9 utility modules (rtl, validation, format, helpers, …)\n│   ├── screens/             4 reusable screens (Auth, Settings, Onboarding, Splash)\n│   ├── config/              theme, navigation, fonts\n│   ├── constants/\n│   └── types/\n├── assets/\n│   └── fonts/Zain/          8 weights of Zain Arabic + OFL 1.1 license\n├── examples/\n│   └── _default/            Runnable Expo app wired to this package via file:..\n├── __tests__/               111 Jest tests + RN mock\n│   ├── utils/\n│   └── __mocks__/\n├── .github/workflows/       Test + Publish CI\n├── package.json             Subpath exports, peer deps, raw-source shipping\n└── LICENSE                  Apache 2.0\n```\n\n---\n\n## Contributing\n\nContributions are welcome. See below for the dev setup, areas where help is most needed, and the security disclosure policy.\n\n```bash\ngit clone https://github.com/sikasio/expo-boilerplate.git\ncd expo-boilerplate\nnpm install\nnpm test\ncd examples/_default && npm install && npx expo start\n```\n\n### Areas where help is welcome\n\n- **More tests** — contexts, hooks (useAsync, useDebounce), services (cart, storage)\n- **Component snapshot tests** via `@testing-library/react-native`\n- **Accessibility** — ARIA labels, screen reader flows, focus order audit\n- **Docs site** — Storybook or a dedicated docs page\n- **Examples** — `examples/supabase-starter`, `examples/firebase-starter`, etc.\n\n### Security\n\nFound a vulnerability? Please use GitHub's [private vulnerability reporting](https://github.com/sikasio/expo-boilerplate/security/advisories/new) instead of a public issue. We aim to acknowledge reports within 72 hours and ship a fix or mitigation before any public disclosure.\n\n---\n\n## Versioning & Release\n\n- **Semver** — breaking changes bump the major, features bump the minor, fixes bump the patch.\n- **Pre-1.0** — the public API can still shift; review release notes before upgrading.\n- **Release flow** — `npm version <patch|minor|major> && git push --follow-tags` → GitHub Actions publishes to npm automatically via the `NPM_TOKEN` secret.\n\n---\n\n## License\n\nReleased under the [Apache 2.0 License](LICENSE). Free for commercial and non-commercial use, no attribution required but appreciated.\n\n> The `Zain` Arabic font family is distributed under the [SIL Open Font License 1.1](assets/fonts/Zain/OFL.txt) — a separate, font-specific license bundled alongside the package.\n\n---\n\n## Keywords\n\n`expo` · `expo-boilerplate` · `expo-template` · `expo-starter` · `expo-router` · `react-native` · `react-native-boilerplate` · `react-native-template` · `react-native-starter` · `react-native-ui` · `ui-components` · `ui-kit` · `component-library` · `theme` · `dark-mode` · `rtl` · `arabic` · `i18n` · `auth-screen` · `form-components` · `react-hook-form` · `async-storage` · `typescript` · `hooks` · `boilerplate` · `template` · `starter` · `mobile` · `zain-font` · `subpath-exports`\n\n---\n\n<p align=\"center\">\n  <strong>Built by <a href=\"https://sikasio.com\">Sikasio</a></strong> — A design &amp; development studio from Cairo, Egypt.<br/>\n  <a href=\"https://github.com/sikasio/expo-boilerplate/issues\">Report Bug</a> &bull;\n  <a href=\"https://github.com/sikasio/expo-boilerplate/issues/new\">Request Feature</a> &bull;\n  <a href=\"https://github.com/sikasio/expo-boilerplate\">Star on GitHub</a>\n</p>\n","readmeFilename":"README.md"}