this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

add haptics to like and repost

+335 -29
+2 -1
README.md
··· 37 37 - [ ] Context menu - user actions 38 38 - [ ] Settings screen 39 39 - [ ] Image viewer: Pinch to zoom 40 - - [ ] Haptics 40 + - [x] Haptics 41 + - [ ] More haptics! 41 42 - [ ] Push notifications 42 43 - [ ] App Store???
+1
apps/expo/package.json
··· 26 26 "expo": "^48.0.11", 27 27 "expo-constants": "~14.2.1", 28 28 "expo-file-system": "^15.2.2", 29 + "expo-haptics": "^12.2.1", 29 30 "expo-linking": "~4.0.1", 30 31 "expo-router": "^1.5.3", 31 32 "expo-splash-screen": "~0.18.1",
+3
apps/expo/src/lib/hooks.ts
··· 1 1 import { useRef, useState } from "react"; 2 + import * as Haptics from "expo-haptics"; 2 3 import { type AppBskyFeedDefs } from "@atproto/api"; 3 4 import { useMutation } from "@tanstack/react-query"; 4 5 ··· 21 22 const toggleLike = useMutation({ 22 23 mutationKey: ["like", post.uri], 23 24 mutationFn: async () => { 25 + Haptics.selectionAsync(); 24 26 if (!likeUri) { 25 27 try { 26 28 setLiked(true); ··· 68 70 const toggleRepost = useMutation({ 69 71 mutationKey: ["repost", post.uri], 70 72 mutationFn: async () => { 73 + Haptics.selectionAsync(); 71 74 if (!repostUri) { 72 75 try { 73 76 setReposted(true);
+329 -28
pnpm-lock.yaml
··· 73 73 expo-file-system: 74 74 specifier: ^15.2.2 75 75 version: 15.2.2(expo@48.0.11) 76 + expo-haptics: 77 + specifier: ^12.2.1 78 + version: 12.2.1(expo@48.0.11) 76 79 expo-linking: 77 80 specifier: ~4.0.1 78 81 version: 4.0.1(expo@48.0.11) 79 82 expo-router: 80 83 specifier: ^1.5.3 81 - version: 1.5.3(expo-constants@14.2.1)(expo-linking@4.0.1)(expo-status-bar@1.4.4)(expo@48.0.11)(react-dom@18.2.0)(react-native-gesture-handler@2.9.0)(react-native-reanimated@2.14.4)(react-native-safe-area-context@4.5.0)(react-native-screens@3.20.0)(react-native@0.71.6)(react@18.2.0) 84 + version: 1.5.3(expo-constants@14.2.1)(expo-linking@4.0.1)(expo-modules-autolinking@1.2.0)(expo-status-bar@1.4.4)(expo@48.0.11)(metro@0.76.2)(react-dom@18.2.0)(react-native-gesture-handler@2.9.0)(react-native-reanimated@2.14.4)(react-native-safe-area-context@4.5.0)(react-native-screens@3.20.0)(react-native@0.71.6)(react@18.2.0) 82 85 expo-splash-screen: 83 86 specifier: ~0.18.1 84 - version: 0.18.1(expo@48.0.11) 87 + version: 0.18.1(expo-modules-autolinking@1.2.0)(expo@48.0.11) 85 88 expo-status-bar: 86 89 specifier: ~1.4.4 87 90 version: 1.4.4 ··· 96 99 version: 1.4.0 97 100 lucide-react-native: 98 101 specifier: ^0.172.0 99 - version: 0.172.0(react-native-svg@13.4.0)(react-native@0.71.6)(react@18.2.0) 102 + version: 0.172.0(prop-types@15.8.1)(react-native-svg@13.4.0)(react-native@0.71.6)(react@18.2.0) 100 103 nativewind: 101 104 specifier: ^2.0.11 102 105 version: 2.0.11(react@18.2.0)(tailwindcss@3.3.1) ··· 1995 1998 base64-js: 1.5.1 1996 1999 xmlbuilder: 14.0.0 1997 2000 1998 - /@expo/prebuild-config@6.0.0: 1999 - resolution: {integrity: sha512-UW0QKAoRelsalVMhAG1tmegwS+2tbefvUi6/0QiKPlMLg8GFDQ5ZnzsSmuljD0SzT5yGg8oSpKYhnrXJ6pRmIQ==} 2000 - peerDependencies: 2001 - expo-modules-autolinking: '>=0.8.1' 2002 - dependencies: 2003 - '@expo/config': 8.0.2 2004 - '@expo/config-plugins': 6.0.1 2005 - '@expo/config-types': 48.0.0 2006 - '@expo/image-utils': 0.3.22 2007 - '@expo/json-file': 8.2.37 2008 - debug: 4.3.4 2009 - fs-extra: 9.1.0 2010 - resolve-from: 5.0.0 2011 - semver: 7.3.2 2012 - xml2js: 0.4.23 2013 - transitivePeerDependencies: 2014 - - encoding 2015 - - supports-color 2016 - dev: false 2017 - 2018 2001 /@expo/prebuild-config@6.0.0(expo-modules-autolinking@1.2.0): 2019 2002 resolution: {integrity: sha512-UW0QKAoRelsalVMhAG1tmegwS+2tbefvUi6/0QiKPlMLg8GFDQ5ZnzsSmuljD0SzT5yGg8oSpKYhnrXJ6pRmIQ==} 2020 2003 peerDependencies: ··· 3579 3562 3580 3563 /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: 3581 3564 resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} 3565 + dev: false 3566 + 3567 + /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.21.4): 3568 + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} 3569 + dependencies: 3570 + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.4) 3571 + transitivePeerDependencies: 3572 + - '@babel/core' 3582 3573 dev: false 3583 3574 3584 3575 /babel-preset-expo@9.3.2(@babel/core@7.21.4): ··· 5234 5225 dependencies: 5235 5226 expo: 48.0.11(@babel/core@7.21.4) 5236 5227 fontfaceobserver: 2.3.0 5228 + dev: false 5229 + 5230 + /expo-haptics@12.2.1(expo@48.0.11): 5231 + resolution: {integrity: sha512-XRZtmIQi901Q4+/cZnVrULRFOqShsgCuSP0SCbVEhnq8sK0OA4jgun12O93Pu5aGvTyoqsAcIArE8tX+8AEqRA==} 5232 + peerDependencies: 5233 + expo: '*' 5234 + dependencies: 5235 + expo: 48.0.11(@babel/core@7.21.4) 5237 5236 dev: false 5238 5237 5239 5238 /expo-json-utils@0.5.1: ··· 5285 5284 invariant: 2.2.4 5286 5285 dev: false 5287 5286 5288 - /expo-router@1.5.3(expo-constants@14.2.1)(expo-linking@4.0.1)(expo-status-bar@1.4.4)(expo@48.0.11)(react-dom@18.2.0)(react-native-gesture-handler@2.9.0)(react-native-reanimated@2.14.4)(react-native-safe-area-context@4.5.0)(react-native-screens@3.20.0)(react-native@0.71.6)(react@18.2.0): 5287 + /expo-router@1.5.3(expo-constants@14.2.1)(expo-linking@4.0.1)(expo-modules-autolinking@1.2.0)(expo-status-bar@1.4.4)(expo@48.0.11)(metro@0.76.2)(react-dom@18.2.0)(react-native-gesture-handler@2.9.0)(react-native-reanimated@2.14.4)(react-native-safe-area-context@4.5.0)(react-native-screens@3.20.0)(react-native@0.71.6)(react@18.2.0): 5289 5288 resolution: {integrity: sha512-rZEoRpXjXpfcx549/MI7YRitaBGFOHpIGLO+cb18ecsShl3PzGPIDaBGMnTo0m1h7ip0sAIQg1EFrSAtM4LXLA==} 5290 5289 peerDependencies: 5291 5290 '@react-navigation/drawer': ^6.5.8 ··· 5313 5312 expo: 48.0.11(@babel/core@7.21.4) 5314 5313 expo-constants: 14.2.1(expo@48.0.11) 5315 5314 expo-linking: 4.0.1(expo@48.0.11) 5316 - expo-splash-screen: 0.18.1(expo@48.0.11) 5315 + expo-splash-screen: 0.18.1(expo-modules-autolinking@1.2.0)(expo@48.0.11) 5317 5316 expo-status-bar: 1.4.4 5317 + metro: 0.76.2 5318 5318 query-string: 7.1.3 5319 5319 react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) 5320 5320 react-native-gesture-handler: 2.9.0(react-native@0.71.6)(react@18.2.0) ··· 5331 5331 - supports-color 5332 5332 dev: false 5333 5333 5334 - /expo-splash-screen@0.18.1(expo@48.0.11): 5334 + /expo-splash-screen@0.18.1(expo-modules-autolinking@1.2.0)(expo@48.0.11): 5335 5335 resolution: {integrity: sha512-1di1kuh14likGUs3fyVZWAqEMxhmdAjpmf9T8Qk5OzUa5oPEMEDYB2e2VprddWnJNBVVe/ojBDSCY8w56/LS0Q==} 5336 5336 peerDependencies: 5337 5337 expo: '*' 5338 5338 dependencies: 5339 5339 '@expo/configure-splash-screen': 0.6.0 5340 - '@expo/prebuild-config': 6.0.0 5340 + '@expo/prebuild-config': 6.0.0(expo-modules-autolinking@1.2.0) 5341 5341 expo: 48.0.11(@babel/core@7.21.4) 5342 5342 transitivePeerDependencies: 5343 5343 - encoding ··· 6966 6966 dependencies: 6967 6967 yallist: 4.0.0 6968 6968 6969 - /lucide-react-native@0.172.0(react-native-svg@13.4.0)(react-native@0.71.6)(react@18.2.0): 6969 + /lucide-react-native@0.172.0(prop-types@15.8.1)(react-native-svg@13.4.0)(react-native@0.71.6)(react@18.2.0): 6970 6970 resolution: {integrity: sha512-M5J2Eyx+PhfJZaiJwPNgOGQhBlMAR9/WL9hqB7cISSVXzqqXBDiiYpBaoYEbwn95g/Fluwp174hE+41mFkBM1w==} 6971 6971 peerDependencies: 6972 6972 prop-types: ^15.7.2 ··· 6974 6974 react-native: '*' 6975 6975 react-native-svg: ^12.0.0 || ^13.0.0 6976 6976 dependencies: 6977 + prop-types: 15.8.1 6977 6978 react: 18.2.0 6978 6979 react-native: 0.71.6(@babel/core@7.21.4)(@babel/preset-env@7.21.4)(react@18.2.0) 6979 6980 react-native-svg: 13.4.0(react-native@0.71.6)(react@18.2.0) ··· 7076 7077 - supports-color 7077 7078 dev: false 7078 7079 7080 + /metro-babel-transformer@0.76.2: 7081 + resolution: {integrity: sha512-NRNjVYDs5174K3oS54W67XQ9oUJDDVNJsqz45cJycbxfAx0GKVpvhjvoRQ2LmU0I0IbLL8HQtO/6aQ9No4Udwg==} 7082 + engines: {node: '>=16'} 7083 + dependencies: 7084 + '@babel/core': 7.21.4 7085 + hermes-parser: 0.8.0 7086 + metro-source-map: 0.76.2 7087 + nullthrows: 1.1.1 7088 + transitivePeerDependencies: 7089 + - supports-color 7090 + dev: false 7091 + 7079 7092 /metro-cache-key@0.73.9: 7080 7093 resolution: {integrity: sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ==} 7094 + dev: false 7095 + 7096 + /metro-cache-key@0.76.2: 7097 + resolution: {integrity: sha512-30kvupiiDVvglywBn8lpNtpcedHXgI7M9Nsh5HRJDq6GF3+4/nrip0UGaa2XRfD1GyHD8B1TpMskvF3+zLKzmw==} 7098 + engines: {node: '>=16'} 7081 7099 dev: false 7082 7100 7083 7101 /metro-cache@0.73.9: ··· 7087 7105 rimraf: 3.0.2 7088 7106 dev: false 7089 7107 7108 + /metro-cache@0.76.2: 7109 + resolution: {integrity: sha512-gSSfVBNvgqbveWChmC1Om/Ri61JvjOYzmFU1XgW98cNzMtxGHC5WFi3n7u9/kkIR9quiTfyOyxHpkovqJhOixw==} 7110 + engines: {node: '>=16'} 7111 + dependencies: 7112 + metro-core: 0.76.2 7113 + rimraf: 3.0.2 7114 + dev: false 7115 + 7090 7116 /metro-config@0.73.9: 7091 7117 resolution: {integrity: sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA==} 7092 7118 dependencies: ··· 7103 7129 - utf-8-validate 7104 7130 dev: false 7105 7131 7132 + /metro-config@0.76.2: 7133 + resolution: {integrity: sha512-BxbmEUlglCK4GJK8beGCXm3C38ri/E0/lFV563YPuyE9OvtG1HeslvYbNAuGt3NzdFEzH4JjaQ7xeKQw5tYYvg==} 7134 + engines: {node: '>=16'} 7135 + dependencies: 7136 + cosmiconfig: 5.2.1 7137 + jest-validate: 26.6.2 7138 + metro: 0.76.2 7139 + metro-cache: 0.76.2 7140 + metro-core: 0.76.2 7141 + metro-runtime: 0.76.2 7142 + transitivePeerDependencies: 7143 + - bufferutil 7144 + - encoding 7145 + - supports-color 7146 + - utf-8-validate 7147 + dev: false 7148 + 7106 7149 /metro-core@0.73.9: 7107 7150 resolution: {integrity: sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ==} 7108 7151 dependencies: ··· 7110 7153 metro-resolver: 0.73.9 7111 7154 dev: false 7112 7155 7156 + /metro-core@0.76.2: 7157 + resolution: {integrity: sha512-LXUTPqJLp6J5Ro7IWryd0Q/Lj7AX00fgoJhFfwdOr5RDEkHyzQNeHgObCSOBSqUqDHeEY8hEWD0ugFTA7iIyaA==} 7158 + engines: {node: '>=16'} 7159 + dependencies: 7160 + lodash.throttle: 4.1.1 7161 + metro-resolver: 0.76.2 7162 + dev: false 7163 + 7113 7164 /metro-file-map@0.73.9: 7114 7165 resolution: {integrity: sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ==} 7115 7166 dependencies: ··· 7132 7183 - supports-color 7133 7184 dev: false 7134 7185 7186 + /metro-file-map@0.76.2: 7187 + resolution: {integrity: sha512-thDwa/rAePaXBsW62wuRGQbi2/2BoYbRHhfXPmI8MK3TavPfjnX/tPV57+Gx4yy2MFq4AR4mI1VyMsj8vnsTBg==} 7188 + engines: {node: '>=16'} 7189 + dependencies: 7190 + anymatch: 3.1.3 7191 + debug: 2.6.9 7192 + fb-watchman: 2.0.2 7193 + graceful-fs: 4.2.11 7194 + invariant: 2.2.4 7195 + jest-regex-util: 27.5.1 7196 + jest-util: 27.5.1 7197 + jest-worker: 27.5.1 7198 + micromatch: 4.0.5 7199 + node-abort-controller: 3.1.1 7200 + nullthrows: 1.1.1 7201 + walker: 1.0.8 7202 + optionalDependencies: 7203 + fsevents: 2.3.2 7204 + transitivePeerDependencies: 7205 + - supports-color 7206 + dev: false 7207 + 7135 7208 /metro-hermes-compiler@0.73.9: 7136 7209 resolution: {integrity: sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg==} 7137 7210 dev: false ··· 7150 7223 - utf-8-validate 7151 7224 dev: false 7152 7225 7226 + /metro-inspector-proxy@0.76.2: 7227 + resolution: {integrity: sha512-K7ThshkczlHbFJhBDdx1Bxrls3LlQ1rnQINqXzBG2sDkOrPx2seV8s1ApaiUqDCdt803Qo9eoTYTI/vOHFmJxQ==} 7228 + engines: {node: '>=16'} 7229 + hasBin: true 7230 + dependencies: 7231 + connect: 3.7.0 7232 + debug: 2.6.9 7233 + node-fetch: 2.6.9 7234 + ws: 7.5.9 7235 + yargs: 17.7.1 7236 + transitivePeerDependencies: 7237 + - bufferutil 7238 + - encoding 7239 + - supports-color 7240 + - utf-8-validate 7241 + dev: false 7242 + 7153 7243 /metro-minify-terser@0.73.9: 7154 7244 resolution: {integrity: sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg==} 7155 7245 dependencies: 7156 7246 terser: 5.17.1 7157 7247 dev: false 7158 7248 7249 + /metro-minify-terser@0.76.2: 7250 + resolution: {integrity: sha512-JaJ0qlNXtzPlv8JxlfuDRWmNWFZBJ3w5+vQ4tqAIA68ComTpm9DJ7pbde3DUpOts/zM4swsDAPhtu3HuhRTQhA==} 7251 + engines: {node: '>=16'} 7252 + dependencies: 7253 + terser: 5.17.1 7254 + dev: false 7255 + 7159 7256 /metro-minify-uglify@0.73.9: 7160 7257 resolution: {integrity: sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA==} 7161 7258 dependencies: 7162 7259 uglify-es: 3.3.9 7163 7260 dev: false 7164 7261 7262 + /metro-minify-uglify@0.76.2: 7263 + resolution: {integrity: sha512-eye94ZTWhiF3eG6+MDdvn6WSVMeQed1gB/QqXZCFrBxk6GAfeosMahwpgygc9hFIXdgc7Qv8z7F2T+hWfh+aAQ==} 7264 + engines: {node: '>=16'} 7265 + dependencies: 7266 + uglify-es: 3.3.9 7267 + dev: false 7268 + 7165 7269 /metro-react-native-babel-preset@0.73.9(@babel/core@7.21.4): 7166 7270 resolution: {integrity: sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==} 7167 7271 peerDependencies: ··· 7209 7313 - supports-color 7210 7314 dev: false 7211 7315 7316 + /metro-react-native-babel-preset@0.76.2(@babel/core@7.21.4): 7317 + resolution: {integrity: sha512-Kzi4JhEzwrPOuv3OHjDZvvlPTjInNoIV8QKBRyLTzx7TJuA5a2xReo0lz4sG4x9Bcv1XjKkKRmYUgS9V1I820w==} 7318 + engines: {node: '>=16'} 7319 + peerDependencies: 7320 + '@babel/core': '*' 7321 + dependencies: 7322 + '@babel/core': 7.21.4 7323 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.21.4) 7324 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.4) 7325 + '@babel/plugin-proposal-export-default-from': 7.18.10(@babel/core@7.21.4) 7326 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.4) 7327 + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.21.4) 7328 + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.21.4) 7329 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.21.4) 7330 + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.4) 7331 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.4) 7332 + '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.21.4) 7333 + '@babel/plugin-syntax-flow': 7.21.4(@babel/core@7.21.4) 7334 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.4) 7335 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.4) 7336 + '@babel/plugin-transform-arrow-functions': 7.20.7(@babel/core@7.21.4) 7337 + '@babel/plugin-transform-async-to-generator': 7.20.7(@babel/core@7.21.4) 7338 + '@babel/plugin-transform-block-scoping': 7.21.0(@babel/core@7.21.4) 7339 + '@babel/plugin-transform-classes': 7.21.0(@babel/core@7.21.4) 7340 + '@babel/plugin-transform-computed-properties': 7.20.7(@babel/core@7.21.4) 7341 + '@babel/plugin-transform-destructuring': 7.21.3(@babel/core@7.21.4) 7342 + '@babel/plugin-transform-flow-strip-types': 7.21.0(@babel/core@7.21.4) 7343 + '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.21.4) 7344 + '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.21.4) 7345 + '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.21.4) 7346 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.21.4) 7347 + '@babel/plugin-transform-parameters': 7.21.3(@babel/core@7.21.4) 7348 + '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.21.4) 7349 + '@babel/plugin-transform-react-jsx': 7.21.0(@babel/core@7.21.4) 7350 + '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.4) 7351 + '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.4) 7352 + '@babel/plugin-transform-runtime': 7.21.4(@babel/core@7.21.4) 7353 + '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.21.4) 7354 + '@babel/plugin-transform-spread': 7.20.7(@babel/core@7.21.4) 7355 + '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.21.4) 7356 + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.4) 7357 + '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.4) 7358 + '@babel/template': 7.20.7 7359 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.21.4) 7360 + react-refresh: 0.4.3 7361 + transitivePeerDependencies: 7362 + - supports-color 7363 + dev: false 7364 + 7212 7365 /metro-react-native-babel-transformer@0.73.9(@babel/core@7.21.4): 7213 7366 resolution: {integrity: sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ==} 7214 7367 peerDependencies: ··· 7231 7384 absolute-path: 0.0.0 7232 7385 dev: false 7233 7386 7387 + /metro-resolver@0.76.2: 7388 + resolution: {integrity: sha512-sLLwhxd31fYVxaOSzhJ8Mumi211qHOkurC2Gh+4QSDFNKDZecovMgV/W5/oIQWJBCX/mi/YkbmnpwLCUvXEoWw==} 7389 + engines: {node: '>=16'} 7390 + dev: false 7391 + 7234 7392 /metro-runtime@0.73.9: 7235 7393 resolution: {integrity: sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg==} 7394 + dependencies: 7395 + '@babel/runtime': 7.21.0 7396 + react-refresh: 0.4.3 7397 + dev: false 7398 + 7399 + /metro-runtime@0.76.2: 7400 + resolution: {integrity: sha512-247IYGyA8tS2wkDjq0Ju3vm6Tz79nb7+DPHgMpl71nsh0/kQvgc43bEJLhMwOqouRUcJihN0MgPWUb1xNI1rUg==} 7401 + engines: {node: '>=16'} 7236 7402 dependencies: 7237 7403 '@babel/runtime': 7.21.0 7238 7404 react-refresh: 0.4.3 ··· 7253 7419 - supports-color 7254 7420 dev: false 7255 7421 7422 + /metro-source-map@0.76.2: 7423 + resolution: {integrity: sha512-fr8mSpn7Z0oYhTdcFCJsrtOX0qgOoDBw9I5mOTZBacMyItiiFYrb+2zyVacBQwrxyo/DqAJaFd3NbdbIInIyvw==} 7424 + engines: {node: '>=16'} 7425 + dependencies: 7426 + '@babel/traverse': 7.21.4 7427 + '@babel/types': 7.21.4 7428 + invariant: 2.2.4 7429 + metro-symbolicate: 0.76.2 7430 + nullthrows: 1.1.1 7431 + ob1: 0.76.2 7432 + source-map: 0.5.7 7433 + vlq: 1.0.1 7434 + transitivePeerDependencies: 7435 + - supports-color 7436 + dev: false 7437 + 7256 7438 /metro-symbolicate@0.73.9: 7257 7439 resolution: {integrity: sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw==} 7258 7440 engines: {node: '>=8.3'} ··· 7268 7450 - supports-color 7269 7451 dev: false 7270 7452 7453 + /metro-symbolicate@0.76.2: 7454 + resolution: {integrity: sha512-yI0eBJK+FeAwNYnyoZve5hq8RplpLTUDqShnmtHmflMw1WWRyjqrxtGg6ctjgV6qQqytnodFAWd31uQQ4ag0Pw==} 7455 + engines: {node: '>=16'} 7456 + hasBin: true 7457 + dependencies: 7458 + invariant: 2.2.4 7459 + metro-source-map: 0.76.2 7460 + nullthrows: 1.1.1 7461 + source-map: 0.5.7 7462 + through2: 2.0.5 7463 + vlq: 1.0.1 7464 + transitivePeerDependencies: 7465 + - supports-color 7466 + dev: false 7467 + 7271 7468 /metro-transform-plugins@0.73.9: 7272 7469 resolution: {integrity: sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ==} 7470 + dependencies: 7471 + '@babel/core': 7.21.4 7472 + '@babel/generator': 7.21.4 7473 + '@babel/template': 7.20.7 7474 + '@babel/traverse': 7.21.4 7475 + nullthrows: 1.1.1 7476 + transitivePeerDependencies: 7477 + - supports-color 7478 + dev: false 7479 + 7480 + /metro-transform-plugins@0.76.2: 7481 + resolution: {integrity: sha512-kpqOemOzxxrP1Fah3163a/7vOgzfsgmJ2RYceEt1KGg/JGYyB17CBzADiiT7H+K6fJRtZAiuKy9ru08gXnqUpA==} 7482 + engines: {node: '>=16'} 7273 7483 dependencies: 7274 7484 '@babel/core': 7.21.4 7275 7485 '@babel/generator': 7.21.4 ··· 7303 7513 - utf-8-validate 7304 7514 dev: false 7305 7515 7516 + /metro-transform-worker@0.76.2: 7517 + resolution: {integrity: sha512-BlGDrA+Vp4PkR9IVYi1Zspcqw0NXLyqMlmazFw6WzEON90v9J3rHcIyjrK2lieJ4tdovxFhmHm8YrlCT9S0Bfw==} 7518 + engines: {node: '>=16'} 7519 + dependencies: 7520 + '@babel/core': 7.21.4 7521 + '@babel/generator': 7.21.4 7522 + '@babel/parser': 7.21.4 7523 + '@babel/types': 7.21.4 7524 + babel-preset-fbjs: 3.4.0(@babel/core@7.21.4) 7525 + metro: 0.76.2 7526 + metro-babel-transformer: 0.76.2 7527 + metro-cache: 0.76.2 7528 + metro-cache-key: 0.76.2 7529 + metro-source-map: 0.76.2 7530 + metro-transform-plugins: 0.76.2 7531 + nullthrows: 1.1.1 7532 + transitivePeerDependencies: 7533 + - bufferutil 7534 + - encoding 7535 + - supports-color 7536 + - utf-8-validate 7537 + dev: false 7538 + 7306 7539 /metro@0.73.9: 7307 7540 resolution: {integrity: sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg==} 7308 7541 hasBin: true ··· 7354 7587 source-map: 0.5.7 7355 7588 strip-ansi: 6.0.1 7356 7589 temp: 0.8.3 7590 + throat: 5.0.0 7591 + ws: 7.5.9 7592 + yargs: 17.7.1 7593 + transitivePeerDependencies: 7594 + - bufferutil 7595 + - encoding 7596 + - supports-color 7597 + - utf-8-validate 7598 + dev: false 7599 + 7600 + /metro@0.76.2: 7601 + resolution: {integrity: sha512-pF3zWPgdlaFIUDuI6TrouRofgM9Xz5ZrzvxaJGjWen+tvDFhhQ1bah/OZre2ldMvVh800atiSx7uMLITyE+s8A==} 7602 + engines: {node: '>=16'} 7603 + hasBin: true 7604 + dependencies: 7605 + '@babel/code-frame': 7.21.4 7606 + '@babel/core': 7.21.4 7607 + '@babel/generator': 7.21.4 7608 + '@babel/parser': 7.21.4 7609 + '@babel/template': 7.20.7 7610 + '@babel/traverse': 7.21.4 7611 + '@babel/types': 7.21.4 7612 + accepts: 1.3.8 7613 + async: 3.2.4 7614 + chalk: 4.1.2 7615 + ci-info: 2.0.0 7616 + connect: 3.7.0 7617 + debug: 2.6.9 7618 + denodeify: 1.2.1 7619 + error-stack-parser: 2.1.4 7620 + graceful-fs: 4.2.11 7621 + hermes-parser: 0.8.0 7622 + image-size: 0.6.3 7623 + invariant: 2.2.4 7624 + jest-worker: 27.5.1 7625 + lodash.throttle: 4.1.1 7626 + metro-babel-transformer: 0.76.2 7627 + metro-cache: 0.76.2 7628 + metro-cache-key: 0.76.2 7629 + metro-config: 0.76.2 7630 + metro-core: 0.76.2 7631 + metro-file-map: 0.76.2 7632 + metro-inspector-proxy: 0.76.2 7633 + metro-minify-terser: 0.76.2 7634 + metro-minify-uglify: 0.76.2 7635 + metro-react-native-babel-preset: 0.76.2(@babel/core@7.21.4) 7636 + metro-resolver: 0.76.2 7637 + metro-runtime: 0.76.2 7638 + metro-source-map: 0.76.2 7639 + metro-symbolicate: 0.76.2 7640 + metro-transform-plugins: 0.76.2 7641 + metro-transform-worker: 0.76.2 7642 + mime-types: 2.1.35 7643 + node-fetch: 2.6.9 7644 + nullthrows: 1.1.1 7645 + rimraf: 3.0.2 7646 + serialize-error: 2.1.0 7647 + source-map: 0.5.7 7648 + strip-ansi: 6.0.1 7357 7649 throat: 5.0.0 7358 7650 ws: 7.5.9 7359 7651 yargs: 17.7.1 ··· 7667 7959 engines: {node: '>=12.0.0'} 7668 7960 dev: false 7669 7961 7962 + /node-abort-controller@3.1.1: 7963 + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} 7964 + dev: false 7965 + 7670 7966 /node-dir@0.1.17: 7671 7967 resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} 7672 7968 engines: {node: '>= 0.10.5'} ··· 7763 8059 7764 8060 /ob1@0.73.9: 7765 8061 resolution: {integrity: sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw==} 8062 + dev: false 8063 + 8064 + /ob1@0.76.2: 8065 + resolution: {integrity: sha512-4Nazxd75vdXgFwq1braZ+u3QerxT1WVgltU43eByw4MaAdvSeuJt6wKwey7Ts5hfVOZrpfVAkHmmw0nDEg4KMg==} 8066 + engines: {node: '>=16'} 7766 8067 dev: false 7767 8068 7768 8069 /object-assign@4.1.1: