Skip to content

Commit df56236

Browse files
committed
chore: update dependencies and configuration files
- Add .yarn to ESLint ignore - Update package.json with new devDependencies and dependencies - Introduce KeyboardProvider for better keyboard handling - Refactor Composer component to use EnrichedTextInput - Remove unused Tiptap components and styles - Enhance NoteView with KeyboardAvoidingView for improved UX - Update various components to utilize new hooks and libraries - Capture exceptions in useFixGrammarMutation with Sentry
1 parent 3bc39f6 commit df56236

38 files changed

Lines changed: 2735 additions & 3782 deletions

File tree

‎.cursor/mcp.json‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"mcpServers": {
3+
"RadonAi": {
4+
"url": "http://127.0.0.1:50219/mcp",
5+
"type": "http",
6+
"headers": {
7+
"nonce": "62776166-c1d5-4e9a-8515-232aa4b37a92"
8+
}
9+
}
10+
}
11+
}

‎.eslintignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ theme.d.ts
88
expo-env.d.ts
99
.tamagui
1010
coverage
11+
.yarn

‎.vscode/settings.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@
3535
"editor.defaultFormatter": "esbenp.prettier-vscode",
3636
"editor.formatOnSave": true,
3737
"typescript.enablePromptUseWorkspaceTsdk": true,
38-
"typescript.tsdk": "node_modules/typescript/lib"
38+
"typescript.tsdk": "node_modules/typescript/lib",
39+
"tailwindCSS.classAttributes": ["class", "className", "headerClassName"]
3940
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
diff --git a/lib/index.js b/lib/index.js
2+
index bc910e7665244887b4de8468edcc004a1be78419..3fc27958fca563a028befcaa3adf3cfe2ef7865c 100644
3+
--- a/lib/index.js
4+
+++ b/lib/index.js
5+
@@ -1,2 +1,2 @@
6+
-"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var named_references_1=require("./named-references");var numeric_unicode_map_1=require("./numeric-unicode-map");var surrogate_pairs_1=require("./surrogate-pairs");var allNamedReferences=__assign(__assign({},named_references_1.namedReferences),{all:named_references_1.namedReferences.html5});var encodeRegExps={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g};var defaultEncodeOptions={mode:"specialChars",level:"all",numeric:"decimal"};function encode(text,_a){var _b=_a===void 0?defaultEncodeOptions:_a,_c=_b.mode,mode=_c===void 0?"specialChars":_c,_d=_b.numeric,numeric=_d===void 0?"decimal":_d,_e=_b.level,level=_e===void 0?"all":_e;if(!text){return""}var encodeRegExp=encodeRegExps[mode];var references=allNamedReferences[level].characters;var isHex=numeric==="hexadecimal";return text.replace(encodeRegExp,(function(input){var result=references[input];if(!result){var code=input.length>1?surrogate_pairs_1.getCodePoint(input,0):input.charCodeAt(0);result=(isHex?"&#x"+code.toString(16):"&#"+code)+";"}return result}))}exports.encode=encode;var defaultDecodeOptions={scope:"body",level:"all"};var strict=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g;var attribute=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;var baseDecodeRegExps={xml:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.xml},html4:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html4},html5:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html5}};var decodeRegExps=__assign(__assign({},baseDecodeRegExps),{all:baseDecodeRegExps.html5});var fromCharCode=String.fromCharCode;var outOfBoundsChar=fromCharCode(65533);var defaultDecodeEntityOptions={level:"all"};function getDecodedEntity(entity,references,isAttribute,isStrict){var decodeResult=entity;var decodeEntityLastChar=entity[entity.length-1];if(isAttribute&&decodeEntityLastChar==="="){decodeResult=entity}else if(isStrict&&decodeEntityLastChar!==";"){decodeResult=entity}else{var decodeResultByReference=references[entity];if(decodeResultByReference){decodeResult=decodeResultByReference}else if(entity[0]==="&"&&entity[1]==="#"){var decodeSecondChar=entity[2];var decodeCode=decodeSecondChar=="x"||decodeSecondChar=="X"?parseInt(entity.substr(3),16):parseInt(entity.substr(2));decodeResult=decodeCode>=1114111?outOfBoundsChar:decodeCode>65535?surrogate_pairs_1.fromCodePoint(decodeCode):fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode]||decodeCode)}}return decodeResult}function decodeEntity(entity,_a){var _b=(_a===void 0?defaultDecodeEntityOptions:_a).level,level=_b===void 0?"all":_b;if(!entity){return""}return getDecodedEntity(entity,allNamedReferences[level].entities,false,false)}exports.decodeEntity=decodeEntity;function decode(text,_a){var _b=_a===void 0?defaultDecodeOptions:_a,_c=_b.level,level=_c===void 0?"all":_c,_d=_b.scope,scope=_d===void 0?level==="xml"?"strict":"body":_d;if(!text){return""}var decodeRegExp=decodeRegExps[level][scope];var references=allNamedReferences[level].entities;var isAttribute=scope==="attribute";var isStrict=scope==="strict";return text.replace(decodeRegExp,(function(entity){return getDecodedEntity(entity,references,isAttribute,isStrict)}))}exports.decode=decode;
7+
+"worklet";"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:true});var named_references_1=require("./named-references");var numeric_unicode_map_1=require("./numeric-unicode-map");var surrogate_pairs_1=require("./surrogate-pairs");var allNamedReferences=__assign(__assign({},named_references_1.namedReferences),{all:named_references_1.namedReferences.html5});var encodeRegExps={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g};var defaultEncodeOptions={mode:"specialChars",level:"all",numeric:"decimal"};function encode(text,_a){var _b=_a===void 0?defaultEncodeOptions:_a,_c=_b.mode,mode=_c===void 0?"specialChars":_c,_d=_b.numeric,numeric=_d===void 0?"decimal":_d,_e=_b.level,level=_e===void 0?"all":_e;if(!text){return""}var encodeRegExp=encodeRegExps[mode];var references=allNamedReferences[level].characters;var isHex=numeric==="hexadecimal";return text.replace(encodeRegExp,(function(input){var result=references[input];if(!result){var code=input.length>1?surrogate_pairs_1.getCodePoint(input,0):input.charCodeAt(0);result=(isHex?"&#x"+code.toString(16):"&#"+code)+";"}return result}))}exports.encode=encode;var defaultDecodeOptions={scope:"body",level:"all"};var strict=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g;var attribute=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;var baseDecodeRegExps={xml:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.xml},html4:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html4},html5:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html5}};var decodeRegExps=__assign(__assign({},baseDecodeRegExps),{all:baseDecodeRegExps.html5});var fromCharCode=String.fromCharCode;var outOfBoundsChar=fromCharCode(65533);var defaultDecodeEntityOptions={level:"all"};function getDecodedEntity(entity,references,isAttribute,isStrict){var decodeResult=entity;var decodeEntityLastChar=entity[entity.length-1];if(isAttribute&&decodeEntityLastChar==="="){decodeResult=entity}else if(isStrict&&decodeEntityLastChar!==";"){decodeResult=entity}else{var decodeResultByReference=references[entity];if(decodeResultByReference){decodeResult=decodeResultByReference}else if(entity[0]==="&"&&entity[1]==="#"){var decodeSecondChar=entity[2];var decodeCode=decodeSecondChar=="x"||decodeSecondChar=="X"?parseInt(entity.substr(3),16):parseInt(entity.substr(2));decodeResult=decodeCode>=1114111?outOfBoundsChar:decodeCode>65535?surrogate_pairs_1.fromCodePoint(decodeCode):fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode]||decodeCode)}}return decodeResult}function decodeEntity(entity,_a){var _b=(_a===void 0?defaultDecodeEntityOptions:_a).level,level=_b===void 0?"all":_b;if(!entity){return""}return getDecodedEntity(entity,allNamedReferences[level].entities,false,false)}exports.decodeEntity=decodeEntity;function decode(text,_a){var _b=_a===void 0?defaultDecodeOptions:_a,_c=_b.level,level=_c===void 0?"all":_c,_d=_b.scope,scope=_d===void 0?level==="xml"?"strict":"body":_d;if(!text){return""}var decodeRegExp=decodeRegExps[level][scope];var references=allNamedReferences[level].entities;var isAttribute=scope==="attribute";var isStrict=scope==="strict";return text.replace(decodeRegExp,(function(entity){return getDecodedEntity(entity,references,isAttribute,isStrict)}))}exports.decode=decode;
8+
//# sourceMappingURL=./index.js.map
9+
\ No newline at end of file

