Comparing version 53.0.0-canary-20241211-61c49bd to 53.0.0-canary-20250114-804e26d
import React from 'react'; | ||
import type { DOMProps } from './dom.types'; | ||
interface Props { | ||
children?: any; | ||
dom: DOMProps; | ||
@@ -6,0 +5,0 @@ filePath: string; |
import { ReadableStream } from 'web-streams-polyfill'; | ||
import type { NativeResponse } from './NativeRequest'; | ||
declare const ConcreteNativeResponse: typeof NativeResponse; | ||
export type AbortSubscriptionCleanupFunction = () => void; | ||
/** | ||
@@ -8,3 +9,6 @@ * A response implementation for the `fetch.Response` API. | ||
export declare class FetchResponse extends ConcreteNativeResponse implements Response { | ||
private streamingStarted; | ||
private readonly abortCleanupFunction; | ||
private streamingState; | ||
private bodyStream; | ||
constructor(abortCleanupFunction: AbortSubscriptionCleanupFunction); | ||
get body(): ReadableStream<Uint8Array> | null; | ||
@@ -20,5 +24,5 @@ get headers(): Headers; | ||
clone(): FetchResponse; | ||
private removeAllRegisteredListeners; | ||
private finalize; | ||
} | ||
export {}; | ||
//# sourceMappingURL=FetchResponse.d.ts.map |
@@ -16,2 +16,3 @@ import type { SharedObject } from 'expo-modules-core'; | ||
didFailWithError(error: string): void; | ||
readyForJSFinalization(): void; | ||
}; | ||
@@ -25,3 +26,3 @@ export declare class NativeResponse extends SharedObject<NativeResponseEvents> { | ||
readonly redirected: boolean; | ||
startStreaming(): void; | ||
startStreaming(): Promise<Uint8Array | null>; | ||
cancelStreaming(reason: string): void; | ||
@@ -28,0 +29,0 @@ arrayBuffer(): Promise<ArrayBuffer>; |
{ | ||
"@expo/metro-runtime": "4.0.1-canary-20241211-61c49bd", | ||
"@expo/metro-runtime": "4.0.1-canary-20250114-804e26d", | ||
"@expo/vector-icons": "^14.0.2", | ||
@@ -13,79 +13,79 @@ "@react-native-async-storage/async-storage": "1.23.1", | ||
"@stripe/stripe-react-native": "0.38.6", | ||
"eslint-config-expo": "8.0.2-canary-20241211-61c49bd", | ||
"eslint-config-expo": "8.0.2-canary-20250114-804e26d", | ||
"expo-analytics-amplitude": "~11.3.0", | ||
"expo-app-auth": "~11.1.0", | ||
"expo-app-loader-provider": "~8.0.0", | ||
"expo-apple-authentication": "7.1.3-canary-20241211-61c49bd", | ||
"expo-application": "6.0.2-canary-20241211-61c49bd", | ||
"expo-asset": "11.0.2-canary-20241211-61c49bd", | ||
"expo-audio": "0.4.0-canary-20241211-61c49bd", | ||
"expo-auth-session": "6.0.2-canary-20241211-61c49bd", | ||
"expo-av": "15.0.2-canary-20241211-61c49bd", | ||
"expo-background-fetch": "13.0.4-canary-20241211-61c49bd", | ||
"expo-battery": "9.0.2-canary-20241211-61c49bd", | ||
"expo-blur": "14.0.2-canary-20241211-61c49bd", | ||
"expo-brightness": "13.0.3-canary-20241211-61c49bd", | ||
"expo-build-properties": "0.13.2-canary-20241211-61c49bd", | ||
"expo-calendar": "14.0.6-canary-20241211-61c49bd", | ||
"expo-camera": "16.1.0-canary-20241211-61c49bd", | ||
"expo-cellular": "7.0.2-canary-20241211-61c49bd", | ||
"expo-checkbox": "4.0.1-canary-20241211-61c49bd", | ||
"expo-clipboard": "7.0.1-canary-20241211-61c49bd", | ||
"expo-constants": "17.0.4-canary-20241211-61c49bd", | ||
"expo-contacts": "14.1.0-canary-20241211-61c49bd", | ||
"expo-crypto": "14.0.2-canary-20241211-61c49bd", | ||
"expo-dev-client": "5.0.7-canary-20241211-61c49bd", | ||
"expo-device": "7.0.2-canary-20241211-61c49bd", | ||
"expo-document-picker": "13.0.2-canary-20241211-61c49bd", | ||
"expo-face-detector": "13.0.2-canary-20241211-61c49bd", | ||
"expo-file-system": "18.1.0-canary-20241211-61c49bd", | ||
"expo-font": "13.0.2-canary-20241211-61c49bd", | ||
"expo-gl": "15.0.3-canary-20241211-61c49bd", | ||
"expo-apple-authentication": "7.1.4-canary-20250114-804e26d", | ||
"expo-application": "6.0.3-canary-20250114-804e26d", | ||
"expo-asset": "11.0.3-canary-20250114-804e26d", | ||
"expo-audio": "0.3.4-canary-20250114-804e26d", | ||
"expo-auth-session": "6.0.3-canary-20250114-804e26d", | ||
"expo-av": "15.0.3-canary-20250114-804e26d", | ||
"expo-background-fetch": "13.0.5-canary-20250114-804e26d", | ||
"expo-battery": "9.0.3-canary-20250114-804e26d", | ||
"expo-blur": "14.0.3-canary-20250114-804e26d", | ||
"expo-brightness": "13.0.4-canary-20250114-804e26d", | ||
"expo-build-properties": "0.13.3-canary-20250114-804e26d", | ||
"expo-calendar": "14.0.7-canary-20250114-804e26d", | ||
"expo-camera": "16.0.12-canary-20250114-804e26d", | ||
"expo-cellular": "7.0.3-canary-20250114-804e26d", | ||
"expo-checkbox": "4.0.2-canary-20250114-804e26d", | ||
"expo-clipboard": "7.0.2-canary-20250114-804e26d", | ||
"expo-constants": "17.0.5-canary-20250114-804e26d", | ||
"expo-contacts": "14.0.4-canary-20250114-804e26d", | ||
"expo-crypto": "14.0.3-canary-20250114-804e26d", | ||
"expo-dev-client": "5.0.10-canary-20250114-804e26d", | ||
"expo-device": "7.0.3-canary-20250114-804e26d", | ||
"expo-document-picker": "13.0.3-canary-20250114-804e26d", | ||
"expo-face-detector": "13.0.3-canary-20250114-804e26d", | ||
"expo-file-system": "18.0.8-canary-20250114-804e26d", | ||
"expo-font": "13.0.4-canary-20250114-804e26d", | ||
"expo-gl": "15.0.4-canary-20250114-804e26d", | ||
"expo-google-app-auth": "~8.3.0", | ||
"expo-haptics": "14.0.1-canary-20241211-61c49bd", | ||
"expo-image": "2.0.4-canary-20241211-61c49bd", | ||
"expo-image-loader": "5.0.1-canary-20241211-61c49bd", | ||
"expo-image-manipulator": "13.0.6-canary-20241211-61c49bd", | ||
"expo-image-picker": "16.0.4-canary-20241211-61c49bd", | ||
"expo-intent-launcher": "12.1.0-canary-20241211-61c49bd", | ||
"expo-insights": "0.8.2-canary-20241211-61c49bd", | ||
"expo-keep-awake": "14.0.2-canary-20241211-61c49bd", | ||
"expo-linear-gradient": "14.0.2-canary-20241211-61c49bd", | ||
"expo-linking": "7.0.4-canary-20241211-61c49bd", | ||
"expo-local-authentication": "15.0.2-canary-20241211-61c49bd", | ||
"expo-localization": "16.0.1-canary-20241211-61c49bd", | ||
"expo-location": "18.0.5-canary-20241211-61c49bd", | ||
"expo-mail-composer": "14.1.0-canary-20241211-61c49bd", | ||
"expo-media-library": "17.0.4-canary-20241211-61c49bd", | ||
"expo-module-template": "10.15.13-canary-20241211-61c49bd", | ||
"expo-modules-core": "2.0.7-canary-20241211-61c49bd", | ||
"expo-navigation-bar": "4.0.7-canary-20241211-61c49bd", | ||
"expo-network": "7.0.4-canary-20241211-61c49bd", | ||
"expo-notifications": "0.29.12-canary-20241211-61c49bd", | ||
"expo-print": "14.0.3-canary-20241211-61c49bd", | ||
"expo-router": "4.0.13-canary-20241211-61c49bd", | ||
"expo-screen-capture": "7.0.1-canary-20241211-61c49bd", | ||
"expo-screen-orientation": "8.0.2-canary-20241211-61c49bd", | ||
"expo-secure-store": "14.0.1-canary-20241211-61c49bd", | ||
"expo-sensors": "14.0.2-canary-20241211-61c49bd", | ||
"expo-sharing": "13.0.1-canary-20241211-61c49bd", | ||
"expo-sms": "13.0.1-canary-20241211-61c49bd", | ||
"expo-speech": "13.0.1-canary-20241211-61c49bd", | ||
"expo-splash-screen": "0.30.0-canary-20241211-61c49bd", | ||
"expo-sqlite": "15.0.4-canary-20241211-61c49bd", | ||
"expo-status-bar": "2.0.1-canary-20241211-61c49bd", | ||
"expo-store-review": "8.0.1-canary-20241211-61c49bd", | ||
"expo-symbols": "0.2.1-canary-20241211-61c49bd", | ||
"expo-system-ui": "4.0.7-canary-20241211-61c49bd", | ||
"expo-task-manager": "12.0.4-canary-20241211-61c49bd", | ||
"expo-tracking-transparency": "5.0.1-canary-20241211-61c49bd", | ||
"expo-updates": "0.26.11-canary-20241211-61c49bd", | ||
"expo-video-thumbnails": "9.0.3-canary-20241211-61c49bd", | ||
"expo-video": "2.0.3-canary-20241211-61c49bd", | ||
"expo-web-browser": "14.0.2-canary-20241211-61c49bd", | ||
"jest-expo": "53.0.0-canary-20241211-61c49bd", | ||
"expo-haptics": "14.0.2-canary-20250114-804e26d", | ||
"expo-image": "2.0.5-canary-20250114-804e26d", | ||
"expo-image-loader": "5.0.1-canary-20250114-804e26d", | ||
"expo-image-manipulator": "13.0.7-canary-20250114-804e26d", | ||
"expo-image-picker": "16.0.5-canary-20250114-804e26d", | ||
"expo-intent-launcher": "12.0.3-canary-20250114-804e26d", | ||
"expo-insights": "0.8.3-canary-20250114-804e26d", | ||
"expo-keep-awake": "14.0.3-canary-20250114-804e26d", | ||
"expo-linear-gradient": "14.0.3-canary-20250114-804e26d", | ||
"expo-linking": "7.0.5-canary-20250114-804e26d", | ||
"expo-local-authentication": "15.0.3-canary-20250114-804e26d", | ||
"expo-localization": "16.0.2-canary-20250114-804e26d", | ||
"expo-location": "18.0.6-canary-20250114-804e26d", | ||
"expo-mail-composer": "14.0.3-canary-20250114-804e26d", | ||
"expo-media-library": "17.0.6-canary-20250114-804e26d", | ||
"expo-module-template": "10.15.14-canary-20250114-804e26d", | ||
"expo-modules-core": "2.2.0-canary-20250114-804e26d", | ||
"expo-navigation-bar": "4.0.8-canary-20250114-804e26d", | ||
"expo-network": "7.0.6-canary-20250114-804e26d", | ||
"expo-notifications": "0.29.13-canary-20250114-804e26d", | ||
"expo-print": "14.0.4-canary-20250114-804e26d", | ||
"expo-router": "4.1.0-canary-20250114-804e26d", | ||
"expo-screen-capture": "7.0.2-canary-20250114-804e26d", | ||
"expo-screen-orientation": "8.0.5-canary-20250114-804e26d", | ||
"expo-secure-store": "14.0.2-canary-20250114-804e26d", | ||
"expo-sensors": "14.0.3-canary-20250114-804e26d", | ||
"expo-sharing": "13.0.2-canary-20250114-804e26d", | ||
"expo-sms": "13.0.2-canary-20250114-804e26d", | ||
"expo-speech": "13.0.2-canary-20250114-804e26d", | ||
"expo-splash-screen": "0.29.21-canary-20250114-804e26d", | ||
"expo-sqlite": "15.0.7-canary-20250114-804e26d", | ||
"expo-status-bar": "2.0.2-canary-20250114-804e26d", | ||
"expo-store-review": "8.0.2-canary-20250114-804e26d", | ||
"expo-symbols": "0.2.2-canary-20250114-804e26d", | ||
"expo-system-ui": "4.0.8-canary-20250114-804e26d", | ||
"expo-task-manager": "12.0.5-canary-20250114-804e26d", | ||
"expo-tracking-transparency": "5.1.2-canary-20250114-804e26d", | ||
"expo-updates": "0.26.13-canary-20250114-804e26d", | ||
"expo-video-thumbnails": "9.0.4-canary-20250114-804e26d", | ||
"expo-video": "2.0.6-canary-20250114-804e26d", | ||
"expo-web-browser": "14.0.3-canary-20250114-804e26d", | ||
"jest-expo": "53.0.0-canary-20250114-804e26d", | ||
"lottie-react-native": "7.1.0", | ||
"react": "18.3.1", | ||
"react-dom": "18.3.1", | ||
"react-native": "0.76.3", | ||
"react-native": "0.76.6", | ||
"react-native-web": "~0.19.13", | ||
@@ -97,9 +97,9 @@ "react-native-gesture-handler": "~2.20.2", | ||
"react-native-reanimated": "~3.16.1", | ||
"react-native-screens": "~4.1.0", | ||
"react-native-screens": "~4.4.0", | ||
"react-native-safe-area-context": "4.12.0", | ||
"react-native-svg": "15.8.0", | ||
"react-native-view-shot": "4.0.2", | ||
"react-native-view-shot": "~4.0.3", | ||
"react-native-webview": "13.12.5", | ||
"sentry-expo": "~7.0.0", | ||
"unimodules-app-loader": "5.0.1-canary-20241211-61c49bd", | ||
"unimodules-app-loader": "5.0.2-canary-20250114-804e26d", | ||
"unimodules-image-loader-interface": "~6.1.0", | ||
@@ -106,0 +106,0 @@ "@shopify/react-native-skia": "1.5.0", |
{ | ||
"name": "expo", | ||
"version": "53.0.0-canary-20241211-61c49bd", | ||
"version": "53.0.0-canary-20250114-804e26d", | ||
"description": "The Expo SDK", | ||
@@ -71,16 +71,16 @@ "main": "src/Expo.ts", | ||
"@babel/runtime": "^7.20.0", | ||
"@expo/cli": "0.23.0-canary-20241211-61c49bd", | ||
"@expo/config": "11.0.0-canary-20241211-61c49bd", | ||
"@expo/config-plugins": "9.0.13-canary-20241211-61c49bd", | ||
"@expo/fingerprint": "0.11.4-canary-20241211-61c49bd", | ||
"@expo/metro-config": "0.20.0-canary-20241211-61c49bd", | ||
"@expo/cli": "0.23.0-canary-20250114-804e26d", | ||
"@expo/config": "10.0.9-canary-20250114-804e26d", | ||
"@expo/config-plugins": "9.0.15-canary-20250114-804e26d", | ||
"@expo/fingerprint": "0.11.8-canary-20250114-804e26d", | ||
"@expo/metro-config": "0.19.10-canary-20250114-804e26d", | ||
"@expo/vector-icons": "^14.0.0", | ||
"babel-preset-expo": "12.1.0-canary-20241211-61c49bd", | ||
"expo-asset": "11.0.2-canary-20241211-61c49bd", | ||
"expo-constants": "17.0.4-canary-20241211-61c49bd", | ||
"expo-file-system": "18.1.0-canary-20241211-61c49bd", | ||
"expo-font": "13.0.2-canary-20241211-61c49bd", | ||
"expo-keep-awake": "14.0.2-canary-20241211-61c49bd", | ||
"expo-modules-autolinking": "2.0.5-canary-20241211-61c49bd", | ||
"expo-modules-core": "2.0.7-canary-20241211-61c49bd", | ||
"babel-preset-expo": "12.0.7-canary-20250114-804e26d", | ||
"expo-asset": "11.0.3-canary-20250114-804e26d", | ||
"expo-constants": "17.0.5-canary-20250114-804e26d", | ||
"expo-file-system": "18.0.8-canary-20250114-804e26d", | ||
"expo-font": "13.0.4-canary-20250114-804e26d", | ||
"expo-keep-awake": "14.0.3-canary-20250114-804e26d", | ||
"expo-modules-autolinking": "2.0.6-canary-20250114-804e26d", | ||
"expo-modules-core": "2.2.0-canary-20250114-804e26d", | ||
"fbemitter": "^3.0.0", | ||
@@ -93,10 +93,10 @@ "web-streams-polyfill": "^3.3.2", | ||
"@types/react-test-renderer": "^18.3.0", | ||
"expo-module-scripts": "4.0.3-canary-20241211-61c49bd", | ||
"expo-module-scripts": "4.0.4-canary-20250114-804e26d", | ||
"react": "18.3.1", | ||
"react-dom": "18.3.1", | ||
"react-native": "0.76.3" | ||
"react-native": "0.76.6" | ||
}, | ||
"peerDependencies": { | ||
"@expo/dom-webview": "0.0.2-canary-20241211-61c49bd", | ||
"@expo/metro-runtime": "4.0.1-canary-20241211-61c49bd", | ||
"@expo/dom-webview": "0.0.3-canary-20250114-804e26d", | ||
"@expo/metro-runtime": "4.0.1-canary-20250114-804e26d", | ||
"react": "*", | ||
@@ -116,3 +116,4 @@ "react-native": "*", | ||
} | ||
} | ||
}, | ||
"gitHead": "804e26d8545f2b890dfa80eeb8122036f38d4d0c" | ||
} |
import { ExpoFetchModule } from './ExpoFetchModule'; | ||
import { FetchError } from './FetchErrors'; | ||
import { FetchResponse } from './FetchResponse'; | ||
import { FetchResponse, type AbortSubscriptionCleanupFunction } from './FetchResponse'; | ||
import { NativeRequest, NativeRequestInit } from './NativeRequest'; | ||
@@ -9,3 +9,7 @@ import { normalizeBodyInitAsync, normalizeHeadersInit, overrideHeaders } from './RequestUtils'; | ||
export async function fetch(url: string, init?: FetchRequestInit): Promise<FetchResponse> { | ||
const response = new FetchResponse(); | ||
let abortSubscription: AbortSubscriptionCleanupFunction | null = null; | ||
const response = new FetchResponse(() => { | ||
abortSubscription?.(); | ||
}); | ||
const request = new ExpoFetchModule.NativeRequest(response) as NativeRequest; | ||
@@ -29,6 +33,5 @@ | ||
} | ||
const abortHandler = () => { | ||
abortSubscription = addAbortSignalListener(init?.signal, () => { | ||
request.cancel(); | ||
}; | ||
init?.signal?.addEventListener('abort', abortHandler); | ||
}); | ||
try { | ||
@@ -42,6 +45,17 @@ await request.start(url, nativeRequestInit, requestBody); | ||
} | ||
} finally { | ||
init?.signal?.removeEventListener('abort', abortHandler); | ||
} | ||
return response; | ||
} | ||
/** | ||
* A wrapper of `AbortSignal.addEventListener` that returns a cleanup function. | ||
*/ | ||
function addAbortSignalListener( | ||
signal: AbortSignal | undefined, | ||
listener: Parameters<AbortSignal['addEventListener']>[1] | ||
): AbortSubscriptionCleanupFunction { | ||
signal?.addEventListener('abort', listener); | ||
return () => { | ||
signal?.removeEventListener('abort', listener); | ||
}; | ||
} |
@@ -8,2 +8,4 @@ import { ReadableStream } from 'web-streams-polyfill'; | ||
export type AbortSubscriptionCleanupFunction = () => void; | ||
/** | ||
@@ -13,33 +15,50 @@ * A response implementation for the `fetch.Response` API. | ||
export class FetchResponse extends ConcreteNativeResponse implements Response { | ||
private streamingStarted = false; | ||
private streamingState: 'none' | 'started' | 'completed' = 'none'; | ||
private bodyStream: ReadableStream<Uint8Array> | null = null; | ||
constructor(private readonly abortCleanupFunction: AbortSubscriptionCleanupFunction) { | ||
super(); | ||
this.addListener('readyForJSFinalization', this.finalize); | ||
} | ||
get body(): ReadableStream<Uint8Array> | null { | ||
const response = this; | ||
return new ReadableStream({ | ||
start(controller) { | ||
response.addListener('didReceiveResponseData', (data: Uint8Array) => { | ||
controller.enqueue(data); | ||
}); | ||
if (this.bodyStream == null) { | ||
const response = this; | ||
this.bodyStream = new ReadableStream({ | ||
start(controller) { | ||
if (response.streamingState === 'completed') { | ||
return; | ||
} | ||
response.addListener('didReceiveResponseData', (data: Uint8Array) => { | ||
controller.enqueue(data); | ||
}); | ||
response.addListener('didComplete', () => { | ||
response.removeAllRegisteredListeners(); | ||
controller.close(); | ||
}); | ||
response.addListener('didComplete', () => { | ||
controller.close(); | ||
}); | ||
response.addListener('didFailWithError', (error: string) => { | ||
response.removeAllRegisteredListeners(); | ||
controller.error(new Error(error)); | ||
}); | ||
}, | ||
pull() { | ||
if (!response.streamingStarted) { | ||
response.startStreaming(); | ||
response.streamingStarted = true; | ||
} | ||
}, | ||
cancel(reason) { | ||
response.removeAllRegisteredListeners(); | ||
response.cancelStreaming(String(reason)); | ||
}, | ||
}); | ||
response.addListener('didFailWithError', (error: string) => { | ||
controller.error(new Error(error)); | ||
}); | ||
}, | ||
async pull(controller) { | ||
if (response.streamingState === 'none') { | ||
const completedData = await response.startStreaming(); | ||
if (completedData != null) { | ||
controller.enqueue(completedData); | ||
controller.close(); | ||
response.streamingState = 'completed'; | ||
} else { | ||
response.streamingState = 'started'; | ||
} | ||
} else if (response.streamingState === 'completed') { | ||
controller.close(); | ||
} | ||
}, | ||
cancel(reason) { | ||
response.cancelStreaming(String(reason)); | ||
}, | ||
}); | ||
} | ||
return this.bodyStream; | ||
} | ||
@@ -96,7 +115,11 @@ | ||
private removeAllRegisteredListeners() { | ||
private finalize = (): void => { | ||
this.removeListener('readyForJSFinalization', this.finalize); | ||
this.abortCleanupFunction(); | ||
this.removeAllListeners('didReceiveResponseData'); | ||
this.removeAllListeners('didComplete'); | ||
this.removeAllListeners('didFailWithError'); | ||
} | ||
}; | ||
} |
@@ -24,2 +24,3 @@ import type { SharedObject } from 'expo-modules-core'; | ||
didFailWithError(error: string): void; | ||
readyForJSFinalization(): void; | ||
}; | ||
@@ -34,3 +35,3 @@ | ||
readonly redirected: boolean; | ||
startStreaming(): void; | ||
startStreaming(): Promise<Uint8Array | null>; | ||
cancelStreaming(reason: string): void; | ||
@@ -37,0 +38,0 @@ arrayBuffer(): Promise<ArrayBuffer>; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
348973
6364
287
+ Added@0no-co/graphql.web@1.1.2(transitive)
+ Added@expo/cli@0.23.0-canary-20250114-804e26d(transitive)
+ Added@expo/config@10.0.9-canary-20250114-804e26d(transitive)
+ Added@expo/config-plugins@9.0.15-canary-20250114-804e26d(transitive)
+ Added@expo/config-types@53.0.0-canary-20250114-804e26d(transitive)
+ Added@expo/dom-webview@0.0.3-canary-20250114-804e26d(transitive)
+ Added@expo/env@0.4.2-canary-20250114-804e26d(transitive)
+ Added@expo/fingerprint@0.11.8-canary-20250114-804e26d(transitive)
+ Added@expo/image-utils@0.6.5-canary-20250114-804e26d(transitive)
+ Added@expo/json-file@9.0.2-canary-20250114-804e26d(transitive)
+ Added@expo/metro-config@0.19.10-canary-20250114-804e26d(transitive)
+ Added@expo/metro-runtime@4.0.1-canary-20250114-804e26d(transitive)
+ Added@expo/osascript@2.1.6-canary-20250114-804e26d(transitive)
+ Added@expo/package-manager@1.7.2-canary-20250114-804e26d(transitive)
+ Added@expo/plist@0.2.2-canary-20250114-804e26d(transitive)
+ Added@expo/prebuild-config@8.0.26-canary-20250114-804e26d(transitive)
+ Added@react-native/babel-plugin-codegen@0.76.6(transitive)
+ Added@react-native/babel-preset@0.76.6(transitive)
+ Added@react-native/codegen@0.76.6(transitive)
+ Added@react-native/debugger-frontend@0.76.6(transitive)
+ Added@react-native/dev-middleware@0.76.6(transitive)
+ Added@react-native/normalize-colors@0.76.6(transitive)
+ Added@types/node@18.19.7922.13.9(transitive)
+ Added@urql/core@5.1.1(transitive)
+ Added@urql/exchange-retry@1.3.1(transitive)
+ Addedbabel-preset-expo@12.0.7-canary-20250114-804e26d(transitive)
+ Addedcaniuse-lite@1.0.30001702(transitive)
+ Addedelectron-to-chromium@1.5.112(transitive)
+ Addedexpo-asset@11.0.3-canary-20250114-804e26d(transitive)
+ Addedexpo-constants@17.0.5-canary-20250114-804e26d(transitive)
+ Addedexpo-file-system@18.0.8-canary-20250114-804e26d(transitive)
+ Addedexpo-font@13.0.4-canary-20250114-804e26d(transitive)
+ Addedexpo-keep-awake@14.0.3-canary-20250114-804e26d(transitive)
+ Addedexpo-modules-autolinking@2.0.6-canary-20250114-804e26d(transitive)
+ Addedexpo-modules-core@2.2.0-canary-20250114-804e26d(transitive)
+ Addedflow-parser@0.263.0(transitive)
+ Addedwonka@6.3.5(transitive)
- Removed@0no-co/graphql.web@1.1.1(transitive)
- Removed@expo/cli@0.23.0-canary-20241211-61c49bd(transitive)
- Removed@expo/config@11.0.0-canary-20241211-61c49bd(transitive)
- Removed@expo/config-plugins@9.0.13-canary-20241211-61c49bd(transitive)
- Removed@expo/config-types@53.0.0-canary-20241211-61c49bd(transitive)
- Removed@expo/dom-webview@0.0.2-canary-20241211-61c49bd(transitive)
- Removed@expo/env@0.4.1-canary-20241211-61c49bd(transitive)
- Removed@expo/fingerprint@0.11.4-canary-20241211-61c49bd(transitive)
- Removed@expo/image-utils@0.6.4-canary-20241211-61c49bd(transitive)
- Removed@expo/json-file@9.0.1-canary-20241211-61c49bd(transitive)
- Removed@expo/metro-config@0.20.0-canary-20241211-61c49bd(transitive)
- Removed@expo/metro-runtime@4.0.1-canary-20241211-61c49bd(transitive)
- Removed@expo/osascript@2.1.5-canary-20241211-61c49bd(transitive)
- Removed@expo/package-manager@1.6.2-canary-20241211-61c49bd(transitive)
- Removed@expo/plist@0.2.1-canary-20241211-61c49bd(transitive)
- Removed@expo/prebuild-config@8.0.24-canary-20241211-61c49bd(transitive)
- Removed@react-native/babel-plugin-codegen@0.76.3(transitive)
- Removed@react-native/babel-preset@0.76.3(transitive)
- Removed@react-native/codegen@0.76.3(transitive)
- Removed@react-native/debugger-frontend@0.76.3(transitive)
- Removed@react-native/dev-middleware@0.76.3(transitive)
- Removed@react-native/normalize-colors@0.76.3(transitive)
- Removed@types/node@18.19.7822.13.8(transitive)
- Removed@urql/core@5.1.0(transitive)
- Removed@urql/exchange-retry@1.3.0(transitive)
- Removedbabel-preset-expo@12.1.0-canary-20241211-61c49bd(transitive)
- Removedcaniuse-lite@1.0.30001701(transitive)
- Removedelectron-to-chromium@1.5.109(transitive)
- Removedexpo-asset@11.0.2-canary-20241211-61c49bd(transitive)
- Removedexpo-constants@17.0.4-canary-20241211-61c49bd(transitive)
- Removedexpo-file-system@18.1.0-canary-20241211-61c49bd(transitive)
- Removedexpo-font@13.0.2-canary-20241211-61c49bd(transitive)
- Removedexpo-keep-awake@14.0.2-canary-20241211-61c49bd(transitive)
- Removedexpo-modules-autolinking@2.0.5-canary-20241211-61c49bd(transitive)
- Removedexpo-modules-core@2.0.7-canary-20241211-61c49bd(transitive)
- Removedflow-parser@0.262.0(transitive)
- Removedwonka@6.3.4(transitive)
Updatedexpo-modules-autolinking@2.0.6-canary-20250114-804e26d