Conversation
* Policies to allow users to read profiles from requesters / inviters * A comment to submit with the migration
* upgrade expo 54 + reanimated + posthog * expo doctor git ignore change * remove deprecated code (reanimated, edge to edge flag, safe area view) * remove legacy expo file system * replace expo-av with expo-audio * expo 55 * upgrade remaining dependencies * update tsconfig based on default expo template * fix: update tsconfig.json to fix @/ imports * add package json override for expo 55 compatiblity with package * fix: package lock * fix syntax in package.json * add missing dependency * update packages again? * migrate dependencies to expo doctor suggestions * remove unused expo plugin * fix color scheme crash on android * refactor: rename supabase scripts to sb and knip to knip:check Co-authored-by: Cursor <cursoragent@cursor.com> * update package lock * chore: style changes * chore: style changes * chore: update app version to 2.1.0 and fix typo in android release script * Add isPreferred: true to react-native-alert primary action buttons Mark primary action buttons (confirm, submit, delete, publish, merge, OK, etc.) as preferred in alert dialogs across the codebase. This improves UX by highlighting the default/preferred action in multi-button alerts. Updated alerts in: - BibleChapterList, NextGenAssetsView, BibleAssetsView - RecordingViewSimplified, BibleRecordingView - NextGenNewTranslationModal, AuthContext - SignInView, ResetPasswordView, ForgotPasswordView - AccountDeletedOverlay, AccountDeletionView, ProfileView - SettingsView, CorruptedAttachmentsView - PrivateAccessGate, ProjectMembershipModal - NewReportModal, TranscriptionEditModal, QuestTreeRow * Jesus/animate button (#653) * refactor: Remove pressto dependency and update button component implementation - Eliminated the `pressto` package from `package.json` and refactored the button component to use native React Native components directly, enhancing performance and reducing dependencies. - Updated the button's pressable logic to streamline event handling and improve code clarity. * Refactor: Improve button disabled state and component logic Fix: Correct null return in ProjectMembershipModal Refactor: Simplify Button component props and logic Fix: Ensure Combobox and RadioGroup disable correctly Co-authored-by: realdinozoid <realdinozoid@gmail.com> * refactor: Update button component implementation and enhance animation handling - Refactored button components across the application to utilize a unified Button component with improved pressable logic and animations using React Native Reanimated. - Replaced TouchableOpacity with the new Button component in various files, ensuring consistent styling and behavior. - Introduced custom easing functions for animations to enhance user experience. - Updated terms and conditions text handling in the Terms and Register views for better localization support. These changes aim to streamline button interactions and improve the overall UI responsiveness. * fix: Update import path for custom easing curves in animation guidelines - Changed the import path for custom easing curves from `tailwind.config.ts` to `@constants/animations.ts` to ensure correct usage with React Native Reanimated animations. * Initial commit of modified files from installation Co-authored-by: realdinozoid <realdinozoid@gmail.com> * Refactor: Update styling and remove unused code Co-authored-by: realdinozoid <realdinozoid@gmail.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Keean <keeandev@users.noreply.github.com> * Enhance localization support by adding Hindi, Burmese, Thai, and Mandarin languages (#748) - Updated Bible book names to include translations for Hindi, Burmese, Thai, and Mandarin. - Modified seed data to reflect new language entries and their respective aliases. - Enhanced localization hooks and services to support new languages and their endonyms. - Updated email templates for account confirmation and password reset in the new languages. - Created a migration script to enable UI readiness for the newly added languages in the database. * fix: package-lock * format + typefix * fix(ci): use env vars for fingerprint-diff to avoid argument length limit Pass fingerprint-diff through environment variables instead of direct interpolation in github-script actions to prevent "argument list too long" errors when fingerprint diffs are large. - Add FINGERPRINT_DIFF env var to check-compatibility-change step - Add FINGERPRINT_DIFF env var to format-diff step with JSON parsing - Read from process.env instead of direct template interpolation * fix(ci): use file-based approach for large fingerprint diffs to avoid argument limits Replace direct output interpolation with file-based storage and environment variables to prevent "argument list too long" errors when fingerprint diffs are large. Changes: - Pass fingerprint-diff through FINGERPRINT_DIFF env var instead of direct interpolation in github-script actions - Write prettified diff to fingerprint-diff.json file instead of step output to avoid GitHub Actions output size limits - Replace thollander/actions-comment-pull-request with github-script for comment management to read diff from file - Add comment marker (<!-- fingerprint-check -->) for reliable comment identification and updates - Fix YAML syntax issues by replacing template literals with string concatenation This ensures the workflow can handle fingerprint diffs of any size without hitting system argument length limits. * change terms page * fix padding on download indicator * remove @expo/vector-icons and migrate all icons to lucide * make sure to use the icon component * remove withoutCredentials * refactor(ci): reorganize iOS and Android build jobs in preview workflow - Added a new job to check for existing iOS builds. - Repositioned the Android Maestro tests job to improve workflow structure. - Removed redundant iOS build job definition to streamline the process. * format fix + check native build workflow attempt fix * disable eas caching temporarily * invalidate preview cache * fix worker type for ios builds from linux to mac * update ios repack step to use macos-medium for iOS builds * fix i agree button not being shown * record ios screen in maestro tests * try and fix terms page on small screens android * use consistent testing devices Pixel 6 and iPhone 16e * refactor(maestro): update flow paths and add new flows for user management - Changed flow paths in testing workflows to reference the new directory structure under `.maestro`. - Introduced new flows for user registration, sign-in, password reset, and project management. - Added API functions for user deletion and password reset link generation in `api.js`. - Removed deprecated `sign-in.yaml` flow file. * fix sign in button press in maestro flow * add ios autofill fix * fix maestro flow to only apply on IOS - password autofill + run before everything else * fix agree to terms localization * add package.json scripts for clean rebuilds + fix swift warnings in microphone energy module * dont create apps on maestro test file changes * chore: format fix * refactor: standardize item card components with cn() and Button component - Replace className template literals with cn() utility - Use Button component for external link icon - Increase DownloadIndicator size to 20 for consistency * fix text color on play button for audio player * add languoid aliases for new localizations + seed local * bump package.json version to 2.1.0 to match app.config.ts Co-authored-by: Keean <keeandev@users.noreply.github.com> * add missing localization languages to mustBeOnlineToAcceptInvite and fix incomplete entries Co-authored-by: Keean <keeandev@users.noreply.github.com> * fix: remove duplicate mustBeOnlineToAcceptInvite entry and format Co-authored-by: Keean <keeandev@users.noreply.github.com> * rename localization migration to latest timestamp Co-authored-by: Keean <keeandev@users.noreply.github.com> * add EAS build cache provider Co-authored-by: Keean <keeandev@users.noreply.github.com> * fix clean-rebuild scripts to use --clean flag Co-authored-by: Keean <keeandev@users.noreply.github.com> * migrate back to expo-router * Add "development-simulator" build profile to eas.json * migration fix - Added name for region_alias (long-forgotten) - Removed incorrect exonym from migration (had same subject and target languoid suggesting exonym, name was country name rather than language) - Removed bug (likely from before this pr) that threw error when accessing info of unpublished quest * readme tip * rename localization migration to latest timestamp Co-authored-by: Keean <keeandev@users.noreply.github.com> * fix migration * fix translation/transcription cards * fix onboarding continue button hidden behind 3 button navigation on android * attempt fix for audio recording state machine * attempt fix for cannot create translation/transcription * try large machine for ios simulator runs * update production ios simulator to large machine for consistency * new breadcrumbs * move app header spacing to layout * remove back button from views * order of hooks error? fix * fix terms page show on app restart (even though they've been accepted) * expo mcp added to project * improved page route structure * update stack * Nested routes and navigation (#783) Restructure flat routes into nested project/quest/asset hierarchy. One quest route handles all nesting levels (books, chapters, flat quests). Route structure: /project/[projectId]/quest/[questId]/asset/[assetId] /project/[projectId]/quest/[questId]/recording Changes: - Delete useAppNavigation hook (613 lines) entirely - Create useNavigationHelpers for thin router.push wrappers - Create useBreadcrumbs hook that walks parent_id chain - Unify bible-quest and quest into single template-driven route - Update all ~25 consumer files to use new hooks - Breadcrumbs derive from DB ancestry, no query param threading - TypeScript compiles clean Co-authored-by: Cursor Agent <cursoragent@cursor.com> * refactor: remove navigation wrappers and recent data tracking - Remove addRecentQuest/addRecentAsset calls from navigation helpers - Remove simple wrapper functions (goToProject, goToProfile, etc.) - Remove href helper function, use router.push() directly - Remove all type casts from navigation calls * update * add app drawer routes to the breadcrumb * more style changes * update * format fix * add emil design skill * check native build update * package fixes * remove fingerprint diff section * encrypted env vars for supabase (#819) * encrypted env vars for supabase * test these secrets * use real variables again * add site url * updated preview urls * remove fingerprint diff section * ui/router changes + successful deeplink on ios - glory to God! (#821) * env changes * ui changes + router changes + successful deeplink * temp disable asc domains app config * made isolated terms page which has few dependencies * remove extra stuff * put back? * update config toml * update supabase variable name * allow the sheet to be dismissed * unfocus heavy views? * add extra padding on bottom of project list * add local resend inbox to save domain reputation * fix reset password maestro test * set port for local resend service to be consistently port 4000 * remove project_ref= url param from maestro test api * add open app dialog step to maestro reset-password test * remove extended timeout for maestro onboard subflow * seperate run flow for ios open dialogs maestro reset password test * fix: terms_accepted null constraint in user signup triggers (result of deleting user and trying to recreate it in the dashboard) * fix(maestro): use regex patterns for iOS deep link dialogs * feat(maestro): disable Safari onboarding popovers in iOS E2E tests * fix(eas): create Safari plist if missing in iOS E2E setup * fix(eas): correct Safari onboarding plist path and keys * fix(eas): move Safari setup to before_maestro_tests hook Safari needs the simulator booted to launch. Split hooks so AutoFill setup stays in after_checkout and Safari onboarding setup moves to before_maestro_tests. * fix(eas): use PlistBuddy instead of plutil -json for Safari prefs plutil -json doesn't accept JSON values on the build server. Use PlistBuddy commands to build the dictionary structure instead. * fix(eas): kill Safari after setting onboarding prefs Ensure Safari reads modified plist values by terminating it after all preference modifications in before_maestro_tests hook. * fix(eas): remove WBSParsecHasShownFirstTimeUserExperience causing exit 3 Clean up Safari onboarding setup - remove unused flag that was causing plutil to fail with exit code 3. * fix(eas): keep Safari running during plist modification Launch Safari once, modify prefs while running, then terminate. Add debug output and longer sleep for initialization. * fix(eas): use plutil -replace instead of PlistBuddy Replace PlistBuddy Add/Delete with plutil -replace using colon keypaths. Handles both create and update cases without errors. * fix(eas): hybrid approach for Safari onboarding plist Use plutil -replace to create/reset parent dict, then PlistBuddy Set with Add fallback for each nested key. Handles all cases. * Use Maestro flow for dismissing Safari bookmark popover Removes before_maestro_tests script hooks from EAS workflows in favor of handling Safari onboarding popover dismissal via Maestro subflow. Keeps after_checkout hook for disabling password autofill. Made-with: Cursor * Fix iOS Safari bookmark popover dismiss button selector * remove session type variable (not needed) * remove redundant early system is initialized returns * undo some changes * format fix * setSystemReady calls restored * remove markdown file --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Keean <keeandev@users.noreply.github.com> Co-authored-by: CalJosKos <120157396+CalJosKos@users.noreply.github.com>
Add a migration that disables all triggers which recompute source_language_ids and target_language_ids (on asset_content_link, asset, translation, quest_closure, and project_closure). These recomputations perform a full project-wide scan and can exceed the 8s authenticated role statement_timeout for large projects, causing uploads to fail with HTTP 500 (57014). The language array fields are not used by client code, so disabling the triggers prevents the timeout/ retry failures while preserving functional behavior.
* Migrations to create dashboard tables * Fix migration
* reorder test order (reset password before sign in) * fix(maestro): validate exact email match in getUserByEmail The function was returning the first user from Supabase's response without verifying the email actually matched. This caused password reset operations to update the wrong user's password when multiple users existed. * format fix
* Add functions to process dashboard * Run prettier * Prettier + Remove inline secret * Add comment * Fix Variables * Fix variables * Remove string errors
* Don't auto-disable FormSubmit for invalid form state (#828) FormSubmit no longer disables buttons when form is invalid - users can press and see validation errors inline via FormMessage. Forms can still pass disabled explicitly for external blockers (offline, permissions). * show proper error message when language is not selected * Use z.email() instead of deprecated z.string().email() * refactor: convert NextGenNewTranslationModal to proper form workflow - Move validation from mutationFn throws to Zod schema with superRefine() - Fix audioUri union type to accept null during form interactions - Add handleOpenChange for proper form reset on drawer close - Add keyboard dismissal and drawer safety (dismissible={!isPending}) - Follow build-form.md workflow patterns for FormSubmit and DrawerClose * disable submit button when audio is recording * feat: improve audio recording workflow with auto-stop and validation - Fix AudioRecorder ref types for imperative stopRecording - Auto-stop paused recordings on form submit in translation modal - Show "Please record audio" validation error only on submit attempt - Add pleaseRecordAudio localization key across all languages * format fix * fix: validate empty strings in password and username fields Fixes Zod v4 API issues where clearing a field after typing would not show proper "required" validation errors. * feat(fingerprint): skip package.json android/ios scripts when not containing run * remove then release audio player * fix(audio-recorder): pause before seek to prevent Android looping * fix(audio-recorder): hide remaining time text when not recording * style: reposition and style audio recorder timer * fix(audio): disable submit until recording completes * remove no longer used asString function
* Add functions to process dashboard * Run prettier * Prettier + Remove inline secret * Add comment * Fix Variables * Fix variables * Remove string errors * Add function to add a project individually to the queue
* feat: share audio and export file with published assets * refactor: sort asset_content_links in sql instead of in javascript * fix: deduplicate content links within each asset by ID (prefer synced over local)
* feat(project): add invite members banner for solo owner projects * feat(ui): add KeyboardAvoidingView to project list for keyboard scrolling * fix: formatting * empty commmit
When users create projects with language names in titles (e.g., "Santhali
OMT Bible") but select generic languages like "English", the suggestion
system now searches project names to find better matches.
Ranking:
- Ranks 1-6: languoid name matches (higher priority)
- Ranks 4-9: project name matches (lower priority)
Option S3 (future enhancement): Add match source tracking to show context
in UI like "We noticed your project 'Santhali OMT Bible' might be about:
Santhali". This would require:
- New columns: source_type ('languoid'|'project'), source_value
- UI updates to display what triggered the match
Deferred for now to keep schema simple; current implementation works
without schema changes.
Co-authored-by: Cursor <cursoragent@cursor.com>
… my God and Jesus Christ - Prioritize project name matches (ranks 1-3) over languoid name matches - Add word_similarity for fuzzy matching "Modern English 2" → "Modern English" - Fix cases where "Santhali OMT Bible" project name wasn't finding "Santhali"
Use <% operator instead of similarity() to check if extracted words are contained in existing languoid names. Fixes false matches like "Modern Duoxu" for "modern english 6".
* feat(db): add uploaded_at column for server-confirmed upload time (#839) Co-authored-by: Cursor <cursoragent@cursor.com> * feat(db): add uploaded_at column for server-confirmed upload time * Add migration do recreate clone function * Add condition to alter table columns --------- Co-authored-by: Keean <38674879+keeandev@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Raise Levenshtein threshold and use a minimum score gap so near-miss languages like Nthali no longer block clear Santali matches.
…ries - for the glory of the Lord Jesus Christ
…n UX - for the glory of the Lord Jesus Christ - Coordinate splash dismissal in root layout (bootstrap, auth, migration, upgrade) - Hide splash from MigrationScreen; remove scattered hide calls in terms/pre-auth paths - Make local store rehydration migration non-blocking so hydration completes promptly - Present terms as a form sheet with close control and safer back navigation - Rename project language suggestion title to "Switch language?" - Remove success alert when keeping current language on dismiss
… flag - for the glory of the Lord Jesus Christ Co-authored-by: Cursor <cursoragent@cursor.com>
… - for the glory of the Lord Jesus Christ Co-authored-by: Cursor <cursoragent@cursor.com>
* feat(db): add uploaded_at column for server-confirmed upload time (#839) Co-authored-by: Cursor <cursoragent@cursor.com> * feat(db): add uploaded_at column for server-confirmed upload time * Migration to RPC to manage retrieve dashboard data * Add PR helper * Prettier --------- Co-authored-by: Keean <38674879+keeandev@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…uggestion UX - for the glory of the Lord Jesus Christ" This reverts commit 7cf4f9c.
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat(db): add uploaded_at column for server-confirmed upload time (#839) Co-authored-by: Cursor <cursoragent@cursor.com> * feat(db): add uploaded_at column for server-confirmed upload time * Create Tracking History * Add undo functions * Add Garbage Collector * Adapt BibleAssetsView to support undo function * Fix scroll when undo actions * Adapt Undo Function * Implement garbage collector functionality * Hide undo button when published * Change buttons layout * Add animations to enhance UX * Change Recording Button * Add redo function + UI changes * Change confirmation behavior when delete/merge assets * Add toast messages to Undo and Redo actions * Add RPC to dashboard * Prettier * style: fix prettier formatting in +not-found.tsx Co-authored-by: Keean <keeandev@users.noreply.github.com> --------- Co-authored-by: Keean <38674879+keeandev@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Keean <keeandev@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
langquest-resend-webhook-router | 6edd1fd | Commit Preview URL Branch Preview URL |
May 27 2026, 08:36 PM |
|
Updates to Preview Branch (dev) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
This PR requires a native build because the fingerprint has changed compared to the base branch. 🔍 Full JSON diff (for debugging)[
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "eas.json",
"reasons": [
"easBuild"
],
"hash": "52027a49ac6e05de22de80095dc18c97fed13b98"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "assets/icons/icon_light.png",
"reasons": [
"expoConfigExternalFile",
"expoConfigExternalFile",
"expoConfigExternalFile"
],
"overrideHashKey": "expoConfigExternalFile:contentsOnly",
"hash": "75bb83fe41a3030caf9f291a645162a863986098"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "assets/icons/icon_dark.png",
"reasons": [
"expoConfigExternalFile",
"expoConfigExternalFile"
],
"overrideHashKey": "expoConfigExternalFile:contentsOnly",
"hash": "41f64a07e5c595f6ab183045cf3970abfbd8b6cb"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "assets/icons/adaptive-icon.png",
"reasons": [
"expoConfigExternalFile"
],
"overrideHashKey": "expoConfigExternalFile:contentsOnly",
"hash": "ddd1c8485fc15bd698573a0bf1887c58d8fbc83e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/conventions.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "ae62cc0ef6f454d529f9e2b538681237772b81f8"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/dom-parser.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "585f7011d35bb0f95098d2cf97b52dd7d753da55"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/dom.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "a173b72aa2d767611377fabef0d64fb35d392f15"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/entities.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "d74f17f4d64e9885a54b9f93ae7e8387bdfa3962"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/index.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "f0811dc45369d4a72e292c9e9fa8822058058c77"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/@xmldom/xmldom/lib/sax.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "75ab81cbd45078f4113e3fdbd975c6828c791475"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/base64-js/index.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "8de581e64d323f2130cbfb1a154d62acf894ff5e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "313335233da02c3e328386cea03147364ddf8b9a"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "027b4ec529457c597471fb0ca3ff4b17f7ac5f35"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/plugin/build/AssetContents.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "df91c085d9b4f33d1d2209a11790abe9d7137932"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/plugin/build/utils.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "8c20054f15068d62b53b0f751521ba2c858ec029"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/plugin/build/withAssets.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "1c7386002cd23c1b096491964da975f45da4466e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/plugin/build/withAssetsAndroid.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "f34f16c947921346ca976b4ca706fd7fea7c250f"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-asset/plugin/build/withAssetsIos.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "83f4b3c97e91c072b7b62c31c25482e23ca0cb45"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-audio/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "3dbd978deab632da60f26c34d6bf5b5af85f9b5a"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-audio/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "54a74240c3a8a3822cc81fa2bfc81c784c41297c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-audio/plugin/build/withAudio.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "d49b8a055ba0e20d4e5a26eb66e3315b6d3da7bb"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "1a5d7672b16206ac757b118553974288c4bb3e13"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/android.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "35ed16e75bb0c9e94c1590d83cdc21af8120c512"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/androidQueryUtils.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "c26bb466fb10a7a1f0d942f37dd00dc7ad9f4dfb"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/fileContentsUtils.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "b260a8fc9f25a782de3de950382fe95bb65a7e5c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/ios.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "065e8f7eecea9ea3cf42bf47f160c0c4a4e161b9"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/pluginConfig.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "f9ac0c15b9ec3bb12a71b69b52f8c4b11ba079c7"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-build-properties/build/withBuildProperties.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "26972ce0da723ff88ac70c3d89e554a66adc1d33"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "7612e93a0a88fc823709215d7b8ec29f6ddfa6f3"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "d7c76dbe43326067648859e1e34aca39bfe08ba2"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/plugin/build/getDefaultScheme.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "1d109becfcc1c83fc75be32f1b108ad89592650b"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/plugin/build/withDevClient.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "e8f7b7163c71c0c25c29518891cbc13a0eee790a"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/plugin/build/withGeneratedAndroidScheme.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "b88ddf02b6116f41a80a8a5c26e108fcd5124375"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-dev-client/plugin/build/withGeneratedIosScheme.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "35da276c70417bde72d0ebb1732b6ad4cdcdbd9c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "7d6bdc5b3ca92994eb4bac7fd0816f33ad016fdc"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "d08aba4e4cc6523857cb2000976a2039e89fad74"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/plugin/build/utils.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "1edf65f25ce53a1803fe3225c4f9e504652c8e7f"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/plugin/build/withFonts.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "461e39525b3e22557a8a5c87de48a9987f43232e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/plugin/build/withFontsAndroid.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "739076f307943bb2929818812996b2d48a732cbd"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-font/plugin/build/withFontsIos.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "43eaf15d277e6c67010f933fb2fc1d74083cc349"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-image/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "877b5d26e325699de339200ffaa336311d1cda29"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-image/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "e04ac25cd9993723924dfbf45235bff2867cafe5"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-image/plugin/build/withExpoImage.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "8dde7024f9ad52d4f0c68b3a7b60306e67f334ca"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-localization/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "5378e16be441cf42ec78e172868a8cf5d65d4915"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-localization/plugin/build/withExpoLocalization.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "4a8eb03d18c90262e25c8d837013dbb3313ed275"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-router/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "d8d52eb35882add604ac82eef3aec8ee9432ef21"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-router/plugin/build/index.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "be4dd04f11885d27e2d2297587b7de68bd3b428e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-router/plugin/options.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "c1391d896f7d3bf3c5e52bb25c9e82372dcb4a62"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "e95498d41bde4c143b1c1dee95c561ca623e93c4"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "9e7917a583ee1003a9ab240cd0ecc9c77ae3d2f9"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/android/parseIntentFilters.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "e078e1dda98acc79faa350d869e1840e2a895965"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/android/withAndroidIntentFilters.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "6a1fbf08af7ce05fd4c405cdb6692be2669cb555"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/android/withShareIntoSchemeString.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "35e428d898c6e0186b36151b8b54b3e5c2e0e9fa"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/index.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "57ec2ee114b44cf947e3f8b446ada7efa6175357"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/conflictingExtensionExists.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "0718da57c9f7592989810b3d657e462db7d8dc24"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/createEntitlements.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "4346101171cea88192fbb75cd19366dd4a544262"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/createInfoPlistFile.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "f828f760af6839a97014ead8b5dcd9e8ca80fb7c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/setupShareExtensionFiles.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "b7ccdd006ac855999e9d0cbfdeeb27024157e943"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/withAppGroupId.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "c0b2c23b5d14711cacd06ca03f92e5077c9a865c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/withIosWarning.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "154d862f5845414f365bc6689243aa7838daf5f1"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/withShareExtensionFiles.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "1786a487cdf6633400de56c0a3b816bf08141791"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/withShareExtensionXcodeProject.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "7de8585af8aa3c7c140c462e09e3f7a9b06929ce"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addBuildPhases.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "4d73d39e0ddff59cf3009c9c2fe8eadfbedeaaf4"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addPbxGroup.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "d2fa6dbbb55fb56e61bd36ff4ecc348b988a8aa8"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addProductFile.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "2d92bb3fba9cb951888a20dd22c36ba838fa67b9"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addToPbxNativeTargetSection.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "e812407bc500c339aa0b29433010a24b7d3a8cbd"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addToPbxProjectSection.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "933056ef82d6c48d5ca5360c3ec4cd643a25a059"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/ios/xcode/addXCConfigurationList.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "54ffcbeef1f44185243efd6594e56f035f7fa772"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/utils.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "b903d1097a64cbbe16880fccaa328c7ac5104b86"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sharing/plugin/build/withConfig.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "d3b7b54f502a405fa9ba4abaf179875c99a3bb6e"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-splash-screen/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "a1ee5d63c270f7ea390eebdf723274d81e921353"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-splash-screen/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "e40404960252e5c10f66518a9ad29d74be51a546"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-splash-screen/plugin/build/withSplashScreen.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "26fff3334f9e5cc8b4ca731d1cb8762e18dabf05"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sqlite/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "fdf1eea443d925d5e6bdec8ccbe1c5f09f0d0ab9"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sqlite/package.json",
"reasons": [
"expoConfigPlugins"
],
"hash": "000287ed3b266a415e99880d7efe28416c89859c"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/expo-sqlite/plugin/build/withSQLite.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "cf8c22ed0a9e6ca7f86b47bf8dd0fef754d0fe93"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/testflight-dev-deploy/app.plugin.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "03611ee7ec8b59d35a235edaa728f4ad9cfb7f26"
}
},
{
"op": "added",
"addedSource": {
"type": "file",
"filePath": "node_modules/testflight-dev-deploy/build/index.js",
"reasons": [
"expoConfigPlugins"
],
"hash": "ee5b912e7c9f54ed3be973c2dd7ca4a67a1179f2"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "modules/microphone-energy/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "f5c225ac74b256bd9dff5756df885a0ce064a5ee"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "modules/microphone-energy/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "0a0e6e1241117843e94fa529dedf69c2bce7b5c9"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@blazejkustra/react-native-alert",
"reasons": [
"rncoreAutolinkingAndroid"
],
"hash": "9daef8800cea22134e6468b401568b92db1a77d4"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@expo/dom-webview/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "9239476b8581eab4a67dbdc0549d9881b0d5bca4"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@expo/dom-webview/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "c998d3307645a2856515e90f6b40ae030f8972d3"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@expo/log-box",
"reasons": [
"expoAutolinkingIos",
"expoAutolinkingAndroid"
],
"hash": "155cc053d48bda35e14b61875a8618db5b30d84b"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@op-engineering/op-sqlite",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "e5ada42981b9156d95d620d82a5c0b30f8c4a776"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@powersync/op-sqlite",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "006907ba8386c0617c09cbdbf9201d7c35ed0e34"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@react-native-async-storage/async-storage",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "c8abbd95b5a4de71497e32dc315b03711023ee53"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@react-native-community/netinfo",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "03760a3606766ff34cc04713f35b2193f1540649"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@react-native-community/slider",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "4ea3153547f46be23afd4295d8c4c2ec938a392c"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/@react-native-documents/picker",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "22abeb011348452f05cf2ed21be36a50dec0f018"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo",
"reasons": [
"expoAutolinkingIos",
"expoAutolinkingAndroid",
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "96c0dd6422d7ecd2263a514d98fa229800d0d870"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-application/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "4ea2765cddb3f7f50d2d5c8d4c48f2896f297292"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-application/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "639baabd9e7ee73dbc2a102570cf09616573d9d5"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-asset/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "79efd9da8d42469ef3bc1c3182ad06b84a6c5757"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-asset/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "64c4ad7cf42e31fd4da7fb209ece8e4d69b0a4c9"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-audio/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "3a0782f917429673eef32639ce841a7a2c0e47fb"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-audio/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "578ed78009ed8a11e06cfecfff581e97d6d2433a"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-clipboard/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "18d4010a614f261184da52abbbea3ab6f6973b88"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-clipboard/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "778a9cce1d385db4e63e9fa646fceac17164219f"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-constants/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "a7fcfcd228d4e77d8789d70d7c46782f24400afb"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-constants/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "ff34c5d72c101e5e574da61a66657a85c73aeb15"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-client/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "7f7b140af34c7a2f88b462536be448464fd557c7"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-client/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "0cf42a657d15732e49a7bd89dba4b4265f6b25d0"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-launcher",
"reasons": [
"expoAutolinkingIos",
"expoAutolinkingAndroid",
"expoConfigPlugins",
"expoConfigPlugins",
"expoConfigPlugins",
"expoConfigPlugins"
],
"hash": "39ea2d4197c2c30c806085cdeedc81c30a812a30"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-launcher/expo-dev-launcher-gradle-plugin",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "a184b6c208bbb311464668fa326c97c63b812d9f"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-menu",
"reasons": [
"expoAutolinkingIos",
"expoAutolinkingAndroid",
"expoConfigPlugins",
"expoConfigPlugins",
"expoConfigPlugins"
],
"hash": "f824b1171c6af742cea446941c388e349bcab222"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-menu-interface/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "c3d23491acd1f91f6462b7a205722d73930ab388"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-dev-menu-interface/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "e9dfc5fd8ab4df1a23c69b3a3c5fa1ce99e4153e"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-device/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "db3c5679d0fbc8ffaffad6f9195fa139858edca6"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-device/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "97caf7b57b5f2b3a9e64a065c4e218dc13764aa1"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-eas-client/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "78ead10addb8a9a52b15bc509f151bf2c935ea97"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-eas-client/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "e6a48078373a940f21fe3010acc8d41a7257c615"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-file-system/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "e1797b45d31c29b6eb0799c396a1633374f4e69b"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-file-system/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "c73ee20660c0d530f8e09bdd38a3815aca9d7361"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-font/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "0b68084feea88cf1d97dd7199671dad3d34d7bc5"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-font/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "127a9200b0c5023f780c72d1df07f183dbca9e04"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-glass-effect/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "10e5e6edd2706cd15c88f94b406bc6c4ef05f957"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-haptics/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "3ae4fe2869460fc79378df196b3670d1f325aca3"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-haptics/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "8f95d7b2c5591f6fccb44987310726574ae9962f"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-image/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "a2dbb0b8d17876a71bdf57de3759d3126a117f09"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-image/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "89af274d6cfd701c917d4418b877169dbcbdad33"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-json-utils/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "23ea7a94337f83cabc05bbda118b59a2f30f60b9"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-json-utils/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "88b67909d990381d6b9af489659e10b2643fbcd3"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-keep-awake/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "e9d5d57718b3a52393358faf67bdda2be2b48220"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-keep-awake/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "3189649a2314547c48865a8ada8afd964f0d913e"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-linear-gradient/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "ca52bb04d7d41bad09720ba079be597312c2b44b"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-linear-gradient/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "a3d5dd09746b4cf4e2aee89af47c97c93bee5b27"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-linking/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "069a70015522308fd2f729e5818d4c8a2d5fcf4e"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-linking/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "18ce0a49a98362d23832ab75f3a9e52b780b033f"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-localization/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "c7b282db3dd9b68c419335e606a9de3c69f71518"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-localization/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "d50adc42c8b303a2701f8f5d3318e1293303f835"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-manifests/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "c5647dfa3bb58b0c2d6f87a37bc49d8a3edb8251"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-manifests/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "a09522651e4132cbe17c93740992cafe6ab22de6"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-modules-core",
"reasons": [
"expoAutolinkingIos",
"expoAutolinkingAndroid",
"expoAutolinkingIos"
],
"hash": "f6191323d4328aa1bef8be60b17e0f2e8e0c37e2"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-modules-core/expo-module-gradle-plugin",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "41c9572e285cffc8ed168730a655d5d78c25ea1a"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-router/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "f5dd57128eed2c65bbd9daef4eda2954b8403e58"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-router/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "e9377c7233b17d85c91ba1b2c2c866a081c9d2e1"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-sharing/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "a0fc2002325a214e68a5a315653c1ed34b65b317"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-sharing/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "14c1c5e75ea5a9a8b69b5e3182aa03fe8556f58b"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-splash-screen/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "1b643f1a46c7b619e8caf7f8c8b60234f96ad61f"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-splash-screen/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "aa874220fe6a34c599e7636aaa358b16ab7ee0d1"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-sqlite/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "111ba04f9d3bfaa2610fdc11f54910cd23eaf365"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-sqlite/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "6e151ee1e32456a00ac9a94c7b41c4b776c78130"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-structured-headers/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "15a016104f9472ca294ebd17f0ed1cd3bc773d30"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-structured-headers/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "5d9593a38831c083ff6f54218c8257b4d454b8c7"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-symbols/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "476d820a0fa89861817bf234afcdee518e1d7dea"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-system-ui/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "ee2fe6e4ad0299804f9fcc0e24413ff2dc79ffbd"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-system-ui/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "9dd7f1f9a6fac34a87681f49518f7baf7526d30d"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-updates-interface/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "2d312ace999c5a36a0b40376a870a3762652c57a"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-updates-interface/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "b393fef2c5534db7bf1c4f78b87abdecf891e604"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-updates/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "f447f85e6ba08f3f670996acec9478f1f1d5dc43"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-updates/expo-updates-gradle-plugin",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "d2ffe5b393ec625423a765e50db39160584dcccb"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/expo-updates/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "1444efeb6722b2400c981aed367ff9e3c8ab8fa2"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/posthog-react-native-session-replay",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "2b60dc94acb6a196f3133fa535501b054a69ae13"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-audio-concat",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "b90f3468a10f1e04617b61124b1c5881300cee54"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-gesture-handler",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "df49736a3bd5d4c3be59cc274184e723d867e0fc"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-keyboard-controller",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "2063e5e26691833be6a25b721bdb944ce767fe28"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-pager-view",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "18491e6d8dba5ce83d8623ddf1fcead0093d4777"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-reanimated",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "ba468ec2eb6f075eb0c1ed3f42201a71b1bb4633"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-safe-area-context",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "0a6f8823f1c7e24c01446a09a58be304a46f175d"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-screens",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "d1c1b1b24e0a92bff39ec0b9d6d51e24d86a57c4"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-svg",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "446ce667d2e77b2def225bb097a68c1302f9a117"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-worklets",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "fef53681ddb3a0fe8e66b6b15176ddc4cefea666"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "node_modules/react-native-zip-archive",
"reasons": [
"rncoreAutolinkingAndroid",
"rncoreAutolinkingIos"
],
"hash": "0e9fa7fad112794c189ce7b4ba60d381a1611647"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "expoAutolinkingConfig:android",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[],\"modules\":[{\"packageName\":\"@expo/dom-webview\",\"projects\":[{\"name\":\"expo-dom-webview\",\"sourceDir\":\"node_modules/@expo/dom-webview/android\",\"modules\":[{\"classifier\":\"expo.modules.webview.DomWebViewModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"expo.modules.webview\",\"artifactId\":\"expo.modules.webview\",\"version\":\"55.0.3\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.3\"},{\"packageName\":\"@expo/log-box\",\"projects\":[{\"name\":\"expo-log-box\",\"sourceDir\":\"node_modules/@expo/log-box/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.logbox.ExpoLogBoxPackage\"]}],\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo\",\"projects\":[{\"name\":\"expo\",\"sourceDir\":\"node_modules/expo/android\",\"modules\":[{\"classifier\":\"expo.modules.fetch.ExpoFetchModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.ExpoModulesPackage\"]}],\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-application\",\"projects\":[{\"name\":\"expo-application\",\"sourceDir\":\"node_modules/expo-application/android\",\"modules\":[{\"classifier\":\"expo.modules.application.ApplicationModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.application\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-asset\",\"projects\":[{\"name\":\"expo-asset\",\"sourceDir\":\"node_modules/expo-asset/android\",\"modules\":[{\"classifier\":\"expo.modules.asset.AssetModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"expo.modules.asset\",\"artifactId\":\"expo.modules.asset\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-audio\",\"projects\":[{\"name\":\"expo-audio\",\"sourceDir\":\"node_modules/expo-audio/android\",\"modules\":[{\"classifier\":\"expo.modules.audio.AudioModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"expo.modules.audio\",\"artifactId\":\"expo.modules.audio\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-clipboard\",\"projects\":[{\"name\":\"expo-clipboard\",\"sourceDir\":\"node_modules/expo-clipboard/android\",\"modules\":[{\"classifier\":\"expo.modules.clipboard.ClipboardModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.clipboard\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-constants\",\"projects\":[{\"name\":\"expo-constants\",\"sourceDir\":\"node_modules/expo-constants/android\",\"modules\":[{\"classifier\":\"expo.modules.constants.ConstantsModule\",\"name\":null}],\"services\":[\"expo.modules.constants.ConstantsService\"],\"packages\":[]}],\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo-dev-client\",\"projects\":[{\"name\":\"expo-dev-client\",\"sourceDir\":\"node_modules/expo-dev-client/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-dev-launcher\",\"projects\":[{\"name\":\"expo-dev-launcher\",\"sourceDir\":\"node_modules/expo-dev-launcher/android\",\"modules\":[{\"classifier\":\"expo.modules.devlauncher.modules.ExpoDevLauncherModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.devlauncher.DevLauncherPackage\"]}],\"plugins\":[{\"id\":\"expo-dev-launcher-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"node_modules/expo-dev-launcher/expo-dev-launcher-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"55.0.12\"},{\"packageName\":\"expo-dev-menu\",\"projects\":[{\"name\":\"expo-dev-menu\",\"sourceDir\":\"node_modules/expo-dev-menu/android\",\"modules\":[{\"classifier\":\"expo.modules.devmenu.modules.DevMenuModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.devmenu.DevMenuPackage\"]}],\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"projects\":[{\"name\":\"expo-dev-menu-interface\",\"sourceDir\":\"node_modules/expo-dev-menu-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.1\"},{\"packageName\":\"expo-device\",\"projects\":[{\"name\":\"expo-device\",\"sourceDir\":\"node_modules/expo-device/android\",\"modules\":[{\"classifier\":\"expo.modules.device.DeviceModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.device\",\"version\":\"55.0.9\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-eas-client\",\"projects\":[{\"name\":\"expo-eas-client\",\"sourceDir\":\"node_modules/expo-eas-client/android\",\"modules\":[{\"classifier\":\"expo.modules.easclient.EASClientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.2\"},{\"packageName\":\"expo-file-system\",\"projects\":[{\"name\":\"expo-file-system\",\"sourceDir\":\"node_modules/expo-file-system/android\",\"modules\":[{\"classifier\":\"expo.modules.filesystem.FileSystemModule\",\"name\":null},{\"classifier\":\"expo.modules.filesystem.legacy.FileSystemLegacyModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.filesystem\",\"version\":\"55.0.10\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-font\",\"projects\":[{\"name\":\"expo-font\",\"sourceDir\":\"node_modules/expo-font/android\",\"modules\":[{\"classifier\":\"expo.modules.font.FontLoaderModule\",\"name\":null},{\"classifier\":\"expo.modules.font.FontUtilsModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.font\",\"version\":\"55.0.4\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-haptics\",\"projects\":[{\"name\":\"expo-haptics\",\"sourceDir\":\"node_modules/expo-haptics/android\",\"modules\":[{\"classifier\":\"expo.modules.haptics.HapticsModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.haptics\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-image\",\"projects\":[{\"name\":\"expo-image\",\"sourceDir\":\"node_modules/expo-image/android\",\"modules\":[{\"classifier\":\"expo.modules.image.ExpoImageModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"expo.modules.image\",\"artifactId\":\"expo.modules.image\",\"version\":\"55.0.6\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.6\"},{\"packageName\":\"expo-json-utils\",\"projects\":[{\"name\":\"expo-json-utils\",\"sourceDir\":\"node_modules/expo-json-utils/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.0\"},{\"packageName\":\"expo-keep-awake\",\"projects\":[{\"name\":\"expo-keep-awake\",\"sourceDir\":\"node_modules/expo-keep-awake/android\",\"modules\":[{\"classifier\":\"expo.modules.keepawake.KeepAwakeModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.keepawake\",\"version\":\"55.0.4\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-linear-gradient\",\"projects\":[{\"name\":\"expo-linear-gradient\",\"sourceDir\":\"node_modules/expo-linear-gradient/android\",\"modules\":[{\"classifier\":\"expo.modules.lineargradient.LinearGradientModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.lineargradient\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-linking\",\"projects\":[{\"name\":\"expo-linking\",\"sourceDir\":\"node_modules/expo-linking/android\",\"modules\":[{\"classifier\":\"expo.modules.linking.ExpoLinkingModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.linking.ExpoLinkingPackage\"],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.linking\",\"version\":\"55.0.7\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo-localization\",\"projects\":[{\"name\":\"expo-localization\",\"sourceDir\":\"node_modules/expo-localization/android\",\"modules\":[{\"classifier\":\"expo.modules.localization.LocalizationModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.localization.LocalizationPackage\"],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.localization\",\"version\":\"55.0.8\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-manifests\",\"projects\":[{\"name\":\"expo-manifests\",\"sourceDir\":\"node_modules/expo-manifests/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-modules-core\",\"projects\":[{\"name\":\"expo-modules-core\",\"sourceDir\":\"node_modules/expo-modules-core/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.adapters.react.ReactAdapterPackage\",\"expo.modules.core.BasePackage\",\"expo.modules.kotlin.edgeToEdge.EdgeToEdgePackage\"]}],\"plugins\":[{\"id\":\"expo-module-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"node_modules/expo-modules-core/expo-module-gradle-plugin\",\"applyToRootProject\":false}],\"packageVersion\":\"55.0.13\"},{\"packageName\":\"expo-router\",\"projects\":[{\"name\":\"expo-router\",\"sourceDir\":\"node_modules/expo-router/android\",\"modules\":[{\"classifier\":\"expo.modules.router.ExpoRouterModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"expo.modules.router\",\"artifactId\":\"expo.modules.router\",\"version\":\"55.0.4\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-sharing\",\"projects\":[{\"name\":\"expo-sharing\",\"sourceDir\":\"node_modules/expo-sharing/android\",\"modules\":[{\"classifier\":\"expo.modules.sharing.SharingModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.sharing.SharingPackage\"],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.sharing\",\"version\":\"55.0.11\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-splash-screen\",\"projects\":[{\"name\":\"expo-splash-screen\",\"sourceDir\":\"node_modules/expo-splash-screen/android\",\"modules\":[{\"classifier\":\"expo.modules.splashscreen.SplashScreenModule\",\"name\":null}],\"services\":[],\"packages\":[],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.splashscreen\",\"version\":\"55.0.10\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-sqlite\",\"projects\":[{\"name\":\"expo-sqlite\",\"sourceDir\":\"node_modules/expo-sqlite/android\",\"modules\":[{\"classifier\":\"expo.modules.sqlite.SQLiteModule\",\"name\":null}],\"services\":[],\"packages\":[],\"shouldUsePublicationScriptPath\":\"node_modules/expo-sqlite/android/shouldUsePublication.groovy\",\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.sqlite\",\"version\":\"55.0.10\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-structured-headers\",\"projects\":[{\"name\":\"expo-structured-headers\",\"sourceDir\":\"node_modules/expo-structured-headers/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.0.0\"},{\"packageName\":\"expo-system-ui\",\"projects\":[{\"name\":\"expo-system-ui\",\"sourceDir\":\"node_modules/expo-system-ui/android\",\"modules\":[{\"classifier\":\"expo.modules.systemui.SystemUIModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.systemui.SystemUIPackage\"],\"publication\":{\"groupId\":\"host.exp.exponent\",\"artifactId\":\"expo.modules.systemui\",\"version\":\"55.0.9\",\"repository\":\"local-maven-repo\"}}],\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-updates\",\"projects\":[{\"name\":\"expo-updates\",\"sourceDir\":\"node_modules/expo-updates/android\",\"modules\":[{\"classifier\":\"expo.modules.updates.UpdatesModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.updates.UpdatesPackage\"]}],\"plugins\":[{\"id\":\"expo-updates-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"node_modules/expo-updates/expo-updates-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"55.0.12\"},{\"packageName\":\"expo-updates-interface\",\"projects\":[{\"name\":\"expo-updates-interface\",\"sourceDir\":\"node_modules/expo-updates-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"55.1.3\"},{\"packageName\":\"microphone-energy\",\"projects\":[{\"name\":\"microphone-energy\",\"sourceDir\":\"modules/microphone-energy/android\",\"modules\":[{\"classifier\":\"expo.modules.microphoneenergy.MicrophoneEnergyModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.0\"}]}",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "3a5158485705023480c355adc93b654baf8590a8"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "expoAutolinkingConfig:ios",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[],\"modules\":[{\"packageName\":\"@expo/dom-webview\",\"pods\":[{\"podName\":\"ExpoDomWebView\",\"podspecDir\":\"node_modules/@expo/dom-webview/ios\"}],\"swiftModuleNames\":[\"ExpoDomWebView\"],\"modules\":[{\"name\":null,\"class\":\"DomWebViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.3\"},{\"packageName\":\"@expo/log-box\",\"pods\":[{\"podName\":\"ExpoLogBox\",\"podspecDir\":\"node_modules/@expo/log-box\"}],\"swiftModuleNames\":[\"ExpoLogBox\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo\",\"pods\":[{\"podName\":\"Expo\",\"podspecDir\":\"node_modules/expo\"}],\"swiftModuleNames\":[\"Expo\"],\"modules\":[{\"name\":null,\"class\":\"ExpoFetchModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-application\",\"pods\":[{\"podName\":\"EXApplication\",\"podspecDir\":\"node_modules/expo-application/ios\"}],\"swiftModuleNames\":[\"EXApplication\"],\"modules\":[{\"name\":null,\"class\":\"ApplicationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-asset\",\"pods\":[{\"podName\":\"ExpoAsset\",\"podspecDir\":\"node_modules/expo-asset/ios\"}],\"swiftModuleNames\":[\"ExpoAsset\"],\"modules\":[{\"name\":null,\"class\":\"AssetModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-audio\",\"pods\":[{\"podName\":\"ExpoAudio\",\"podspecDir\":\"node_modules/expo-audio/ios\"}],\"swiftModuleNames\":[\"ExpoAudio\"],\"modules\":[{\"name\":null,\"class\":\"AudioModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-clipboard\",\"pods\":[{\"podName\":\"ExpoClipboard\",\"podspecDir\":\"node_modules/expo-clipboard/ios\"}],\"swiftModuleNames\":[\"ExpoClipboard\"],\"modules\":[{\"name\":null,\"class\":\"ClipboardModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-constants\",\"pods\":[{\"podName\":\"EXConstants\",\"podspecDir\":\"node_modules/expo-constants/ios\"}],\"swiftModuleNames\":[\"EXConstants\"],\"modules\":[{\"name\":null,\"class\":\"ConstantsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo-dev-client\",\"pods\":[{\"podName\":\"expo-dev-client\",\"podspecDir\":\"node_modules/expo-dev-client/ios\"}],\"swiftModuleNames\":[\"expo_dev_client\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-dev-launcher\",\"pods\":[{\"podName\":\"expo-dev-launcher\",\"podspecDir\":\"node_modules/expo-dev-launcher\"}],\"swiftModuleNames\":[\"EXDevLauncher\"],\"modules\":[{\"name\":null,\"class\":\"DevLauncherModule\"}],\"appDelegateSubscribers\":[\"ExpoDevLauncherAppDelegateSubscriber\"],\"reactDelegateHandlers\":[\"ExpoDevLauncherReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"55.0.12\"},{\"packageName\":\"expo-dev-menu\",\"pods\":[{\"podName\":\"expo-dev-menu\",\"podspecDir\":\"node_modules/expo-dev-menu\"}],\"swiftModuleNames\":[\"EXDevMenu\"],\"modules\":[{\"name\":null,\"class\":\"DevMenuModule\"},{\"name\":null,\"class\":\"DevMenuInternalModule\"},{\"name\":null,\"class\":\"DevMenuPreferences\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoDevMenuReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"pods\":[{\"podName\":\"expo-dev-menu-interface\",\"podspecDir\":\"node_modules/expo-dev-menu-interface/ios\"}],\"swiftModuleNames\":[\"expo_dev_menu_interface\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.1\"},{\"packageName\":\"expo-device\",\"pods\":[{\"podName\":\"ExpoDevice\",\"podspecDir\":\"node_modules/expo-device/ios\"}],\"swiftModuleNames\":[\"ExpoDevice\"],\"modules\":[{\"name\":null,\"class\":\"DeviceModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-eas-client\",\"pods\":[{\"podName\":\"EASClient\",\"podspecDir\":\"node_modules/expo-eas-client/ios\"}],\"swiftModuleNames\":[\"EASClient\"],\"modules\":[{\"name\":null,\"class\":\"EASClientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.2\"},{\"packageName\":\"expo-file-system\",\"pods\":[{\"podName\":\"ExpoFileSystem\",\"podspecDir\":\"node_modules/expo-file-system/ios\"}],\"swiftModuleNames\":[\"ExpoFileSystem\"],\"modules\":[{\"name\":null,\"class\":\"FileSystemModule\"},{\"name\":null,\"class\":\"FileSystemLegacyModule\"}],\"appDelegateSubscribers\":[\"FileSystemBackgroundSessionHandler\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-font\",\"pods\":[{\"podName\":\"ExpoFont\",\"podspecDir\":\"node_modules/expo-font/ios\"}],\"swiftModuleNames\":[\"ExpoFont\"],\"modules\":[{\"name\":null,\"class\":\"FontLoaderModule\"},{\"name\":null,\"class\":\"FontUtilsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-glass-effect\",\"pods\":[{\"podName\":\"ExpoGlassEffect\",\"podspecDir\":\"node_modules/expo-glass-effect/ios\"}],\"swiftModuleNames\":[\"ExpoGlassEffect\"],\"modules\":[{\"name\":null,\"class\":\"GlassEffectModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo-haptics\",\"pods\":[{\"podName\":\"ExpoHaptics\",\"podspecDir\":\"node_modules/expo-haptics/ios\"}],\"swiftModuleNames\":[\"ExpoHaptics\"],\"modules\":[{\"name\":null,\"class\":\"HapticsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-image\",\"pods\":[{\"podName\":\"ExpoImage\",\"podspecDir\":\"node_modules/expo-image/ios\"}],\"swiftModuleNames\":[\"ExpoImage\"],\"modules\":[{\"name\":null,\"class\":\"ImageModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.6\"},{\"packageName\":\"expo-json-utils\",\"pods\":[{\"podName\":\"EXJSONUtils\",\"podspecDir\":\"node_modules/expo-json-utils/ios\"}],\"swiftModuleNames\":[\"EXJSONUtils\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.0\"},{\"packageName\":\"expo-keep-awake\",\"pods\":[{\"podName\":\"ExpoKeepAwake\",\"podspecDir\":\"node_modules/expo-keep-awake/ios\"}],\"swiftModuleNames\":[\"ExpoKeepAwake\"],\"modules\":[{\"name\":null,\"class\":\"KeepAwakeModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-linear-gradient\",\"pods\":[{\"podName\":\"ExpoLinearGradient\",\"podspecDir\":\"node_modules/expo-linear-gradient/ios\"}],\"swiftModuleNames\":[\"ExpoLinearGradient\"],\"modules\":[{\"name\":null,\"class\":\"LinearGradientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-linking\",\"pods\":[{\"podName\":\"ExpoLinking\",\"podspecDir\":\"node_modules/expo-linking/ios\"}],\"swiftModuleNames\":[\"ExpoLinking\"],\"modules\":[{\"name\":null,\"class\":\"ExpoLinkingModule\"}],\"appDelegateSubscribers\":[\"LinkingAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.7\"},{\"packageName\":\"expo-localization\",\"pods\":[{\"podName\":\"ExpoLocalization\",\"podspecDir\":\"node_modules/expo-localization/ios\"}],\"swiftModuleNames\":[\"ExpoLocalization\"],\"modules\":[{\"name\":null,\"class\":\"LocalizationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.8\"},{\"packageName\":\"expo-manifests\",\"pods\":[{\"podName\":\"EXManifests\",\"podspecDir\":\"node_modules/expo-manifests/ios\"}],\"swiftModuleNames\":[\"EXManifests\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-modules-core\",\"pods\":[{\"podName\":\"ExpoModulesCore\",\"podspecDir\":\"node_modules/expo-modules-core\"},{\"podName\":\"ExpoModulesJSI\",\"podspecDir\":\"node_modules/expo-modules-core\"}],\"swiftModuleNames\":[\"ExpoModulesCore\",\"ExpoModulesJSI\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.13\"},{\"packageName\":\"expo-router\",\"pods\":[{\"podName\":\"ExpoRouter\",\"podspecDir\":\"node_modules/expo-router/ios\"}],\"swiftModuleNames\":[\"ExpoRouter\"],\"modules\":[{\"name\":null,\"class\":\"ExpoHeadModule\"},{\"name\":null,\"class\":\"LinkPreviewNativeModule\"},{\"name\":null,\"class\":\"RouterToolbarModule\"}],\"appDelegateSubscribers\":[\"ExpoHeadAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"packageName\":\"expo-sharing\",\"pods\":[{\"podName\":\"ExpoSharing\",\"podspecDir\":\"node_modules/expo-sharing/ios\"}],\"swiftModuleNames\":[\"ExpoSharing\"],\"modules\":[{\"name\":null,\"class\":\"SharingModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.11\"},{\"packageName\":\"expo-splash-screen\",\"pods\":[{\"podName\":\"ExpoSplashScreen\",\"podspecDir\":\"node_modules/expo-splash-screen/ios\"}],\"swiftModuleNames\":[\"ExpoSplashScreen\"],\"modules\":[{\"name\":null,\"class\":\"SplashScreenModule\"}],\"appDelegateSubscribers\":[\"SplashScreenAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-sqlite\",\"pods\":[{\"podName\":\"ExpoSQLite\",\"podspecDir\":\"node_modules/expo-sqlite/ios\"}],\"swiftModuleNames\":[\"ExpoSQLite\"],\"modules\":[{\"name\":null,\"class\":\"SQLiteModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.10\"},{\"packageName\":\"expo-structured-headers\",\"pods\":[{\"podName\":\"EXStructuredHeaders\",\"podspecDir\":\"node_modules/expo-structured-headers/ios\"}],\"swiftModuleNames\":[\"EXStructuredHeaders\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.0\"},{\"packageName\":\"expo-symbols\",\"pods\":[{\"podName\":\"ExpoSymbols\",\"podspecDir\":\"node_modules/expo-symbols/ios\"}],\"swiftModuleNames\":[\"ExpoSymbols\"],\"modules\":[{\"name\":null,\"class\":\"SymbolModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.5\"},{\"packageName\":\"expo-system-ui\",\"pods\":[{\"podName\":\"ExpoSystemUI\",\"podspecDir\":\"node_modules/expo-system-ui/ios\"}],\"swiftModuleNames\":[\"ExpoSystemUI\"],\"modules\":[{\"name\":null,\"class\":\"ExpoSystemUIModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.9\"},{\"packageName\":\"expo-updates\",\"pods\":[{\"podName\":\"EXUpdates\",\"podspecDir\":\"node_modules/expo-updates/ios\"}],\"swiftModuleNames\":[\"EXUpdates\"],\"modules\":[{\"name\":null,\"class\":\"UpdatesModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoUpdatesReactDelegateHandler\"],\"debugOnly\":false,\"packageVersion\":\"55.0.12\"},{\"packageName\":\"expo-updates-interface\",\"pods\":[{\"podName\":\"EXUpdatesInterface\",\"podspecDir\":\"node_modules/expo-updates-interface/ios\"}],\"swiftModuleNames\":[\"EXUpdatesInterface\"],\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.1.3\"},{\"packageName\":\"microphone-energy\",\"pods\":[{\"podName\":\"MicrophoneEnergy\",\"podspecDir\":\"modules/microphone-energy/ios\"}],\"swiftModuleNames\":[\"MicrophoneEnergy\"],\"modules\":[{\"name\":null,\"class\":\"MicrophoneEnergyModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.0\"}]}",
"reasons": [
"expoAutolinkingIos"
],
"hash": "a6b815291fe8ece32b22802db7b41bb1d7f6e2b8"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "expoConfig",
"contents": "{\"android\":{\"adaptiveIcon\":{\"backgroundColor\":\"#ffffff\",\"foregroundImage\":\"./assets/icons/adaptive-icon.png\",\"monochromeImage\":\"./assets/icons/adaptive-icon-mono.png\"},\"intentFilters\":[{\"action\":\"VIEW\",\"autoVerify\":true,\"category\":[\"BROWSABLE\",\"DEFAULT\"],\"data\":[{\"host\":\"langquest.org\",\"pathPattern\":\"/.*/notifications\",\"scheme\":\"https\"},{\"host\":\"langquest.org\",\"pathPattern\":\"/.*/registration-confirmation\",\"scheme\":\"https\"},{\"host\":\"langquest.org\",\"pathPattern\":\"/.*/reset-password\",\"scheme\":\"https\"},{\"host\":\"langquest.org\",\"scheme\":\"langquest-dev\"},{\"host\":\"preview.langquest.org\",\"pathPattern\":\"/.*/notifications\",\"scheme\":\"https\"},{\"host\":\"preview.langquest.org\",\"pathPattern\":\"/.*/registration-confirmation\",\"scheme\":\"https\"},{\"host\":\"preview.langquest.org\",\"pathPattern\":\"/.*/reset-password\",\"scheme\":\"https\"},{\"host\":\"preview.langquest.org\",\"scheme\":\"langquest-dev\"}]}],\"package\":\"com.etengenesis.langquest.development\",\"permissions\":[\"android.permission.FOREGROUND_SERVICE\",\"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK\",\"android.permission.MODIFY_AUDIO_SETTINGS\",\"android.permission.RECORD_AUDIO\"]},\"buildCacheProvider\":\"eas\",\"experiments\":{\"reactCompiler\":true,\"typedRoutes\":true},\"extra\":{\"eas\":{\"projectId\":\"fafd03a9-a42c-44c7-849c-b0f84fbffe93\"},\"router\":{}},\"icon\":\"./assets/icons/icon_light.png\",\"ios\":{\"associatedDomains\":[\"applinks:langquest.org\",\"applinks:preview.langquest.org\"],\"bundleIdentifier\":\"com.etengenesis.langquest.development\",\"config\":{\"usesNonExemptEncryption\":false},\"icon\":{\"dark\":\"./assets/icons/icon_dark.png\",\"light\":\"./assets/icons/icon_light.png\"},\"infoPlist\":{\"NSMicrophoneUsageDescription\":\"LangQuest needs access to your microphone to record voice translations.\"},\"requireFullScreen\":true,\"supportsTablet\":true},\"name\":\"LangQuest (Dev)\",\"orientation\":\"portrait\",\"owner\":\"eten-genesis\",\"platforms\":[\"android\",\"ios\",\"web\"],\"plugins\":[\"expo-asset\",\"expo-audio\",\"expo-build-properties\",\"expo-dev-client\",\"expo-font\",\"expo-image\",\"expo-localization\",\"expo-router\",\"expo-sharing\",\"expo-sqlite\",[\"expo-build-properties\",{\"ios\":{\"deploymentTarget\":\"15.5\"}}],[\"expo-splash-screen\",{\"backgroundColor\":\"#f5f5ff\",\"dark\":{\"backgroundColor\":\"#131320\",\"image\":\"./assets/icons/icon_dark.png\"},\"image\":\"./assets/icons/icon_light.png\",\"imageWidth\":150}],[\"testflight-dev-deploy\",{\"enabled\":true}]],\"runtimeVersion\":{\"policy\":\"appVersion\"},\"scheme\":\"langquest-dev\",\"sdkVersion\":\"55.0.0\",\"slug\":\"langquest\",\"updates\":{\"url\":\"https://u.expo.dev/fafd03a9-a42c-44c7-849c-b0f84fbffe93\"},\"userInterfaceStyle\":\"automatic\",\"version\":\"2.2.0\",\"web\":{\"bundler\":\"metro\",\"favicon\":\"./assets/icons/icon_light.png\"}}",
"reasons": [
"expoConfig"
],
"hash": "5285e20a23a4d957207144fe3291e62203a7336d"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "package:react-native",
"contents": "{\"name\":\"react-native\",\"version\":\"0.83.2\",\"description\":\"A framework for building native apps using React\",\"license\":\"MIT\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/facebook/react-native.git\",\"directory\":\"packages/react-native\"},\"homepage\":\"https://reactnative.dev/\",\"keywords\":[\"react\",\"react-native\",\"android\",\"ios\",\"mobile\",\"cross-platform\",\"app-framework\",\"mobile-development\"],\"bugs\":\"https://github.com/facebook/react-native/issues\",\"engines\":{\"node\":\">= 20.19.4\"},\"bin\":{\"react-native\":\"cli.js\"},\"main\":\"./index.js\",\"types\":\"types\",\"exports\":{\".\":{\"react-native-strict-api\":\"./types_generated/index.d.ts\",\"types\":\"./types/index.d.ts\",\"default\":\"./index.js\"},\"./*\":{\"react-native-strict-api\":null,\"types\":\"./*.d.ts\",\"default\":\"./*.js\"},\"./*.js\":{\"react-native-strict-api\":null,\"default\":\"./*.js\"},\"./Libraries/*.d.ts\":{\"react-native-strict-api\":null,\"default\":\"./Libraries/*.d.ts\"},\"./scripts/*\":\"./scripts/*\",\"./src/*\":{\"react-native-strict-api\":null,\"default\":\"./src/*.js\"},\"./types/*.d.ts\":{\"react-native-strict-api\":null,\"default\":\"./types/*.d.ts\"},\"./gradle/*\":null,\"./React/*\":null,\"./ReactAndroid/*\":null,\"./ReactApple/*\":null,\"./ReactCommon/*\":null,\"./sdks/*\":null,\"./src/fb_internal/*\":\"./src/fb_internal/*\",\"./third-party-podspecs/*\":null,\"./types/*\":null,\"./types_generated/*\":null,\"./package.json\":\"./package.json\"},\"jest-junit\":{\"outputDirectory\":\"reports/junit\",\"outputName\":\"js-test-results.xml\"},\"files\":[\"build.gradle.kts\",\"cli.js\",\"flow\",\"gradle.properties\",\"gradle/libs.versions.toml\",\"index.js\",\"index.js.flow\",\"interface.js\",\"jest-preset.js\",\"jest\",\"Libraries\",\"LICENSE\",\"React-Core.podspec\",\"React-Core-prebuilt.podspec\",\"react-native.config.js\",\"React.podspec\",\"React\",\"!React/Fabric/RCTThirdPartyFabricComponentsProvider.*\",\"ReactAndroid\",\"!ReactAndroid/.cxx\",\"!ReactAndroid/build\",\"!ReactAndroid/external-artifacts/artifacts\",\"!ReactAndroid/external-artifacts/build\",\"!ReactAndroid/hermes-engine/.cxx\",\"!ReactAndroid/hermes-engine/build\",\"!ReactAndroid/src/main/third-party\",\"!ReactAndroid/src/test\",\"ReactApple\",\"ReactCommon\",\"README.md\",\"rn-get-polyfills.js\",\"scripts/replace-rncore-version.js\",\"scripts/bundle.js\",\"scripts/cocoapods\",\"scripts/codegen\",\"scripts/compose-source-maps.js\",\"scripts/find-node-for-xcode.sh\",\"scripts/generate-codegen-artifacts.js\",\"scripts/generate-provider-cli.js\",\"scripts/generate-specs-cli.js\",\"scripts/hermes/hermes-utils.js\",\"scripts/hermes/prepare-hermes-for-build.js\",\"scripts/ios-configure-glog.sh\",\"scripts/native_modules.rb\",\"scripts/node-binary.sh\",\"scripts/packager-reporter.js\",\"scripts/packager.sh\",\"scripts/react_native_pods_utils/script_phases.rb\",\"scripts/react_native_pods_utils/script_phases.sh\",\"scripts/react_native_pods.rb\",\"scripts/react-native-xcode.sh\",\"scripts/xcode/ccache-clang.sh\",\"scripts/xcode/ccache-clang++.sh\",\"scripts/xcode/ccache.conf\",\"scripts/xcode/with-environment.sh\",\"sdks/.hermesversion\",\"sdks/.hermesv1version\",\"sdks/hermes-engine\",\"sdks/hermesc\",\"settings.gradle.kts\",\"src\",\"!src/private/testing\",\"third-party-podspecs\",\"types\",\"types_generated\",\"!**/__docs__/**\",\"!**/__fixtures__/**\",\"!**/__flowtests__/**\",\"!**/__mocks__/**\",\"!**/__tests__/**\",\"!**/__typetests__/**\"],\"scripts\":{\"prepack\":\"node ./scripts/prepack.js\",\"featureflags\":\"node ./scripts/featureflags/index.js\"},\"peerDependencies\":{\"@types/react\":\"^19.1.1\",\"react\":\"^19.2.0\"},\"peerDependenciesMeta\":{\"@types/react\":{\"optional\":true}},\"dependencies\":{\"@jest/create-cache-key-function\":\"^29.7.0\",\"@react-native/assets-registry\":\"0.83.2\",\"@react-native/codegen\":\"0.83.2\",\"@react-native/community-cli-plugin\":\"0.83.2\",\"@react-native/gradle-plugin\":\"0.83.2\",\"@react-native/js-polyfills\":\"0.83.2\",\"@react-native/normalize-colors\":\"0.83.2\",\"@react-native/virtualized-lists\":\"0.83.2\",\"abort-controller\":\"^3.0.0\",\"anser\":\"^1.4.9\",\"ansi-regex\":\"^5.0.0\",\"babel-jest\":\"^29.7.0\",\"babel-plugin-syntax-hermes-parser\":\"0.32.0\",\"base64-js\":\"^1.5.1\",\"commander\":\"^12.0.0\",\"flow-enums-runtime\":\"^0.0.6\",\"glob\":\"^7.1.1\",\"hermes-compiler\":\"0.14.1\",\"invariant\":\"^2.2.4\",\"jest-environment-node\":\"^29.7.0\",\"memoize-one\":\"^5.0.0\",\"metro-runtime\":\"^0.83.3\",\"metro-source-map\":\"^0.83.3\",\"nullthrows\":\"^1.1.1\",\"pretty-format\":\"^29.7.0\",\"promise\":\"^8.3.0\",\"react-devtools-core\":\"^6.1.5\",\"react-refresh\":\"^0.14.0\",\"regenerator-runtime\":\"^0.13.2\",\"scheduler\":\"0.27.0\",\"semver\":\"^7.1.3\",\"stacktrace-parser\":\"^0.1.10\",\"whatwg-fetch\":\"^3.0.0\",\"ws\":\"^7.5.10\",\"yargs\":\"^17.6.2\"},\"codegenConfig\":{\"libraries\":[{\"name\":\"FBReactNativeSpec\",\"type\":\"all\",\"ios\":{\"modules\":{\"AccessibilityManager\":{\"unstableRequiresMainQueueSetup\":true},\"Appearance\":{\"unstableRequiresMainQueueSetup\":true},\"AppState\":{\"unstableRequiresMainQueueSetup\":true},\"DeviceInfo\":{\"unstableRequiresMainQueueSetup\":true},\"PlatformConstants\":{\"unstableRequiresMainQueueSetup\":true},\"StatusBarManager\":{\"unstableRequiresMainQueueSetup\":true}}},\"android\":{},\"jsSrcsDir\":\"src\"}]}}",
"reasons": [
"package:react-native"
],
"hash": "d9563fcae2065e1a444ef7baefe9f4fea32a5376"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "packageJson:scripts",
"contents": "{\"start\":\"expo start --dev-client\",\"start:offline:android\":\"npm run start -- --localhost --android\",\"start:prod\":\"npm run start -- --no-dev --minify\",\"export:android\":\"EXPO_ATLAS=true npx expo export --platform android\",\"export:ios\":\"EXPO_ATLAS=true npx expo export --platform ios\",\"export:web\":\"EXPO_ATLAS=true npx expo export --platform web\",\"export:all\":\"EXPO_ATLAS=true npx expo export\",\"export:dev:android\":\"EXPO_ATLAS=true npm run export:android -- --dev\",\"export:dev:ios\":\"EXPO_ATLAS=true npm run export:ios -- --dev\",\"export:dev:web\":\"EXPO_ATLAS=true npm run export:web -- --dev\",\"export:dev:all\":\"EXPO_ATLAS=true npm run export:all -- --dev\",\"export:analyze\":\"npx expo-atlas .expo/atlas.jsonl\",\"generate-env\":\"npx tsx ./scripts/generate-env.ts\",\"reset-project\":\"node ./scripts/reset-project.js\",\"clean-install\":\"git clean -xdf node_modules package-lock.json && npm i\",\"clean-rebuild:android\":\"npm run clean-install && npx expo prebuild --platform android --clean\",\"clean-rebuild:ios\":\"npm run clean-install && npx expo prebuild --platform ios --clean\",\"clean-rebuild\":\"npm run clean-install && npx expo prebuild --clean\",\"android\":\"expo run:android --variant debugOptimized --device\",\"android:memory\":\"NODE_OPTIONS=--max-old-space-size=8192 expo run:android --variant debugOptimized --device\",\"android:multi\":\"npm run start\",\"android:device\":\"expo run:android --device --no-bundler\",\"android:preview\":\"npx cross-env EXPO_PUBLIC_APP_VARIANT=preview expo run:android --device --variant release\",\"android:release\":\"npx cross-env EXPO_PUBLIC_APP_VARIANT=production expo run:android --device --variant release\",\"ios\":\"expo run:ios --device\",\"ios:preview\":\"npx cross-env EXPO_PUBLIC_APP_VARIANT=preview expo run:ios --device --variant release\",\"ios:release\":\"npx cross-env EXPO_PUBLIC_APP_VARIANT=production expo run:ios --device --variant release\",\"web\":\"npm run powersync:copy-assets && expo start --web\",\"db:view\":\"npx drizzle-lab@latest visualizer --project-id LangQuest\",\"test\":\"jest --watchAll\",\"lint\":\"eslint\",\"lint:fix\":\"eslint --fix\",\"lint:inspect\":\"npx @eslint/config-inspector\",\"format\":\"prettier --check .\",\"format:fix\":\"prettier --write .\",\"typecheck\":\"tsc --noEmit\",\"powersync:start\":\"docker compose -f supabase/docker-compose.yml --env-file .env.local up -w\",\"powersync:stop\":\"docker compose -f supabase/docker-compose.yml --env-file .env.local down\",\"resend\":\"npx emulate@latest --service resend --port 4000\",\"env:start\":\"concurrently -n supabase -c green \\\"npm:sb start\\\" && concurrently -k -n edge-fn,powersync,resend -c yellow,cyan,magenta \\\"npm:sb:serve-functions\\\" \\\"npm:powersync:start\\\" \\\"npm:resend\\\"\",\"env:stop\":\"npm run powersync:stop && npm run sb stop && rm -f supabase/functions/.env\",\"env\":\"npm run generate-env && npm run env:start && npm run env:stop\",\"env:clean\":\"npm run sb:clean && npm run powersync:clean\",\"powersync:copy-assets\":\"npx powersync-web copy-assets\",\"powersync:diagnostics\":\"docker run --pull always -p 8082:80 --platform linux/amd64 journeyapps/powersync-diagnostics-app\",\"powersync:clean\":\"npm run powersync:stop && docker volume rm -f powersync_mongo_storage\",\"sb:clean\":\"git clean -xdf supabase/**/.DS_Store && npm run sb db reset && npm run sb stop\",\"decrypt-env\":\"dotenvx run -f supabase/.env -f supabase/.env.preview -f supabase/.env.local --overload\",\"sb\":\"npm run decrypt-env -- npx supabase@beta\",\"decrypt-env:file\":\"dotenvx get -f supabase/.env -f supabase/.env.preview -f supabase/.env.local --overload 2>/dev/null | node -e \\\"const j=JSON.parse(require(fs).readFileSync(/dev/stdin,utf8));Object.entries(j).forEach(([k,v])=>console.log(k+=\\\"+v+\\\"))\\\" > supabase/functions/.env\",\"sb:serve-functions\":\"npm run decrypt-env:file && npm run sb functions serve -- --env-file supabase/functions/.env\",\"sb:functions:deploy:send-email:dev\":\"npm run sb functions deploy send-email -- --no-verify-jwt --project-ref yjgdgsycxmlvaiuynlbv\",\"sb:functions:deploy:send-email:prod\":\"npm run sb functions deploy send-email -- --no-verify-jwt --project-ref unsxkmlcyxgtgmtzfonb\",\"package-lock:fix\":\"npm install --package-lock-only\",\"shadcn\":\"shadcn\",\"knip:check\":\"knip\",\"postinstall\":\"patch-package\",\"prepare\":\"git config core.hooksPath .githooks\",\"adb:tunnel\":\"adb reverse tcp:8081 tcp:8081\",\"android:eas:build:preview\":\"eas build --platform android --profile preview\"}",
"reasons": [
"packageJson:scripts"
],
"hash": "058f699875922c7542592d2307bae5b999abade1"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "rncoreAutolinkingConfig:android",
"contents": "{\"@blazejkustra/react-native-alert\":{\"root\":\"node_modules/@blazejkustra/react-native-alert\",\"name\":\"@blazejkustra/react-native-alert\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@blazejkustra/react-native-alert/android\",\"packageImportPath\":\"import com.blazejkustra.reactnativealert.ReactNativeAlertPackage;\",\"packageInstance\":\"new ReactNativeAlertPackage()\",\"buildTypes\":[],\"libraryName\":\"ReactNativeAlertSpec\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@blazejkustra/react-native-alert/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@op-engineering/op-sqlite\":{\"root\":\"node_modules/@op-engineering/op-sqlite\",\"name\":\"@op-engineering/op-sqlite\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@op-engineering/op-sqlite/android\",\"packageImportPath\":\"import com.op.sqlite.OPSQLitePackage;\",\"packageInstance\":\"new OPSQLitePackage()\",\"buildTypes\":[],\"libraryName\":\"OPSQLiteSpec\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@op-engineering/op-sqlite/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@powersync/op-sqlite\":{\"root\":\"node_modules/@powersync/op-sqlite\",\"name\":\"@powersync/op-sqlite\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@powersync/op-sqlite/android\",\"packageImportPath\":\"import com.powersync.opsqlite.PowerSyncOpSqlitePackage;\",\"packageInstance\":\"new PowerSyncOpSqlitePackage()\",\"buildTypes\":[],\"libraryName\":\"RNPowerSyncOpSqliteSpec\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@powersync/op-sqlite/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@react-native-async-storage/async-storage\":{\"root\":\"node_modules/@react-native-async-storage/async-storage\",\"name\":\"@react-native-async-storage/async-storage\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@react-native-async-storage/async-storage/android\",\"packageImportPath\":\"import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;\",\"packageInstance\":\"new AsyncStoragePackage()\",\"buildTypes\":[],\"libraryName\":\"rnasyncstorage\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@react-native-async-storage/async-storage/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@react-native-community/netinfo\":{\"root\":\"node_modules/@react-native-community/netinfo\",\"name\":\"@react-native-community/netinfo\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@react-native-community/netinfo/android\",\"packageImportPath\":\"import com.reactnativecommunity.netinfo.NetInfoPackage;\",\"packageInstance\":\"new NetInfoPackage()\",\"buildTypes\":[],\"libraryName\":\"RNCNetInfoSpec\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@react-native-community/netinfo/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@react-native-community/slider\":{\"root\":\"node_modules/@react-native-community/slider\",\"name\":\"@react-native-community/slider\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@react-native-community/slider/android\",\"packageImportPath\":\"import com.reactnativecommunity.slider.ReactSliderPackage;\",\"packageInstance\":\"new ReactSliderPackage()\",\"buildTypes\":[],\"libraryName\":\"RNCSlider\",\"componentDescriptors\":[\"RNCSliderComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/@react-native-community/slider/android/src/main/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"@react-native-documents/picker\":{\"root\":\"node_modules/@react-native-documents/picker\",\"name\":\"@react-native-documents/picker\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/@react-native-documents/picker/android\",\"packageImportPath\":\"import com.reactnativedocumentpicker.RNDocumentPickerPackage;\",\"packageInstance\":\"new RNDocumentPickerPackage()\",\"buildTypes\":[],\"libraryName\":\"rndocumentpickerCGen\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/@react-native-documents/picker/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"expo\":{\"root\":\"node_modules/expo\",\"name\":\"expo\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/expo/android\",\"packageImportPath\":\"import expo.modules.ExpoModulesPackage;\",\"packageInstance\":\"new ExpoModulesPackage()\",\"buildTypes\":[],\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/expo/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"posthog-react-native-session-replay\":{\"root\":\"node_modules/posthog-react-native-session-replay\",\"name\":\"posthog-react-native-session-replay\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/posthog-react-native-session-replay/android\",\"packageImportPath\":\"import com.posthogreactnativesessionreplay.PosthogReactNativeSessionReplayPackage;\",\"packageInstance\":\"new PosthogReactNativeSessionReplayPackage()\",\"buildTypes\":[],\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/posthog-react-native-session-replay/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-audio-concat\":{\"root\":\"node_modules/react-native-audio-concat\",\"name\":\"react-native-audio-concat\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-audio-concat/android\",\"packageImportPath\":\"import com.audioconcat.AudioConcatPackage;\",\"packageInstance\":\"new AudioConcatPackage()\",\"buildTypes\":[],\"libraryName\":\"AudioConcatSpec\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/react-native-audio-concat/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-gesture-handler\":{\"root\":\"node_modules/react-native-gesture-handler\",\"name\":\"react-native-gesture-handler\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-gesture-handler/android\",\"packageImportPath\":\"import com.swmansion.gesturehandler.RNGestureHandlerPackage;\",\"packageInstance\":\"new RNGestureHandlerPackage()\",\"buildTypes\":[],\"libraryName\":\"rngesturehandler_codegen\",\"componentDescriptors\":[\"RNGestureHandlerButtonComponentDescriptor\",\"RNGestureHandlerRootViewComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-gesture-handler/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-keyboard-controller\":{\"root\":\"node_modules/react-native-keyboard-controller\",\"name\":\"react-native-keyboard-controller\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-keyboard-controller/android\",\"packageImportPath\":\"import com.reactnativekeyboardcontroller.KeyboardControllerPackage;\",\"packageInstance\":\"new KeyboardControllerPackage()\",\"buildTypes\":[],\"libraryName\":\"RNKC\",\"componentDescriptors\":[\"KeyboardControllerViewComponentDescriptor\",\"KeyboardGestureAreaComponentDescriptor\",\"OverKeyboardViewComponentDescriptor\",\"KeyboardBackgroundViewComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-keyboard-controller/android/src/main/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-pager-view\":{\"root\":\"node_modules/react-native-pager-view\",\"name\":\"react-native-pager-view\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-pager-view/android\",\"packageImportPath\":\"import com.reactnativepagerview.PagerViewPackage;\",\"packageInstance\":\"new PagerViewPackage()\",\"buildTypes\":[],\"libraryName\":\"pagerview\",\"componentDescriptors\":[\"RNCViewPagerComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-pager-view/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-reanimated\":{\"root\":\"node_modules/react-native-reanimated\",\"name\":\"react-native-reanimated\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-reanimated/android\",\"packageImportPath\":\"import com.swmansion.reanimated.ReanimatedPackage;\",\"packageInstance\":\"new ReanimatedPackage()\",\"buildTypes\":[],\"libraryName\":\"rnreanimated\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/react-native-reanimated/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-safe-area-context\":{\"root\":\"node_modules/react-native-safe-area-context\",\"name\":\"react-native-safe-area-context\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-safe-area-context/android\",\"packageImportPath\":\"import com.th3rdwave.safeareacontext.SafeAreaContextPackage;\",\"packageInstance\":\"new SafeAreaContextPackage()\",\"buildTypes\":[],\"libraryName\":\"safeareacontext\",\"componentDescriptors\":[\"RNCSafeAreaProviderComponentDescriptor\",\"RNCSafeAreaViewComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-safe-area-context/android/src/main/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-screens\":{\"root\":\"node_modules/react-native-screens\",\"name\":\"react-native-screens\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-screens/android\",\"packageImportPath\":\"import com.swmansion.rnscreens.RNScreensPackage;\",\"packageInstance\":\"new RNScreensPackage()\",\"buildTypes\":[],\"libraryName\":\"rnscreens\",\"componentDescriptors\":[\"RNSFullWindowOverlayComponentDescriptor\",\"RNSScreenContainerComponentDescriptor\",\"RNSScreenNavigationContainerComponentDescriptor\",\"RNSScreenStackHeaderConfigComponentDescriptor\",\"RNSScreenStackHeaderSubviewComponentDescriptor\",\"RNSScreenStackComponentDescriptor\",\"RNSSearchBarComponentDescriptor\",\"RNSScreenComponentDescriptor\",\"RNSScreenFooterComponentDescriptor\",\"RNSScreenContentWrapperComponentDescriptor\",\"RNSModalScreenComponentDescriptor\",\"RNSBottomTabsComponentDescriptor\",\"RNSSafeAreaViewComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-screens/android/src/main/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-svg\":{\"root\":\"node_modules/react-native-svg\",\"name\":\"react-native-svg\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-svg/android\",\"packageImportPath\":\"import com.horcrux.svg.SvgPackage;\",\"packageInstance\":\"new SvgPackage()\",\"buildTypes\":[],\"libraryName\":\"rnsvg\",\"componentDescriptors\":[\"RNSVGCircleComponentDescriptor\",\"RNSVGClipPathComponentDescriptor\",\"RNSVGDefsComponentDescriptor\",\"RNSVGFeBlendComponentDescriptor\",\"RNSVGFeColorMatrixComponentDescriptor\",\"RNSVGFeCompositeComponentDescriptor\",\"RNSVGFeFloodComponentDescriptor\",\"RNSVGFeGaussianBlurComponentDescriptor\",\"RNSVGFeMergeComponentDescriptor\",\"RNSVGFeOffsetComponentDescriptor\",\"RNSVGFilterComponentDescriptor\",\"RNSVGEllipseComponentDescriptor\",\"RNSVGForeignObjectComponentDescriptor\",\"RNSVGGroupComponentDescriptor\",\"RNSVGImageComponentDescriptor\",\"RNSVGLinearGradientComponentDescriptor\",\"RNSVGLineComponentDescriptor\",\"RNSVGMarkerComponentDescriptor\",\"RNSVGMaskComponentDescriptor\",\"RNSVGPathComponentDescriptor\",\"RNSVGPatternComponentDescriptor\",\"RNSVGRadialGradientComponentDescriptor\",\"RNSVGRectComponentDescriptor\",\"RNSVGSvgViewAndroidComponentDescriptor\",\"RNSVGSymbolComponentDescriptor\",\"RNSVGTextComponentDescriptor\",\"RNSVGTextPathComponentDescriptor\",\"RNSVGTSpanComponentDescriptor\",\"RNSVGUseComponentDescriptor\"],\"cmakeListsPath\":\"node_modules/react-native-svg/android/src/main/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-worklets\":{\"root\":\"node_modules/react-native-worklets\",\"name\":\"react-native-worklets\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-worklets/android\",\"packageImportPath\":\"import com.swmansion.worklets.WorkletsPackage;\",\"packageInstance\":\"new WorkletsPackage()\",\"buildTypes\":[],\"libraryName\":\"rnworklets\",\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/react-native-worklets/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}},\"react-native-zip-archive\":{\"root\":\"node_modules/react-native-zip-archive\",\"name\":\"react-native-zip-archive\",\"platforms\":{\"android\":{\"sourceDir\":\"node_modules/react-native-zip-archive/android\",\"packageImportPath\":\"import com.rnziparchive.RNZipArchivePackage;\",\"packageInstance\":\"new RNZipArchivePackage()\",\"buildTypes\":[],\"componentDescriptors\":[],\"cmakeListsPath\":\"node_modules/react-native-zip-archive/android/build/generated/source/codegen/jni/CMakeLists.txt\",\"cxxModuleCMakeListsModuleName\":null,\"cxxModuleCMakeListsPath\":null,\"cxxModuleHeaderName\":null,\"isPureCxxDependency\":false}}}}",
"reasons": [
"rncoreAutolinkingAndroid"
],
"hash": "6ee2595702957247f916872f4dfe9c7c8fc6b4d5"
}
},
{
"op": "added",
"addedSource": {
"type": "contents",
"id": "rncoreAutolinkingConfig:ios",
"contents": "{\"@op-engineering/op-sqlite\":{\"root\":\"node_modules/@op-engineering/op-sqlite\",\"name\":\"@op-engineering/op-sqlite\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@op-engineering/op-sqlite/op-sqlite.podspec\",\"version\":\"15.2.5\",\"configurations\":[],\"scriptPhases\":[]}}},\"@powersync/op-sqlite\":{\"root\":\"node_modules/@powersync/op-sqlite\",\"name\":\"@powersync/op-sqlite\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@powersync/op-sqlite/powersync-op-sqlite.podspec\",\"version\":\"0.9.1\",\"configurations\":[],\"scriptPhases\":[]}}},\"@react-native-async-storage/async-storage\":{\"root\":\"node_modules/@react-native-async-storage/async-storage\",\"name\":\"@react-native-async-storage/async-storage\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@react-native-async-storage/async-storage/RNCAsyncStorage.podspec\",\"version\":\"2.2.0\",\"configurations\":[],\"scriptPhases\":[]}}},\"@react-native-community/netinfo\":{\"root\":\"node_modules/@react-native-community/netinfo\",\"name\":\"@react-native-community/netinfo\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@react-native-community/netinfo/react-native-netinfo.podspec\",\"version\":\"11.5.2\",\"configurations\":[],\"scriptPhases\":[]}}},\"@react-native-community/slider\":{\"root\":\"node_modules/@react-native-community/slider\",\"name\":\"@react-native-community/slider\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@react-native-community/slider/react-native-slider.podspec\",\"version\":\"5.1.2\",\"configurations\":[],\"scriptPhases\":[]}}},\"@react-native-documents/picker\":{\"root\":\"node_modules/@react-native-documents/picker\",\"name\":\"@react-native-documents/picker\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/@react-native-documents/picker/react-native-document-picker.podspec\",\"version\":\"12.0.1\",\"configurations\":[],\"scriptPhases\":[]}}},\"expo\":{\"root\":\"node_modules/expo\",\"name\":\"expo\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/expo/Expo.podspec\",\"version\":\"55.0.4\",\"configurations\":[],\"scriptPhases\":[]}}},\"posthog-react-native-session-replay\":{\"root\":\"node_modules/posthog-react-native-session-replay\",\"name\":\"posthog-react-native-session-replay\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/posthog-react-native-session-replay/posthog-react-native-session-replay.podspec\",\"version\":\"1.5.1\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-audio-concat\":{\"root\":\"node_modules/react-native-audio-concat\",\"name\":\"react-native-audio-concat\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-audio-concat/AudioConcat.podspec\",\"version\":\"0.9.0\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-gesture-handler\":{\"root\":\"node_modules/react-native-gesture-handler\",\"name\":\"react-native-gesture-handler\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-gesture-handler/RNGestureHandler.podspec\",\"version\":\"2.30.0\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-keyboard-controller\":{\"root\":\"node_modules/react-native-keyboard-controller\",\"name\":\"react-native-keyboard-controller\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-keyboard-controller/react-native-keyboard-controller.podspec\",\"version\":\"1.20.7\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-pager-view\":{\"root\":\"node_modules/react-native-pager-view\",\"name\":\"react-native-pager-view\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-pager-view/react-native-pager-view.podspec\",\"version\":\"8.0.0\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-reanimated\":{\"root\":\"node_modules/react-native-reanimated\",\"name\":\"react-native-reanimated\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-reanimated/RNReanimated.podspec\",\"version\":\"4.2.1\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-safe-area-context\":{\"root\":\"node_modules/react-native-safe-area-context\",\"name\":\"react-native-safe-area-context\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-safe-area-context/react-native-safe-area-context.podspec\",\"version\":\"5.6.2\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-screens\":{\"root\":\"node_modules/react-native-screens\",\"name\":\"react-native-screens\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-screens/RNScreens.podspec\",\"version\":\"4.23.0\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-svg\":{\"root\":\"node_modules/react-native-svg\",\"name\":\"react-native-svg\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-svg/RNSVG.podspec\",\"version\":\"15.15.3\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-worklets\":{\"root\":\"node_modules/react-native-worklets\",\"name\":\"react-native-worklets\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-worklets/RNWorklets.podspec\",\"version\":\"0.7.2\",\"configurations\":[],\"scriptPhases\":[]}}},\"react-native-zip-archive\":{\"root\":\"node_modules/react-native-zip-archive\",\"name\":\"react-native-zip-archive\",\"platforms\":{\"ios\":{\"podspecPath\":\"node_modules/react-native-zip-archive/RNZipArchive.podspec\",\"version\":\"7.0.2\",\"configurations\":[],\"scriptPhases\":[]}}}}",
"reasons": [
"rncoreAutolinkingIos"
],
"hash": "064672229a277914c43889149016e514666df5d8"
}
}
]Action Required: After confirming with the team, another team member must approve this PR to proceed with merging. 👉 Approve this PR - Click "Review changes/Submit review" → "Approve" to dismiss this review and allow merging. |
PR approved - dismissing native build requirement review.
No description provided.