diff --git a/.eslintrc.json b/.eslintrc.json
index 30f5a54..fe2a47f 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -17,7 +17,7 @@
"tsx": true,
"modules": true
},
- "ecmaVersion": 11,
+ "ecmaVersion": 14,
"project": "./tsconfig.json",
"sourceType": "module"
},
diff --git a/app.config.js b/app.config.js
index 8e8d777..19da853 100644
--- a/app.config.js
+++ b/app.config.js
@@ -9,7 +9,7 @@ export default {
'ios',
'android',
],
- version: '0.20.0',
+ version: '0.20.1',
orientation: 'portrait',
updates: {
enabled: true,
@@ -38,7 +38,7 @@ export default {
usesNonExemptEncryption: false,
},
bundleIdentifier: IS_DEV ? 'abacus.fireflyiii.ios.app.dev' : 'abacus.ios.app',
- buildNumber: '0.20.0',
+ buildNumber: '0.20.1',
},
android: {
icon: './src/images/icon-abacus.png',
@@ -56,7 +56,7 @@ export default {
},
playStoreUrl: 'https://play.google.com/store/apps/details?id=abacus.fireflyiii.android.app',
package: IS_DEV ? 'abacus.fireflyiii.android.app.dev' : 'abacus.fireflyiii.android.app',
- versionCode: 31,
+ versionCode: 32,
},
scheme: 'abacusfiiiapp',
githubUrl: 'https://github.com/victorbalssa/abacus',
diff --git a/package-lock.json b/package-lock.json
index 21268ff..4f1af52 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "abacus",
- "version": "0.20.0",
+ "version": "0.20.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "abacus",
- "version": "0.20.0",
+ "version": "0.20.1",
"dependencies": {
"@expo/config-plugins": "~8.0.0",
- "@expo/metro-runtime": "~3.2.1",
+ "@expo/metro-runtime": "~3.2.3",
"@expo/vector-icons": "^14.0.2",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-community/datetimepicker": "8.0.1",
@@ -24,14 +24,14 @@
"babel-polyfill": "^6.26.0",
"base-64": "^1.0.0",
"bootstrap": "^4.4.1",
- "expo": "~51.0.22",
+ "expo": "~51.0.36",
"expo-application": "~5.9.1",
"expo-asset": "~10.0.6",
"expo-auth-session": "~5.5.2",
"expo-blur": "~13.0.2",
"expo-clipboard": "~6.0.3",
"expo-crypto": "~13.0.2",
- "expo-dev-client": "~4.0.20",
+ "expo-dev-client": "~4.0.27",
"expo-device": "~6.0.2",
"expo-font": "~12.0.5",
"expo-haptics": "~13.0.1",
@@ -44,7 +44,7 @@
"expo-status-bar": "~1.12.1",
"expo-store-review": "~7.0.2",
"expo-system-ui": "~3.0.7",
- "expo-updates": "~0.25.21",
+ "expo-updates": "~0.25.26",
"globally": "^0.0.0",
"i18n-js": "^4.1.1",
"lodash": "^4.17.21",
@@ -52,7 +52,7 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"react-helmet": "^5.2.1",
- "react-native": "0.74.3",
+ "react-native": "0.74.5",
"react-native-gesture-handler": "~2.16.1",
"react-native-pager-view": "6.3.0",
"react-native-reanimated": "~3.10.1",
@@ -85,7 +85,7 @@
"eslint-plugin-jest": "^27.2.3",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-react": "^7.33.1",
- "jest-expo": "~51.0.3",
+ "jest-expo": "~51.0.4",
"node-sass": "9.0.0",
"ts-jest": "29.1.2",
"ts-node": "10.9.1",
@@ -2188,9 +2188,9 @@
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
},
"node_modules/@babel/runtime": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
- "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz",
+ "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -2392,24 +2392,20 @@
}
},
"node_modules/@expo/bunyan": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
- "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==",
- "engines": [
- "node >=0.10.0"
- ],
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz",
+ "integrity": "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==",
"dependencies": {
"uuid": "^8.0.0"
},
- "optionalDependencies": {
- "mv": "~2",
- "safe-json-stringify": "~1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/@expo/cli": {
- "version": "0.18.25",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.25.tgz",
- "integrity": "sha512-Kh0uZGCxwu58Pu7Jto9T/ABlBR7nkx8QC0Wv8pI3YtISyQZIKtbtNNeTPWYbVK1ddswKwtBUj+MNhKoDL49TLg==",
+ "version": "0.18.30",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.30.tgz",
+ "integrity": "sha512-V90TUJh9Ly8stYo8nwqIqNWCsYjE28GlVFWEhAFCUOp99foiQr8HSTpiiX5GIrprcPoWmlGoY+J5fQA29R4lFg==",
"dependencies": {
"@babel/runtime": "^7.20.0",
"@expo/code-signing-certificates": "0.0.5",
@@ -2419,11 +2415,11 @@
"@expo/env": "~0.3.0",
"@expo/image-utils": "^0.5.0",
"@expo/json-file": "^8.3.0",
- "@expo/metro-config": "~0.18.6",
+ "@expo/metro-config": "0.18.11",
"@expo/osascript": "^2.0.31",
"@expo/package-manager": "^1.5.0",
"@expo/plist": "^0.1.0",
- "@expo/prebuild-config": "7.0.8",
+ "@expo/prebuild-config": "7.0.9",
"@expo/rudder-sdk-node": "1.1.1",
"@expo/spawn-async": "^1.7.2",
"@expo/xcpretty": "^4.3.0",
@@ -2811,13 +2807,13 @@
}
},
"node_modules/@expo/config": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.3.tgz",
- "integrity": "sha512-eOTNM8eOC8gZNHgenySRlc/lwmYY1NOgvjwA8LHuvPT7/eUwD93zrxu3lPD1Cc/P6C/2BcVdfH4hf0tLmDxnsg==",
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz",
+ "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"@expo/config-plugins": "~8.0.8",
- "@expo/config-types": "^51.0.0-unreleased",
+ "@expo/config-types": "^51.0.3",
"@expo/json-file": "^8.3.0",
"getenv": "^1.0.0",
"glob": "7.1.6",
@@ -2829,11 +2825,11 @@
}
},
"node_modules/@expo/config-plugins": {
- "version": "8.0.8",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz",
- "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==",
+ "version": "8.0.10",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.10.tgz",
+ "integrity": "sha512-KG1fnSKRmsudPU9BWkl59PyE0byrE2HTnqbOrgwr2FAhqh7tfr9nRs6A9oLS/ntpGzmFxccTEcsV0L4apsuxxg==",
"dependencies": {
- "@expo/config-types": "^51.0.0-unreleased",
+ "@expo/config-types": "^51.0.3",
"@expo/json-file": "~8.3.0",
"@expo/plist": "^0.1.0",
"@expo/sdk-runtime-versions": "^1.0.0",
@@ -2923,9 +2919,9 @@
}
},
"node_modules/@expo/config-types": {
- "version": "51.0.0",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.0.tgz",
- "integrity": "sha512-acn03/u8mQvBhdTQtA7CNhevMltUhbSrpI01FYBJwpVntufkU++ncQujWKlgY/OwIajcfygk1AY4xcNZ5ImkRA=="
+ "version": "51.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz",
+ "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA=="
},
"node_modules/@expo/config/node_modules/@babel/code-frame": {
"version": "7.10.4",
@@ -2936,25 +2932,32 @@
}
},
"node_modules/@expo/devcert": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.2.tgz",
- "integrity": "sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz",
+ "integrity": "sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==",
"dependencies": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
"debug": "^3.1.0",
"eol": "^0.9.1",
"get-port": "^3.2.0",
- "glob": "^7.1.2",
+ "glob": "^10.4.2",
"lodash": "^4.17.21",
"mkdirp": "^0.5.1",
"password-prompt": "^1.0.4",
- "rimraf": "^2.6.2",
"sudo-prompt": "^8.2.0",
"tmp": "^0.0.33",
"tslib": "^2.4.0"
}
},
+ "node_modules/@expo/devcert/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"node_modules/@expo/devcert/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -2963,6 +2966,47 @@
"ms": "^2.1.1"
}
},
+ "node_modules/@expo/devcert/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/devcert/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@expo/devcert/node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/@expo/env": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz",
@@ -3291,9 +3335,9 @@
}
},
"node_modules/@expo/metro-config": {
- "version": "0.18.9",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.9.tgz",
- "integrity": "sha512-kcqT/wuO43zxuFeR5AR/pMuq/O9qtIyuTI1wYvBY97blHAYU/wfPJKW3xFL14fDkPqQOc87hEEhjlJiXoebvcw==",
+ "version": "0.18.11",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz",
+ "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/generator": "^7.20.5",
@@ -3414,9 +3458,9 @@
}
},
"node_modules/@expo/metro-runtime": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.1.tgz",
- "integrity": "sha512-L7xNo5SmK+rcuXDm/+VBBImpA7FZsVB+m/rNr3fNl5or+1+yrZe99ViF7LZ8DOoVqAqcb4aCAXvGrP2JNYo1/Q==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz",
+ "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==",
"peerDependencies": {
"react-native": "*"
}
@@ -3532,13 +3576,13 @@
}
},
"node_modules/@expo/prebuild-config": {
- "version": "7.0.8",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.8.tgz",
- "integrity": "sha512-wH9NVg6HiwF5y9x0TxiMEeBF+ITPGDXy5/i6OUheSrKpPgb0lF1Mwzl/f2fLPXBEpl+ZXOQ8LlLW32b7K9lrNg==",
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.9.tgz",
+ "integrity": "sha512-9i6Cg7jInpnGEHN0jxnW0P+0BexnePiBzmbUvzSbRXpdXihYUX2AKMu73jgzxn5P1hXOSkzNS7umaY+BZ+aBag==",
"dependencies": {
"@expo/config": "~9.0.0-beta.0",
"@expo/config-plugins": "~8.0.8",
- "@expo/config-types": "^51.0.0-unreleased",
+ "@expo/config-types": "^51.0.3",
"@expo/image-utils": "^0.5.0",
"@expo/json-file": "^8.3.0",
"@react-native/normalize-colors": "0.74.85",
@@ -3627,9 +3671,9 @@
}
},
"node_modules/@expo/vector-icons": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.2.tgz",
- "integrity": "sha512-70LpmXQu4xa8cMxjp1fydgRPsalefnHaXLzIwaHMEzcZhnyjw2acZz8azRrZOslPVAWlxItOa2Dd7WtD/kI+CA==",
+ "version": "14.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz",
+ "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==",
"dependencies": {
"prop-types": "^15.8.1"
}
@@ -3806,9 +3850,9 @@
}
},
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"engines": {
"node": ">=12"
},
@@ -4801,21 +4845,6 @@
"node": ">=10"
}
},
- "node_modules/@npmcli/move-file/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -5981,28 +6010,28 @@
}
},
"node_modules/@react-native/assets-registry": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz",
- "integrity": "sha512-59YmIQxfGDw4aP9S/nAM+sjSFdW8fUP6fsqczCcXgL2YVEjyER9XCaUT0J1K+PdHep8pi05KUgIKUds8P3jbmA==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.87.tgz",
+ "integrity": "sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/babel-plugin-codegen": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.85.tgz",
- "integrity": "sha512-48TSDclRB5OMXiImiJkLxyCfRyLsqkCgI8buugCZzvXcYslfV7gCvcyFyQldtcOmerV+CK4RAj7QS4hmB5Mr8Q==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz",
+ "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==",
"dependencies": {
- "@react-native/codegen": "0.74.85"
+ "@react-native/codegen": "0.74.87"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/babel-preset": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.85.tgz",
- "integrity": "sha512-yMHUlN8INbK5BBwiBuQMftdWkpm1IgCsoJTKcGD2OpSgZhwwm8RUSvGhdRMzB2w7bsqqBmaEMleGtW6aCR7B9w==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz",
+ "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
@@ -6044,7 +6073,7 @@
"@babel/plugin-transform-typescript": "^7.5.0",
"@babel/plugin-transform-unicode-regex": "^7.0.0",
"@babel/template": "^7.0.0",
- "@react-native/babel-plugin-codegen": "0.74.85",
+ "@react-native/babel-plugin-codegen": "0.74.87",
"babel-plugin-transform-flow-enums": "^0.0.2",
"react-refresh": "^0.14.0"
},
@@ -6056,9 +6085,9 @@
}
},
"node_modules/@react-native/codegen": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.85.tgz",
- "integrity": "sha512-N7QwoS4Hq/uQmoH83Ewedy6D0M7xbQsOU3OMcQf0eY3ltQ7S2hd9/R4UTalQWRn1OUJfXR6OG12QJ4FStKgV6Q==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz",
+ "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==",
"dependencies": {
"@babel/parser": "^7.20.0",
"glob": "^7.1.1",
@@ -6076,14 +6105,14 @@
}
},
"node_modules/@react-native/community-cli-plugin": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.85.tgz",
- "integrity": "sha512-ODzND33eA2owAY3g9jgCdqB+BjAh8qJ7dvmSotXgrgDYr3MJMpd8gvHTIPe2fg4Kab+wk8uipRhrE0i0RYMwtQ==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.87.tgz",
+ "integrity": "sha512-EgJG9lSr8x3X67dHQKQvU6EkO+3ksVlJHYIVv6U/AmW9dN80BEFxgYbSJ7icXS4wri7m4kHdgeq2PQ7/3vvrTQ==",
"dependencies": {
"@react-native-community/cli-server-api": "13.6.9",
"@react-native-community/cli-tools": "13.6.9",
- "@react-native/dev-middleware": "0.74.85",
- "@react-native/metro-babel-transformer": "0.74.85",
+ "@react-native/dev-middleware": "0.74.87",
+ "@react-native/metro-babel-transformer": "0.74.87",
"chalk": "^4.0.0",
"execa": "^5.1.1",
"metro": "^0.80.3",
@@ -6097,6 +6126,37 @@
"node": ">=18"
}
},
+ "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": {
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.87.tgz",
+ "integrity": "sha512-MN95DJLYTv4EqJc+9JajA3AJZSBYJz2QEJ3uWlHrOky2vKrbbRVaW1ityTmaZa2OXIvNc6CZwSRSE7xCoHbXhQ==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": {
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.87.tgz",
+ "integrity": "sha512-7TmZ3hTHwooYgIHqc/z87BMe1ryrIqAUi+AF7vsD+EHCGxHFdMjSpf1BZ2SUPXuLnF2cTiTfV2RwhbPzx0tYIA==",
+ "dependencies": {
+ "@isaacs/ttlcache": "^1.4.1",
+ "@react-native/debugger-frontend": "0.74.87",
+ "@rnx-kit/chromium-edge-launcher": "^1.0.0",
+ "chrome-launcher": "^0.15.2",
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "node-fetch": "^2.2.0",
+ "nullthrows": "^1.1.1",
+ "open": "^7.0.3",
+ "selfsigned": "^2.4.1",
+ "serve-static": "^1.13.1",
+ "temp-dir": "^2.0.0",
+ "ws": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/@react-native/community-cli-plugin/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -6142,6 +6202,14 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
+ "node_modules/@react-native/community-cli-plugin/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
"node_modules/@react-native/community-cli-plugin/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -6150,6 +6218,26 @@
"node": ">=8"
}
},
+ "node_modules/@react-native/community-cli-plugin/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/@react-native/community-cli-plugin/node_modules/open": {
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+ "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "dependencies": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@react-native/community-cli-plugin/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -6161,6 +6249,14 @@
"node": ">=8"
}
},
+ "node_modules/@react-native/community-cli-plugin/node_modules/ws": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
+ "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
"node_modules/@react-native/debugger-frontend": {
"version": "0.74.85",
"resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz",
@@ -6229,28 +6325,28 @@
}
},
"node_modules/@react-native/gradle-plugin": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.85.tgz",
- "integrity": "sha512-1VQSLukJzaVMn1MYcs8Weo1nUW8xCas2XU1KuoV7OJPk6xPnEBFJmapmEGP5mWeEy7kcTXJmddEgy1wwW0tcig==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.87.tgz",
+ "integrity": "sha512-T+VX0N1qP+U9V4oAtn7FTX7pfsoVkd1ocyw9swYXgJqU2fK7hC9famW7b3s3ZiufPGPr1VPJe2TVGtSopBjL6A==",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/js-polyfills": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.85.tgz",
- "integrity": "sha512-gp4Rg9le3lVZeW7Cie6qLfekvRKZuhJ3LKgi1SFB4N154z1wIclypAJXVXgWBsy8JKJfTwRI+sffC4qZDlvzrg==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.87.tgz",
+ "integrity": "sha512-M5Evdn76CuVEF0GsaXiGi95CBZ4IWubHqwXxV9vG9CC9kq0PSkoM2Pn7Lx7dgyp4vT7ccJ8a3IwHbe+5KJRnpw==",
"engines": {
"node": ">=18"
}
},
"node_modules/@react-native/metro-babel-transformer": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.85.tgz",
- "integrity": "sha512-JIrXqEwhTvWPtGArgMptIPGstMdXQIkwSjKVYt+7VC4a9Pw1GurIWanIJheEW6ZuCVvTc0VZkwglFz9JVjzDjA==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.87.tgz",
+ "integrity": "sha512-UsJCO24sNax2NSPBmV1zLEVVNkS88kcgAiYrZHtYSwSjpl4WZ656tIeedBfiySdJ94Hr3kQmBYLipV5zk0NI1A==",
"dependencies": {
"@babel/core": "^7.20.0",
- "@react-native/babel-preset": "0.74.85",
+ "@react-native/babel-preset": "0.74.87",
"hermes-parser": "0.19.1",
"nullthrows": "^1.1.1"
},
@@ -6267,9 +6363,9 @@
"integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw=="
},
"node_modules/@react-native/virtualized-lists": {
- "version": "0.74.85",
- "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.85.tgz",
- "integrity": "sha512-jx2Zw0qlZteoQ+0KxRc7s4drsljLBEP534FaNZ950e9+CN9nVkLsV6rigcTjDR8wjKMSBWhKf0C0C3egYz7Ehg==",
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.87.tgz",
+ "integrity": "sha512-lsGxoFMb0lyK/MiplNKJpD+A1EoEUumkLrCjH4Ht+ZlG8S0BfCxmskLZ6qXn3BiDSkLjfjI/qyZ3pnxNBvkXpQ==",
"dependencies": {
"invariant": "^2.2.4",
"nullthrows": "^1.1.1"
@@ -6437,20 +6533,6 @@
"node": ">=10"
}
},
- "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@segment/loosely-validate-event": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
@@ -7883,9 +7965,9 @@
}
},
"node_modules/babel-preset-expo": {
- "version": "11.0.12",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.12.tgz",
- "integrity": "sha512-hUuKdzSo8+H1oXQvKvlHRMHTxl+nN6YhFGlKiIxPa0E+gYfMEp8FnnStc/2Hwmip5rgJzQs6KF63KKRUc75xAg==",
+ "version": "11.0.14",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.14.tgz",
+ "integrity": "sha512-4BVYR0Sc2sSNxYTiE/OLSnPiOp+weFNy8eV+hX3aD6YAIbBnw+VubKRWqJV/sOJauzOLz0SgYAYyFciYMqizRA==",
"dependencies": {
"@babel/plugin-proposal-decorators": "^7.12.9",
"@babel/plugin-transform-export-namespace-from": "^7.22.11",
@@ -7893,7 +7975,7 @@
"@babel/plugin-transform-parameters": "^7.22.15",
"@babel/preset-react": "^7.22.15",
"@babel/preset-typescript": "^7.23.0",
- "@react-native/babel-preset": "0.74.85",
+ "@react-native/babel-preset": "0.74.87",
"babel-plugin-react-compiler": "^0.0.0-experimental-592953e-20240517",
"babel-plugin-react-native-web": "~0.19.10",
"react-refresh": "^0.14.2"
@@ -8430,21 +8512,6 @@
"node": ">=10"
}
},
- "node_modules/cacache/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/cacache/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -9617,21 +9684,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/del/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/del/node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -11230,23 +11282,23 @@
}
},
"node_modules/expo": {
- "version": "51.0.22",
- "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.22.tgz",
- "integrity": "sha512-AtdqmtKNRC+cRBTsYGfwQFMLWAWWC531V2V+bAO3S9wVSTP2eLh34V06/IsBIjCCAJQPaaeR05XcST8U3apXFw==",
+ "version": "51.0.36",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.36.tgz",
+ "integrity": "sha512-eQIC0l6fz3p4cU/hV8+QcyKSacyROhaoA1oohfCD6I3F09dxmC8b3SESpzGqHfuq8wsgcUc4q8ckX7ec25IV1g==",
"dependencies": {
"@babel/runtime": "^7.20.0",
- "@expo/cli": "0.18.25",
- "@expo/config": "9.0.3",
- "@expo/config-plugins": "8.0.8",
- "@expo/metro-config": "0.18.9",
- "@expo/vector-icons": "^14.0.0",
- "babel-preset-expo": "~11.0.12",
+ "@expo/cli": "0.18.30",
+ "@expo/config": "9.0.4",
+ "@expo/config-plugins": "8.0.10",
+ "@expo/metro-config": "0.18.11",
+ "@expo/vector-icons": "^14.0.3",
+ "babel-preset-expo": "~11.0.14",
"expo-asset": "~10.0.10",
"expo-file-system": "~17.0.1",
- "expo-font": "~12.0.9",
+ "expo-font": "~12.0.10",
"expo-keep-awake": "~13.0.2",
- "expo-modules-autolinking": "1.11.1",
- "expo-modules-core": "1.12.19",
+ "expo-modules-autolinking": "1.11.3",
+ "expo-modules-core": "1.12.25",
"fbemitter": "^3.0.0",
"whatwg-url-without-unicode": "8.0.0-3"
},
@@ -11327,12 +11379,12 @@
}
},
"node_modules/expo-dev-client": {
- "version": "4.0.20",
- "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-4.0.20.tgz",
- "integrity": "sha512-lSr5PoJSqXD2srzWyPY3sb8kcwRaLWNCVemdQryW796tglm6sTnSbRhmUGtUPvrm6Bk+rZAmQNFsqKh1sjHfqg==",
+ "version": "4.0.27",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-4.0.27.tgz",
+ "integrity": "sha512-4f0eO7GTdGzYYg3qABR98Vc2iiCBA2HICh8namVAvqkcVCuh44I9lOctaAEe/932+lLugEW4+Mv29pdEHq3/FA==",
"dependencies": {
- "expo-dev-launcher": "4.0.22",
- "expo-dev-menu": "5.0.16",
+ "expo-dev-launcher": "4.0.27",
+ "expo-dev-menu": "5.0.21",
"expo-dev-menu-interface": "1.8.3",
"expo-manifests": "~0.14.0",
"expo-updates-interface": "~0.16.2"
@@ -11342,12 +11394,12 @@
}
},
"node_modules/expo-dev-launcher": {
- "version": "4.0.22",
- "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-4.0.22.tgz",
- "integrity": "sha512-U8SR4MphP+QatjmD+sQ7AWtKwy7faPpW2PcaPBPnfzBiDc3yk8Kc2sf6/JyN7bUmvA6PFqTnsSJMlZEWi917OQ==",
+ "version": "4.0.27",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-4.0.27.tgz",
+ "integrity": "sha512-n+uUkcr5f5v5VR0sDw/sGna4aut2nTu3EiOqA0ijb8fBuelpgqYiBp2x7Su6wT6InoBHZxTBgVlyzgLNFGSdDw==",
"dependencies": {
"ajv": "8.11.0",
- "expo-dev-menu": "5.0.16",
+ "expo-dev-menu": "5.0.21",
"expo-manifests": "~0.14.0",
"resolve-from": "^5.0.0",
"semver": "^7.6.0"
@@ -11372,9 +11424,9 @@
}
},
"node_modules/expo-dev-menu": {
- "version": "5.0.16",
- "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-5.0.16.tgz",
- "integrity": "sha512-zsUiVCvVWT9ve5EsYEGHGu0dJac13NoEQkmzOjhmvcQXb7+OnKgwtBiNAX6rvponfnx9il506rnyZ+0M9CbwYQ==",
+ "version": "5.0.21",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-5.0.21.tgz",
+ "integrity": "sha512-i7kOaxOeBksqgeUDvb5vb2cZIVLZhAX2rjLJNH3fBifiAWISeCBAQsKN9vAkMPQGqL9F88vjMyy14ca6Vo+fEw==",
"dependencies": {
"expo-dev-menu-interface": "1.8.3",
"semver": "^7.5.4"
@@ -11426,9 +11478,9 @@
"integrity": "sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA=="
},
"node_modules/expo-font": {
- "version": "12.0.9",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.9.tgz",
- "integrity": "sha512-seTCyf0tbgkAnp3ZI9ZfK9QVtURQUgFnuj+GuJ5TSnN0XsOtVe1s2RxTvmMgkfuvfkzcjJ69gyRpsZS1cC8hjw==",
+ "version": "12.0.10",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.10.tgz",
+ "integrity": "sha512-Q1i2NuYri3jy32zdnBaHHCya1wH1yMAsI+3CCmj9zlQzlhsS9Bdwcj2W3c5eU5FvH2hsNQy4O+O1NnM6o/pDaQ==",
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
@@ -11509,15 +11561,17 @@
}
},
"node_modules/expo-modules-autolinking": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.1.tgz",
- "integrity": "sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==",
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.3.tgz",
+ "integrity": "sha512-oYh8EZEvYF5TYppxEKUTTJmbr8j7eRRnrIxzZtMvxLTXoujThVPMFS/cbnSnf2bFm1lq50TdDNABhmEi7z0ngQ==",
"dependencies": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
"fast-glob": "^3.2.5",
"find-up": "^5.0.0",
- "fs-extra": "^9.1.0"
+ "fs-extra": "^9.1.0",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0"
},
"bin": {
"expo-modules-autolinking": "bin/expo-modules-autolinking.js"
@@ -11602,9 +11656,9 @@
}
},
"node_modules/expo-modules-core": {
- "version": "1.12.19",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.19.tgz",
- "integrity": "sha512-fFsErN4oMsOdStUVYvyLpl6MX/wbD9yJSqy/Lu7ZRLIPzeKDfGS2jNl8RzryPznRpWmy49X8l40R4osRJLizhg==",
+ "version": "1.12.25",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.25.tgz",
+ "integrity": "sha512-HB2LS2LEM41Xq1bG+Jtzqm6XgPaa+mM9BAvCdX1lDGMQ9Ay9vMTL/GVEs2gpsINPofICopjBRwD+wftyCbVrzg==",
"dependencies": {
"invariant": "^2.2.4"
}
@@ -11659,9 +11713,9 @@
}
},
"node_modules/expo-updates": {
- "version": "0.25.21",
- "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.25.21.tgz",
- "integrity": "sha512-eNElrzLFHky2au0H8MqdAJdqh40412PHCdANdXtB/P/XIS1xVte74T9rUf053iPswnLLuQfCUpZYSfRKTcsDlg==",
+ "version": "0.25.26",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.25.26.tgz",
+ "integrity": "sha512-wh3t82Wg3rvAjLQin4dLSp3ZcTexkeLUo7nlrFTF52bLSpa1AsBk3ikVD5ygUIFSxmJudl5H/F43NYXC1WDMsg==",
"dependencies": {
"@expo/code-signing-certificates": "0.0.5",
"@expo/config": "~9.0.0-beta.0",
@@ -11774,6 +11828,11 @@
"expo": "*"
}
},
+ "node_modules/exponential-backoff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz",
+ "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw=="
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -12097,21 +12156,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/flat-cache/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/flatted": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
@@ -12164,9 +12208,9 @@
}
},
"node_modules/foreground-child": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
@@ -14402,9 +14446,9 @@
}
},
"node_modules/jest-expo": {
- "version": "51.0.3",
- "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.3.tgz",
- "integrity": "sha512-r49OuS9X2S/dH+lSfNmarBS2L/tgvBhzOgKHYFyDJWo+Bb5uVs7Rg/GZal/RD/NDkKFJuByGAaW1F6zHYnjZnw==",
+ "version": "51.0.4",
+ "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz",
+ "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==",
"dev": true,
"dependencies": {
"@expo/config": "~9.0.0-beta.0",
@@ -16832,9 +16876,9 @@
}
},
"node_modules/metro": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.9.tgz",
- "integrity": "sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz",
+ "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.20.0",
@@ -16850,34 +16894,33 @@
"debug": "^2.2.0",
"denodeify": "^1.2.1",
"error-stack-parser": "^2.0.6",
+ "flow-enums-runtime": "^0.0.6",
"graceful-fs": "^4.2.4",
- "hermes-parser": "0.20.1",
+ "hermes-parser": "0.23.1",
"image-size": "^1.0.2",
"invariant": "^2.2.4",
"jest-worker": "^29.6.3",
"jsc-safe-url": "^0.2.2",
"lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.80.9",
- "metro-cache": "0.80.9",
- "metro-cache-key": "0.80.9",
- "metro-config": "0.80.9",
- "metro-core": "0.80.9",
- "metro-file-map": "0.80.9",
- "metro-resolver": "0.80.9",
- "metro-runtime": "0.80.9",
- "metro-source-map": "0.80.9",
- "metro-symbolicate": "0.80.9",
- "metro-transform-plugins": "0.80.9",
- "metro-transform-worker": "0.80.9",
+ "metro-babel-transformer": "0.80.12",
+ "metro-cache": "0.80.12",
+ "metro-cache-key": "0.80.12",
+ "metro-config": "0.80.12",
+ "metro-core": "0.80.12",
+ "metro-file-map": "0.80.12",
+ "metro-resolver": "0.80.12",
+ "metro-runtime": "0.80.12",
+ "metro-source-map": "0.80.12",
+ "metro-symbolicate": "0.80.12",
+ "metro-transform-plugins": "0.80.12",
+ "metro-transform-worker": "0.80.12",
"mime-types": "^2.1.27",
- "node-fetch": "^2.2.0",
"nullthrows": "^1.1.1",
- "rimraf": "^3.0.2",
"serialize-error": "^2.1.0",
"source-map": "^0.5.6",
"strip-ansi": "^6.0.0",
"throat": "^5.0.0",
- "ws": "^7.5.1",
+ "ws": "^7.5.10",
"yargs": "^17.6.2"
},
"bin": {
@@ -16888,12 +16931,13 @@
}
},
"node_modules/metro-babel-transformer": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz",
- "integrity": "sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz",
+ "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==",
"dependencies": {
"@babel/core": "^7.20.0",
- "hermes-parser": "0.20.1",
+ "flow-enums-runtime": "^0.0.6",
+ "hermes-parser": "0.23.1",
"nullthrows": "^1.1.1"
},
"engines": {
@@ -16901,90 +16945,82 @@
}
},
"node_modules/metro-babel-transformer/node_modules/hermes-estree": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz",
- "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg=="
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz",
+ "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg=="
},
"node_modules/metro-babel-transformer/node_modules/hermes-parser": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz",
- "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz",
+ "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==",
"dependencies": {
- "hermes-estree": "0.20.1"
+ "hermes-estree": "0.23.1"
}
},
"node_modules/metro-cache": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.9.tgz",
- "integrity": "sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz",
+ "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==",
"dependencies": {
- "metro-core": "0.80.9",
- "rimraf": "^3.0.2"
+ "exponential-backoff": "^3.1.1",
+ "flow-enums-runtime": "^0.0.6",
+ "metro-core": "0.80.12"
},
"engines": {
"node": ">=18"
}
},
"node_modules/metro-cache-key": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.9.tgz",
- "integrity": "sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/metro-cache/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz",
+ "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "flow-enums-runtime": "^0.0.6"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/metro-config": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.9.tgz",
- "integrity": "sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz",
+ "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==",
"dependencies": {
"connect": "^3.6.5",
"cosmiconfig": "^5.0.5",
+ "flow-enums-runtime": "^0.0.6",
"jest-validate": "^29.6.3",
- "metro": "0.80.9",
- "metro-cache": "0.80.9",
- "metro-core": "0.80.9",
- "metro-runtime": "0.80.9"
+ "metro": "0.80.12",
+ "metro-cache": "0.80.12",
+ "metro-core": "0.80.12",
+ "metro-runtime": "0.80.12"
},
"engines": {
"node": ">=18"
}
},
"node_modules/metro-core": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.9.tgz",
- "integrity": "sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz",
+ "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==",
"dependencies": {
+ "flow-enums-runtime": "^0.0.6",
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.80.9"
+ "metro-resolver": "0.80.12"
},
"engines": {
"node": ">=18"
}
},
"node_modules/metro-file-map": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.9.tgz",
- "integrity": "sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz",
+ "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==",
"dependencies": {
"anymatch": "^3.0.3",
"debug": "^2.2.0",
"fb-watchman": "^2.0.0",
+ "flow-enums-runtime": "^0.0.6",
"graceful-fs": "^4.2.4",
"invariant": "^2.2.4",
"jest-worker": "^29.6.3",
@@ -17014,10 +17050,11 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/metro-minify-terser": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz",
- "integrity": "sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz",
+ "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==",
"dependencies": {
+ "flow-enums-runtime": "^0.0.6",
"terser": "^5.15.0"
},
"engines": {
@@ -17025,35 +17062,40 @@
}
},
"node_modules/metro-resolver": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.9.tgz",
- "integrity": "sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz",
+ "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6"
+ },
"engines": {
"node": ">=18"
}
},
"node_modules/metro-runtime": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.9.tgz",
- "integrity": "sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz",
+ "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==",
"dependencies": {
- "@babel/runtime": "^7.0.0"
+ "@babel/runtime": "^7.25.0",
+ "flow-enums-runtime": "^0.0.6"
},
"engines": {
"node": ">=18"
}
},
"node_modules/metro-source-map": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.9.tgz",
- "integrity": "sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz",
+ "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==",
"dependencies": {
"@babel/traverse": "^7.20.0",
"@babel/types": "^7.20.0",
+ "flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
- "metro-symbolicate": "0.80.9",
+ "metro-symbolicate": "0.80.12",
"nullthrows": "^1.1.1",
- "ob1": "0.80.9",
+ "ob1": "0.80.12",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
},
@@ -17070,12 +17112,13 @@
}
},
"node_modules/metro-symbolicate": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz",
- "integrity": "sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz",
+ "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==",
"dependencies": {
+ "flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
- "metro-source-map": "0.80.9",
+ "metro-source-map": "0.80.12",
"nullthrows": "^1.1.1",
"source-map": "^0.5.6",
"through2": "^2.0.1",
@@ -17097,14 +17140,15 @@
}
},
"node_modules/metro-transform-plugins": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz",
- "integrity": "sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz",
+ "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/generator": "^7.20.0",
"@babel/template": "^7.0.0",
"@babel/traverse": "^7.20.0",
+ "flow-enums-runtime": "^0.0.6",
"nullthrows": "^1.1.1"
},
"engines": {
@@ -17112,21 +17156,22 @@
}
},
"node_modules/metro-transform-worker": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz",
- "integrity": "sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz",
+ "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==",
"dependencies": {
"@babel/core": "^7.20.0",
"@babel/generator": "^7.20.0",
"@babel/parser": "^7.20.0",
"@babel/types": "^7.20.0",
- "metro": "0.80.9",
- "metro-babel-transformer": "0.80.9",
- "metro-cache": "0.80.9",
- "metro-cache-key": "0.80.9",
- "metro-minify-terser": "0.80.9",
- "metro-source-map": "0.80.9",
- "metro-transform-plugins": "0.80.9",
+ "flow-enums-runtime": "^0.0.6",
+ "metro": "0.80.12",
+ "metro-babel-transformer": "0.80.12",
+ "metro-cache": "0.80.12",
+ "metro-cache-key": "0.80.12",
+ "metro-minify-terser": "0.80.12",
+ "metro-source-map": "0.80.12",
+ "metro-transform-plugins": "0.80.12",
"nullthrows": "^1.1.1"
},
"engines": {
@@ -17200,16 +17245,16 @@
}
},
"node_modules/metro/node_modules/hermes-estree": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz",
- "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg=="
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz",
+ "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg=="
},
"node_modules/metro/node_modules/hermes-parser": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz",
- "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz",
+ "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==",
"dependencies": {
- "hermes-estree": "0.20.1"
+ "hermes-estree": "0.23.1"
}
},
"node_modules/metro/node_modules/ms": {
@@ -17217,21 +17262,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
- "node_modules/metro/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/metro/node_modules/serialize-error": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
@@ -17259,6 +17289,26 @@
"node": ">=8"
}
},
+ "node_modules/metro/node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -17516,6 +17566,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
"integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
+ "dev": true,
"optional": true,
"dependencies": {
"mkdirp": "~0.5.1",
@@ -17530,6 +17581,7 @@
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
"integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
+ "dev": true,
"optional": true,
"dependencies": {
"inflight": "^1.0.4",
@@ -17546,6 +17598,7 @@
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
"integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
+ "dev": true,
"optional": true,
"dependencies": {
"glob": "^6.0.1"
@@ -17608,6 +17661,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
"integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
+ "dev": true,
"optional": true,
"bin": {
"ncp": "bin/ncp"
@@ -17807,21 +17861,6 @@
"node": ">= 6"
}
},
- "node_modules/node-gyp/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/node-gyp/node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -18123,21 +18162,6 @@
"node": ">=10"
}
},
- "node_modules/node-sass/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/node-sass/node_modules/socks-proxy-agent": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
@@ -18354,9 +18378,12 @@
"dev": true
},
"node_modules/ob1": {
- "version": "0.80.9",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.9.tgz",
- "integrity": "sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==",
+ "version": "0.80.12",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz",
+ "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==",
+ "dependencies": {
+ "flow-enums-runtime": "^0.0.6"
+ },
"engines": {
"node": ">=18"
}
@@ -18669,9 +18696,9 @@
}
},
"node_modules/package-json-from-dist": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="
},
"node_modules/parent-module": {
"version": "1.0.1",
@@ -18836,9 +18863,9 @@
}
},
"node_modules/picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -18994,9 +19021,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.40",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
- "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
+ "version": "8.4.47",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
"funding": [
{
"type": "opencollective",
@@ -19013,8 +19040,8 @@
],
"dependencies": {
"nanoid": "^3.3.7",
- "picocolors": "^1.0.1",
- "source-map-js": "^1.2.0"
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -19458,21 +19485,21 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-native": {
- "version": "0.74.3",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.3.tgz",
- "integrity": "sha512-UFutCC6WEw6HkxlcpQ2BemKqi0JkwrgDchYB5Svi8Sp4Xwt4HA6LGEjNQgZ+3KM44bjyFRpofQym0uh0jACGng==",
+ "version": "0.74.5",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.5.tgz",
+ "integrity": "sha512-Bgg2WvxaGODukJMTZFTZBNMKVaROHLwSb8VAGEdrlvKwfb1hHg/3aXTUICYk7dwgAnb+INbGMwnF8yeAgIUmqw==",
"dependencies": {
"@jest/create-cache-key-function": "^29.6.3",
"@react-native-community/cli": "13.6.9",
"@react-native-community/cli-platform-android": "13.6.9",
"@react-native-community/cli-platform-ios": "13.6.9",
- "@react-native/assets-registry": "0.74.85",
- "@react-native/codegen": "0.74.85",
- "@react-native/community-cli-plugin": "0.74.85",
- "@react-native/gradle-plugin": "0.74.85",
- "@react-native/js-polyfills": "0.74.85",
- "@react-native/normalize-colors": "0.74.85",
- "@react-native/virtualized-lists": "0.74.85",
+ "@react-native/assets-registry": "0.74.87",
+ "@react-native/codegen": "0.74.87",
+ "@react-native/community-cli-plugin": "0.74.87",
+ "@react-native/gradle-plugin": "0.74.87",
+ "@react-native/js-polyfills": "0.74.87",
+ "@react-native/normalize-colors": "0.74.87",
+ "@react-native/virtualized-lists": "0.74.87",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
@@ -19626,6 +19653,11 @@
"node": ">= 10.14.2"
}
},
+ "node_modules/react-native/node_modules/@react-native/normalize-colors": {
+ "version": "0.74.87",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.87.tgz",
+ "integrity": "sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA=="
+ },
"node_modules/react-native/node_modules/@types/yargs": {
"version": "15.0.15",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz",
@@ -20299,15 +20331,18 @@
}
},
"node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rtl-detect": {
@@ -20363,6 +20398,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
"integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "dev": true,
"optional": true
},
"node_modules/safe-regex-test": {
@@ -20931,9 +20967,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"engines": {
"node": ">=0.10.0"
}
@@ -21741,9 +21777,9 @@
}
},
"node_modules/terser": {
- "version": "5.31.3",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz",
- "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==",
+ "version": "5.34.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
+ "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -21931,9 +21967,9 @@
}
},
"node_modules/traverse": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz",
- "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==",
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.10.tgz",
+ "integrity": "sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==",
"dependencies": {
"gopd": "^1.0.1",
"typedarray.prototype.slice": "^1.0.3",
diff --git a/package.json b/package.json
index 6ea7d52..c993c8d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "abacus",
- "version": "0.20.0",
+ "version": "0.20.1",
"private": true,
"homepage": "https://github.com/victorbalssa/abacus",
"scripts": {
@@ -19,7 +19,7 @@
},
"dependencies": {
"@expo/config-plugins": "~8.0.0",
- "@expo/metro-runtime": "~3.2.1",
+ "@expo/metro-runtime": "~3.2.3",
"@expo/vector-icons": "^14.0.2",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-community/datetimepicker": "8.0.1",
@@ -34,14 +34,14 @@
"babel-polyfill": "^6.26.0",
"base-64": "^1.0.0",
"bootstrap": "^4.4.1",
- "expo": "~51.0.22",
+ "expo": "~51.0.36",
"expo-application": "~5.9.1",
"expo-asset": "~10.0.6",
"expo-auth-session": "~5.5.2",
"expo-blur": "~13.0.2",
"expo-clipboard": "~6.0.3",
"expo-crypto": "~13.0.2",
- "expo-dev-client": "~4.0.20",
+ "expo-dev-client": "~4.0.27",
"expo-device": "~6.0.2",
"expo-font": "~12.0.5",
"expo-haptics": "~13.0.1",
@@ -54,7 +54,7 @@
"expo-status-bar": "~1.12.1",
"expo-store-review": "~7.0.2",
"expo-system-ui": "~3.0.7",
- "expo-updates": "~0.25.21",
+ "expo-updates": "~0.25.26",
"globally": "^0.0.0",
"i18n-js": "^4.1.1",
"lodash": "^4.17.21",
@@ -62,7 +62,7 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"react-helmet": "^5.2.1",
- "react-native": "0.74.3",
+ "react-native": "0.74.5",
"react-native-gesture-handler": "~2.16.1",
"react-native-pager-view": "6.3.0",
"react-native-reanimated": "~3.10.1",
@@ -95,7 +95,7 @@
"eslint-plugin-jest": "^27.2.3",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-react": "^7.33.1",
- "jest-expo": "~51.0.3",
+ "jest-expo": "~51.0.4",
"node-sass": "9.0.0",
"ts-jest": "29.1.2",
"ts-node": "10.9.1",
diff --git a/src/components/Charts/AssetsHistoryChart.tsx b/src/components/Charts/AssetsHistoryChart.tsx
index 5a313e0..a23f2ca 100644
--- a/src/components/Charts/AssetsHistoryChart.tsx
+++ b/src/components/Charts/AssetsHistoryChart.tsx
@@ -23,16 +23,6 @@ import translate from '../../i18n/locale';
import { useThemeColors } from '../../lib/common';
import ErrorBoundary from '../UI/ErrorBoundary';
-function AccountsLengthMessage() {
- return (
-
-
- {translate('assetsHistoryCharts_chart_works')}
-
-
- );
-}
-
function CursorPointer({ x, y, stroke }) {
return (
<>
@@ -268,7 +258,6 @@ export default function AssetsHistoryChart() {
))}
)}
- {accounts.length > 4 && ()}
diff --git a/src/components/Screens/ChartScreen.tsx b/src/components/Screens/ChartScreen.tsx
index 587f0e4..e956e58 100644
--- a/src/components/Screens/ChartScreen.tsx
+++ b/src/components/Screens/ChartScreen.tsx
@@ -20,6 +20,7 @@ export default function ChartScreen() {
const safeAreaInsets = useSafeAreaInsets();
const start = useSelector((state: RootState) => state.firefly.rangeDetails.start);
const end = useSelector((state: RootState) => state.firefly.rangeDetails.end);
+ const currentCode = useSelector((state: RootState) => state.currencies.currentCode);
const prevFiltersRef = useRef();
const viewPagerRef = useRef();
const scrollOffsetAnimatedValue = React.useRef(new Animated.Value(0)).current;
@@ -42,15 +43,15 @@ export default function ChartScreen() {
}
};
- if (prevFiltersRef.current !== `${start}-${end}`) {
+ if (prevFiltersRef.current !== `${start}-${end}-${currentCode}`) {
fetchData();
- prevFiltersRef.current = `${start}-${end}`;
+ prevFiltersRef.current = `${start}-${end}-${currentCode}`;
}
return () => {
isActive = false;
};
- }, [start, end]),
+ }, [start, end, currentCode]),
);
return useMemo(() => (
diff --git a/src/components/UI/Filters.tsx b/src/components/UI/Filters.tsx
index 21c006a..a14a9db 100644
--- a/src/components/UI/Filters.tsx
+++ b/src/components/UI/Filters.tsx
@@ -26,15 +26,12 @@ export default function Filters() {
const {
firefly: {
setRange,
- getAccountChart,
},
currencies: {
setCurrentCode,
},
accounts: {
getAccounts,
- setSelectedAccountIds,
- resetSelectedAccountIds,
},
} = useDispatch();
@@ -67,7 +64,6 @@ export default function Filters() {
setCurrentCode(currency.attributes.code);
navigation.goBack();
getAccounts();
- resetSelectedAccountIds();
}}
>
))}
-
- {translate('home_accounts')}
-
-
- {accounts.map((account) => (
- {
- setSelectedAccountIds(parseInt(account.id, 10));
- navigation.goBack();
- getAccountChart();
- }}
- >
-
-
- {account.attributes.name}
-
-
-
- ))}
- {
- resetSelectedAccountIds();
- navigation.goBack();
- getAccountChart();
- }}
- >
-
-
-
-
-
), [
diff --git a/src/i18n/locale/translations/sl-SI.ts b/src/i18n/locale/translations/sl-SI.ts
index e293975..e8a0c6b 100644
--- a/src/i18n/locale/translations/sl-SI.ts
+++ b/src/i18n/locale/translations/sl-SI.ts
@@ -52,8 +52,6 @@ export default {
layout_new_update_body_text: 'Vedno lahko posodobite kasneje na zavihku Nastavitve.',
layout_new_update_cancel_button: 'Prekliči',
layout_new_update_update_button: 'Posodobite zdaj',
-
- // from version 0.31
transaction_screen_title: 'Nova transakcija',
navigation_home_tab: 'Domov',
navigation_chart_tab: 'Grafikon',
@@ -63,8 +61,6 @@ export default {
transaction_form_type_withdraw: 'Odliv',
transaction_form_type_deposit: 'Priliv',
transaction_form_type_transfer: 'Prenos',
-
- // from 0.4.1
period_switcher_monthly: 'Mesečno',
period_switcher_quarterly: 'Četrtletno',
period_switcher_semiannually: 'Polletno',
@@ -84,14 +80,10 @@ export default {
home_header_time_range_year: 'Leto',
home_header_time_range_q: 'Č', // Put an abbreviation that best represents a quarter
home_header_time_range_s: 'P', // Put an abbreviation that best represents a semiannual
-
- // from 0.6.0
balance: 'Bilanca',
history: 'Zgodovina',
home_categories: 'Kategorije',
home_net_worth: 'Neto vrednost',
-
- // from 0.7.0
home_budgets: 'Proračuni',
configuration_ui: 'Uporabniški vmesnik',
configuration_color_mode: 'Temen način',
@@ -102,48 +94,32 @@ export default {
auth_create_new_personal_access_token: 'Tukaj ustvarite novega odjemalca Oauth na zavihku OAuth:',
oauth_wrong_token_error_description: 'AccessToken ni bilo mogoče preveriti, ponovno preverite svoj žeton ali zaledni URL.',
transaction_screen_edit_title: 'Uredite transakcijo',
-
- // from 0.9.0
transaction_form_foreign_currency_label: 'Tuja valuta',
transaction_form_group_title_label: 'Opis razdeljene transakcije',
transaction_form_group_title_placeholder: 'Naslov',
transaction_form_group_title_helper: 'Če ustvarite razdeljeno transakcijo, mora obstajati globalni opis za vse delitve transakcije.',
configuration_review_app_ios: 'Ocenite Abacus v AppStore',
configuration_review_app_android: 'Ocenite Abacus v Google Play',
-
- // from 0.9.2
assets_history_chart: 'Grafikon računov',
balance_history_chart: 'Grafikon neto vrednosti',
balance_history_chart_no_data: 'Za dostop do teh grafikonov posodobite Firefly III na najnovejšo različico.',
account_not_included_in_net_worth: '* Račun ni vključen v neto vrednost.',
-
- // from 0.10.0
period: 'Obdobje',
currency: 'Valuta',
-
home_all_accounts: 'Vsi računi',
-
- // from 0.10.3
router_back_button: 'Nazaj',
transaction_clone: 'Kloniraj',
transaction_delete: 'Izbriši',
-
- // from 0.11.0
configuration_credentials: 'Prijavni podatki',
configuration_manage_credentials: 'Uredi prijavne podatke',
configuration_credentials_add_button: 'Dodaj prijavne podatke',
logout: 'Odjava',
-
- // from 0.12.0
credential_clear_confirm_button: 'Izbriši',
credential_clear_alert_title: 'Ali ste prepričani?',
credential_clear_cancel_button: 'Prekliči',
go_to_credentials: 'Pojdi na prijavne podatke',
-
configuration_logout_alert_title: 'Odjava',
load_more: 'Naloži več',
-
- // from X.X.X
home_bills: 'Računi',
home_piggy_banks: 'Hranilniki',
bills_paid: 'Plačano do',
@@ -153,8 +129,6 @@ export default {
transaction_form_bill_label: 'Račun',
configuration_transaction_form: 'Transakcija od',
close_after_transaction: 'Zapri transakcijo po predložitvi',
-
- // from 0.19.0
configuration_theme: 'Prilagoditev',
configuration_theme_selection: 'Spremeni barvno temo',
configuration_theme_title: 'Barvne teme',
diff --git a/src/models/firefly.ts b/src/models/firefly.ts
index 4cfc61c..e759d8f 100644
--- a/src/models/firefly.ts
+++ b/src/models/firefly.ts
@@ -4,11 +4,7 @@ import { exchangeCodeAsync, refreshAsync } from 'expo-auth-session';
import { maxBy, minBy } from 'lodash';
import semver from 'semver';
import axios from 'axios';
-import {
- discovery,
- redirectUri,
- addCredential,
-} from '../lib/oauth';
+import { discovery, redirectUri, addCredential } from '../lib/oauth';
import colors from '../constants/colors';
import { RootModel } from './index';
import { generateRangeTitle } from '../lib/common';
@@ -16,49 +12,49 @@ import { AccountType } from './accounts';
import { TCredential } from '../types/credential';
export type HomeDisplayType = {
- title: string,
- valueParsed: string,
- monetaryValue: string,
- currencyCode: string,
-}
+ title: string;
+ valueParsed: string;
+ monetaryValue: string;
+ currencyCode: string;
+};
export type AssetAccountType = {
- title: string,
- label: string,
- currencyCode: string,
- currencySymbol: string,
- valueParsed: string,
- color: string,
- colorScheme: string,
- entries: { x: number, y: number }[],
- maxY: number,
- minY: number,
-}
+ title: string;
+ label: string;
+ currencyCode: string;
+ currencySymbol: string;
+ valueParsed: string;
+ color: string;
+ colorScheme: string;
+ entries: { x: number; y: number }[];
+ maxY: number;
+ minY: number;
+};
export type BalanceType = {
- label: 'earned' | 'spent',
- currencyCode: string,
- entries: { [timestamp: string]:string }[],
-}
+ label: 'earned' | 'spent';
+ currencyCode: string;
+ entries: { [timestamp: string]: string }[];
+};
export type FireflyStateType = {
- rangeDetails: RangeDetailsType,
- netWorth: HomeDisplayType[],
- spent: HomeDisplayType[],
- earned: HomeDisplayType[],
- balance: HomeDisplayType[],
- accounts: AssetAccountType[],
- bills: { paid: HomeDisplayType | null, unpaid: HomeDisplayType | null },
- earnedChart: { x: number, y: number }[],
- spentChart:{ x: number, y: number }[],
-}
+ rangeDetails: RangeDetailsType;
+ netWorth: HomeDisplayType[];
+ spent: HomeDisplayType[];
+ earned: HomeDisplayType[];
+ balance: HomeDisplayType[];
+ accounts: AssetAccountType[];
+ bills: { paid: HomeDisplayType | null; unpaid: HomeDisplayType | null };
+ earnedChart: { x: number; y: number }[];
+ spentChart: { x: number; y: number }[];
+};
export type RangeDetailsType = {
- title: string,
- range: number,
- start: string,
- end: string,
-}
+ title: string;
+ range: number;
+ start: string;
+ end: string;
+};
const formatDateToYYYYMMDD = (date: Date): string => {
const year = date.getFullYear();
@@ -83,7 +79,11 @@ const getCurrentQuarterEndDate = (): string => {
const currentYear = currentDate.getFullYear();
const currentMonth = currentDate.getMonth();
const quarterEndMonth = Math.floor(currentMonth / 3) * 3 + 2;
- const lastDayOfMonth = new Date(currentYear, quarterEndMonth + 1, 0).getDate();
+ const lastDayOfMonth = new Date(
+ currentYear,
+ quarterEndMonth + 1,
+ 0,
+ ).getDate();
const endDate = new Date(currentYear, quarterEndMonth, lastDayOfMonth);
return formatDateToYYYYMMDD(endDate);
@@ -91,7 +91,11 @@ const getCurrentQuarterEndDate = (): string => {
const INITIAL_STATE = {
rangeDetails: {
- title: generateRangeTitle(3, getCurrentQuarterStartDate(), getCurrentQuarterEndDate()),
+ title: generateRangeTitle(
+ 3,
+ getCurrentQuarterStartDate(),
+ getCurrentQuarterEndDate(),
+ ),
range: 3,
start: getCurrentQuarterStartDate(),
end: getCurrentQuarterEndDate(),
@@ -107,7 +111,6 @@ const INITIAL_STATE = {
} as FireflyStateType;
export default createModel()({
-
state: INITIAL_STATE,
reducers: {
@@ -152,17 +155,10 @@ export default createModel()({
async setRange(payload, rootState): Promise {
const {
firefly: {
- rangeDetails: {
- range: oldRange,
- start: oldStart,
- end: oldEnd,
- },
+ rangeDetails: { range: oldRange, start: oldStart, end: oldEnd },
},
} = rootState;
- const {
- range = oldRange,
- direction,
- } = payload;
+ const { range = oldRange, direction } = payload;
let start: string;
let end: string;
@@ -172,10 +168,16 @@ export default createModel()({
if (direction !== undefined) {
if (direction > 0) {
start = moment(oldStart).add(rangeInt, 'M').format('YYYY-MM-DD');
- end = moment(oldEnd).add(rangeInt, 'M').endOf('M').format('YYYY-MM-DD');
+ end = moment(oldEnd)
+ .add(rangeInt, 'M')
+ .endOf('M')
+ .format('YYYY-MM-DD');
} else {
start = moment(oldStart).subtract(rangeInt, 'M').format('YYYY-MM-DD');
- end = moment(oldEnd).subtract(rangeInt, 'M').endOf('M').format('YYYY-MM-DD');
+ end = moment(oldEnd)
+ .subtract(rangeInt, 'M')
+ .endOf('M')
+ .format('YYYY-MM-DD');
}
} else {
const today = new Date();
@@ -190,7 +192,7 @@ export default createModel()({
end = moment(end).endOf('M').format('YYYY-MM-DD');
break;
case 3:
- start = `${today.getFullYear()}-${((quarter * 3) + 1).toString().padStart(2, '0')}-01`;
+ start = `${today.getFullYear()}-${(quarter * 3 + 1).toString().padStart(2, '0')}-01`;
end = `${today.getFullYear()}-${((quarter + 1) * 3).toString().padStart(2, '0')}-28`;
end = moment(end).endOf('M').format('YYYY-MM-DD');
break;
@@ -226,14 +228,9 @@ export default createModel()({
async getNetWorth(_: void, rootState): Promise {
const {
firefly: {
- rangeDetails: {
- start,
- end,
- },
- },
- currencies: {
- currentCode,
+ rangeDetails: { start, end },
},
+ currencies: { currentCode },
} = rootState;
if (currentCode) {
const params = new URLSearchParams({
@@ -241,7 +238,9 @@ export default createModel()({
end,
currency_code: currentCode,
});
- const { data: summary } = await dispatch.configuration.apiFetch({ url: `/api/v1/summary/basic?${params.toString()}` });
+ const { data: summary } = await dispatch.configuration.apiFetch({
+ url: `/api/v1/summary/basic?${params.toString()}`,
+ });
const netWorth = [];
const balance = [];
const earned = [];
@@ -281,97 +280,88 @@ export default createModel()({
async getAccountChart(_: void, rootState): Promise {
const {
firefly: {
- rangeDetails: {
- range,
- start,
- end,
- },
- },
- currencies: {
- currentCode,
- },
- accounts: {
- selectedAccountIds,
- },
- configuration: {
- selectedBrandStyle,
+ rangeDetails: { range, start, end },
},
+ currencies: { currentCode },
+ configuration: { selectedBrandStyle },
} = rootState;
- const accountIdsParam = (selectedAccountIds && selectedAccountIds.length > 0) ? `&accounts[]=${selectedAccountIds.join('&accounts[]=')}` : '';
- const { data: accounts } = await dispatch.configuration.apiFetch({ url: `/api/v1/chart/account/overview?start=${start}&end=${end}${accountIdsParam}` }) as { data: AssetAccountType[] };
+ const { data: accounts } = (await dispatch.configuration.apiFetch({
+ url: `/api/v1/chart/account/overview?start=${start}&end=${end}`,
+ })) as { data: AssetAccountType[] };
let colorIndex = 0;
- accounts.forEach((v, index) => {
- if (index === 0) {
- accounts[index].color = selectedBrandStyle;
- } else {
- if (colorIndex >= 6) {
- colorIndex = 0;
+ accounts
+ .forEach((v, index) => {
+ if (index === 0) {
+ accounts[index].color = selectedBrandStyle;
+ } else {
+ if (colorIndex >= 6) {
+ colorIndex = 0;
+ }
+ accounts[index].color = colors[`brandStyle${colorIndex}`];
+ colorIndex += 1;
}
- accounts[index].color = colors[`brandStyle${colorIndex}`];
- colorIndex += 1;
- }
- accounts[index].colorScheme = `chart${colorIndex}`;
- accounts[index].colorScheme = `chart${colorIndex}`;
- colorIndex += 1;
- accounts[index].colorScheme = `chart${colorIndex}`;
- colorIndex += 1;
- accounts[index].entries = range > 3 ? Object.keys(v.entries)
- .filter((e, i) => i % 2 === 0)
- .filter((e, i) => i % 2 === 0)
- .filter((e, i) => i % 2 === 0)
- .map((key) => {
- const value = parseFloat(accounts[index].entries[key]);
- const date = new Date(key);
-
- return {
- x: +date,
- y: value,
- };
- })
- : Object.keys(v.entries).map((key) => {
- const value = parseFloat(accounts[index].entries[key]);
- const date = new Date(key);
-
- return {
- x: +date,
- y: value,
- };
- });
- accounts[index].maxY = maxBy(accounts[index].entries, (o: { x: number, y: number }) => (o.y)).y;
- accounts[index].minY = minBy(accounts[index].entries, (o: { x: number, y: number }) => (o.y)).y;
- });
+ accounts[index].entries = range > 3
+ ? Object.keys(v.entries)
+ .filter((e, i) => i % 2 === 0)
+ .filter((e, i) => i % 2 === 0)
+ .filter((e, i) => i % 2 === 0)
+ .map((key) => {
+ const value = parseFloat(accounts[index].entries[key]);
+ const date = new Date(key);
+
+ return {
+ x: +date,
+ y: value,
+ };
+ })
+ : Object.keys(v.entries).map((key) => {
+ const value = parseFloat(accounts[index].entries[key]);
+ const date = new Date(key);
+
+ return {
+ x: +date,
+ y: value,
+ };
+ });
+ accounts[index].maxY = maxBy(
+ accounts[index].entries,
+ (o: { x: number; y: number }) => o.y,
+ ).y;
+ accounts[index].minY = minBy(
+ accounts[index].entries,
+ (o: { x: number; y: number }) => o.y,
+ ).y;
+ });
- dispatch.firefly.setData({ accounts: accounts.filter((account) => account.currencyCode === currentCode) });
+ dispatch.firefly.setData({ accounts: accounts.filter((account) => account.currencyCode === currentCode).slice(0, 5) });
},
async getBalanceChart(_: void, rootState): Promise {
const {
firefly: {
- rangeDetails: {
- start,
- end,
- },
- },
- currencies: {
- currentCode,
- },
- configuration: {
- apiVersion,
+ rangeDetails: { start, end },
},
+ currencies: { currentCode },
+ configuration: { apiVersion },
} = rootState;
try {
const apiSemverMinimum = '2.0.9';
- const { data: accounts } = await dispatch.configuration.apiFetch({ url: `/api/v1/accounts?type=asset&date=${end}` }) as { data: AccountType[]};
- if (!semver.gte(apiVersion, apiSemverMinimum) || accounts.length === 0) {
+ const { data: accounts } = (await dispatch.configuration.apiFetch({
+ url: `/api/v1/accounts?type=asset&date=${end}`,
+ })) as { data: AccountType[] };
+ if (
+ !semver.gte(apiVersion, apiSemverMinimum)
+ || accounts.length === 0
+ ) {
this.setData({ earnedChart: [], spentChart: [] });
return;
}
- const accountIdsParam = accounts.map((a) => a.id).join('&accounts[]=');
- const { data: balances } = await dispatch.configuration.apiFetch({ url: `/api/v2/chart/balance/balance?start=${start}&end=${end}&accounts[]=${accountIdsParam}&period=1M` }) as { data: BalanceType[] };
+ const accountIdsParam = accounts.map((a) => a.id).join('&filter[accounts][]=');
+ const { data: balances } = (await dispatch.configuration.apiFetch({ url: `/api/v2/chart/balance/balance?filter[start]=${start}&filter[end]=${end}&filter[accounts][]=${accountIdsParam}` })) as { data: BalanceType[] };
const earnedChartEntries = balances.filter((balance) => balance.currencyCode === currentCode && balance.label === 'earned')[0]?.entries;
@@ -424,14 +414,17 @@ export default createModel()({
);
if (!response.accessToken) {
- throw new Error('Failed to get accessToken with the refresh token. Please restart the Sign In process.');
+ throw new Error(
+ 'Failed to get accessToken with the refresh token. Please restart the Sign In process.',
+ );
}
const newCredential = { ...credential };
newCredential.accessToken = response.accessToken;
newCredential.refreshToken = response.refreshToken;
- newCredential.accessTokenExpiresIn = (response.issuedAt && response.expiresIn)
- ? (response.issuedAt + response.expiresIn + -600).toString() : '';
+ newCredential.accessTokenExpiresIn = response.issuedAt && response.expiresIn
+ ? (response.issuedAt + response.expiresIn + -600).toString()
+ : '';
await addCredential(newCredential);
// set backend url and access token for this session
@@ -473,8 +466,10 @@ export default createModel()({
email,
backendURL,
accessToken: response.accessToken,
- accessTokenExpiresIn: (response.issuedAt && response.expiresIn)
- ? (response.issuedAt + response.expiresIn + -600).toString() : '',
+ accessTokenExpiresIn:
+ response.issuedAt && response.expiresIn
+ ? (response.issuedAt + response.expiresIn + -600).toString()
+ : '',
oauthClientId,
oauthClientSecret,
refreshToken: response.refreshToken,
@@ -482,6 +477,5 @@ export default createModel()({
await addCredential(credential);
},
-
}),
});