‎WARP.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CLAUDE.md

‎jest-setup.js‎

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
22
/* eslint-disable @typescript-eslint/no-unsafe-call */
3-
import "react-native-gesture-handler/jestSetup";
43
import "@testing-library/react-native/extend-expect";
54
import React from "react";
5+
import "react-native-gesture-handler/jestSetup";
66
import { setUpTests } from "react-native-reanimated";
77
import mockSafeAreaContext from "react-native-safe-area-context/jest/mock";
88

9+
process.env = Object.assign(process.env, {
10+
EXPO_PUBLIC_FLAGSMITH_ENVIRONMENT_ID: "flagsmithEnvironmentId",
11+
EXPO_PUBLIC_SUPABASE_ANON_KEY: "supabaseAnonKey",
12+
EXPO_PUBLIC_GEMINI_API_KEY: "geminiAPIKey",
13+
EXPO_PUBLIC_VEXO_ANALYTICS_API_KEY: "",
14+
EXPO_PUBLIC_SUPABASE_URL: "testing",
15+
EXPO_PUBLIC_SENTRY_DSN: "sentryDsn",
16+
NODE_ENV: "supabaseUrl",
17+
});
18+
919
setUpTests();
1020

1121
jest.mock("react-native-safe-area-context", () => mockSafeAreaContext);
@@ -40,4 +50,55 @@ jest.mock("@gorhom/bottom-sheet", () => {
4050
};
4151
});
4252

