diff --git a/__tests__/lib/images.test.ts b/__tests__/lib/images.test.ts
index 38b722e2ce..859ea777ba 100644
--- a/__tests__/lib/images.test.ts
+++ b/__tests__/lib/images.test.ts
@@ -1,25 +1,28 @@
import {
downloadAndResize,
DownloadAndResizeOpts,
-} from '../../src/lib/media/manip'
-import ImageResizer from '@bam.tech/react-native-image-resizer'
-import RNFetchBlob from 'rn-fetch-blob'
+ getResizedDimensions,
+} from 'lib/media/manip'
+import {manipulateAsync, SaveFormat} from 'expo-image-manipulator'
+import {createDownloadResumable, deleteAsync} from 'expo-file-system'
describe('downloadAndResize', () => {
const errorSpy = jest.spyOn(global.console, 'error')
const mockResizedImage = {
- path: jest.fn().mockReturnValue('file://resized-image.jpg'),
+ path: 'file://resized-image.jpg',
size: 100,
- width: 50,
- height: 50,
+ width: 100,
+ height: 100,
mime: 'image/jpeg',
}
beforeEach(() => {
- const mockedCreateResizedImage =
- ImageResizer.createResizedImage as jest.Mock
- mockedCreateResizedImage.mockResolvedValue(mockResizedImage)
+ const mockedCreateResizedImage = manipulateAsync as jest.Mock
+ mockedCreateResizedImage.mockResolvedValue({
+ uri: 'file://resized-image.jpg',
+ ...mockResizedImage,
+ })
})
afterEach(() => {
@@ -27,10 +30,12 @@ describe('downloadAndResize', () => {
})
it('should return resized image for valid URI and options', async () => {
- const mockedFetch = RNFetchBlob.fetch as jest.Mock
- mockedFetch.mockResolvedValueOnce({
- path: jest.fn().mockReturnValue('file://downloaded-image.jpg'),
- flush: jest.fn(),
+ const mockedFetch = createDownloadResumable as jest.Mock
+ mockedFetch.mockReturnValue({
+ cancelAsync: jest.fn(),
+ downloadAsync: jest
+ .fn()
+ .mockResolvedValue({uri: 'file://resized-image.jpg'}),
})
const opts: DownloadAndResizeOpts = {
@@ -44,25 +49,22 @@ describe('downloadAndResize', () => {
const result = await downloadAndResize(opts)
expect(result).toEqual(mockResizedImage)
- expect(RNFetchBlob.config).toHaveBeenCalledWith({
- fileCache: true,
- appendExt: 'jpeg',
+ expect(createDownloadResumable).toHaveBeenCalledWith(
+ opts.uri,
+ expect.anything(),
+ {
+ cache: true,
+ },
+ )
+ expect(manipulateAsync).toHaveBeenCalledWith(expect.anything(), [], {
+ format: SaveFormat.JPEG,
})
- expect(RNFetchBlob.fetch).toHaveBeenCalledWith(
- 'GET',
- 'https://example.com/image.jpg',
- )
- expect(ImageResizer.createResizedImage).toHaveBeenCalledWith(
- 'file://downloaded-image.jpg',
- 100,
- 100,
- 'JPEG',
- 100,
- undefined,
- undefined,
- undefined,
- {mode: 'cover'},
+ expect(manipulateAsync).toHaveBeenCalledWith(
+ expect.anything(),
+ [{resize: {height: opts.height, width: opts.width}}],
+ {format: SaveFormat.JPEG, compress: 0.9},
)
+ expect(deleteAsync).toHaveBeenCalledWith(expect.anything())
})
it('should return undefined for invalid URI', async () => {
@@ -81,10 +83,12 @@ describe('downloadAndResize', () => {
})
it('should return undefined for unsupported file type', async () => {
- const mockedFetch = RNFetchBlob.fetch as jest.Mock
- mockedFetch.mockResolvedValueOnce({
- path: jest.fn().mockReturnValue('file://downloaded-image'),
- flush: jest.fn(),
+ const mockedFetch = createDownloadResumable as jest.Mock
+ mockedFetch.mockReturnValue({
+ cancelAsync: jest.fn(),
+ downloadAsync: jest
+ .fn()
+ .mockResolvedValue({uri: 'file://downloaded-image'}),
})
const opts: DownloadAndResizeOpts = {
@@ -98,24 +102,63 @@ describe('downloadAndResize', () => {
const result = await downloadAndResize(opts)
expect(result).toEqual(mockResizedImage)
- expect(RNFetchBlob.config).toHaveBeenCalledWith({
- fileCache: true,
- appendExt: 'jpeg',
+ expect(createDownloadResumable).toHaveBeenCalledWith(
+ opts.uri,
+ expect.anything(),
+ {
+ cache: true,
+ },
+ )
+ expect(manipulateAsync).toHaveBeenCalledWith(expect.anything(), [], {
+ format: SaveFormat.JPEG,
})
- expect(RNFetchBlob.fetch).toHaveBeenCalledWith(
- 'GET',
- 'https://example.com/image',
- )
- expect(ImageResizer.createResizedImage).toHaveBeenCalledWith(
- 'file://downloaded-image',
- 100,
- 100,
- 'JPEG',
- 100,
- undefined,
- undefined,
- undefined,
- {mode: 'cover'},
+ expect(manipulateAsync).toHaveBeenCalledWith(
+ expect.anything(),
+ [{resize: {height: opts.height, width: opts.width}}],
+ {format: SaveFormat.JPEG, compress: 0.9},
)
+ expect(deleteAsync).toHaveBeenCalledWith(expect.anything())
+ })
+})
+
+describe('produces correct new sizes for images', () => {
+ it('should not downsize whenever dimensions are below the max dimensions', () => {
+ const initialDimensionsOne = {
+ width: 1200,
+ height: 1000,
+ }
+ const resizedDimensionsOne = getResizedDimensions(initialDimensionsOne)
+
+ const initialDimensionsTwo = {
+ width: 1000,
+ height: 1200,
+ }
+ const resizedDimensionsTwo = getResizedDimensions(initialDimensionsTwo)
+
+ expect(resizedDimensionsOne).toEqual(initialDimensionsOne)
+ expect(resizedDimensionsTwo).toEqual(initialDimensionsTwo)
+ })
+
+ it('should resize dimensions and maintain aspect ratio if they are above the max dimensons', () => {
+ const initialDimensionsOne = {
+ width: 3000,
+ height: 1500,
+ }
+ const resizedDimensionsOne = getResizedDimensions(initialDimensionsOne)
+
+ const initialDimensionsTwo = {
+ width: 2000,
+ height: 4000,
+ }
+ const resizedDimensionsTwo = getResizedDimensions(initialDimensionsTwo)
+
+ expect(resizedDimensionsOne).toEqual({
+ width: 2000,
+ height: 1000,
+ })
+ expect(resizedDimensionsTwo).toEqual({
+ width: 1000,
+ height: 2000,
+ })
})
})
diff --git a/jest/jestSetup.js b/jest/jestSetup.js
index d8cee9bfda..a9574e0258 100644
--- a/jest/jestSetup.js
+++ b/jest/jestSetup.js
@@ -36,14 +36,19 @@ jest.mock('react-native-safe-area-context', () => {
}
})
-jest.mock('rn-fetch-blob', () => ({
- config: jest.fn().mockReturnThis(),
- cancel: jest.fn(),
- fetch: jest.fn(),
+jest.mock('expo-file-system', () => ({
+ createDownloadResumable: jest.fn(),
+ deleteAsync: jest.fn(),
+ getInfoAsync: jest.fn().mockResolvedValue({
+ size: 100,
+ }),
}))
-jest.mock('@bam.tech/react-native-image-resizer', () => ({
- createResizedImage: jest.fn(),
+jest.mock('expo-image-manipulator', () => ({
+ manipulateAsync: jest.fn().mockResolvedValue({
+ uri: 'file://resized-image',
+ }),
+ SaveFormat: jest.requireActual('expo-image-manipulator').SaveFormat,
}))
jest.mock('@segment/analytics-react-native', () => ({
diff --git a/metro.config.js b/metro.config.js
index a49d95f9aa..792262ffc4 100644
--- a/metro.config.js
+++ b/metro.config.js
@@ -10,15 +10,6 @@ cfg.transformer.getTransformOptions = async () => ({
transform: {
experimentalImportSupport: true,
inlineRequires: true,
- nonInlinedRequires: [
- // We can remove this option and rely on the default after
- // https://github.com/facebook/metro/pull/1126 is released.
- 'React',
- 'react',
- 'react/jsx-dev-runtime',
- 'react/jsx-runtime',
- 'react-native',
- ],
},
})
diff --git a/package.json b/package.json
index d694d26c31..b5e9710276 100644
--- a/package.json
+++ b/package.json
@@ -45,8 +45,8 @@
},
"dependencies": {
"@atproto/api": "^0.10.4",
- "@bam.tech/react-native-image-resizer": "^3.0.4",
"@braintree/sanitize-url": "^6.0.2",
+ "@discord/bottom-sheet": "https://github.com/bluesky-social/react-native-bottom-sheet.git#discord-fork-4.6.1",
"@emoji-mart/react": "^1.1.1",
"@expo/html-elements": "^0.4.2",
"@expo/webpack-config": "^19.0.0",
@@ -54,15 +54,10 @@
"@fortawesome/free-regular-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-native-fontawesome": "^0.3.0",
- "@gorhom/bottom-sheet": "^4.5.1",
"@lingui/react": "^4.5.0",
"@mattermost/react-native-paste-input": "^0.6.4",
"@miblanchard/react-native-slider": "^2.3.1",
- "@react-native-async-storage/async-storage": "1.21.0",
- "@react-native-camera-roll/camera-roll": "^5.2.2",
- "@react-native-clipboard/clipboard": "^1.10.0",
- "@react-native-community/blur": "^4.3.0",
- "@react-native-community/datetimepicker": "7.6.1",
+ "@react-native-async-storage/async-storage": "^1.22.3",
"@react-native-masked-view/masked-view": "0.3.0",
"@react-native-menu/menu": "^0.8.0",
"@react-native-picker/picker": "2.6.1",
@@ -100,27 +95,30 @@
"email-validator": "^2.0.4",
"emoji-mart": "^5.5.2",
"eventemitter3": "^5.0.1",
- "expo": "^50.0.0-preview.10",
- "expo-application": "~5.8.2",
- "expo-build-properties": "^0.11.0",
- "expo-camera": "~14.0.1",
- "expo-constants": "~15.4.3",
- "expo-dev-client": "~3.3.5",
- "expo-device": "~5.9.2",
- "expo-image": "~1.10.3",
+ "expo": "^50.0.8",
+ "expo-application": "~5.8.3",
+ "expo-build-properties": "^0.11.1",
+ "expo-camera": "~14.0.4",
+ "expo-clipboard": "^5.0.1",
+ "expo-constants": "~15.4.5",
+ "expo-device": "~5.9.3",
+ "expo-file-system": "^16.0.7",
+ "expo-haptics": "^12.8.1",
+ "expo-image": "~1.10.6",
"expo-image-manipulator": "^11.8.0",
"expo-image-picker": "~14.7.1",
+ "expo-linear-gradient": "^12.7.1",
"expo-linking": "^6.2.2",
- "expo-localization": "~14.8.2",
+ "expo-localization": "~14.8.3",
"expo-media-library": "~15.9.1",
- "expo-notifications": "~0.27.3",
+ "expo-notifications": "~0.27.6",
"expo-sharing": "^11.10.0",
- "expo-splash-screen": "~0.26.2",
+ "expo-splash-screen": "~0.26.4",
"expo-status-bar": "~1.11.1",
"expo-system-ui": "~2.9.3",
- "expo-task-manager": "~11.7.0",
- "expo-updates": "~0.24.7",
- "expo-web-browser": "~12.8.1",
+ "expo-task-manager": "~11.7.2",
+ "expo-updates": "~0.24.10",
+ "expo-web-browser": "~12.8.2",
"fast-text-encoding": "^1.0.6",
"history": "^5.3.0",
"js-sha256": "^0.9.0",
@@ -135,7 +133,6 @@
"lodash.samplesize": "^4.2.0",
"lodash.set": "^4.3.2",
"lodash.shuffle": "^4.2.0",
- "lru_map": "^0.4.1",
"mobx": "^6.6.1",
"mobx-react-lite": "^3.4.0",
"mobx-utils": "^6.0.6",
@@ -146,40 +143,32 @@
"psl": "^1.9.0",
"react": "18.2.0",
"react-avatar-editor": "^13.0.0",
- "react-circular-progressbar": "^2.1.0",
"react-dom": "^18.2.0",
- "react-native": "0.73.2",
- "react-native-appstate-hook": "^1.0.6",
+ "react-native": "~0.73.5",
+ "react-native-date-picker": "^4.4.0",
"react-native-drawer-layout": "^4.0.0-alpha.3",
- "react-native-fs": "^2.20.0",
- "react-native-gesture-handler": "~2.14.0",
+ "react-native-gesture-handler": "~2.15.0",
"react-native-get-random-values": "~1.8.0",
- "react-native-haptic-feedback": "^1.14.0",
- "react-native-image-crop-picker": "^0.38.1",
+ "react-native-image-crop-picker": "~0.40.3",
"react-native-ios-context-menu": "^1.15.3",
- "react-native-linear-gradient": "^2.6.2",
"react-native-pager-view": "6.2.3",
- "react-native-picker-select": "^8.1.0",
+ "react-native-picker-select": "~9.0.1",
"react-native-progress": "bluesky-social/react-native-progress",
- "react-native-reanimated": "^3.6.0",
+ "react-native-reanimated": "~3.7.2",
"react-native-root-siblings": "^4.1.1",
- "react-native-safe-area-context": "4.8.2",
+ "react-native-safe-area-context": "~4.9.0",
"react-native-screens": "~3.29.0",
- "react-native-svg": "14.1.0",
- "react-native-ui-text-view": "link:./modules/react-native-ui-text-view",
+ "react-native-svg": "~15.1.0",
+ "react-native-uitextview": "^1.1.4",
"react-native-url-polyfill": "^1.3.0",
"react-native-uuid": "^2.0.1",
- "react-native-version-number": "^0.3.6",
"react-native-web": "~0.19.6",
- "react-native-web-linear-gradient": "^1.1.2",
"react-native-web-webview": "^1.0.2",
- "react-native-webview": "13.6.4",
+ "react-native-webview": "~13.8.1",
"react-responsive": "^9.0.2",
- "rn-fetch-blob": "^0.12.0",
- "sentry-expo": "~7.0.1",
+ "sentry-expo": "~7.2.0",
"tippy.js": "^6.3.7",
"tlds": "^1.234.0",
- "use-deep-compare": "^1.1.0",
"zeego": "^1.6.2",
"zod": "^3.20.2"
},
@@ -200,6 +189,7 @@
"@testing-library/react-native": "^11.5.2",
"@tsconfig/react-native": "^2.0.3",
"@types/he": "^1.1.2",
+ "@types/invariant": "^2.2.37",
"@types/jest": "^29.4.0",
"@types/lodash.chunk": "^4.2.7",
"@types/lodash.debounce": "^4.0.7",
diff --git a/patches/metro+0.80.4.patch b/patches/metro+0.80.4.patch
deleted file mode 100644
index f8ef67c84c..0000000000
--- a/patches/metro+0.80.4.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git a/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js b/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js
-index 48a1409..ef185c9 100644
---- a/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js
-+++ b/node_modules/metro/src/ModuleGraph/worker/JsFileWrapping.js
-@@ -70,14 +70,19 @@ function wrapModule(
- importDefaultName,
- importAllName,
- dependencyMapName,
-- globalPrefix
-+ globalPrefix,
-+ moduleFactoryName
- ) {
- const params = buildParameters(
- importDefaultName,
- importAllName,
- dependencyMapName
- );
-- const factory = functionFromProgram(fileAst.program, params);
-+ const factory = functionFromProgram(
-+ fileAst.program,
-+ params,
-+ moduleFactoryName
-+ );
- const def = t.callExpression(t.identifier(`${globalPrefix}__d`), [factory]);
- const ast = t.file(t.program([t.expressionStatement(def)]));
- const requireName = renameRequires(ast);
-@@ -107,7 +112,16 @@ function wrapJson(source, globalPrefix) {
- "});",
- ].join("\n");
- }
--function functionFromProgram(program, parameters) {
-+const JS_INVALID_IDENT_RE = /[^a-zA-Z0-9$_]/g;
-+function functionFromProgram(program, parameters, moduleFactoryName) {
-+ let identifier;
-+ if (typeof moduleFactoryName === "string" && moduleFactoryName !== "") {
-+ // Keep the name readable so it shows up in profiler traces.
-+ // Add an unlikely suffix to avoid collisions with the module code.
-+ identifier = t.identifier(
-+ `${moduleFactoryName.replace(JS_INVALID_IDENT_RE, "_")}__module_factory__`
-+ );
-+ }
- return t.functionExpression(
- undefined,
- parameters.map(makeIdentifier),
diff --git a/patches/metro-runtime+0.80.4.patch b/patches/metro-runtime+0.80.4.patch
deleted file mode 100644
index 65303775d5..0000000000
--- a/patches/metro-runtime+0.80.4.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/node_modules/metro-runtime/src/polyfills/require.js b/node_modules/metro-runtime/src/polyfills/require.js
-index ce67cb4..eeeae84 100644
---- a/node_modules/metro-runtime/src/polyfills/require.js
-+++ b/node_modules/metro-runtime/src/polyfills/require.js
-@@ -22,6 +22,13 @@ global.__c = clear;
- global.__registerSegment = registerSegment;
- var modules = clear();
-
-+if (__DEV__) {
-+ // Added by Dan for module init logging.
-+ global.__INIT_LOGS__ = []
-+ var initModuleCounter = 0
-+ var initModuleStack = []
-+}
-+
- // Don't use a Symbol here, it would pull in an extra polyfill with all sorts of
- // additional stuff (e.g. Array.from).
- const EMPTY = {};
-@@ -303,7 +310,30 @@ function loadModuleImplementation(moduleId, module) {
- throw module.error;
- }
- if (__DEV__) {
-- var Systrace = requireSystrace();
-+ // Added by Dan for module init logging.
-+ var Systrace = {
-+ beginEvent(label) {
-+ let fullLabel = initModuleCounter++ + ' ' + label
-+ global.__INIT_LOGS__.push(
-+ ' '.repeat(initModuleStack.length) +
-+ ' ENTER ' + fullLabel
-+ )
-+ initModuleStack.push({
-+ fullLabel,
-+ startTime: nativePerformanceNow(),
-+ })
-+ },
-+ endEvent() {
-+ const res = initModuleStack.pop()
-+ const fullLabel = res.fullLabel
-+ const startTime = res.startTime
-+ const timeElapsed = Math.round(nativePerformanceNow() - startTime)
-+ global.__INIT_LOGS__.push(
-+ ' '.repeat(initModuleStack.length) +
-+ ' LEAVE ' + fullLabel + ' [' + timeElapsed + 'ms]',
-+ )
-+ }
-+ };
- var Refresh = requireRefresh();
- }
-
diff --git a/patches/metro-transform-worker+0.80.4.patch b/patches/metro-transform-worker+0.80.4.patch
deleted file mode 100644
index 717b7c2d9c..0000000000
--- a/patches/metro-transform-worker+0.80.4.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/node_modules/metro-transform-worker/src/index.js b/node_modules/metro-transform-worker/src/index.js
-index 9f2e3d2..5222c8e 100644
---- a/node_modules/metro-transform-worker/src/index.js
-+++ b/node_modules/metro-transform-worker/src/index.js
-@@ -189,6 +189,10 @@ async function transformJS(file, { config, options, projectRoot }) {
- let dependencyMapName = "";
- let dependencies;
- let wrappedAst;
-+ const minify =
-+ options.minify &&
-+ options.unstable_transformProfile !== "hermes-canary" &&
-+ options.unstable_transformProfile !== "hermes-stable";
-
- // If the module to transform is a script (meaning that is not part of the
- // dependency graph and it code will just be prepended to the bundle modules),
-@@ -228,19 +232,20 @@ async function transformJS(file, { config, options, projectRoot }) {
- if (config.unstable_disableModuleWrapping === true) {
- wrappedAst = ast;
- } else {
-+ let moduleFactoryName;
-+ if (options.dev && !minify) {
-+ moduleFactoryName = file.filename;
-+ }
- ({ ast: wrappedAst } = JsFileWrapping.wrapModule(
- ast,
- importDefault,
- importAll,
- dependencyMapName,
-- config.globalPrefix
-+ config.globalPrefix,
-+ moduleFactoryName
- ));
- }
- }
-- const minify =
-- options.minify &&
-- options.unstable_transformProfile !== "hermes-canary" &&
-- options.unstable_transformProfile !== "hermes-stable";
- const reserved = [];
- if (config.unstable_dependencyMapReservedName != null) {
- reserved.push(config.unstable_dependencyMapReservedName);
diff --git a/patches/react-native+0.73.2.patch b/patches/react-native+0.73.2.patch
deleted file mode 100644
index 8f100169e5..0000000000
--- a/patches/react-native+0.73.2.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm
-index 9dca6a5..090bda5 100644
---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm
-+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm
-@@ -266,11 +266,10 @@ - (void)textViewDidChange:(__unused UITextView *)textView
-
- - (void)textViewDidChangeSelection:(__unused UITextView *)textView
- {
-- if (_lastStringStateWasUpdatedWith && ![_lastStringStateWasUpdatedWith isEqual:_backedTextInputView.attributedText]) {
-+ if (![_lastStringStateWasUpdatedWith isEqual:_backedTextInputView.attributedText]) {
- [self textViewDidChange:_backedTextInputView];
- _ignoreNextTextInputCall = YES;
- }
-- _lastStringStateWasUpdatedWith = _backedTextInputView.attributedText;
- [self textViewProbablyDidChangeSelection];
- }
-
-diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm
-index 1f06b79..ab458f3 100644
---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm
-+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm
-@@ -87,7 +87,7 @@ - (void)invalidateContentSize
- return;
- }
-
-- CGSize maximumSize = self.layoutMetrics.frame.size;
-+ CGSize maximumSize = self.layoutMetrics.contentFrame.size;
-
- if (_maximumNumberOfLines == 1) {
- maximumSize.width = CGFLOAT_MAX;
-@@ -158,6 +158,8 @@ - (void)uiManagerWillPerformMounting
- [attributedText insertAttributedString:propertyAttributedText atIndex:0];
- }
-
-+ [self postprocessAttributedText:attributedText];
-+
- NSAttributedString *newAttributedText;
- if (![_previousAttributedText isEqualToAttributedString:attributedText]) {
- // We have to follow `set prop` pattern:
-@@ -191,6 +193,52 @@ - (void)uiManagerWillPerformMounting
- }];
- }
-
-+- (void)postprocessAttributedText:(NSMutableAttributedString *)attributedText
-+{
-+ __block CGFloat maximumLineHeight = 0;
-+
-+ [attributedText enumerateAttribute:NSParagraphStyleAttributeName
-+ inRange:NSMakeRange(0, attributedText.length)
-+ options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
-+ usingBlock:^(NSParagraphStyle *paragraphStyle, __unused NSRange range, __unused BOOL *stop) {
-+ if (!paragraphStyle) {
-+ return;
-+ }
-+
-+ maximumLineHeight = MAX(paragraphStyle.maximumLineHeight, maximumLineHeight);
-+ }];
-+
-+ if (maximumLineHeight == 0) {
-+ // `lineHeight` was not specified, nothing to do.
-+ return;
-+ }
-+
-+ __block CGFloat maximumFontLineHeight = 0;
-+
-+ [attributedText enumerateAttribute:NSFontAttributeName
-+ inRange:NSMakeRange(0, attributedText.length)
-+ options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
-+ usingBlock:^(UIFont *font, NSRange range, __unused BOOL *stop) {
-+ if (!font) {
-+ return;
-+ }
-+
-+ if (maximumFontLineHeight <= font.lineHeight) {
-+ maximumFontLineHeight = font.lineHeight;
-+ }
-+ }];
-+
-+ if (maximumLineHeight < maximumFontLineHeight) {
-+ return;
-+ }
-+
-+ CGFloat baseLineOffset = maximumLineHeight / 2.0 - maximumFontLineHeight / 2.0;
-+
-+ [attributedText addAttribute:NSBaselineOffsetAttributeName
-+ value:@(baseLineOffset)
-+ range:NSMakeRange(0, attributedText.length)];
-+}
-+
- #pragma mark -
-
- - (NSAttributedString *)measurableAttributedText
diff --git a/patches/react-native+0.73.2.patch.md b/patches/react-native+0.73.2.patch.md
deleted file mode 100644
index 3d32751636..0000000000
--- a/patches/react-native+0.73.2.patch.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# TextInput Patch
-
-Patching `RCTBaseTextShadowInput.mm` from https://github.com/facebook/react-native/pull/38359. This fixes some text
-getting cut off inside the composer. This was merged in December, so we should be able to remove this patch when RN
-ships the next release.
diff --git a/src/App.native.tsx b/src/App.native.tsx
index f08a6235bb..aae9b29d3f 100644
--- a/src/App.native.tsx
+++ b/src/App.native.tsx
@@ -41,7 +41,6 @@ import {
} from 'state/session'
import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread'
import * as persisted from '#/state/persisted'
-import {Splash} from '#/Splash'
import {Provider as PortalProvider} from '#/components/Portal'
import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
@@ -50,7 +49,7 @@ import {useIntentHandler} from 'lib/hooks/useIntentHandler'
SplashScreen.preventAutoHideAsync()
function InnerApp() {
- const {isInitialLoad, currentAccount} = useSession()
+ const {currentAccount} = useSession()
const {resumeSession} = useSessionApi()
const theme = useColorModeTheme()
const {_} = useLingui()
@@ -70,27 +69,27 @@ function InnerApp() {
return (
-
-
-
-
-
-
- {/* All components should be within this provider */}
-
-
-
-
-
-
-
-
-
-
-
-
+ {/**/}
+
+
+
+
+
+ {/* All components should be within this provider */}
+
+
+
+
+
+
+
+
+
+
+
+ {/**/}
)
diff --git a/src/components/Button.tsx b/src/components/Button.tsx
index 5361be963a..a6d0ee1dc2 100644
--- a/src/components/Button.tsx
+++ b/src/components/Button.tsx
@@ -11,7 +11,7 @@ import {
StyleSheet,
StyleProp,
} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {useTheme, atoms as a, tokens, android, flatten} from '#/alf'
import {Props as SVGIconProps} from '#/components/icons/common'
diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx
index fa375b0f4c..5b7100de01 100644
--- a/src/components/Dialog/index.tsx
+++ b/src/components/Dialog/index.tsx
@@ -7,7 +7,7 @@ import BottomSheet, {
BottomSheetView,
useBottomSheet,
WINDOW_HEIGHT,
-} from '@gorhom/bottom-sheet'
+} from '@discord/bottom-sheet/src'
import {useSafeAreaInsets} from 'react-native-safe-area-context'
import Animated, {useAnimatedStyle} from 'react-native-reanimated'
diff --git a/src/components/Dialog/types.ts b/src/components/Dialog/types.ts
index 78dfedf5a8..7c8a6e26c6 100644
--- a/src/components/Dialog/types.ts
+++ b/src/components/Dialog/types.ts
@@ -1,6 +1,6 @@
import React from 'react'
import type {AccessibilityProps} from 'react-native'
-import {BottomSheetProps} from '@gorhom/bottom-sheet'
+import {BottomSheetProps} from '@discord/bottom-sheet/src'
import {ViewStyleProp} from '#/alf'
diff --git a/src/components/Typography.tsx b/src/components/Typography.tsx
index c9ab7a8a12..5f738f1ae1 100644
--- a/src/components/Typography.tsx
+++ b/src/components/Typography.tsx
@@ -1,6 +1,6 @@
import React from 'react'
import {Text as RNText, TextStyle, TextProps as RNTextProps} from 'react-native'
-import {UITextView} from 'react-native-ui-text-view'
+import {UITextView} from 'react-native-uitextview'
import {useTheme, atoms, web, flatten} from '#/alf'
import {isIOS} from '#/platform/detection'
diff --git a/src/components/forms/DateField/index.android.tsx b/src/components/forms/DateField/index.android.tsx
index cddb643d61..451810a5ea 100644
--- a/src/components/forms/DateField/index.android.tsx
+++ b/src/components/forms/DateField/index.android.tsx
@@ -1,8 +1,5 @@
import React from 'react'
import {View, Pressable} from 'react-native'
-import DateTimePicker, {
- BaseProps as DateTimePickerProps,
-} from '@react-native-community/datetimepicker'
import {useTheme, atoms} from '#/alf'
import {Text} from '#/components/Typography'
@@ -15,6 +12,8 @@ import {
localizeDate,
toSimpleDateString,
} from '#/components/forms/DateField/utils'
+import DatePicker from 'react-native-date-picker'
+import {isAndroid} from 'platform/detection'
export * as utils from '#/components/forms/DateField/utils'
export const Label = TextField.Label
@@ -38,20 +37,20 @@ export function DateField({
const {chromeFocus, chromeError, chromeErrorHover} =
TextField.useSharedInputStyles()
- const onChangeInternal = React.useCallback<
- Required['onChange']
- >(
- (_event, date) => {
+ const onChangeInternal = React.useCallback(
+ (date: Date) => {
setOpen(false)
- if (date) {
- const formatted = toSimpleDateString(date)
- onChangeDate(formatted)
- }
+ const formatted = toSimpleDateString(date)
+ onChangeDate(formatted)
},
[onChangeDate, setOpen],
)
+ const onCancel = React.useCallback(() => {
+ setOpen(false)
+ }, [])
+
return (
{open && (
-
)}
diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx
index e65936e0ea..49e47a01e3 100644
--- a/src/components/forms/DateField/index.tsx
+++ b/src/components/forms/DateField/index.tsx
@@ -1,13 +1,11 @@
import React from 'react'
import {View} from 'react-native'
-import DateTimePicker, {
- DateTimePickerEvent,
-} from '@react-native-community/datetimepicker'
import {useTheme, atoms} from '#/alf'
import * as TextField from '#/components/forms/TextField'
import {toSimpleDateString} from '#/components/forms/DateField/utils'
import {DateFieldProps} from '#/components/forms/DateField/types'
+import DatePicker from 'react-native-date-picker'
export * as utils from '#/components/forms/DateField/utils'
export const Label = TextField.Label
@@ -28,7 +26,7 @@ export function DateField({
const t = useTheme()
const onChangeInternal = React.useCallback(
- (event: DateTimePickerEvent, date: Date | undefined) => {
+ (date: Date | undefined) => {
if (date) {
const formatted = toSimpleDateString(date)
onChangeDate(formatted)
@@ -39,17 +37,15 @@ export function DateField({
return (
-
)
diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts
index ea1d975985..513f4f196c 100644
--- a/src/lib/api/api-polyfill.ts
+++ b/src/lib/api/api-polyfill.ts
@@ -1,5 +1,5 @@
import {BskyAgent, stringifyLex, jsonToLex} from '@atproto/api'
-import RNFS from 'react-native-fs'
+import {cacheDirectory, copyAsync, moveAsync} from 'expo-file-system'
const GET_TIMEOUT = 15e3 // 15s
const POST_TIMEOUT = 60e3 // 60s
@@ -33,9 +33,26 @@ async function fetchHandler(
// we get around that by renaming the file ext to .bin
// see https://github.com/facebook/react-native/issues/27099
// -prf
- const newPath = reqBody.replace(/\.jpe?g$/, '.bin')
- await RNFS.moveFile(reqBody, newPath)
- reqBody = newPath
+
+ // On some platforms, moving this file is not possible. We will attempt to move it (this is optimal, since
+ // we don't create duplicates) and if there is an error, we will instead copy the file to the cache directory
+ const fileName = reqBody.split('/').pop() ?? ''
+ const newPath = `${cacheDirectory ?? ''}${fileName.replace(
+ /\.jpe?g$/,
+ '.bin',
+ )}`
+ try {
+ await moveAsync({
+ from: reqBody,
+ to: newPath,
+ })
+ reqBody = newPath
+ } catch (e) {
+ await copyAsync({
+ from: reqBody,
+ to: newPath,
+ })
+ }
}
// NOTE
// React native treats bodies with {uri: string} as file uploads to pull from cache
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index 5fb7fe50e6..e9b6d424ad 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -1,3 +1,4 @@
+import {deleteAsync} from 'expo-file-system'
import {
AppBskyEmbedImages,
AppBskyEmbedExternal,
@@ -39,10 +40,14 @@ export async function uploadBlob(
})
} else {
// `blob` should be a path to a file in the local FS
- return agent.uploadBlob(
+ const res = await agent.uploadBlob(
blob, // this will be special-cased by the fetch monkeypatch in /src/state/lib/api.ts
{encoding},
)
+ try {
+ deleteAsync(blob)
+ } catch (e) {} // Don't need to handle
+ return res
}
}
diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts
index 3f026d3fe6..a152b1dee3 100644
--- a/src/lib/app-info.ts
+++ b/src/lib/app-info.ts
@@ -1,5 +1,4 @@
-import VersionNumber from 'react-native-version-number'
-import * as Updates from 'expo-updates'
-export const updateChannel = Updates.channel
-
-export const appVersion = `${VersionNumber.appVersion} (${VersionNumber.buildVersion})`
+import {nativeBuildVersion, nativeApplicationVersion} from 'expo-application'
+import {channel} from 'expo-updates'
+export const updateChannel = channel
+export const appVersion = `${nativeApplicationVersion} (${nativeBuildVersion})`
diff --git a/src/lib/haptics.ts b/src/lib/haptics.ts
index 516940c1ce..c73223e765 100644
--- a/src/lib/haptics.ts
+++ b/src/lib/haptics.ts
@@ -1,28 +1,34 @@
import {isIOS, isWeb} from 'platform/detection'
-import ReactNativeHapticFeedback, {
- HapticFeedbackTypes,
-} from 'react-native-haptic-feedback'
+import {
+ impactAsync,
+ ImpactFeedbackStyle,
+ notificationAsync,
+ NotificationFeedbackType,
+ selectionAsync,
+} from 'expo-haptics'
-const hapticImpact: HapticFeedbackTypes = isIOS ? 'impactMedium' : 'impactLight' // Users said the medium impact was too strong on Android; see APP-537s
+const hapticImpact: ImpactFeedbackStyle = isIOS
+ ? ImpactFeedbackStyle.Medium
+ : ImpactFeedbackStyle.Light // Users said the medium impact was too strong on Android; see APP-537s
export class Haptics {
static default() {
if (isWeb) {
return
}
- ReactNativeHapticFeedback.trigger(hapticImpact)
+ impactAsync(hapticImpact)
}
- static impact(type: HapticFeedbackTypes = hapticImpact) {
+ static impact(type: ImpactFeedbackStyle = hapticImpact) {
if (isWeb) {
return
}
- ReactNativeHapticFeedback.trigger(type)
+ impactAsync(type)
}
static selection() {
if (isWeb) {
return
}
- ReactNativeHapticFeedback.trigger('selection')
+ selectionAsync()
}
static notification = (type: 'success' | 'warning' | 'error') => {
if (isWeb) {
@@ -30,11 +36,11 @@ export class Haptics {
}
switch (type) {
case 'success':
- return ReactNativeHapticFeedback.trigger('notificationSuccess')
+ return notificationAsync(NotificationFeedbackType.Success)
case 'warning':
- return ReactNativeHapticFeedback.trigger('notificationWarning')
+ return notificationAsync(NotificationFeedbackType.Warning)
case 'error':
- return ReactNativeHapticFeedback.trigger('notificationError')
+ return notificationAsync(NotificationFeedbackType.Error)
}
}
}
diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts
index a681627e67..04f79f60a3 100644
--- a/src/lib/media/manip.ts
+++ b/src/lib/media/manip.ts
@@ -1,13 +1,20 @@
-import RNFetchBlob from 'rn-fetch-blob'
-import ImageResizer from '@bam.tech/react-native-image-resizer'
-import {Image as RNImage, Share as RNShare} from 'react-native'
+import {Image as RNImage} from 'react-native'
import {Image} from 'react-native-image-crop-picker'
-import * as RNFS from 'react-native-fs'
+import {
+ cacheDirectory,
+ copyAsync,
+ createDownloadResumable,
+ deleteAsync,
+ FileInfo,
+ getInfoAsync,
+} from 'expo-file-system'
+import {manipulateAsync, SaveFormat} from 'expo-image-manipulator'
import uuid from 'react-native-uuid'
import * as Sharing from 'expo-sharing'
import * as MediaLibrary from 'expo-media-library'
import {Dimensions} from './types'
-import {isAndroid, isIOS} from 'platform/detection'
+import {Image as ExpoImage} from 'expo-image'
+import {POST_IMG_MAX} from 'lib/constants'
export async function compressIfNeeded(
img: Image,
@@ -53,26 +60,13 @@ export async function downloadAndResize(opts: DownloadAndResizeOpts) {
return
}
- let downloadRes
+ const path = createPath(appendExt)
+
try {
- const downloadResPromise = RNFetchBlob.config({
- fileCache: true,
- appendExt,
- }).fetch('GET', opts.uri)
- const to1 = setTimeout(() => downloadResPromise.cancel(), opts.timeout)
- downloadRes = await downloadResPromise
- clearTimeout(to1)
-
- let localUri = downloadRes.path()
- if (!localUri.startsWith('file://')) {
- localUri = `file://${localUri}`
- }
-
- return await doResize(localUri, opts)
+ await downloadImage(opts.uri, path, opts.timeout)
+ return await doResize(path, opts)
} finally {
- if (downloadRes) {
- downloadRes.flush()
- }
+ deleteAsync(path)
}
}
@@ -81,47 +75,45 @@ export async function shareImageModal({uri}: {uri: string}) {
// TODO might need to give an error to the user in this case -prf
return
}
- const downloadResponse = await RNFetchBlob.config({
- fileCache: true,
- }).fetch('GET', uri)
- // NOTE
- // assuming PNG
- // we're currently relying on the fact our CDN only serves pngs
- // -prf
-
- let imagePath = downloadResponse.path()
- imagePath = normalizePath(await moveToPermanentPath(imagePath, '.png'), true)
-
- // NOTE
- // for some reason expo-sharing refuses to work on iOS
- // ...and visa versa
- // -prf
- if (isIOS) {
- await RNShare.share({url: imagePath})
- } else {
- await Sharing.shareAsync(imagePath, {
- mimeType: 'image/png',
- UTI: 'image/png',
- })
+ // Usually whenever we share an image it will already be available in the cache. If it isn't, then we
+ // will download it.
+ let imageUri = await ExpoImage.getCachePathAsync(uri)
+ if (!imageUri) {
+ // NOTE
+ // assuming PNG
+ // we're currently relying on the fact our CDN only serves pngs
+ // -prf
+ imageUri = await downloadImage(uri, createPath('png'), 5e3)
}
- RNFS.unlink(imagePath)
+
+ const imagePath = await moveToPermanentPath(imageUri, '.png')
+
+ await Sharing.shareAsync(imagePath, {
+ mimeType: 'image/png',
+ UTI: 'image/png',
+ })
+
+ deleteAsync(imagePath)
}
export async function saveImageToMediaLibrary({uri}: {uri: string}) {
- // download the file to cache
- // NOTE
- // assuming PNG
- // we're currently relying on the fact our CDN only serves pngs
- // -prf
- const downloadResponse = await RNFetchBlob.config({
- fileCache: true,
- }).fetch('GET', uri)
- let imagePath = downloadResponse.path()
- imagePath = normalizePath(await moveToPermanentPath(imagePath, '.png'), true)
+ let imageUri = await ExpoImage.getCachePathAsync(uri)
+ if (!imageUri) {
+ // download the file to cache
+ // NOTE
+ // assuming PNG
+ // we're currently relying on the fact our CDN only serves pngs
+ // -prf
+ imageUri = await downloadImage(uri, createPath('png'), 5e3)
+ }
+
+ const imagePath = await moveToPermanentPath(imageUri, '.png')
// save
await MediaLibrary.createAssetAsync(imagePath)
+
+ deleteAsync(imagePath)
}
export function getImageDim(path: string): Promise {
@@ -147,27 +139,48 @@ interface DoResizeOpts {
}
async function doResize(localUri: string, opts: DoResizeOpts): Promise {
+ // This is a bit of a hack, but it lets us get the original size of the image. The old image manipulation library
+ // allowed us to supply a max height/width and it would handle the resizing. With expo-image-manipulator, we have
+ // to supply the exact size and width that we want to resize to instead. We will calculate that ourselves based on
+ // the height/width results of this first manipulation
+ const imageRes = await manipulateAsync(localUri, [], {
+ format: SaveFormat.JPEG,
+ })
+
+ const newDimensions = getResizedDimensions({
+ width: imageRes.width,
+ height: imageRes.height,
+ })
+
for (let i = 0; i < 9; i++) {
- const quality = 100 - i * 10
- const resizeRes = await ImageResizer.createResizedImage(
+ const quality = 0.9 - 0.1 * i
+ const resizeRes = await manipulateAsync(
localUri,
- opts.width,
- opts.height,
- 'JPEG',
- quality,
- undefined,
- undefined,
- undefined,
- {mode: opts.mode},
+ [{resize: {height: newDimensions.height, width: newDimensions.width}}],
+ {
+ format: SaveFormat.JPEG,
+ compress: quality,
+ },
)
- if (resizeRes.size < opts.maxSize) {
+
+ // @ts-ignore This is valid, `getInfoAsync` will always return a size. The type is wonky
+ const info: FileInfo & {size: number} = await getInfoAsync(resizeRes.uri, {
+ size: true,
+ })
+
+ // We want to clean up every resize _except_ the final result. We'll clean that one up later when we're finished
+ // with it
+ if (info.size < opts.maxSize) {
+ await deleteAsync(imageRes.uri)
return {
- path: normalizePath(resizeRes.path),
+ path: normalizePath(resizeRes.uri),
mime: 'image/jpeg',
- size: resizeRes.size,
+ size: info.size,
width: resizeRes.width,
height: resizeRes.height,
}
+ } else {
+ await deleteAsync(resizeRes.uri)
}
}
throw new Error(
@@ -182,12 +195,29 @@ async function moveToPermanentPath(path: string, ext = ''): Promise {
https://github.com/ivpusic/react-native-image-crop-picker/issues/1199
*/
const filename = uuid.v4()
+ const destinationPath = joinPath(cacheDirectory ?? '', `${filename}${ext}`)
+
+ await copyAsync({
+ from: normalizePath(path),
+ to: destinationPath,
+ })
+
+ // This is just to try and clean up whenever we can. We won't always be able to, so in cases where we can't
+ // we just catch the error. We can't simply move some files though such as image caches, so we will copy then
+ // and attempt to clean up the original file
+ // Paths that are image caches shouldn't be removed. com.hackemist.SDImageCache is used by SDWebImage and
+ // image_manager_disk_cache is used by Glide
+ if (
+ !path.includes('com.hackemist.SDImageCache') &&
+ !path.includes('image_manager_disk_cache')
+ ) {
+ try {
+ deleteAsync(path)
+ } catch (e) {
+ // No need to handle
+ }
+ }
- const destinationPath = joinPath(
- RNFS.TemporaryDirectoryPath,
- `${filename}${ext}`,
- )
- await RNFS.moveFile(path, destinationPath)
return normalizePath(destinationPath)
}
@@ -203,11 +233,53 @@ function joinPath(a: string, b: string) {
return a + '/' + b
}
-function normalizePath(str: string, allPlatforms = false): string {
- if (isAndroid || allPlatforms) {
- if (!str.startsWith('file://')) {
- return `file://${str}`
- }
+function normalizePath(str: string): string {
+ if (!str.startsWith('file://')) {
+ return `file://${str}`
}
return str
}
+
+function createPath(ext: string) {
+ // cacheDirectory will never be null on native, so the null check here is not necessary except for typescript.
+ // we use a web-only function for downloadAndResize on web
+ return `${cacheDirectory ?? ''}/${uuid.v4()}.${ext}`
+}
+
+async function downloadImage(uri: string, path: string, timeout: number) {
+ const downloadResumable = createDownloadResumable(uri, path, {
+ cache: true,
+ })
+
+ const to1 = setTimeout(() => downloadResumable.cancelAsync(), timeout)
+ const downloadRes = await downloadResumable.downloadAsync()
+ clearTimeout(to1)
+
+ if (!downloadRes?.uri) {
+ throw new Error()
+ }
+
+ return normalizePath(downloadRes.uri)
+}
+
+export function getResizedDimensions(originalDims: {
+ width: number
+ height: number
+}) {
+ if (
+ originalDims.width <= POST_IMG_MAX.width &&
+ originalDims.height <= POST_IMG_MAX.height
+ ) {
+ return originalDims
+ }
+
+ const ratio = Math.min(
+ POST_IMG_MAX.width / originalDims.width,
+ POST_IMG_MAX.height / originalDims.height,
+ )
+
+ return {
+ width: Math.round(originalDims.width * ratio),
+ height: Math.round(originalDims.height * ratio),
+ }
+}
diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx
index d7b6080417..0ba66c622e 100644
--- a/src/lib/media/picker.e2e.tsx
+++ b/src/lib/media/picker.e2e.tsx
@@ -1,22 +1,33 @@
import {Image as RNImage} from 'react-native-image-crop-picker'
-import RNFS from 'react-native-fs'
import {CropperOptions} from './types'
import {compressIfNeeded} from './manip'
+import {
+ documentDirectory,
+ getInfoAsync,
+ readDirectoryAsync,
+} from 'expo-file-system'
let _imageCounter = 0
async function getFile() {
- let files = await RNFS.readDir(
- RNFS.LibraryDirectoryPath.split('/')
+ // This *should* work. In RNFS, there was a LibraryDirectoryPath constant, which is not present in
+ // expo-file-system. This should work as a work around at least on simulators (probably elsewhere
+ // too though). Since this is only used for e2e though, this should be safe.
+ const libraryDirPath = documentDirectory?.split('/data/')[0] + '/data'
+
+ let paths = await readDirectoryAsync(
+ libraryDirPath
+ .split('/')
.slice(0, -5)
.concat(['Media', 'DCIM', '100APPLE'])
.join('/'),
)
- files = files.filter(file => file.path.endsWith('.JPG'))
- const file = files[_imageCounter++ % files.length]
+ paths = paths.filter(path => path.endsWith('.JPG'))
+ const path = paths[_imageCounter++ % paths.length]
return await compressIfNeeded({
- path: file.path,
+ path,
mime: 'image/jpeg',
- size: file.size,
+ // @ts-ignore Size is available here, type is incorrect
+ size: (await getInfoAsync(path, {size: true})).size ?? 0,
width: 4288,
height: 2848,
})
diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts
index d0a5fe0fd5..82dc34bf0e 100644
--- a/src/lib/sentry.ts
+++ b/src/lib/sentry.ts
@@ -4,9 +4,9 @@
*/
import {Platform} from 'react-native'
-import app from 'react-native-version-number'
import * as info from 'expo-updates'
import {init} from 'sentry-expo'
+import {nativeApplicationVersion, nativeBuildVersion} from 'expo-application'
/**
* Matches the build profile `channel` props in `eas.json`
@@ -21,7 +21,7 @@ const buildChannel = (info.channel || 'development') as
* - `dev`
* - `1.57.0`
*/
-const release = app.appVersion ?? 'dev'
+const release = nativeApplicationVersion ?? 'dev'
/**
* Examples:
@@ -33,7 +33,7 @@ const release = app.appVersion ?? 'dev'
* - `android.1.57.0.46`
*/
const dist = `${Platform.OS}.${release}${
- app.buildVersion ? `.${app.buildVersion}` : ''
+ nativeBuildVersion ? `.${nativeBuildVersion}` : ''
}`
init({
diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts
index b294d74649..2795732d5a 100644
--- a/src/lib/sharing.ts
+++ b/src/lib/sharing.ts
@@ -1,8 +1,8 @@
import {isIOS, isAndroid} from 'platform/detection'
-// import * as Sharing from 'expo-sharing'
-import Clipboard from '@react-native-clipboard/clipboard'
-import * as Toast from '../view/com/util/Toast'
import {Share} from 'react-native'
+import {setStringAsync} from 'expo-clipboard'
+// import * as Sharing from 'expo-sharing'
+import * as Toast from '../view/com/util/Toast'
/**
* This function shares a URL using the native Share API if available, or copies it to the clipboard
@@ -18,7 +18,7 @@ export async function shareUrl(url: string) {
} else {
// React Native Share is not supported by web. Web Share API
// has increasing but not full support, so default to clipboard
- Clipboard.setString(url)
+ setStringAsync(url)
Toast.show('Copied to clipboard')
}
}
diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx
index dec53d2edb..e754f10c5d 100644
--- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx
+++ b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx
@@ -1,6 +1,6 @@
import React from 'react'
import {View} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {Image} from 'expo-image'
import {useLingui} from '@lingui/react'
import {msg} from '@lingui/macro'
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx
index 2855d4232c..0586c8a483 100644
--- a/src/view/com/composer/Composer.tsx
+++ b/src/view/com/composer/Composer.tsx
@@ -13,7 +13,7 @@ import {
View,
} from 'react-native'
import {useSafeAreaInsets} from 'react-native-safe-area-context'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {RichText} from '@atproto/api'
import {useAnalytics} from 'lib/analytics/analytics'
diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx
index a8913dd54c..4efcdd5779 100644
--- a/src/view/com/modals/AddAppPasswords.tsx
+++ b/src/view/com/modals/AddAppPasswords.tsx
@@ -9,7 +9,7 @@ import {
FontAwesomeIcon,
FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome'
-import Clipboard from '@react-native-clipboard/clipboard'
+import {setStringAsync} from 'expo-clipboard'
import * as Toast from '../util/Toast'
import {logger} from '#/logger'
import {Trans, msg} from '@lingui/macro'
@@ -72,7 +72,7 @@ export function Component({}: {}) {
const onCopy = React.useCallback(() => {
if (appPassword) {
- Clipboard.setString(appPassword)
+ setStringAsync(appPassword)
Toast.show(_(msg`Copied to clipboard`))
setWasCopied(true)
}
diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx
index 17ce05cda8..6fcf8005ec 100644
--- a/src/view/com/modals/AltImage.tsx
+++ b/src/view/com/modals/AltImage.tsx
@@ -17,7 +17,7 @@ import {MAX_ALT_TEXT} from 'lib/constants'
import {useTheme} from 'lib/ThemeContext'
import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible'
import {Text} from '../util/text/Text'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {isWeb} from 'platform/detection'
import {ImageModel} from 'state/models/media/image'
import {useLingui} from '@lingui/react'
diff --git a/src/view/com/modals/ChangeHandle.tsx b/src/view/com/modals/ChangeHandle.tsx
index a43c30c29c..5b6831b48b 100644
--- a/src/view/com/modals/ChangeHandle.tsx
+++ b/src/view/com/modals/ChangeHandle.tsx
@@ -1,5 +1,5 @@
import React, {useState} from 'react'
-import Clipboard from '@react-native-clipboard/clipboard'
+import {setStringAsync} from 'expo-clipboard'
import {ComAtprotoServerDescribeServer} from '@atproto/api'
import * as Toast from '../util/Toast'
import {
@@ -321,9 +321,7 @@ function CustomHandleForm({
// events
// =
const onPressCopy = React.useCallback(() => {
- Clipboard.setString(
- isDNSForm ? `did=${currentAccount.did}` : currentAccount.did,
- )
+ setStringAsync(isDNSForm ? `did=${currentAccount.did}` : currentAccount.did)
Toast.show('Copied to clipboard')
}, [currentAccount, isDNSForm])
const onChangeHandle = React.useCallback(
diff --git a/src/view/com/modals/ContentFilteringSettings.tsx b/src/view/com/modals/ContentFilteringSettings.tsx
index 328d23dc29..1e06f93fdb 100644
--- a/src/view/com/modals/ContentFilteringSettings.tsx
+++ b/src/view/com/modals/ContentFilteringSettings.tsx
@@ -1,7 +1,7 @@
import React from 'react'
import {LabelPreference} from '@atproto/api'
import {StyleSheet, Pressable, View, Linking} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {ScrollView} from './util'
import {s, colors, gradients} from 'lib/styles'
import {Text} from '../util/text/Text'
diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx
index 0e11fcffd5..b466c1fdd6 100644
--- a/src/view/com/modals/CreateOrEditList.tsx
+++ b/src/view/com/modals/CreateOrEditList.tsx
@@ -13,7 +13,7 @@ import {
AppBskyRichtextFacet,
RichText as RichTextAPI,
} from '@atproto/api'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {Image as RNImage} from 'react-native-image-crop-picker'
import {Text} from '../util/text/Text'
import {ErrorMessage} from '../util/error/ErrorMessage'
diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx
index 40d78cfe0c..a0bbdef60f 100644
--- a/src/view/com/modals/DeleteAccount.tsx
+++ b/src/view/com/modals/DeleteAccount.tsx
@@ -7,7 +7,7 @@ import {
View,
} from 'react-native'
import {TextInput, ScrollView} from './util'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import * as Toast from '../util/Toast'
import {Text} from '../util/text/Text'
import {s, colors, gradients} from 'lib/styles'
diff --git a/src/view/com/modals/EditImage.tsx b/src/view/com/modals/EditImage.tsx
index 3b35ffee21..b83562b939 100644
--- a/src/view/com/modals/EditImage.tsx
+++ b/src/view/com/modals/EditImage.tsx
@@ -5,7 +5,7 @@ import {useWindowDimensions} from 'react-native'
import {gradients, s} from 'lib/styles'
import {useTheme} from 'lib/ThemeContext'
import {Text} from '../util/text/Text'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
import ImageEditor, {Position} from 'react-avatar-editor'
import {TextInput} from './util'
diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx
index 097b7b0d1b..1542e5a00c 100644
--- a/src/view/com/modals/EditProfile.tsx
+++ b/src/view/com/modals/EditProfile.tsx
@@ -9,7 +9,7 @@ import {
TouchableOpacity,
View,
} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {Image as RNImage} from 'react-native-image-crop-picker'
import {AppBskyActorDefs} from '@atproto/api'
import {Text} from '../util/text/Text'
@@ -125,6 +125,7 @@ export function Component({
newUserAvatar,
newUserBanner,
})
+
Toast.show(_(msg`Profile updated`))
onUpdate?.()
closeModal()
diff --git a/src/view/com/modals/EmbedConsent.tsx b/src/view/com/modals/EmbedConsent.tsx
index 04104c52e1..5a09da9931 100644
--- a/src/view/com/modals/EmbedConsent.tsx
+++ b/src/view/com/modals/EmbedConsent.tsx
@@ -1,6 +1,6 @@
import React from 'react'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {s, colors, gradients} from 'lib/styles'
import {Text} from '../util/text/Text'
import {ScrollView} from './util'
diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx
index c0318df015..4f3bc5ce01 100644
--- a/src/view/com/modals/InviteCodes.tsx
+++ b/src/view/com/modals/InviteCodes.tsx
@@ -10,7 +10,7 @@ import {
FontAwesomeIcon,
FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome'
-import Clipboard from '@react-native-clipboard/clipboard'
+import {setStringAsync} from 'expo-clipboard'
import {Text} from '../util/text/Text'
import {Button} from '../util/forms/Button'
import * as Toast from '../util/Toast'
@@ -148,7 +148,7 @@ function InviteCode({
const uses = invite.uses
const onPress = React.useCallback(() => {
- Clipboard.setString(invite.code)
+ setStringAsync(invite.code)
Toast.show(_(msg`Copied to clipboard`))
setInviteCopied(invite.code)
}, [setInviteCopied, invite, _])
diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx
index 8da91c75cf..8712a5019d 100644
--- a/src/view/com/modals/Modal.tsx
+++ b/src/view/com/modals/Modal.tsx
@@ -1,7 +1,7 @@
import React, {useRef, useEffect} from 'react'
import {StyleSheet} from 'react-native'
import {SafeAreaView} from 'react-native-safe-area-context'
-import BottomSheet from '@gorhom/bottom-sheet'
+import BottomSheet from '@discord/bottom-sheet/src'
import {createCustomBackdrop} from '../util/BottomSheetCustomBackdrop'
import {usePalette} from 'lib/hooks/usePalette'
diff --git a/src/view/com/modals/Repost.tsx b/src/view/com/modals/Repost.tsx
index 6e4881adcd..561a121e2d 100644
--- a/src/view/com/modals/Repost.tsx
+++ b/src/view/com/modals/Repost.tsx
@@ -1,6 +1,6 @@
import React from 'react'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {s, colors, gradients} from 'lib/styles'
import {Text} from '../util/text/Text'
import {usePalette} from 'lib/hooks/usePalette'
diff --git a/src/view/com/modals/SwitchAccount.tsx b/src/view/com/modals/SwitchAccount.tsx
index c034c4b528..a24ac37bb9 100644
--- a/src/view/com/modals/SwitchAccount.tsx
+++ b/src/view/com/modals/SwitchAccount.tsx
@@ -14,7 +14,7 @@ import {UserAvatar} from '../util/UserAvatar'
import {AccountDropdownBtn} from '../util/AccountDropdownBtn'
import {Link} from '../util/Link'
import {makeProfileLink} from 'lib/routes/links'
-import {BottomSheetScrollView} from '@gorhom/bottom-sheet'
+import {BottomSheetScrollView} from '@discord/bottom-sheet/src'
import {Haptics} from 'lib/haptics'
import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
diff --git a/src/view/com/modals/Waitlist.tsx b/src/view/com/modals/Waitlist.tsx
index 263dd27a2f..b0df189836 100644
--- a/src/view/com/modals/Waitlist.tsx
+++ b/src/view/com/modals/Waitlist.tsx
@@ -10,7 +10,7 @@ import {
FontAwesomeIcon,
FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {Text} from '../util/text/Text'
import {s, gradients} from 'lib/styles'
import {usePalette} from 'lib/hooks/usePalette'
diff --git a/src/view/com/modals/crop-image/CropImage.web.tsx b/src/view/com/modals/crop-image/CropImage.web.tsx
index 6f094a1fdf..3fd198d25d 100644
--- a/src/view/com/modals/crop-image/CropImage.web.tsx
+++ b/src/view/com/modals/crop-image/CropImage.web.tsx
@@ -2,7 +2,7 @@ import React from 'react'
import {StyleSheet, TouchableOpacity, View} from 'react-native'
import ImageEditor from 'react-avatar-editor'
import {Slider} from '@miblanchard/react-native-slider'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {Text} from 'view/com/util/text/Text'
import {Dimensions} from 'lib/media/types'
import {getDataUriSize} from 'lib/media/util'
diff --git a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx
index 91e11a19ca..62d7cdf5e3 100644
--- a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx
+++ b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx
@@ -1,6 +1,6 @@
import React from 'react'
import {StyleSheet, Text, View, Pressable} from 'react-native'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {s, colors, gradients} from 'lib/styles'
import {usePalette} from 'lib/hooks/usePalette'
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
diff --git a/src/view/com/modals/report/SendReportButton.tsx b/src/view/com/modals/report/SendReportButton.tsx
index 40c239bffe..74d2950162 100644
--- a/src/view/com/modals/report/SendReportButton.tsx
+++ b/src/view/com/modals/report/SendReportButton.tsx
@@ -1,5 +1,5 @@
import React from 'react'
-import LinearGradient from 'react-native-linear-gradient'
+import {LinearGradient} from 'expo-linear-gradient'
import {
ActivityIndicator,
StyleSheet,
diff --git a/src/view/com/modals/util.tsx b/src/view/com/modals/util.tsx
index 06f394ec49..c047a0523c 100644
--- a/src/view/com/modals/util.tsx
+++ b/src/view/com/modals/util.tsx
@@ -1,4 +1,4 @@
export {
BottomSheetScrollView as ScrollView,
BottomSheetTextInput as TextInput,
-} from '@gorhom/bottom-sheet'
+} from '@discord/bottom-sheet/src'
diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx
index aa110682a2..2440061f3b 100644
--- a/src/view/com/pager/PagerWithHeader.tsx
+++ b/src/view/com/pager/PagerWithHeader.tsx
@@ -112,6 +112,8 @@ export const PagerWithHeader = React.forwardRef(
(scrollRef: AnimatedRef | null, atIndex: number) => {
scrollRefs.modify(refs => {
'worklet'
+ // TODO FABRIC
+ // @ts-ignore
refs[atIndex] = scrollRef
return refs
})
diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx
index 3e479d7b53..4116839da7 100644
--- a/src/view/com/profile/ProfileHeader.tsx
+++ b/src/view/com/profile/ProfileHeader.tsx
@@ -18,7 +18,6 @@ import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {NavigationProp} from 'lib/routes/types'
import {isNative, isWeb} from 'platform/detection'
-import {BlurView} from '../util/BlurView'
import * as Toast from '../util/Toast'
import {LoadingPlaceholder} from '../util/LoadingPlaceholder'
import {Text} from '../util/text/Text'
@@ -649,9 +648,7 @@ let ProfileHeader = ({
accessibilityLabel={_(msg`Back`)}
accessibilityHint="">
-
-
-
+
)}
diff --git a/src/view/com/util/BlurView.android.tsx b/src/view/com/util/BlurView.android.tsx
deleted file mode 100644
index eee1d9d867..0000000000
--- a/src/view/com/util/BlurView.android.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import React from 'react'
-import {StyleSheet, View, ViewProps} from 'react-native'
-import {addStyle} from 'lib/styles'
-
-type BlurViewProps = ViewProps & {
- blurType?: 'dark' | 'light'
- blurAmount?: number
-}
-
-export const BlurView = ({
- style,
- blurType,
- ...props
-}: React.PropsWithChildren) => {
- if (blurType === 'dark') {
- style = addStyle(style, styles.dark)
- } else {
- style = addStyle(style, styles.light)
- }
- return
-}
-
-const styles = StyleSheet.create({
- dark: {
- backgroundColor: '#0008',
- },
- light: {
- backgroundColor: '#fff8',
- },
-})
diff --git a/src/view/com/util/BlurView.tsx b/src/view/com/util/BlurView.tsx
deleted file mode 100644
index 66b41cc26c..0000000000
--- a/src/view/com/util/BlurView.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export {BlurView} from '@react-native-community/blur'
diff --git a/src/view/com/util/BlurView.web.tsx b/src/view/com/util/BlurView.web.tsx
deleted file mode 100644
index d1fb4665fb..0000000000
--- a/src/view/com/util/BlurView.web.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import React from 'react'
-import {StyleSheet, View, ViewProps} from 'react-native'
-import {addStyle} from 'lib/styles'
-
-type BlurViewProps = ViewProps & {
- blurType?: 'dark' | 'light'
- blurAmount?: number
-}
-
-export const BlurView = ({
- style,
- blurType,
- blurAmount,
- ...props
-}: React.PropsWithChildren) => {
- // @ts-ignore using an RNW-specific attribute here -prf
- let blur = `blur(${blurAmount || 10}px`
- // @ts-ignore using an RNW-specific attribute here -prf
- style = addStyle(style, {backdropFilter: blur, WebkitBackdropFilter: blur})
- if (blurType === 'dark') {
- style = addStyle(style, styles.dark)
- } else {
- style = addStyle(style, styles.light)
- }
- return
-}
-
-const styles = StyleSheet.create({
- dark: {
- backgroundColor: '#0008',
- },
- light: {
- backgroundColor: '#fff8',
- },
-})
diff --git a/src/view/com/util/BottomSheetCustomBackdrop.tsx b/src/view/com/util/BottomSheetCustomBackdrop.tsx
index ed5a2f1654..01c92049be 100644
--- a/src/view/com/util/BottomSheetCustomBackdrop.tsx
+++ b/src/view/com/util/BottomSheetCustomBackdrop.tsx
@@ -1,6 +1,6 @@
import React, {useMemo} from 'react'
import {TouchableWithoutFeedback} from 'react-native'
-import {BottomSheetBackdropProps} from '@gorhom/bottom-sheet'
+import {BottomSheetBackdropProps} from '@discord/bottom-sheet/src'
import Animated, {
Extrapolate,
interpolate,
diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx
index db3b9de0d8..1ae485eb8d 100644
--- a/src/view/com/util/Views.web.tsx
+++ b/src/view/com/util/Views.web.tsx
@@ -104,8 +104,10 @@ export const FlatList_INTERNAL = React.forwardRef(function FlatListImpl(
props.dataSet.stableGutters = '1'
}
}
+ // TODO FABRIC
return (
{
+ (date: Date) => {
setShow(false)
- if (date) {
- props.onChange(date)
- }
+ props.onChange(date)
},
[setShow, props],
)
@@ -56,6 +52,10 @@ export function DateInput(props: Props) {
setShow(true)
}, [setShow])
+ const onCancel = useCallback(() => {
+ setShow(false)
+ }, [])
+
return (
{isAndroid && (
@@ -80,15 +80,16 @@ export function DateInput(props: Props) {
)}
{(isIOS || show) && (
- {
const str = richTextToString(richText, true)
- Clipboard.setString(str)
+ setStringAsync(str)
Toast.show(_(msg`Copied to clipboard`))
}, [_, richText])
diff --git a/src/view/com/util/text/Text.tsx b/src/view/com/util/text/Text.tsx
index ccb51bfca6..e9fa537198 100644
--- a/src/view/com/util/text/Text.tsx
+++ b/src/view/com/util/text/Text.tsx
@@ -3,7 +3,7 @@ import {Text as RNText, TextProps} from 'react-native'
import {s, lh} from 'lib/styles'
import {useTheme, TypographyVariant} from 'lib/ThemeContext'
import {isIOS} from 'platform/detection'
-import {UITextView} from 'react-native-ui-text-view'
+import {UITextView} from 'react-native-uitextview'
export type CustomTextProps = TextProps & {
type?: TypographyVariant
diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx
index 00b507a997..438025ff60 100644
--- a/src/view/screens/Settings/index.tsx
+++ b/src/view/screens/Settings/index.tsx
@@ -24,7 +24,7 @@ import {useAccountSwitcher} from 'lib/hooks/useAccountSwitcher'
import {useAnalytics} from 'lib/analytics/analytics'
import {NavigationProp} from 'lib/routes/types'
import {HandIcon, HashtagIcon} from 'lib/icons'
-import Clipboard from '@react-native-clipboard/clipboard'
+import {setStringAsync} from 'expo-clipboard'
import {makeProfileLink} from 'lib/routes/links'
import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile'
import {useModalControls} from '#/state/modals'
@@ -235,7 +235,7 @@ export function SettingsScreen({}: Props) {
}, [onboardingDispatch, _])
const onPressBuildInfo = React.useCallback(() => {
- Clipboard.setString(
+ setStringAsync(
`Build version: ${AppInfo.appVersion}; Platform: ${Platform.OS}`,
)
Toast.show(_(msg`Copied build version to clipboard`))
diff --git a/yarn.lock b/yarn.lock
index ceb712ce27..e315f580b5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2576,11 +2576,6 @@
"@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
-"@bam.tech/react-native-image-resizer@^3.0.4":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@bam.tech/react-native-image-resizer/-/react-native-image-resizer-3.0.5.tgz#6661ba020de156268f73bdc92fbb93ef86f88a13"
- integrity sha512-u5QGUQGGVZiVCJ786k9/kd7pPRZ6eYfJCYO18myVCH8FbVI7J8b5GT2Svjj2x808DlWeqfaZOOzxPqo27XYvrQ==
-
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -2808,6 +2803,13 @@
pino "^8.11.0"
pino-http "^8.3.3"
+"@discord/bottom-sheet@https://github.com/bluesky-social/react-native-bottom-sheet.git#discord-fork-4.6.1":
+ version "4.6.1"
+ resolved "https://github.com/bluesky-social/react-native-bottom-sheet.git#54dc2e0e318b0524a2d2d8fb817f6c48101bb0b1"
+ dependencies:
+ "@gorhom/portal" "1.0.14"
+ invariant "^2.2.4"
+
"@discoveryjs/json-ext@^0.5.0":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
@@ -2982,10 +2984,10 @@
mv "~2"
safe-json-stringify "~1"
-"@expo/cli@0.16.7":
- version "0.16.7"
- resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.16.7.tgz#61c623d8869973bed96e9876a0ec52f3578dd76e"
- integrity sha512-e2zeT2/hs2KyV/aXl/1z5kDSPgCbqPgb7S2+211a+6178eqUr6JNn6TTIFdLNe9Q7/aJaLPFgO5KJhOkg9QgJw==
+"@expo/cli@0.17.6":
+ version "0.17.6"
+ resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.6.tgz#dac94f99f297601b1996daa283f91f236916309a"
+ integrity sha512-vpwQOyhkqQ5Ao96AGaFntRf6dX7h7/e9T7oKZ5KfJiaLRgfmNa/yHFu5cpXG76T2R7Q6aiU4ik0KU3P7nFMzEw==
dependencies:
"@babel/runtime" "^7.20.0"
"@expo/code-signing-certificates" "0.0.5"
@@ -2999,9 +3001,8 @@
"@expo/osascript" "^2.0.31"
"@expo/package-manager" "^1.1.1"
"@expo/plist" "^0.1.0"
- "@expo/prebuild-config" "6.7.3"
+ "@expo/prebuild-config" "6.7.4"
"@expo/rudder-sdk-node" "1.1.1"
- "@expo/server" "^0.3.0"
"@expo/spawn-async" "1.5.0"
"@expo/xcpretty" "^4.3.0"
"@react-native/dev-middleware" "^0.73.6"
@@ -3040,6 +3041,7 @@
npm-package-arg "^7.0.0"
open "^8.3.0"
ora "3.4.0"
+ picomatch "^3.0.1"
pretty-bytes "5.6.0"
progress "2.0.3"
prompts "^2.3.2"
@@ -3052,6 +3054,8 @@
semver "^7.5.3"
send "^0.18.0"
slugify "^1.3.4"
+ source-map-support "~0.5.21"
+ stacktrace-parser "^0.1.10"
structured-headers "^0.4.1"
tar "^6.0.5"
temp-dir "^2.0.0"
@@ -3092,10 +3096,10 @@
xcode "^3.0.1"
xml2js "0.6.0"
-"@expo/config-plugins@7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.3.tgz#f507d4b94ce11fad0bac8ba269ea95e7d1051b83"
- integrity sha512-ix0pNLZgR29mNI5pcNRjuEClvioVjWCNWDiAxgZd1BXEVn7d2bqztDKQj03KU88e0KM7zKt9AbmIqn5aANZ8pg==
+"@expo/config-plugins@7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.4.tgz#533b5d536c1dc8b5544d64878b51bda28f2e1a1f"
+ integrity sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==
dependencies:
"@expo/config-types" "^50.0.0-alpha.1"
"@expo/fingerprint" "^0.6.0"
@@ -3143,10 +3147,10 @@
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-50.0.0.tgz#b534d3ec997ec60f8af24f6ad56244c8afc71a0b"
integrity sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw==
-"@expo/config@8.5.3":
- version "8.5.3"
- resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.3.tgz#e1ce353e658f6bfefc8a1888532672c0f9f48894"
- integrity sha512-wMX96aLo7AVl7voEkGXwEI2hPoMMHgxyq0CMC51I2jOnYHqB4HkG71YeXBPZR3zLnY33CNjVT+hF5CAPfiiliw==
+"@expo/config@8.5.4":
+ version "8.5.4"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.4.tgz#bb5eb06caa36e4e35dc8c7647fae63e147b830ca"
+ integrity sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==
dependencies:
"@babel/code-frame" "~7.10.4"
"@expo/config-plugins" "~7.8.2"
@@ -3158,7 +3162,7 @@
resolve-from "^5.0.0"
semver "7.5.3"
slugify "^1.3.4"
- sucrase "^3.20.0"
+ sucrase "3.34.0"
"@expo/config@~8.5.0":
version "8.5.0"
@@ -3277,7 +3281,33 @@
json5 "^2.2.2"
write-file-atomic "^2.3.0"
-"@expo/metro-config@0.17.1", "@expo/metro-config@~0.17.0":
+"@expo/metro-config@0.17.5":
+ version "0.17.5"
+ resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.5.tgz#cd135147f0cb938ec33b40751688827a74203e4b"
+ integrity sha512-2YUebeIwr6gFxcIRSVAjWK5D8YSaXBzQoRRl3muJWsH8AC8a+T60xbA3cGhsEICD2zKS5zwnL2yobgs41Ur7nQ==
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "@babel/generator" "^7.20.5"
+ "@babel/parser" "^7.20.0"
+ "@babel/types" "^7.20.0"
+ "@expo/config" "~8.5.0"
+ "@expo/env" "~0.2.0"
+ "@expo/json-file" "~8.3.0"
+ "@expo/spawn-async" "^1.7.2"
+ babel-preset-fbjs "^3.4.0"
+ chalk "^4.1.0"
+ debug "^4.3.2"
+ find-yarn-workspace-root "~2.0.0"
+ fs-extra "^9.1.0"
+ getenv "^1.0.0"
+ glob "^7.2.3"
+ jsc-safe-url "^0.2.4"
+ lightningcss "~1.19.0"
+ postcss "~8.4.32"
+ resolve-from "^5.0.0"
+ sucrase "3.34.0"
+
+"@expo/metro-config@~0.17.0":
version "0.17.1"
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.1.tgz#8e1cd7b9f63ea84cc18696807cf23560d010e5d8"
integrity sha512-ZOE0Jx0YTZyPpsGiiE09orGEFgZ5sMrOOFSgOe8zrns925g/uCuEbowyNq38IfQt//3xSl5mW3z0l4rxgi7hHQ==
@@ -3353,10 +3383,10 @@
semver "7.5.3"
xml2js "0.6.0"
-"@expo/prebuild-config@6.7.3":
- version "6.7.3"
- resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.3.tgz#8444c1630bd92931c2d1a510791535b7282d8fa6"
- integrity sha512-jZIHzlnvdg4Gnln06XR9tvirL3hSp/Jh48COhLKs51vb3THCWumUytZBS4DSMdvGwf8btnaB01Zg00xQhSDBsA==
+"@expo/prebuild-config@6.7.4":
+ version "6.7.4"
+ resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz#b3e4c8545d7a101bf1fc263c5b7290abc4635e69"
+ integrity sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==
dependencies:
"@expo/config" "~8.5.0"
"@expo/config-plugins" "~7.8.0"
@@ -3387,16 +3417,6 @@
resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c"
integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==
-"@expo/server@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@expo/server/-/server-0.3.0.tgz#b16767999382b0f5ea88d86609a5ceabcff1388c"
- integrity sha512-5oIqedpLVMnf1LGI9Xd5OOGmK3DjgH9VpuqVN4e/6DwLT05RZJMyI7ylfG6QSy1e44yOgjv242tLyg0e/zdZ+A==
- dependencies:
- "@remix-run/node" "^1.19.3"
- abort-controller "^3.0.0"
- debug "^4.3.4"
- source-map-support "~0.5.21"
-
"@expo/spawn-async@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395"
@@ -3535,14 +3555,6 @@
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
-"@gorhom/bottom-sheet@^4.5.1":
- version "4.5.1"
- resolved "https://registry.yarnpkg.com/@gorhom/bottom-sheet/-/bottom-sheet-4.5.1.tgz#1ac4b234a80e7dff263f0b7ac207f92e41562849"
- integrity sha512-4Qy6hzvN32fXu2hDxDXOIS0IBGBT6huST7J7+K1V5bXemZ08KIx5ZffyLgwhCUl+CnyeG2KG6tqk6iYLkIwi7Q==
- dependencies:
- "@gorhom/portal" "1.0.14"
- invariant "^2.2.4"
-
"@gorhom/portal@1.0.14":
version "1.0.14"
resolved "https://registry.yarnpkg.com/@gorhom/portal/-/portal-1.0.14.tgz#1953edb76aaba80fb24021dc774550194a18e111"
@@ -4650,13 +4662,6 @@
dependencies:
"@babel/runtime" "^7.13.10"
-"@react-native-async-storage/async-storage@1.21.0":
- version "1.21.0"
- resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz#d7e370028e228ab84637016ceeb495878b7a44c8"
- integrity sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==
- dependencies:
- merge-options "^3.0.4"
-
"@react-native-async-storage/async-storage@^1.15.15":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.19.2.tgz#44f0af5927a04436b3f67aae67f028b888ff452c"
@@ -4664,65 +4669,56 @@
dependencies:
merge-options "^3.0.4"
-"@react-native-camera-roll/camera-roll@^5.2.2":
- version "5.7.2"
- resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.7.2.tgz#db11525ae26c8a61630c424aebd323a7c784a921"
- integrity sha512-s8VAUG1Kvi+tEJkLHObmOJdXAL/uclnXJ/IdnJtx2fCKiWA3Ho0ln9gDQqCYHHHHu+sXk7wovsH/I2/AYy0brg==
-
-"@react-native-clipboard/clipboard@^1.10.0":
- version "1.11.2"
- resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.11.2.tgz#e826d0336b34e67294aaffa6878308900bc7d197"
- integrity sha512-bHyZVW62TuleiZsXNHS1Pv16fWc0fh8O9WvBzl4h2fykqZRW9a+Pv/RGTH56E3X2PqzHP38K5go8zmCZUoIsoQ==
-
-"@react-native-community/blur@^4.3.0":
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.3.2.tgz#185a2c7dd03ba168cc95069bc4742e9505fd6c6c"
- integrity sha512-0ID+pyZKdC4RdgC7HePxUQ6JmsbNrgz03u+6SgqYpmBoK/rE+7JffqIw7IEsfoKitLEcRNLGekIBsfwCqiEkew==
-
-"@react-native-community/cli-clean@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b"
- integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg==
+"@react-native-async-storage/async-storage@^1.22.3":
+ version "1.22.3"
+ resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.22.3.tgz#ad490236a9eda8ac68cffc12c738f20b1815464e"
+ integrity sha512-Ov3wjuqxHd62tLYfgTjxj77YRYWra3A4Fi8uICIPcePgNO2WkS5B0ADXt9e/JLzSCNqVlXCq4Fir/gHmZTU9ww==
dependencies:
- "@react-native-community/cli-tools" "12.3.0"
+ merge-options "^3.0.4"
+
+"@react-native-community/cli-clean@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.6.tgz#e8a7910bebc97266fd5068649013a03958021fc4"
+ integrity sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==
+ dependencies:
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
execa "^5.0.0"
-"@react-native-community/cli-config@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e"
- integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ==
+"@react-native-community/cli-config@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.6.tgz#5f0be68270217908a739c32e3155a0e354773251"
+ integrity sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==
dependencies:
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
cosmiconfig "^5.1.0"
deepmerge "^4.3.0"
glob "^7.1.3"
joi "^17.2.1"
-"@react-native-community/cli-debugger-ui@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e"
- integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ==
+"@react-native-community/cli-debugger-ui@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.6.tgz#418027a1ae76850079684d309a732eb378c7f690"
+ integrity sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-doctor@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af"
- integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA==
+"@react-native-community/cli-doctor@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.6.tgz#f68b51bbc6554ff4837269d98e9e405044e6f1b9"
+ integrity sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==
dependencies:
- "@react-native-community/cli-config" "12.3.0"
- "@react-native-community/cli-platform-android" "12.3.0"
- "@react-native-community/cli-platform-ios" "12.3.0"
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-config" "12.3.6"
+ "@react-native-community/cli-platform-android" "12.3.6"
+ "@react-native-community/cli-platform-ios" "12.3.6"
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
command-exists "^1.2.8"
deepmerge "^4.3.0"
envinfo "^7.10.0"
execa "^5.0.0"
hermes-profile-transformer "^0.0.6"
- ip "^1.1.5"
node-stream-zip "^1.9.1"
ora "^5.4.1"
semver "^7.5.2"
@@ -4730,53 +4726,52 @@
wcwidth "^1.0.1"
yaml "^2.2.1"
-"@react-native-community/cli-hermes@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed"
- integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg==
+"@react-native-community/cli-hermes@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.6.tgz#5ac2c9ee26c69e1ce6b5047ba0f399984a6dea16"
+ integrity sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==
dependencies:
- "@react-native-community/cli-platform-android" "12.3.0"
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-platform-android" "12.3.6"
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
hermes-profile-transformer "^0.0.6"
- ip "^1.1.5"
-"@react-native-community/cli-platform-android@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6"
- integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw==
+"@react-native-community/cli-platform-android@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.6.tgz#e1103692c659ff0b72ee6f00b7c72578db7376ec"
+ integrity sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==
dependencies:
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
execa "^5.0.0"
fast-xml-parser "^4.2.4"
glob "^7.1.3"
logkitty "^0.7.1"
-"@react-native-community/cli-platform-ios@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5"
- integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg==
+"@react-native-community/cli-platform-ios@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.6.tgz#e7decb5ee764f5fdc7a6ad1ba5e15de8929d54a5"
+ integrity sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==
dependencies:
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-tools" "12.3.6"
chalk "^4.1.2"
execa "^5.0.0"
fast-xml-parser "^4.0.12"
glob "^7.1.3"
ora "^5.4.1"
-"@react-native-community/cli-plugin-metro@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834"
- integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA==
+"@react-native-community/cli-plugin-metro@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.6.tgz#ae62de18e998478db60a3fe10dc746162c272dbd"
+ integrity sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==
-"@react-native-community/cli-server-api@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3"
- integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw==
+"@react-native-community/cli-server-api@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.6.tgz#cd78122954a02d22c7821c365938635b51ddd1bd"
+ integrity sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==
dependencies:
- "@react-native-community/cli-debugger-ui" "12.3.0"
- "@react-native-community/cli-tools" "12.3.0"
+ "@react-native-community/cli-debugger-ui" "12.3.6"
+ "@react-native-community/cli-tools" "12.3.6"
compression "^1.7.1"
connect "^3.6.5"
errorhandler "^1.5.1"
@@ -4785,10 +4780,10 @@
serve-static "^1.13.1"
ws "^7.5.1"
-"@react-native-community/cli-tools@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6"
- integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q==
+"@react-native-community/cli-tools@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.6.tgz#c39965982347635dfaf1daa7b3c0133b3bd45e64"
+ integrity sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==
dependencies:
appdirsjs "^1.2.4"
chalk "^4.1.2"
@@ -4801,27 +4796,27 @@
shell-quote "^1.7.3"
sudo-prompt "^9.0.0"
-"@react-native-community/cli-types@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f"
- integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw==
+"@react-native-community/cli-types@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.6.tgz#239de348800fe1ffba3eb1fe0edbeb9306981e57"
+ integrity sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==
dependencies:
joi "^17.2.1"
-"@react-native-community/cli@12.3.0":
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1"
- integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg==
+"@react-native-community/cli@12.3.6":
+ version "12.3.6"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.6.tgz#7a323b78725b959bb8a31cca1145918263ff3c8d"
+ integrity sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==
dependencies:
- "@react-native-community/cli-clean" "12.3.0"
- "@react-native-community/cli-config" "12.3.0"
- "@react-native-community/cli-debugger-ui" "12.3.0"
- "@react-native-community/cli-doctor" "12.3.0"
- "@react-native-community/cli-hermes" "12.3.0"
- "@react-native-community/cli-plugin-metro" "12.3.0"
- "@react-native-community/cli-server-api" "12.3.0"
- "@react-native-community/cli-tools" "12.3.0"
- "@react-native-community/cli-types" "12.3.0"
+ "@react-native-community/cli-clean" "12.3.6"
+ "@react-native-community/cli-config" "12.3.6"
+ "@react-native-community/cli-debugger-ui" "12.3.6"
+ "@react-native-community/cli-doctor" "12.3.6"
+ "@react-native-community/cli-hermes" "12.3.6"
+ "@react-native-community/cli-plugin-metro" "12.3.6"
+ "@react-native-community/cli-server-api" "12.3.6"
+ "@react-native-community/cli-tools" "12.3.6"
+ "@react-native-community/cli-types" "12.3.6"
chalk "^4.1.2"
commander "^9.4.1"
deepmerge "^4.3.0"
@@ -4832,13 +4827,6 @@
prompts "^2.4.2"
semver "^7.5.2"
-"@react-native-community/datetimepicker@7.6.1":
- version "7.6.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-7.6.1.tgz#98bdee01e3df490526ee1125e438c2030becac1f"
- integrity sha512-g66Q2Kd9Uw3eRL7kkrTsGhi+eXxNoPDRFYH6z78sZQuYjPkUQgJDDMUYgBmaBsQx/fKMtemPrCj1ulGmyi0OSw==
- dependencies:
- invariant "^2.2.4"
-
"@react-native-community/eslint-config@^3.0.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz#42f677d5fff385bccf1be1d3b8faa8c086cf998d"
@@ -4878,11 +4866,6 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.6.1.tgz#3b20ddd1385fab0487db103dc6519570f8892e6d"
integrity sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg==
-"@react-native-picker/picker@^1.8.3":
- version "1.16.8"
- resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-1.16.8.tgz#2126ca54d4a5a3e9ea5e3f39ad1e6643f8e4b3d4"
- integrity sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ==
-
"@react-native/assets-registry@0.73.1", "@react-native/assets-registry@~0.73.1":
version "0.73.1"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85"
@@ -4895,17 +4878,17 @@
dependencies:
"@react-native/codegen" "*"
-"@react-native/babel-plugin-codegen@0.73.2":
- version "0.73.2"
- resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz#447656cde437b71dc3ef0af3f8a5b215653d5d07"
- integrity sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw==
+"@react-native/babel-plugin-codegen@0.73.4":
+ version "0.73.4"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz#8a2037d5585b41877611498ae66adbf1dddfec1b"
+ integrity sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==
dependencies:
- "@react-native/codegen" "0.73.2"
+ "@react-native/codegen" "0.73.3"
-"@react-native/babel-preset@0.73.19":
- version "0.73.19"
- resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691"
- integrity sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg==
+"@react-native/babel-preset@0.73.21":
+ version "0.73.21"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.21.tgz#174c16493fa4e311b2f5f0c58d4f3c6a5a68bbea"
+ integrity sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==
dependencies:
"@babel/core" "^7.20.0"
"@babel/plugin-proposal-async-generator-functions" "^7.0.0"
@@ -4946,7 +4929,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.73.2"
+ "@react-native/babel-plugin-codegen" "0.73.4"
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
@@ -4998,7 +4981,7 @@
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
-"@react-native/codegen@*", "@react-native/codegen@0.73.2":
+"@react-native/codegen@*":
version "0.73.2"
resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519"
integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ==
@@ -5011,15 +4994,28 @@
mkdirp "^0.5.1"
nullthrows "^1.1.1"
-"@react-native/community-cli-plugin@0.73.12":
- version "0.73.12"
- resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c"
- integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw==
+"@react-native/codegen@0.73.3":
+ version "0.73.3"
+ resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.3.tgz#cc984a8b17334d986cc600254a0d4b7fa7d68a94"
+ integrity sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==
dependencies:
- "@react-native-community/cli-server-api" "12.3.0"
- "@react-native-community/cli-tools" "12.3.0"
- "@react-native/dev-middleware" "0.73.7"
- "@react-native/metro-babel-transformer" "0.73.13"
+ "@babel/parser" "^7.20.0"
+ flow-parser "^0.206.0"
+ glob "^7.1.1"
+ invariant "^2.2.4"
+ jscodeshift "^0.14.0"
+ mkdirp "^0.5.1"
+ nullthrows "^1.1.1"
+
+"@react-native/community-cli-plugin@0.73.17":
+ version "0.73.17"
+ resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.17.tgz#37b381a8b503a3296eaa6727e0c52ea8835add28"
+ integrity sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==
+ dependencies:
+ "@react-native-community/cli-server-api" "12.3.6"
+ "@react-native-community/cli-tools" "12.3.6"
+ "@react-native/dev-middleware" "0.73.8"
+ "@react-native/metro-babel-transformer" "0.73.15"
chalk "^4.0.0"
execa "^5.1.1"
metro "^0.80.3"
@@ -5033,10 +5029,10 @@
resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz#033757614d2ada994c68a1deae78c1dd2ad33c2b"
integrity sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==
-"@react-native/dev-middleware@0.73.7":
- version "0.73.7"
- resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz#61d2bf08973d9a537fa3f2a42deeb13530d721ae"
- integrity sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==
+"@react-native/dev-middleware@0.73.8":
+ version "0.73.8"
+ resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.8.tgz#2e43722a00c7b8db753f747f40267cbad6caba4d"
+ integrity sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==
dependencies:
"@isaacs/ttlcache" "^1.4.1"
"@react-native/debugger-frontend" "0.73.3"
@@ -5048,6 +5044,7 @@
open "^7.0.3"
serve-static "^1.13.1"
temp-dir "^2.0.0"
+ ws "^6.2.2"
"@react-native/dev-middleware@^0.73.6":
version "0.73.6"
@@ -5075,13 +5072,13 @@
resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed"
integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==
-"@react-native/metro-babel-transformer@0.73.13":
- version "0.73.13"
- resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7"
- integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg==
+"@react-native/metro-babel-transformer@0.73.15":
+ version "0.73.15"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz#c516584dde62d65a46668074084359c03e6a50f1"
+ integrity sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==
dependencies:
"@babel/core" "^7.20.0"
- "@react-native/babel-preset" "0.73.19"
+ "@react-native/babel-preset" "0.73.21"
hermes-parser "0.15.0"
nullthrows "^1.1.1"
@@ -5199,81 +5196,6 @@
dependencies:
type-fest "^2.19.0"
-"@remix-run/node@^1.19.3":
- version "1.19.3"
- resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-1.19.3.tgz#d27e2f742fc45379525cb3fca466a883ca06d6c9"
- integrity sha512-z5qrVL65xLXIUpU4mkR4MKlMeKARLepgHAk4W5YY3IBXOreRqOGUC70POViYmY7x38c2Ia1NwqL80H+0h7jbMw==
- dependencies:
- "@remix-run/server-runtime" "1.19.3"
- "@remix-run/web-fetch" "^4.3.6"
- "@remix-run/web-file" "^3.0.3"
- "@remix-run/web-stream" "^1.0.4"
- "@web3-storage/multipart-parser" "^1.0.0"
- abort-controller "^3.0.0"
- cookie-signature "^1.1.0"
- source-map-support "^0.5.21"
- stream-slice "^0.1.2"
-
-"@remix-run/router@1.7.2":
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8"
- integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==
-
-"@remix-run/server-runtime@1.19.3":
- version "1.19.3"
- resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-1.19.3.tgz#206b55337c266c5bc254878f8ff3cd5677cc60fb"
- integrity sha512-KzQ+htUsKqpBgKE2tWo7kIIGy3MyHP58Io/itUPvV+weDjApwr9tQr9PZDPA3yAY6rAzLax7BU0NMSYCXWFY5A==
- dependencies:
- "@remix-run/router" "1.7.2"
- "@types/cookie" "^0.4.1"
- "@web3-storage/multipart-parser" "^1.0.0"
- cookie "^0.4.1"
- set-cookie-parser "^2.4.8"
- source-map "^0.7.3"
-
-"@remix-run/web-blob@^3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@remix-run/web-blob/-/web-blob-3.1.0.tgz#e0c669934c1eb6028960047e57a13ed38bbfb434"
- integrity sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==
- dependencies:
- "@remix-run/web-stream" "^1.1.0"
- web-encoding "1.1.5"
-
-"@remix-run/web-fetch@^4.3.6":
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz#ce7aedef72cc26e15060e8cf84674029f92809b6"
- integrity sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==
- dependencies:
- "@remix-run/web-blob" "^3.1.0"
- "@remix-run/web-file" "^3.1.0"
- "@remix-run/web-form-data" "^3.1.0"
- "@remix-run/web-stream" "^1.1.0"
- "@web3-storage/multipart-parser" "^1.0.0"
- abort-controller "^3.0.0"
- data-uri-to-buffer "^3.0.1"
- mrmime "^1.0.0"
-
-"@remix-run/web-file@^3.0.3", "@remix-run/web-file@^3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@remix-run/web-file/-/web-file-3.1.0.tgz#07219021a2910e90231bc30ca1ce693d0e9d3825"
- integrity sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==
- dependencies:
- "@remix-run/web-blob" "^3.1.0"
-
-"@remix-run/web-form-data@^3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz#47f9ad8ce8bf1c39ed83eab31e53967fe8e3df6a"
- integrity sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==
- dependencies:
- web-encoding "1.1.5"
-
-"@remix-run/web-stream@^1.0.4", "@remix-run/web-stream@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@remix-run/web-stream/-/web-stream-1.1.0.tgz#b93a8f806c2c22204930837c44d81fdedfde079f"
- integrity sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==
- dependencies:
- web-streams-polyfill "^3.1.1"
-
"@rollup/plugin-babel@^5.2.0":
version "5.3.1"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283"
@@ -5436,15 +5358,14 @@
"@sentry/utils" "7.52.0"
tslib "^1.9.3"
-"@sentry-internal/tracing@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.52.1.tgz#c98823afd2f9814466fa26f24a1a54fe63b27c24"
- integrity sha512-6N99rE+Ek0LgbqSzI/XpsKSLUyJjQ9nychViy+MP60p1x+hllukfTsDbNtUNrPlW0Bx+vqUrWKkAqmTFad94TQ==
+"@sentry-internal/tracing@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.81.1.tgz#1180365cd8a9e18cb0f92e1ea970161840ec0e2e"
+ integrity sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg==
dependencies:
- "@sentry/core" "7.52.1"
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
- tslib "^1.9.3"
+ "@sentry/core" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
"@sentry/browser@7.52.0":
version "7.52.0"
@@ -5458,17 +5379,51 @@
"@sentry/utils" "7.52.0"
tslib "^1.9.3"
-"@sentry/browser@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.52.1.tgz#f112ca4170bb5023f050bdcbcce5621b475a46eb"
- integrity sha512-HrCOfieX68t+Wj42VIkraLYwx8kN5311SdBkHccevWs2Y2dZU7R9iLbI87+nb5kpOPQ7jVWW7d6QI/yZmliYgQ==
+"@sentry/browser@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.81.1.tgz#5ee6ae3679ee80f444d2e8c5662430e7a734ae50"
+ integrity sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw==
dependencies:
- "@sentry-internal/tracing" "7.52.1"
- "@sentry/core" "7.52.1"
- "@sentry/replay" "7.52.1"
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
- tslib "^1.9.3"
+ "@sentry-internal/tracing" "7.81.1"
+ "@sentry/core" "7.81.1"
+ "@sentry/replay" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
+
+"@sentry/cli-darwin@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.25.2.tgz#9fd935aa0381acbf2e22aef23eddc90d6efc1d97"
+ integrity sha512-o1d5NnVUrc1dxDm56k7Co8tSTcOuxbApdxweVXXsiq20HblZCyIi7WxxRkAg4RfKx594sKGiw9uCVvECi+9UpA==
+
+"@sentry/cli-linux-arm64@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.2.tgz#4a442d55f4e0a849b6faebd151d0d2277abf5de9"
+ integrity sha512-lm5jaigV6xu9Gwo0wNk+bX6yVkl5k3gNXcSXcKCISFo+Teb7Zhf9IyXANPm4VY2DdiZAjPJt8gS1bu+Mn7irtQ==
+
+"@sentry/cli-linux-arm@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.2.tgz#053430a6508450b382fc980195cbd5cc0fe90d86"
+ integrity sha512-n398jd87Ymejt5k/6RjCEjXAvntOWuqhBDANxzhgr5/9FzbODJ844g1mOpcxiIlduzKSzWlPbTEKQulMp2Mt4w==
+
+"@sentry/cli-linux-i686@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.2.tgz#ce72717f48890984a805c82d116a9da115fc53a1"
+ integrity sha512-/YYx2gfqO5mkxyBgFcnDbZzkZ2+2xNarwrqWcqq3Qw0XlO9DWAQB2G+twV1RW/UfSU6fFIWErn94efh2EWmyzQ==
+
+"@sentry/cli-linux-x64@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.2.tgz#fb178ac3540f64595a17dd95b4b2071f18aa098a"
+ integrity sha512-rRafqy84R5mYA4JEfNsUeN10af5euJnK7fgqYM0mJIaplHC2YEXT9aUYWoryWPZiYqmdNUhsA6lX7iynSW9pZw==
+
+"@sentry/cli-win32-i686@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.2.tgz#e0d73977771a578439207ea7863cde422a6cfee2"
+ integrity sha512-plT/gi41F+67g9AwrEm4avRXnjCtHCcnRnJ6zPu/iINGap8mvYQJSU/qM0oGwV6hRGg3JJN66XIvJPIuIs8P8w==
+
+"@sentry/cli-win32-x64@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.2.tgz#f21f71e7c2c60f99dd62c3360e4b0cda4f27d877"
+ integrity sha512-Mb6mAyPi9gIfpzF5MTk0JXgFP9nxka3Fb7JYn6AY4RW++sOjapkTrcXL2Gp3ZfQkWj5rFTgln4+eNmZPsD2gzA==
"@sentry/cli@2.17.5":
version "2.17.5"
@@ -5481,6 +5436,25 @@
proxy-from-env "^1.1.0"
which "^2.0.2"
+"@sentry/cli@2.25.2":
+ version "2.25.2"
+ resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.25.2.tgz#7e8eec38c19ee27cb3f5c5a7ba3e80ad587c6517"
+ integrity sha512-lgt1QPaCfs/QZNXwyw3gvuBR2/CLwFSdU/oT7Bpxwizz8XVXhlKS98zJF1UVCy7SecsDSoOI0Z+B+X658cpquQ==
+ dependencies:
+ https-proxy-agent "^5.0.0"
+ node-fetch "^2.6.7"
+ progress "^2.0.3"
+ proxy-from-env "^1.1.0"
+ which "^2.0.2"
+ optionalDependencies:
+ "@sentry/cli-darwin" "2.25.2"
+ "@sentry/cli-linux-arm" "2.25.2"
+ "@sentry/cli-linux-arm64" "2.25.2"
+ "@sentry/cli-linux-i686" "2.25.2"
+ "@sentry/cli-linux-x64" "2.25.2"
+ "@sentry/cli-win32-i686" "2.25.2"
+ "@sentry/cli-win32-x64" "2.25.2"
+
"@sentry/core@7.52.0":
version "7.52.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.52.0.tgz#6c820ca48fe2f06bfd6b290044c96de2375f2ad4"
@@ -5490,14 +5464,13 @@
"@sentry/utils" "7.52.0"
tslib "^1.9.3"
-"@sentry/core@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.52.1.tgz#4de702937ba8944802bb06eb8dfdf089c39f6bab"
- integrity sha512-36clugQu5z/9jrit1gzI7KfKbAUimjRab39JeR0mJ6pMuKLTTK7PhbpUAD4AQBs9qVeXN2c7h9SVZiSA0UDvkg==
+"@sentry/core@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.81.1.tgz#082fd9122bf9a488c8e05b1754724ddbc2d5cf30"
+ integrity sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q==
dependencies:
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
- tslib "^1.9.3"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
"@sentry/hub@7.52.0":
version "7.52.0"
@@ -5509,6 +5482,15 @@
"@sentry/utils" "7.52.0"
tslib "^1.9.3"
+"@sentry/hub@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.81.1.tgz#c49bcc1894bfeb019811bac8e3b6fd81011b6f7c"
+ integrity sha512-25cvsI3HKiRLJBZGFC8ntuy7/yB8M1w8YLTjr3tIqydYmjFUX7f18w0iuWEtd204d8OQSPBJDapbGMdfkE5x6w==
+ dependencies:
+ "@sentry/core" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
+
"@sentry/integrations@7.52.0":
version "7.52.0"
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.52.0.tgz#632aa5e54bdfdab910a24057c2072634a2670409"
@@ -5519,15 +5501,29 @@
localforage "^1.8.1"
tslib "^1.9.3"
-"@sentry/integrations@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.52.1.tgz#e8a5988477e8d295fa1d90ce5628c1a7794c2a09"
- integrity sha512-4uejF01723wzEHjcP5AcNcV+Z/6U27b1LyaDu0jY3XDry98MMjhS/ASzecLpaEFxi3dh/jMTUrNp1u7WMj59Lg==
+"@sentry/integrations@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.81.1.tgz#1b12c0cf3a7fa88224e86c0be46523ed7e3f3a43"
+ integrity sha512-DN5ONn0/LX5HHVPf1EBGHFssIZaZmLgkqUIeMqCNYBpB4DiOrJANnGwTcWKDPphqhdPxjnPv9AGRLaU0PdvvZQ==
dependencies:
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
+ "@sentry/core" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
localforage "^1.8.1"
- tslib "^1.9.3"
+
+"@sentry/react-native@5.17.0":
+ version "5.17.0"
+ resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-5.17.0.tgz#e85d28417558f12abca82f1abde1d7006598f5d2"
+ integrity sha512-d0TLASMcpUtvw0A8zNznRyCskfH0kwfb3GzqMXXpfPJAG8vsBnY15EFOIc+czOLt6FbV9o3567bHYWhSW51Ssg==
+ dependencies:
+ "@sentry/browser" "7.81.1"
+ "@sentry/cli" "2.25.2"
+ "@sentry/core" "7.81.1"
+ "@sentry/hub" "7.81.1"
+ "@sentry/integrations" "7.81.1"
+ "@sentry/react" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
"@sentry/react-native@5.5.0":
version "5.5.0"
@@ -5554,16 +5550,15 @@
hoist-non-react-statics "^3.3.2"
tslib "^1.9.3"
-"@sentry/react@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.52.1.tgz#5f30919f4680493558c5233165b2092d2b59f6d1"
- integrity sha512-RRH+GJE5TNg5QS86bSjSZuR2snpBTOO5/SU9t4BOqZMknzhMVTClGMm84hffJa9pMPMJPQ2fWQAbhrlD8RcF6w==
+"@sentry/react@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.81.1.tgz#6a94e8e373a5bf27330cea2eb1a603ae0eb0b8ba"
+ integrity sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw==
dependencies:
- "@sentry/browser" "7.52.1"
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
+ "@sentry/browser" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
hoist-non-react-statics "^3.3.2"
- tslib "^1.9.3"
"@sentry/replay@7.52.0":
version "7.52.0"
@@ -5574,24 +5569,25 @@
"@sentry/types" "7.52.0"
"@sentry/utils" "7.52.0"
-"@sentry/replay@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.52.1.tgz#272a0bcb79bb9ffce99b5dcaf864f18d729ce0da"
- integrity sha512-A+RaUmpU9/yBHnU3ATemc6wAvobGno0yf5R6fZYkAFoo2FCR2YG6AXxkTazymIf8v2DnLGaSDORYDPdhQClU9A==
+"@sentry/replay@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.81.1.tgz#a656d55e2a00b34e42be6eeb79018d21efc223af"
+ integrity sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw==
dependencies:
- "@sentry/core" "7.52.1"
- "@sentry/types" "7.52.1"
- "@sentry/utils" "7.52.1"
+ "@sentry-internal/tracing" "7.81.1"
+ "@sentry/core" "7.81.1"
+ "@sentry/types" "7.81.1"
+ "@sentry/utils" "7.81.1"
"@sentry/types@7.52.0":
version "7.52.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.52.0.tgz#b7d5372f17355e3991cbe818ad567f3fe277cc6b"
integrity sha512-XnEWpS6P6UdP1FqbmeqhI96Iowqd2jM5R7zJ97txTdAd5NmdHHH0pODTR9NiQViA1WlsXDut7ZLxgPzC9vIcMA==
-"@sentry/types@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.52.1.tgz#bcff6d0462d9b9b7b9ec31c0068fe02d44f25da2"
- integrity sha512-OMbGBPrJsw0iEXwZ2bJUYxewI1IEAU2e1aQGc0O6QW5+6hhCh+8HO8Xl4EymqwejjztuwStkl6G1qhK+Q0/Row==
+"@sentry/types@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.81.1.tgz#2b2551fc291e1089651fd574a68f7c4175878bd5"
+ integrity sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw==
"@sentry/utils@7.52.0":
version "7.52.0"
@@ -5601,13 +5597,12 @@
"@sentry/types" "7.52.0"
tslib "^1.9.3"
-"@sentry/utils@7.52.1":
- version "7.52.1"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.52.1.tgz#4a3e49b918f78dba4524c924286210259020cac5"
- integrity sha512-MPt1Xu/jluulknW8CmZ2naJ53jEdtdwCBSo6fXJvOTI0SDqwIPbXDVrsnqLAhVJuIN7xbkj96nuY/VBR6S5sWg==
+"@sentry/utils@7.81.1":
+ version "7.81.1"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.81.1.tgz#42f3e77baf90205cec1f8599eb8445a6918030bd"
+ integrity sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg==
dependencies:
- "@sentry/types" "7.52.1"
- tslib "^1.9.3"
+ "@sentry/types" "7.81.1"
"@sideway/address@^4.1.3":
version "4.1.4"
@@ -7340,11 +7335,6 @@
dependencies:
"@types/node" "*"
-"@types/cookie@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
- integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
-
"@types/elliptic@^6.4.9":
version "6.4.18"
resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1"
@@ -7450,6 +7440,11 @@
dependencies:
"@types/node" "*"
+"@types/invariant@^2.2.37":
+ version "2.2.37"
+ resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.37.tgz#1709741e534364d653c87dff22fc76fa94aa7bc0"
+ integrity sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@@ -7892,11 +7887,6 @@
"@urql/core" ">=2.3.1"
wonka "^4.0.14"
-"@web3-storage/multipart-parser@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4"
- integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==
-
"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
version "1.11.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24"
@@ -8058,7 +8048,7 @@
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
-"@zxing/text-encoding@0.9.0", "@zxing/text-encoding@^0.9.0":
+"@zxing/text-encoding@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b"
integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==
@@ -8176,16 +8166,6 @@ ajv-keywords@^5.1.0:
dependencies:
fast-deep-equal "^3.1.3"
-ajv@8.11.0:
- version "8.11.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
- integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
- dependencies:
- fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
- uri-js "^4.2.2"
-
ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -8918,11 +8898,6 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base-64@0.1.0, base-64@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
- integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==
-
base64-js@^1.0.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -9860,21 +9835,11 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-cookie-signature@^1.1.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.1.tgz#790dea2cce64638c7ae04d9fabed193bd7ccf3b4"
- integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==
-
cookie@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
-cookie@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
- integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
-
copy-webpack-plugin@^10.2.0:
version "10.2.4"
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe"
@@ -10265,11 +10230,6 @@ dash-get@^1.0.2:
resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c"
integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==
-data-uri-to-buffer@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636"
- integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
-
data-urls@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
@@ -10483,11 +10443,6 @@ deprecated-react-native-prop-types@^5.0.0:
invariant "^2.2.4"
prop-types "^15.8.1"
-dequal@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e"
- integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw==
-
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
@@ -11619,10 +11574,10 @@ expo-application@~5.8.0:
resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.0.tgz#b82cb98a08f91d61f047f6578e883e0deb9661f2"
integrity sha512-nNQ/ayC4P1ue0ZQSmUlG/K2ZHTPwHyYGsb0QtEmCFUCitsjPKIx4coNvAreZMuELvY7pD1zKr+pdtN/ULnljBA==
-expo-application@~5.8.2:
- version "5.8.2"
- resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.2.tgz#3847843203b87b9b67cc3b56f3c2639199cb0b07"
- integrity sha512-ySc5MzZFRnK7XxBho7kZoQcazz97y4j0Wj+p9n4UDlgQLGrp1IHFBgyZIq2y/qoED0RnFUCKUDeegvXXTiBENA==
+expo-application@~5.8.3:
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.3.tgz#43991bd81d05c987b07b2f430c036cda1572bc62"
+ integrity sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA==
expo-asset@~9.0.2:
version "9.0.2"
@@ -11636,21 +11591,26 @@ expo-asset@~9.0.2:
invariant "^2.2.4"
md5-file "^3.2.3"
-expo-build-properties@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.0.tgz#523e242b5db2f26b9fd397dcf2c841824aed348c"
- integrity sha512-14+UjV4uKCI5KsOw/BTL++T3N1OPWnOvLGoF39/o9XjB4t0wqXoSrcEl6ZbtH/b3xzd6dj9pnDDBLWDn/7uKvQ==
+expo-build-properties@^0.11.1:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.1.tgz#dc9ab9fb1ac989b97da500b3ec75139c961d8b26"
+ integrity sha512-m4j4aEjFaDuBE6KWYMxDhWgLzzSmpE7uHKAwtvXyNmRK+6JKF0gjiXi0sXgI5ngNppDQpsyPFMvqG7uQpRuCuw==
dependencies:
ajv "^8.11.0"
semver "^7.5.3"
-expo-camera@~14.0.1:
- version "14.0.1"
- resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.1.tgz#d3567566e5f9c1a906b3ec8f66fde1e4c08fc99d"
- integrity sha512-72W8T9P+oYloWwFt2/ils15OS5X0R9u1p5vjRRo5fyGhbTA3qkS8UsV1tdSNTCUBcAxXHEXTO+iM4Xzabun8tg==
+expo-camera@~14.0.4:
+ version "14.0.5"
+ resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.5.tgz#b39a873316895e5a7ab86e8131dc9ffe529fc972"
+ integrity sha512-rHCOEAjt0NOjYXMyKnrGruOMvPdKbhhJBMtpr8LfJPVprsxZTjFC+flQgX52tZZWxPa1Hn6qpGYUzxZhVakHCg==
dependencies:
invariant "^2.2.4"
+expo-clipboard@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-5.0.1.tgz#a62a021a9444740d180d60f915cca8242a323716"
+ integrity sha512-JH853QJPr5W3h87If3aDTnMK+ESSIrwzU2TdfZrqZttVDY2pMIf/w37mVHHNYodXM4ATHXadtOkjKbAa0DWwUg==
+
expo-constants@~15.4.0:
version "15.4.1"
resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.1.tgz#f76f347cf687b6630e1e3b9a385a4e42771671a4"
@@ -11665,45 +11625,17 @@ expo-constants@~15.4.3:
dependencies:
"@expo/config" "~8.5.0"
-expo-dev-client@~3.3.5:
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-3.3.5.tgz#243719f5613ec487461da15650413a3a0c6fbadf"
- integrity sha512-g1KZBfkn4jIlVCBiBaYDkacecICLFla1Cpc/eGjdZJGceInoJe25HPyrMtYr047QDQaqnzRM+hXoJFhiKDfRpg==
+expo-constants@~15.4.5:
+ version "15.4.5"
+ resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.5.tgz#81756a4c4e1c020f840a419cd86a124a6d1fb35b"
+ integrity sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==
dependencies:
- expo-dev-launcher "3.6.2"
- expo-dev-menu "4.5.3"
- expo-dev-menu-interface "1.7.2"
- expo-manifests "~0.13.0"
- expo-updates-interface "~0.15.1"
+ "@expo/config" "~8.5.0"
-expo-dev-launcher@3.6.2:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-3.6.2.tgz#901e8ab2040fbfb8a7f0a4bdceb30399cf831cfd"
- integrity sha512-f09rLzTdyGRlWTvt8UV5cA8bhMNbCnuXBHDVAkJ3Yz0I+dHq4oecyh6TNR2plAR+dKhMYnY7rtTCyIQvd2adfA==
- dependencies:
- ajv "8.11.0"
- expo-dev-menu "4.5.3"
- expo-manifests "~0.13.0"
- resolve-from "^5.0.0"
- semver "^7.5.3"
-
-expo-dev-menu-interface@1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz#772fb97c6b0a44c27965cdfcfa078f316b0930ca"
- integrity sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw==
-
-expo-dev-menu@4.5.3:
- version "4.5.3"
- resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-4.5.3.tgz#89632134eac59533b7867d3a87a71940ac7ee74b"
- integrity sha512-yYXCand6eiDDtyGzcdIaSyhaIUPf7KjAKA12FJZ7Ytb3f04Nc78NI1+rDSisLmgRqXaWsc04zx9XF0vBMjSF6w==
- dependencies:
- expo-dev-menu-interface "1.7.2"
- semver "^7.5.3"
-
-expo-device@~5.9.2:
- version "5.9.2"
- resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.2.tgz#697e96f52d213a141b6f265f1e274e9d5e98c92c"
- integrity sha512-QYwcLyIoZGRFXt1czVphVQBkyfCfYqg+EsaFIhwWR+/lVU7X1cslaaGjoSx2ONTw0CV5iOvpasURqHeLWaexIw==
+expo-device@~5.9.3:
+ version "5.9.3"
+ resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.3.tgz#0ad61da681424aa682fa03001d0344394c01f8a1"
+ integrity sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w==
dependencies:
ua-parser-js "^0.7.33"
@@ -11712,23 +11644,28 @@ expo-eas-client@~0.11.0:
resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.11.0.tgz#0f25aa497849cade7ebef55c0631093a87e58b07"
integrity sha512-99W0MUGe3U4/MY1E9UeJ4uKNI39mN8/sOGA0Le8XC47MTbwbLoVegHR3C5y2fXLwLn7EpfNxAn5nlxYjY3gD2A==
+expo-file-system@^16.0.7, expo-file-system@~16.0.7:
+ version "16.0.7"
+ resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.7.tgz#0b3bd920a602b1c474d57a6b51202986113e1ef8"
+ integrity sha512-BELr1Agj6WK0PKVMcD0rqC3fP5unKfp2KW8/sNhtTHgdzQ/F0Pylq9pTk9u7KEu0ZbEdTpk5EMarLMPwffi3og==
+
expo-file-system@~16.0.0:
version "16.0.1"
resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.1.tgz#326b7c2f6e53e1a0eaafc9769578aafb3f9c9f43"
integrity sha512-/U6ufN2wRPgg4m2a9sqbL3dThqQsysT022qulEXWnUTmNaqnzYSk9ihjDWqoqjXLi9slQLsyok5t6CNzhM7HPw==
-expo-file-system@~16.0.3:
- version "16.0.3"
- resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.3.tgz#d7f45b77b6e085a106edb5178c3cbef884f42156"
- integrity sha512-F1RGwrkz70sIqdTswhsawFRSCwBgrQO0BEX8IxzWYRiucL2MnazeZ6tUx1vSQunuw49JexMcEozEccb0YEDzIw==
-
-expo-font@~11.10.1:
- version "11.10.1"
- resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.1.tgz#df9a853947d655c88f9286cfe6c11158958b066e"
- integrity sha512-eEi/EoJWFUy5CHJudfUtS8VKQdTW04f+OaKEBYj7eLUwW8bccRkA1ADtxyxLIkKdWlt2oZuVezvcgab5pYbCtQ==
+expo-font@~11.10.3:
+ version "11.10.3"
+ resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.3.tgz#a3115ebda8e09bd7cb8052619a4bbe606f0c17f4"
+ integrity sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ==
dependencies:
fontfaceobserver "^2.1.0"
+expo-haptics@^12.8.1:
+ version "12.8.1"
+ resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.8.1.tgz#42b996763be33d661bd33bbc3b3958c3f2734b9d"
+ integrity sha512-ntLsHkfle8K8w9MW8pZEw92ZN3sguaGUSSIxv30fPKNeQFu7Cq/h47Qv3tONv2MO3wU48N9FbKnant6XlfptpA==
+
expo-image-loader@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.6.0.tgz#ca7d4fdf53125bff2091d3a2c34a3155f10df147"
@@ -11748,10 +11685,10 @@ expo-image-picker@~14.7.1:
dependencies:
expo-image-loader "~4.6.0"
-expo-image@~1.10.3:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.3.tgz#142d2274388c2e32b9559e5e4a3513bc2bea7543"
- integrity sha512-/oVFgzRnSHTdKVGPB0gSkNemVwmWTznBOs8aCAHGbTx6vG2nYCzhmjM0Yc+io+q8v4sH0U3zE0U5ZHJtCJ9Wqg==
+expo-image@~1.10.6:
+ version "1.10.6"
+ resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.6.tgz#b0e54d31d97742505296c076a5f18d094ba9a8cc"
+ integrity sha512-vcnAIym1eU8vQgV1re1E7rVQZStJimBa4aPDhjFfzMzbddAF7heJuagyewiUkTzbZUwYzPaZAie6VJPyWx9Ueg==
dependencies:
"@react-native/assets-registry" "~0.73.1"
@@ -11760,10 +11697,15 @@ expo-json-utils@~0.12.0:
resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.12.0.tgz#15ad797e9518a6a47eae9b95599e6373e641f8f2"
integrity sha512-xsUsPUZcXZWoT4RY3FhEPYGYvr2iThMNNU5drdmkC/vmkePvqy5kK4aIqlIKzQboXxj7k1dXoNSSLg5mKy8uKg==
-expo-keep-awake@~12.8.1:
- version "12.8.1"
- resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.1.tgz#3c8df9d86c265741b5e7bdd36965aa0c6fc17df0"
- integrity sha512-P/VZFV02Rzgj13skMwH+ceGOGZSEdaUu5n7pCS3wThh2LppZjPJ7sBxUwyzeLa3DXEVUtwLZi+BiQ91wPwy9Gg==
+expo-keep-awake@~12.8.2:
+ version "12.8.2"
+ resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz#6cfdf8ad02b5fa130f99d4a1eb98e459d5b4332e"
+ integrity sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g==
+
+expo-linear-gradient@^12.7.1:
+ version "12.7.2"
+ resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-12.7.2.tgz#2ff9593eae8448ac5630be1a36ce6133c4a6f074"
+ integrity sha512-Wwb2EF18ywgrlTodcXJ6Yt/UEcKitRMdXPNyP/IokmeKh4emoq9DxZJpZdkXm3HUTLlbRpi6/t32jrFVqXB9AQ==
expo-linking@^6.2.2:
version "6.2.2"
@@ -11773,10 +11715,10 @@ expo-linking@^6.2.2:
expo-constants "~15.4.3"
invariant "^2.2.4"
-expo-localization@~14.8.2:
- version "14.8.2"
- resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.2.tgz#e0bbed2293265834d21a1c58d3a5f8d265bd04ae"
- integrity sha512-ZymzPq7Zjkr0j/w2N+sNNj6EPihW99D0yCEC8CVWed5Uv7GfjwlnN0dUOlNy7y987ecV7N4/T0sEiZ966vaGmg==
+expo-localization@~14.8.3:
+ version "14.8.3"
+ resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.3.tgz#c1efa8a314b6bfe38425bbc6bcce9cf9b84a802d"
+ integrity sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw==
dependencies:
rtl-detect "^1.0.2"
@@ -11793,10 +11735,10 @@ expo-media-library@~15.9.1:
resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.9.1.tgz#1eaf5a0c8f51669f6f86d385a8fa411226042216"
integrity sha512-Y29uKFJ3qWwNejIrjoCppXp3OgIFs/RYHWXkF9xey6evpNrUlHoP1WHG2jYAMSrss6aIRVt3tO7EtYUCZxz50Q==
-expo-modules-autolinking@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.0.tgz#3ca55befdaf7bf0770d24df235be87597457ed78"
- integrity sha512-3mM/pi4xVlGBr/+soD/ywBMWk9edRu/fRimocUkSrcwmFkwHDdjBaJdncKmq8ysroSn0tC8yHkKuuKitS+qoeg==
+expo-modules-autolinking@1.10.3:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz#19f349884a90f3f27ec9d64e8f2fa6be609558c5"
+ integrity sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==
dependencies:
"@expo/config" "~8.5.0"
chalk "^4.1.0"
@@ -11805,17 +11747,17 @@ expo-modules-autolinking@1.10.0:
find-up "^5.0.0"
fs-extra "^9.1.0"
-expo-modules-core@1.11.6:
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.6.tgz#3babed3b812a696ddec15cc4107ed4a77b7aaa05"
- integrity sha512-5EWAGtDNVfkqFOPO3zNmsHgBbx5Y+jLoRaTybA+iF165YFho3QjOy6FvVGNJs+P15vAgus1W8MSZZTreUulOfw==
+expo-modules-core@1.11.9:
+ version "1.11.9"
+ resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.9.tgz#4b95070390fe7e3418aa84580244bcf0540357ca"
+ integrity sha512-GTUb81vcPaF+5MtlBI1u9IjrZbGdF1ZUwz3u8Gc+rOLBblkZ7pYsj2mU/tu+k0khTckI9vcH4ZBksXWvE1ncjQ==
dependencies:
invariant "^2.2.4"
-expo-notifications@~0.27.3:
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.3.tgz#18f3d6dadc14aefc32937bddc54572bbf68236a7"
- integrity sha512-P4zhbVYDhTtV7xCdcxpk4tTbWh33P+A0ZTbpUrp6vcpZk8QprhjhB2okr1/R1z0fpxUPv74KYex5fnAHxTVIvw==
+expo-notifications@~0.27.6:
+ version "0.27.6"
+ resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.6.tgz#ef7c95504034ac8b5fa360e13f5b037c5bf7e80d"
+ integrity sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA==
dependencies:
"@expo/image-utils" "^0.4.0"
"@ide/backoff" "^1.0.0"
@@ -11841,12 +11783,12 @@ expo-sharing@^11.10.0:
resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.10.0.tgz#0e85197ee4d2634b00fe201e571fbdc64cf83eef"
integrity sha512-/64RyyKlZ25WfnMXa87HbPXhIIqWwNbIku/RaIYAq4SE0XTRC+KTH3v0XFkfDa+SCG/jKsAr1pJ3vQvsNo1sCQ==
-expo-splash-screen@~0.26.2:
- version "0.26.2"
- resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.2.tgz#3bf733618a76efe7dc25af32254767673b13dda2"
- integrity sha512-yvKjO+3WA1HSA/fRCtiRweC/LPYaB5UKjJQs7kHyZHjObvjAZC95tNorUitGQYPkrjgywsaDsXKlJt5KspmVgg==
+expo-splash-screen@~0.26.4:
+ version "0.26.4"
+ resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz#bc1fb226c6eae03ee351a3ebe5521a37f868cbc7"
+ integrity sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg==
dependencies:
- "@expo/prebuild-config" "6.7.3"
+ "@expo/prebuild-config" "6.7.4"
expo-status-bar@~1.11.1:
version "1.11.1"
@@ -11866,10 +11808,10 @@ expo-system-ui@~2.9.3:
"@react-native/normalize-color" "^2.0.0"
debug "^4.3.2"
-expo-task-manager@~11.7.0:
- version "11.7.0"
- resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.0.tgz#3e87a3c3d941a60d3c4447d837b3ae95be7dcb4b"
- integrity sha512-P5pmN3rQgDaIeLyEFMXixuimeRR4IDDU6nDo1kv/Y2JQrgpNKeOHjTbRdzd6iPOeqIa+/3k3tAooU8VYp534tA==
+expo-task-manager@~11.7.2:
+ version "11.7.2"
+ resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.2.tgz#db09ee5ed4adf1ea586c131a60196cb387a7eb4a"
+ integrity sha512-cmn7xg8+mGP7gX6deYZhvrCkKMkoBRJ+E4o5aL17Z/4ihXMfo/PFcQsrpuSYRLXzgidEw0kpppxhmYm21Jswwg==
dependencies:
unimodules-app-loader "~4.5.0"
@@ -11878,10 +11820,10 @@ expo-updates-interface@~0.15.1:
resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.15.1.tgz#b0242fa7ba05768ada2f0faf83b90aa8b8fa65d7"
integrity sha512-B42oOB0pw4TaPoOGE/yzt9ggwNNxo3PEJRU0kIOurQ8hW5UEUC8cAbGQDYWGbTyNGp8gLBG+T2MCg+YYaCYJUw==
-expo-updates@~0.24.7:
- version "0.24.7"
- resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.7.tgz#d7d2eb12342e6c0b5afa3a64d8d4e03f933dbf30"
- integrity sha512-3mrFP8TO13kD0HejsKjpc/OSEm10yETkbj+5QIlLTtWmu6MPYdXYdMhx8gxR7HWXiptDtuzGlWi2imFW1sHE/g==
+expo-updates@~0.24.10:
+ version "0.24.11"
+ resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.11.tgz#605692a246103c29d0ca8a4b1134e8957f35b913"
+ integrity sha512-SWpjZj7VGWBZJtbVj0gbGY7uZYrE7b+sRRoj/K1ma2ckHwXtAAB8gYI95Zp0joBdRNAbEtoMHYXP66Nrj5l8Ng==
dependencies:
"@expo/code-signing-certificates" "0.0.5"
"@expo/config" "~8.5.0"
@@ -11895,32 +11837,32 @@ expo-updates@~0.24.7:
fbemitter "^3.0.0"
resolve-from "^5.0.0"
-expo-web-browser@~12.8.1:
- version "12.8.1"
- resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.1.tgz#9f56e70fc16f0508d6e36344f65873ca15920201"
- integrity sha512-1x47xcOor6MRo43P3L65WTaBgsj/346pPA5v+wMb1ePH9XYfuAivKGAnn318q29yGx7VhX8K7WehmJx1muA+8Q==
+expo-web-browser@~12.8.2:
+ version "12.8.2"
+ resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.2.tgz#f34fb85c80031e0dddd4f9b9efd03cb60333b089"
+ integrity sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg==
dependencies:
compare-urls "^2.0.0"
url "^0.11.0"
-expo@^50.0.0-preview.10:
- version "50.0.0-preview.10"
- resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.0-preview.10.tgz#344186fc6ded29aa0aeb93eae662aac5d396acc0"
- integrity sha512-E+TIIXvhnNAOHBkVSohmW3uQhsWhPbyfpj05X4CA0Tr16ZmdYAW1V43q5Au1YULaptW6BtROcMopKFLEyGBlTA==
+expo@^50.0.8:
+ version "50.0.8"
+ resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.8.tgz#2a5c5699be8da9dfb8fd9c6cae7daae28149cc43"
+ integrity sha512-8yXsoMbFRjWyEDNuFRtH0vTFvEjFnnwP+LceS6xmXGp+IW1hKdN1X6Bj1EUocFtepH0ruHDPCof1KvPoWfUWkw==
dependencies:
"@babel/runtime" "^7.20.0"
- "@expo/cli" "0.16.7"
- "@expo/config" "8.5.3"
- "@expo/config-plugins" "7.8.3"
- "@expo/metro-config" "0.17.1"
+ "@expo/cli" "0.17.6"
+ "@expo/config" "8.5.4"
+ "@expo/config-plugins" "7.8.4"
+ "@expo/metro-config" "0.17.5"
"@expo/vector-icons" "^14.0.0"
babel-preset-expo "~10.0.1"
expo-asset "~9.0.2"
- expo-file-system "~16.0.3"
- expo-font "~11.10.1"
- expo-keep-awake "~12.8.1"
- expo-modules-autolinking "1.10.0"
- expo-modules-core "1.11.6"
+ expo-file-system "~16.0.7"
+ expo-font "~11.10.3"
+ expo-keep-awake "~12.8.2"
+ expo-modules-autolinking "1.10.3"
+ expo-modules-core "1.11.9"
fbemitter "^3.0.0"
whatwg-url-without-unicode "8.0.0-3"
@@ -12600,18 +12542,6 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-glob@7.0.6:
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
- integrity sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
glob@7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
@@ -13297,11 +13227,6 @@ ip-regex@^2.1.0:
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==
-ip@^1.1.5:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
- integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
-
ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
@@ -15538,11 +15463,6 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
-lru_map@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.4.1.tgz#f7b4046283c79fb7370c36f8fca6aee4324b0a98"
- integrity sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg==
-
magic-string@^0.25.0, magic-string@^0.25.7:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
@@ -16116,11 +16036,6 @@ moo@^0.5.1:
resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c"
integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==
-mrmime@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
- integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -16200,6 +16115,11 @@ nanoid@^3.1.23, nanoid@^3.3.1, nanoid@^3.3.6:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
+nanoid@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
nanoid@^5.0.5:
version "5.0.5"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.5.tgz#5112efb5c0caf4fc80680d66d303c65233a79fdd"
@@ -17047,6 +16967,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2, picomatc
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+picomatch@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516"
+ integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==
+
pidtree@0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
@@ -17752,6 +17677,15 @@ postcss@~8.4.21:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@~8.4.32:
+ version "8.4.35"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7"
+ integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
postgres-array@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
@@ -18296,11 +18230,6 @@ react-avatar-editor@^13.0.0:
"@babel/runtime" "^7.12.5"
prop-types "^15.7.2"
-react-circular-progressbar@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/react-circular-progressbar/-/react-circular-progressbar-2.1.0.tgz#99e5ae499c21de82223b498289e96f66adb8fa3a"
- integrity sha512-xp4THTrod4aLpGy68FX/k1Q3nzrfHUjUe5v6FsdwXBl3YVMwgeXYQKDrku7n/D6qsJA9CuunarAboC2xCiKs1g==
-
react-dev-utils@^12.0.1:
version "12.0.1"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73"
@@ -18372,10 +18301,10 @@ react-is@^17.0.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
-react-native-appstate-hook@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/react-native-appstate-hook/-/react-native-appstate-hook-1.0.6.tgz#cbc16e7b89cfaea034cabd999f00e99053cabd06"
- integrity sha512-0hPVyf5yLxCSVrrNEuGqN1ZnSSj3Ye2gZex0NtcK/AHYwMc0rXWFNZjBKOoZSouspqu3hXBbQ6NOUSTzrME1AQ==
+react-native-date-picker@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-4.4.0.tgz#fe5b6eb8d85a4a30b2991ada5169a30ce5023ead"
+ integrity sha512-Axx3byihwwhKRLRVjPAr/UaEysapkRcKmjjM8/05UaVm4Q0xDn2RFUcRdy1QAahhRcjLjlVYhepxvU5bdgy7ZQ==
react-native-dotenv@^3.3.1:
version "3.4.9"
@@ -18391,18 +18320,10 @@ react-native-drawer-layout@^4.0.0-alpha.3:
dependencies:
use-latest-callback "^0.1.9"
-react-native-fs@^2.20.0:
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.20.0.tgz#05a9362b473bfc0910772c0acbb73a78dbc810f6"
- integrity sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ==
- dependencies:
- base-64 "^0.1.0"
- utf8 "^3.0.0"
-
-react-native-gesture-handler@~2.14.0:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.14.0.tgz#d6aec0d8b2e55c67557fd6107e828c0a1a248be8"
- integrity sha512-cOmdaqbpzjWrOLUpX3hdSjsMby5wq3PIEdMq7okJeg9DmCzanysHSrktw1cXWNc/B5MAgxAn9J7Km0/4UIqKAQ==
+react-native-gesture-handler@~2.15.0:
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz#f8e6c0451a7bdf065edb7b9be605480db402baa0"
+ integrity sha512-cmMGW8k86o/xgVTBZZOPohvR5re4Vh65PUxH4HbBBJAYTog4aN4wTVTUlnoky01HuSN8/X4h3tI/K3XLPoDnsg==
dependencies:
"@egjs/hammerjs" "^2.0.17"
hoist-non-react-statics "^3.3.0"
@@ -18417,15 +18338,10 @@ react-native-get-random-values@~1.8.0:
dependencies:
fast-base64-decode "^1.0.0"
-react-native-haptic-feedback@^1.14.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/react-native-haptic-feedback/-/react-native-haptic-feedback-1.14.0.tgz#b50f49dedda4980b3c37c5780823f753cf3ee717"
- integrity sha512-dSXZ6gAzl+W/L7BPjOpnT0bx0cgQiSr0sB3DjyDJbGIdVr4ISaktZC6gC9xYFTv2kMq0+KtbKi+dpd0WtxYZMw==
-
-react-native-image-crop-picker@^0.38.1:
- version "0.38.1"
- resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.38.1.tgz#5973b4a8b55835b987e6be2064de411e849ac005"
- integrity sha512-cF5UQnWplzHCeiCO+aiGS/0VomWaLmFf3nSsgTMPfY+8+99h8N/eHQvVdSF7RsGw50B8394wGeGyqHjjp8YRWw==
+react-native-image-crop-picker@~0.40.3:
+ version "0.40.3"
+ resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.40.3.tgz#a6b135cd1218a33ad126c1a148ec5a1bd01737ff"
+ integrity sha512-45PKcTnsnLS+E36YwoXutllQdRSOuOsMN0IRcAcwsFXOuAQIOtugXlAuGGL28JHKb/ATaSSPvqCSrdG65Jv3GA==
react-native-ios-context-menu@^1.15.3:
version "1.15.3"
@@ -18434,22 +18350,16 @@ react-native-ios-context-menu@^1.15.3:
dependencies:
"@dominicstop/ts-event-emitter" "^1.1.0"
-react-native-linear-gradient@^2.6.2:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.8.2.tgz#9811c91751be673ef928ef4aa3ff3a70b82935d6"
- integrity sha512-hgmCsgzd58WNcDCyPtKrvxsaoETjb/jLGxis/dmU3Aqm2u4ICIduj4ECjbil7B7pm9OnuTkmpwXu08XV2mpg8g==
-
react-native-pager-view@6.2.3:
version "6.2.3"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.3.tgz#698f6387fdf06cecc3d8d4792604419cb89cb775"
integrity sha512-dqVpXWFtPNfD3D2QQQr8BP+ullS5MhjRJuF8Z/qml4QTILcrWaW8F5iAxKkQR3Jl0ikcEryG/+SQlNcwlo0Ggg==
-react-native-picker-select@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/react-native-picker-select/-/react-native-picker-select-8.1.0.tgz#667a5442f783f4bcfd3f65880c6926155fd2c39c"
- integrity sha512-iLsLv2OEWpXnQMDYJS6du5Cl1HTHy887n60Yp5OOiMny0TDB9w5CfxTUYWtpsvJJrUa/Yrv+1NMQiJy7IA4ETw==
+react-native-picker-select@~9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/react-native-picker-select/-/react-native-picker-select-9.0.1.tgz#af454433061a18b7307a725fc045c05ad494e300"
+ integrity sha512-iIhb82OSH1vqB/HoipvbuX3RCzmeaQmIASlaRbv6X8imNjzh1DH/LaKoF4+DAZJLT0iX7QG79vpwZu8wjWap3Q==
dependencies:
- "@react-native-picker/picker" "^1.8.3"
lodash.isequal "^4.5.0"
react-native-progress@bluesky-social/react-native-progress:
@@ -18458,10 +18368,10 @@ react-native-progress@bluesky-social/react-native-progress:
dependencies:
prop-types "^15.7.2"
-react-native-reanimated@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.6.0.tgz#d2ca5f4c234f592af3d63bc749806e36d6e0a755"
- integrity sha512-eDdhZTRYofrIqFB/Z5xLTWxcB7wDj4ifrNm+gZ2xHSZPjAQ747ukDdH9rglPyPmi+GcmDH7Wff411Xsw5fm45Q==
+react-native-reanimated@~3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.7.2.tgz#688a0002d129a8ddcef919093c45c67de18923f5"
+ integrity sha512-3KpTmYEcmHhkZeTqgWtioqnljpd4TLxKHClvarYsA3UXU2Tv+O1gqlRhVhfHBZuiDngVu436gWkde9+/VQVMFQ==
dependencies:
"@babel/plugin-transform-object-assign" "^7.16.7"
"@babel/preset-typescript" "^7.16.7"
@@ -18473,10 +18383,10 @@ react-native-root-siblings@^4.1.1:
resolved "https://registry.yarnpkg.com/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz#b7742db7634a87f507eb99a5fd699c4f10c46ab0"
integrity sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==
-react-native-safe-area-context@4.8.2:
- version "4.8.2"
- resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz#e6b3d8acf3c6afcb4b5db03a97f9c37df7668f65"
- integrity sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ==
+react-native-safe-area-context@~4.9.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.9.0.tgz#21a570ca3594cb4259ba65f93befaa60d91bcbd0"
+ integrity sha512-/OJD9Pb8IURyvn+1tWTszWPJqsbZ4hyHBU9P0xhOmk7h5owSuqL0zkfagU0pg7Vh0G2NKQkaPpUKUMMCUMDh/w==
react-native-screens@~3.29.0:
version "3.29.0"
@@ -18486,17 +18396,18 @@ react-native-screens@~3.29.0:
react-freeze "^1.0.0"
warn-once "^0.1.0"
-react-native-svg@14.1.0:
- version "14.1.0"
- resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-14.1.0.tgz#7903bddd3c71bf3a8a503918253c839e6edaa724"
- integrity sha512-HeseElmEk+AXGwFZl3h56s0LtYD9HyGdrpg8yd9QM26X+d7kjETrRQ9vCjtxuT5dCZEIQ5uggU1dQhzasnsCWA==
+react-native-svg@~15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.1.0.tgz#07c75f29b1d641faba50144c7ccd21604b368420"
+ integrity sha512-p0Sx0EpQNk1nu6UcMEiB8K9P04n3J7s+pNYUwf1d/Yz+v4hk961VjuVqjyndgiEbHZyWiKWLZRVNuvLpwjPY2A==
dependencies:
css-select "^5.1.0"
css-tree "^1.1.3"
-"react-native-ui-text-view@link:./modules/react-native-ui-text-view":
- version "0.0.0"
- uid ""
+react-native-uitextview@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/react-native-uitextview/-/react-native-uitextview-1.1.4.tgz#da5e87c1ac26db385d3614ed7e03db43157217df"
+ integrity sha512-1ox/pmMAz0Qq78HGI0Bnsu0yhLZFRWyhUCBqew6u02/KuqZ0sFZOw/80WPAfjInM7GXpBTKgwWj1o/QhQKozgw==
react-native-url-polyfill@^1.3.0:
version "1.3.0"
@@ -18510,16 +18421,6 @@ react-native-uuid@^2.0.1:
resolved "https://registry.yarnpkg.com/react-native-uuid/-/react-native-uuid-2.0.1.tgz#ed4e2dfb1683eddb66967eb5dca140dfe1abddb9"
integrity sha512-cptnoIbL53GTCrWlb/+jrDC6tvb7ypIyzbXNJcpR3Vab0mkeaaVd5qnB3f0whXYzS+SMoSQLcUUB0gEWqkPC0g==
-react-native-version-number@^0.3.6:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/react-native-version-number/-/react-native-version-number-0.3.6.tgz#dd8b1435fc217df0a166d7e4a61fdc993f3e7437"
- integrity sha512-TdyXiK90NiwmSbmAUlUBOV6WI1QGoqtvZZzI5zQY4fKl67B3ZrZn/h+Wy/OYIKKFMfePSiyfeIs8LtHGOZ/NgA==
-
-react-native-web-linear-gradient@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/react-native-web-linear-gradient/-/react-native-web-linear-gradient-1.1.2.tgz#33f85f7085a0bb5ffa5106faf02ed105b92a9ed7"
- integrity sha512-SmUnpwT49CEe78pXvIvYf72Es8Pv+ZYKCnEOgb2zAKpEUDMo0+xElfRJhwt5nfI8krJ5WbFPKnoDgD0uUjAN1A==
-
react-native-web-webview@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/react-native-web-webview/-/react-native-web-webview-1.0.2.tgz#c215efa70c17589f2c8d640b1f1dc669b18c6e02"
@@ -18541,26 +18442,26 @@ react-native-web@~0.19.6:
postcss-value-parser "^4.2.0"
styleq "^0.1.3"
-react-native-webview@13.6.4:
- version "13.6.4"
- resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.4.tgz#6ef66db9dd78b2a2ae1b4fe79e1e3597aa29186e"
- integrity sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ==
+react-native-webview@~13.8.1:
+ version "13.8.1"
+ resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.8.1.tgz#d0058c063e38241476049aaab2e5cc9f254d5480"
+ integrity sha512-7Jqm1WzWJrOWraBAXQfKtr/Uo5Jw/IJHzC40jYLwgV/eVGmLJ9BpGKw6QVw7wpRkjmTZ2Typ4B1aHJLJJQFslA==
dependencies:
escape-string-regexp "2.0.0"
invariant "2.2.4"
-react-native@0.73.2:
- version "0.73.2"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608"
- integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw==
+react-native@~0.73.5:
+ version "0.73.5"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.5.tgz#724fd1ae8ec8fee1dcf619c82bdd1695d3cff463"
+ integrity sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg==
dependencies:
"@jest/create-cache-key-function" "^29.6.3"
- "@react-native-community/cli" "12.3.0"
- "@react-native-community/cli-platform-android" "12.3.0"
- "@react-native-community/cli-platform-ios" "12.3.0"
+ "@react-native-community/cli" "12.3.6"
+ "@react-native-community/cli-platform-android" "12.3.6"
+ "@react-native-community/cli-platform-ios" "12.3.6"
"@react-native/assets-registry" "0.73.1"
- "@react-native/codegen" "0.73.2"
- "@react-native/community-cli-plugin" "0.73.12"
+ "@react-native/codegen" "0.73.3"
+ "@react-native/community-cli-plugin" "0.73.17"
"@react-native/gradle-plugin" "0.73.4"
"@react-native/js-polyfills" "0.73.1"
"@react-native/normalize-colors" "0.73.2"
@@ -18569,6 +18470,7 @@ react-native@0.73.2:
anser "^1.4.9"
ansi-regex "^5.0.0"
base64-js "^1.5.1"
+ chalk "^4.0.0"
deprecated-react-native-prop-types "^5.0.0"
event-target-shim "^5.0.1"
flow-enums-runtime "^0.0.6"
@@ -19137,14 +19039,6 @@ rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
-rn-fetch-blob@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz#ec610d2f9b3f1065556b58ab9c106eeb256f3cba"
- integrity sha512-+QnR7AsJ14zqpVVUbzbtAjq0iI8c9tCg49tIoKO2ezjzRunN7YL6zFSFSWZm6d+mE/l9r+OeDM3jmb2tBb2WbA==
- dependencies:
- base-64 "0.1.0"
- glob "7.0.6"
-
roarr@^7.0.4:
version "7.15.1"
resolved "https://registry.yarnpkg.com/roarr/-/roarr-7.15.1.tgz#e4d93105c37b5ea7dd1200d96a3500f757ddc39f"
@@ -19426,16 +19320,16 @@ send@0.18.0, send@^0.18.0:
range-parser "~1.2.1"
statuses "2.0.1"
-sentry-expo@~7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/sentry-expo/-/sentry-expo-7.0.1.tgz#025f0e90ab7f7cba1e00c892fabc027de21bc5bc"
- integrity sha512-8vmOy4R+qM1peQA9EP8rDGUMBhgMU1D5FyuWY9kfNGatmWuvEmlZpVgaXoXaNPIhPgf2TMrvQIlbqLHtTkoeSA==
+sentry-expo@~7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/sentry-expo/-/sentry-expo-7.2.0.tgz#17720e37a69cce57c7281361f49d23ae32c08a87"
+ integrity sha512-stVE2B1RgHxpcup8XU1UIGhoI3cta63guExInl6WYx3d5HsvIu8PZ0yDJnJGflYi9cKPAUCxErIQXMTrS0JQEw==
dependencies:
"@expo/spawn-async" "^1.7.0"
- "@sentry/integrations" "7.52.1"
- "@sentry/react" "7.52.1"
- "@sentry/react-native" "5.5.0"
- "@sentry/types" "7.52.1"
+ "@sentry/integrations" "7.81.1"
+ "@sentry/react" "7.81.1"
+ "@sentry/react-native" "5.17.0"
+ "@sentry/types" "7.81.1"
mkdirp "^1.0.4"
rimraf "^3.0.2"
@@ -19493,11 +19387,6 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-set-cookie-parser@^2.4.8:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51"
- integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==
-
set-function-name@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
@@ -19733,7 +19622,7 @@ source-map-support@0.5.13:
buffer-from "^1.0.0"
source-map "^0.6.0"
-source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@^0.5.6, source-map-support@~0.5.20, source-map-support@~0.5.21:
+source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20, source-map-support@~0.5.21:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
@@ -19918,11 +19807,6 @@ stream-json@^1.7.4, stream-json@^1.7.5:
dependencies:
stream-chain "^2.2.5"
-stream-slice@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b"
- integrity sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==
-
streamx@^2.15.0:
version "2.15.5"
resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1"
@@ -20180,7 +20064,7 @@ styleq@^0.1.3:
resolved "https://registry.yarnpkg.com/styleq/-/styleq-0.1.3.tgz#8efb2892debd51ce7b31dc09c227ad920decab71"
integrity sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==
-sucrase@^3.20.0, sucrase@^3.32.0:
+sucrase@3.34.0, sucrase@^3.20.0, sucrase@^3.32.0:
version "3.34.0"
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f"
integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==
@@ -21037,13 +20921,6 @@ use-callback-ref@^1.3.0:
dependencies:
tslib "^2.0.0"
-use-deep-compare@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/use-deep-compare/-/use-deep-compare-1.1.0.tgz#85580dde751f68400bf6ef7e043c7f986595cef8"
- integrity sha512-6yY3zmKNCJ1jjIivfZMZMReZjr8e6iC6Uqtp701jvWJ6ejC/usXD+JjmslZDPJQgX8P4B1Oi5XSLHkOLeYSJsA==
- dependencies:
- dequal "1.0.0"
-
use-latest-callback@^0.1.5:
version "0.1.6"
resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.6.tgz#3fa6e7babbb5f9bfa24b5094b22939e1e92ebcf6"
@@ -21067,11 +20944,6 @@ utf8-byte-length@^1.0.1:
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==
-utf8@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1"
- integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==
-
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -21087,7 +20959,7 @@ util.promisify@~1.0.0:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.0"
-util@^0.12.0, util@^0.12.3:
+util@^0.12.0:
version "0.12.5"
resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
@@ -21238,20 +21110,6 @@ wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
-web-encoding@1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864"
- integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==
- dependencies:
- util "^0.12.3"
- optionalDependencies:
- "@zxing/text-encoding" "0.9.0"
-
-web-streams-polyfill@^3.1.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
- integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
-
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"