53+
jest.mock("vexo-analytics", () => ({
54+
identifyDevice: jest.fn(),
55+
customEvent: jest.fn(),
56+
vexo: jest.fn(),
57+
}));
58+
59+
jest.mock("uuid", () => ({
60+
v4: jest.fn(),
61+
}));
62+
63+
jest.mock("@supabase/supabase-js", () => {
64+
let testData = [
65+
{
66+
org_users: [{ id: "mockUserId", status: "active" }],
67+
id: "mockedRoleId",
68+
},
69+
];
70+
71+
return {
72+
createClient: jest.fn().mockImplementation(() => {
73+
return {
74+
update: jest.fn().mockImplementation(() => ({
75+
select: jest.fn().mockReturnThis(),
76+
order: jest.fn().mockReturnThis(),
77+
gte: jest.fn().mockReturnThis(),
78+
lte: jest.fn().mockReturnThis(),
79+
eq: jest.fn().mockReturnThis(),
80+
in: jest.fn().mockReturnThis(),
81+
is: jest.fn().mockReturnThis(),
82+
data: testData, // Use the data variable here
83+
error: null,
84+
})),
85+
select: jest.fn().mockImplementation(() => ({
86+
order: jest.fn().mockReturnThis(),
87+
gte: jest.fn().mockReturnThis(),
88+
lte: jest.fn().mockReturnThis(),
89+
eq: jest.fn().mockReturnThis(),
90+
in: jest.fn().mockReturnThis(),
91+
is: jest.fn().mockReturnThis(),
92+
data: testData, // Use the data variable here
93+
error: null,
94+
})),
95+
from: jest.fn().mockReturnThis(),
96+
};
97+
}),
98+
setTestData: (newData) => {
99+
testData = newData;
100+
},
101+
};
102+
});
103+
43104
export {};

‎jest.config.js‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const packagesToTransform = [
2121
"tamagui",
2222
"@tamagui/(.*)",
2323
"moti",
24+
"@gorhom/bottom-sheet",
25+
"@sentry/react-native",
2426
];
2527

2628
/** @type {import("jest").Config} */
@@ -30,7 +32,9 @@ module.exports = {
3032
],
3133
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
3234
testRegex: "\\.test\\.[jt]sx?$",
33-
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths),
35+
moduleNameMapper: {
36+
"@/(.*)": "<rootDir>/src/$1",
37+
},
3438
setupFilesAfterEnv: ["<rootDir>/jest-setup.js"],
3539
modulePaths: [compilerOptions.baseUrl],
3640
preset: "jest-expo",

‎lefthook.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ pre-commit:
55
glob: "*.{js,jsx,ts,tsx}"
66
run: yarn lint
77
format:
8-
glob: "*.{js,jsx,ts,tsx,json,md,css,scss}"
8+
glob: "*.{js,jsx,ts,tsx,json,css,scss}"
99
run: yarn prettier --write {staged_files}
10-
tests:
11-
run: yarn run test --passWithNoTests --findRelatedTests {staged_files}
10+
# tests:
11+
# run: yarn run test --passWithNoTests --findRelatedTests {staged_files}
1212

1313
commit-msg:
1414
commands:

‎package.json‎

Lines changed: 82 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,57 @@
3030
"supabase:gen:types": "supabase gen types typescript > src/types/supabase.ts",
3131
"prepare": "lefthook install"
3232
},
33-
"dependencies": {
34-
"@10play/tentap-editor": "^0.6.1",
35-
"@expensify/react-native-live-markdown": "^0.1.287",
33+
"private": true,
34+
"devDependencies": {
35+
"@babel/core": "^7.25.2",
36+
"@babel/plugin-proposal-decorators": "^7.23.3",
37+
"@commitlint/cli": "^19.7.1",
38+
"@commitlint/config-conventional": "^19.7.1",
3639
"@expo/metro-runtime": "~5.0.4",
40+
"@tamagui/babel-plugin": "^1.132.23",
41+
"@tamagui/cli": "^1.132.23",
42+
"@tamagui/metro-plugin": "^1.132.23",
43+
"@testing-library/jest-native": "^5.4.3",
44+
"@testing-library/react-native": "^12.4.3",
45+
"@types/google-libphonenumber": "^7.4.30",
46+
"@types/jest": "^29.5.11",
47+
"@types/lodash.capitalize": "^4.2.9",
48+
"@types/lodash.debounce": "^4.0.9",
49+
"@types/react": "~19.0.10",
50+
"@types/tinycolor2": "^1",
51+
"@types/uuid": "^10.0.0",
52+
"@typescript-eslint/eslint-plugin": "^8.20.0",
53+
"@typescript-eslint/parser": "^8.20.0",
54+
"eslint": "^8.57.1",
55+
"eslint-config-expo": "~9.2.0",
56+
"eslint-config-prettier": "^10.0.1",
57+
"eslint-plugin-flow": "^2.29.1",
58+
"eslint-plugin-import": "^2.31.0",
59+
"eslint-plugin-jest": "^28.11.0",
60+
"eslint-plugin-perfectionist": "^4.6.0",
61+
"eslint-plugin-prettier": "^5.2.2",
62+
"globals": "^15.14.0",
63+
"jest": "^29.2.1",
64+
"jest-expo": "~53.0.10",
65+
"knip": "^2.19.11",
66+
"lefthook": "^1.11.2",
67+
"patch-package": "^8.0.0",
68+
"postinstall-postinstall": "^2.1.0",
69+
"prettier": "^3.4.2",
70+
"prettier-plugin-tailwindcss": "^0.5.11",
71+
"ts-jest": "^29.1.2",
72+
"tsc-files": "^1.1.4",
73+
"typescript": "~5.8.3"
74+
},
75+
"resolutions": {
76+
"@react-navigation/bottom-tabs": "^7.3.10",
77+
"@react-navigation/native": "^7.1.6",
78+
"@react-navigation/native-stack": "^7.3.10",
79+
"html-entities@npm:^2.5.2": "patch:html-entities@npm%3A2.5.3#~/.yarn/patches/html-entities-npm-2.5.3-d55fdf6192.patch",
80+
"@expo/config-plugins": "~10.1.1"
81+
},
82+
"packageManager": "yarn@4.9.2",
83+
"dependencies": {
3784
"@google/generative-ai": "^0.1.3",
3885
"@gorhom/bottom-sheet": "^5.1.1",
3986
"@hookform/resolvers": "^3.3.4",
@@ -43,44 +90,39 @@
4390
"@shopify/flash-list": "1.7.6",
4491
"@shopify/react-native-skia": "v2.0.0-next.4",
4592
"@supabase/supabase-js": "^2.49.10",
46-
"@tamagui/animations-moti": "^1.126.14",
47-
"@tamagui/config": "^1.126.14",
48-
"@tamagui/font-inter": "^1.126.14",
49-
"@tamagui/linear-gradient": "^1.126.14",
50-
"@tamagui/lucide-icons": "^1.126.14",
51-
"@tamagui/metro-plugin": "^1.126.14",
93+
"@tamagui/animations-moti": "^1.132.23",
94+
"@tamagui/config": "^1.132.23",
95+
"@tamagui/font-inter": "^1.132.23",
96+
"@tamagui/linear-gradient": "^1.132.23",
97+
"@tamagui/lucide-icons": "^1.132.23",
5298
"@tanstack/react-query": "^5.18.0",
53-
"@tiptap/pm": "^2.11.5",
54-
"@tiptap/react": "^2.11.5",
55-
"@tiptap/starter-kit": "^2.11.5",
5699
"burnt": "^0.13.0",
57100
"date-fns": "^4.1.0",
58-
"expensify-common": "^2.0.140",
59-
"expo": "^53.0.0",
101+
"expo": "53.0.22",
60102
"expo-apple-authentication": "~7.2.4",
61-
"expo-application": "~6.1.4",
62-
"expo-audio": "~0.4.6",
103+
"expo-application": "~6.1.5",
104+
"expo-audio": "~0.4.9",
63105
"expo-blur": "~14.1.5",
64-
"expo-constants": "~17.1.6",
65-
"expo-dev-client": "~5.2.0",
106+
"expo-constants": "~17.1.7",
107+
"expo-dev-client": "~5.2.4",
66108
"expo-device": "~7.1.4",
67-
"expo-file-system": "~18.1.10",
68-
"expo-font": "~13.3.1",
109+
"expo-file-system": "~18.1.11",
110+
"expo-font": "~13.3.2",
69111
"expo-haptics": "~14.1.4",
70112
"expo-linear-gradient": "~14.1.5",
71-
"expo-linking": "~7.1.5",
72-
"expo-local-authentication": "~16.0.4",
73-
"expo-localization": "~16.1.5",
74-
"expo-notifications": "~0.31.3",
75-
"expo-router": "~5.0.7",
76-
"expo-splash-screen": "~0.30.9",
113+
"expo-linking": "~7.1.7",
114+
"expo-local-authentication": "~16.0.5",
115+
"expo-localization": "~16.1.6",
116+
"expo-notifications": "~0.31.4",
117+
"expo-router": "~5.1.5",
118+
"expo-splash-screen": "~0.30.10",
77119
"expo-status-bar": "~2.2.3",
78-
"expo-system-ui": "~5.0.8",
79-
"expo-updates": "~0.28.14",
120+
"expo-system-ui": "~5.0.11",
121+
"expo-updates": "~0.28.17",
80122
"flagsmith": "^9.2.2",
81123
"formik": "^2.4.6",
82124
"google-libphonenumber": "^3.2.34",
83-
"html-entities": "^2.5.2",
125+
"html-entities": "patch:html-entities@npm%3A2.5.3#~/.yarn/patches/html-entities-npm-2.5.3-d55fdf6192.patch",
84126
"i18next": "^23.8.2",
85127
"lodash.capitalize": "^4.2.1",
86128
"lodash.debounce": "^4.0.8",
@@ -89,14 +131,16 @@
89131
"react-dom": "19.0.0",
90132
"react-hook-form": "^7.57.0",
91133
"react-i18next": "^14.0.2",
92-
"react-native": "0.79.3",
134+
"react-native": "0.79.5",
93135
"react-native-audio-api": "^0.6.1",
136+
"react-native-enriched": "^0.1.1",
94137
"react-native-executorch": "^0.4.3",
95138
"react-native-flagsmith": "^9.2.2",
96139
"react-native-gesture-handler": "~2.24.0",
97140
"react-native-get-random-values": "^1.11.0",
98-
"react-native-ios-context-menu": "^3.1.2",
99-
"react-native-ios-utilities": "^5.1.5",
141+
"react-native-ios-context-menu": "3.1.0",
142+
"react-native-ios-utilities": "5.1.2",
143+
"react-native-keyboard-controller": "^1.17.4",
100144
"react-native-live-audio-stream": "^1.1.1",
101145
"react-native-mmkv": "^3.2.0",
102146
"react-native-quick-crypto": "^0.7.14",
@@ -107,55 +151,13 @@
107151
"react-native-url-polyfill": "^2.0.0",
108152
"react-native-web": "^0.20.0",
109153
"react-native-webview": "13.13.5",
110-
"tamagui": "^1.126.14",
154+
"tailwind-merge": "^3.3.1",
155+
"tamagui": "^1.132.23",
156+
"tinycolor2": "^1.6.0",
111157
"uuid": "^11.1.0",
112158
"vexo-analytics": "^1.4.11",
113159
"zeego": "^3.0.6",
114-
"zod": "^3.25.56"
115-
},
116-
"private": true,
117-
"devDependencies": {
118-
"@babel/core": "^7.25.2",
119-
"@babel/plugin-proposal-decorators": "^7.23.3",
120-
"@commitlint/cli": "^19.7.1",
121-
"@commitlint/config-conventional": "^19.7.1",
122-
"@tamagui/babel-plugin": "^1.126.14",
123-
"@tamagui/cli": "^1.126.14",
124-
"@testing-library/jest-native": "^5.4.3",
125-
"@testing-library/react-native": "^12.4.3",
126-
"@types/google-libphonenumber": "^7.4.30",
127-
"@types/jest": "^29.5.11",
128-
"@types/lodash.capitalize": "^4.2.9",
129-
"@types/lodash.debounce": "^4.0.9",
130-
"@types/react": "~19.0.10",
131-
"@types/uuid": "^10.0.0",
132-
"@typescript-eslint/eslint-plugin": "^8.20.0",
133-
"@typescript-eslint/parser": "^8.20.0",
134-
"eslint": "^8.57.1",
135-
"eslint-config-expo": "~9.2.0",
136-
"eslint-config-prettier": "^10.0.1",
137-
"eslint-plugin-flow": "^2.29.1",
138-
"eslint-plugin-import": "^2.31.0",
139-
"eslint-plugin-jest": "^28.11.0",
140-
"eslint-plugin-perfectionist": "^4.6.0",
141-
"eslint-plugin-prettier": "^5.2.2",
142-
"globals": "^15.14.0",
143-
"jest": "^29.2.1",
144-
"jest-expo": "~53.0.7",
145-
"knip": "^2.19.11",
146-
"lefthook": "^1.11.2",
147-
"prettier": "^3.4.2",
148-
"ts-jest": "^29.1.2",
149-
"tsc-files": "^1.1.4",
150-
"typescript": "~5.8.3"
151-
},
152-
"patchedDependencies": {
153-
"html-entities@2.5.2": "patches/html-entities@2.5.2.patch"
154-
},
155-
"resolutions": {
156-
"@react-navigation/bottom-tabs": "^7.3.10",
157-
"@react-navigation/native": "^7.1.6",
158-
"@react-navigation/native-stack": "^7.3.10"
159-
},
160-
"packageManager": "yarn@4.9.2"
160+
"zod": "^3.25.56",
161+
"zustand": "^5.0.5"
162+
}
161163
}

0 commit comments

Comments
 (0)