expo 51.0.0-preview.1 → 51.0.0-preview.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +2 -2
- package/build/Expo.fx.js.map +1 -1
- package/build/Expo.fx.web.js.map +1 -1
- package/build/devtools/DevToolsPluginClient.js.map +1 -1
- package/build/devtools/DevToolsPluginClientFactory.js.map +1 -1
- package/build/devtools/DevToolsPluginClientImplApp.js.map +1 -1
- package/build/devtools/DevToolsPluginClientImplBrowser.js.map +1 -1
- package/build/devtools/WebSocketWithReconnect.js.map +1 -1
- package/build/devtools/index.js.map +1 -1
- package/build/devtools/logger.js.map +1 -1
- package/build/environment/DevLoadingView.js.map +1 -1
- package/build/environment/ExpoGo.js.map +1 -1
- package/build/errors/ExpoErrorManager.native.js.map +1 -1
- package/build/launch/registerRootComponent.js.map +1 -1
- package/build/launch/withDevTools.ios.js.map +1 -1
- package/build/launch/withDevTools.js.map +1 -1
- package/build/launch/withDevTools.web.js.map +1 -1
- package/build/timer/polyfillNextTick.js.map +1 -1
- package/build/winter/url.js.map +1 -1
- package/bundledNativeModules.json +64 -64
- package/package.json +13 -13
package/android/build.gradle
CHANGED
|
@@ -33,7 +33,7 @@ def getRNVersion() {
|
|
|
33
33
|
ensureDependeciesWereEvaluated(project)
|
|
34
34
|
|
|
35
35
|
group = 'host.exp.exponent'
|
|
36
|
-
version = '51.0.0-preview.
|
|
36
|
+
version = '51.0.0-preview.3'
|
|
37
37
|
|
|
38
38
|
buildscript {
|
|
39
39
|
// Simple helper that allows the root project to override versions declared by this library.
|
|
@@ -46,7 +46,7 @@ android {
|
|
|
46
46
|
namespace "expo.core"
|
|
47
47
|
defaultConfig {
|
|
48
48
|
versionCode 1
|
|
49
|
-
versionName "51.0.0-preview.
|
|
49
|
+
versionName "51.0.0-preview.3"
|
|
50
50
|
consumerProguardFiles("proguard-rules.pro")
|
|
51
51
|
}
|
|
52
52
|
testOptions {
|
package/build/Expo.fx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expo.fx.js","sourceRoot":"","sources":["../src/Expo.fx.tsx"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,4FAA4F;AAC5F,IAAI,UAAU,CAAC,6BAA6B,EAAE
|
|
1
|
+
{"version":3,"file":"Expo.fx.js","sourceRoot":"","sources":["../src/Expo.fx.tsx"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,4FAA4F;AAC5F,IAAI,UAAU,CAAC,6BAA6B,EAAE;IAC5C,UAAU,CAAC,6BAA6B,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;CAChF;AAED,IAAI,iBAAiB,EAAE,EAAE;IACvB,wFAAwF;IACxF,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACpD,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;CAChE","sourcesContent":["// load expo-asset immediately to set a custom `source` transformer in React Native\nimport './winter';\nimport 'expo-asset';\n\nimport * as Font from 'expo-font';\nimport { StyleSheet } from 'react-native';\n\nimport { isRunningInExpoGo } from './environment/ExpoGo';\nimport { createErrorHandler } from './errors/ExpoErrorManager';\n\n// If expo-font is installed and the style preprocessor is available, use it to parse fonts.\nif (StyleSheet.setStyleAttributePreprocessor) {\n StyleSheet.setStyleAttributePreprocessor('fontFamily', Font.processFontFamily);\n}\n\nif (isRunningInExpoGo()) {\n // set up some improvements to commonly logged error messages stemming from react-native\n const globalHandler = ErrorUtils.getGlobalHandler();\n ErrorUtils.setGlobalHandler(createErrorHandler(globalHandler));\n}\n"]}
|
package/build/Expo.fx.web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expo.fx.web.js","sourceRoot":"","sources":["../src/Expo.fx.web.tsx"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,+EAA+E;AAC/E,oFAAoF;AACpF,qEAAqE;AACrE,IAAI,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"Expo.fx.web.js","sourceRoot":"","sources":["../src/Expo.fx.web.tsx"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,+EAA+E;AAC/E,oFAAoF;AACpF,qEAAqE;AACrE,IAAI,OAAO,EAAE;IACX;IACE,sDAAsD;IACtD,CAAC,CAAC,yBAAyB,IAAI,MAAM,CAAC,EACtC;QACA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,yBAAyB,EAAE;YACvD,GAAG;gBACD,MAAM,IAAI,KAAK,CACb,qJAAqJ,CACtJ,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;KACJ;CACF","sourcesContent":["// When users dangerously import a file inside of react-native, it breaks the web alias.\n// This is one of the most common, and cryptic web errors that users encounter.\n// This conditional side-effect provides a more helpful error message for debugging.\n// Use a wrapper `__DEV__` to remove this entire block in production.\nif (__DEV__) {\n if (\n // Skip mocking if someone is shimming this value out.\n !('__fbBatchedBridgeConfig' in global)\n ) {\n Object.defineProperty(global, '__fbBatchedBridgeConfig', {\n get() {\n throw new Error(\n \"Your web project is importing a module from 'react-native' instead of 'react-native-web'. Learn more: https://expo.fyi/fb-batched-bridge-config-web\"\n );\n },\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsPluginClient.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,iIAAiI;AACjI,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,OAAgB,oBAAoB;IASL;IARzB,YAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;IAElD,MAAM,CAAC,cAAc,GAA0B,IAAI,qBAAqB,EAAE,CAAC;IAClE,OAAO,GAA0B,oBAAoB,CAAC,cAAc,CAAC;IAE5E,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,CAAC,CAAC;IAEtB,YAAmC,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAC/D,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,oBAAoB,CAAC,cAAc,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAS;QACpB,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"DevToolsPluginClient.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter, EventSubscription } from 'fbemitter';\n\nimport { WebSocketBackingStore } from './WebSocketBackingStore';\nimport { WebSocketWithReconnect } from './WebSocketWithReconnect';\nimport type { ConnectionInfo } from './devtools.types';\nimport * as logger from './logger';\n\n// This version should be synced with the one in the **createMessageSocketEndpoint.ts** in @react-native-community/cli-server-api\nexport const MESSAGE_PROTOCOL_VERSION = 2;\n\nexport const DevToolsPluginMethod = 'Expo:DevToolsPlugin';\n\n/**\n * This client is for the Expo DevTools Plugins to communicate between the app and the DevTools webpage hosted in a browser.\n * All the code should be both compatible with browsers and React Native.\n */\nexport abstract class DevToolsPluginClient {\n protected eventEmitter: EventEmitter = new EventEmitter();\n\n private static defaultWSStore: WebSocketBackingStore = new WebSocketBackingStore();\n private readonly wsStore: WebSocketBackingStore = DevToolsPluginClient.defaultWSStore;\n\n protected isClosed = false;\n protected retries = 0;\n\n public constructor(public readonly connectionInfo: ConnectionInfo) {\n this.wsStore = connectionInfo.wsStore || DevToolsPluginClient.defaultWSStore;\n }\n\n /**\n * Initialize the connection.\n * @hidden\n */\n public async initAsync(): Promise<void> {\n if (this.wsStore.ws == null) {\n this.wsStore.ws = await this.connectAsync();\n }\n this.wsStore.refCount += 1;\n this.wsStore.ws.addEventListener('message', this.handleMessage);\n }\n\n /**\n * Close the connection.\n */\n public async closeAsync(): Promise<void> {\n this.isClosed = true;\n this.wsStore.ws?.removeEventListener('message', this.handleMessage);\n this.wsStore.refCount -= 1;\n if (this.wsStore.refCount < 1) {\n this.wsStore.ws?.close();\n this.wsStore.ws = null;\n }\n this.eventEmitter.removeAllListeners();\n }\n\n /**\n * Send a message to the other end of DevTools.\n * @param method A method name.\n * @param params any extra payload.\n */\n public sendMessage(method: string, params: any) {\n if (this.wsStore.ws?.readyState === WebSocket.CLOSED) {\n logger.warn('Unable to send message in a disconnected state.');\n return;\n }\n\n const payload: Record<string, any> = {\n version: MESSAGE_PROTOCOL_VERSION,\n pluginName: this.connectionInfo.pluginName,\n method: DevToolsPluginMethod,\n params: {\n method,\n params,\n },\n };\n this.wsStore.ws?.send(JSON.stringify(payload));\n }\n\n /**\n * Subscribe to a message from the other end of DevTools.\n * @param method Subscribe to a message with a method name.\n * @param listener Listener to be called when a message is received.\n */\n public addMessageListener(method: string, listener: (params: any) => void): EventSubscription {\n return this.eventEmitter.addListener(method, listener);\n }\n\n /**\n * Subscribe to a message from the other end of DevTools just once.\n * @param method Subscribe to a message with a method name.\n * @param listener Listener to be called when a message is received.\n */\n public addMessageListenerOnce(method: string, listener: (params: any) => void): void {\n this.eventEmitter.once(method, listener);\n }\n\n /**\n * Returns whether the client is connected to the server.\n */\n public isConnected(): boolean {\n return this.wsStore.ws?.readyState === WebSocket.OPEN;\n }\n\n /**\n * The method to create the WebSocket connection.\n */\n protected connectAsync(): Promise<WebSocket> {\n return new Promise((resolve, reject) => {\n const ws = new WebSocketWithReconnect(`ws://${this.connectionInfo.devServer}/message`, {\n onError: (e: unknown) => {\n if (e instanceof Error) {\n console.warn(`Error happened from the WebSocket connection: ${e.message}\\n${e.stack}`);\n } else {\n console.warn(`Error happened from the WebSocket connection: ${JSON.stringify(e)}`);\n }\n },\n });\n ws.addEventListener('open', () => {\n resolve(ws);\n });\n ws.addEventListener('error', (e) => {\n reject(e);\n });\n ws.addEventListener('close', (e: WebSocketCloseEvent) => {\n logger.info('WebSocket closed', e.code, e.reason);\n });\n });\n }\n\n protected handleMessage = (event: WebSocketMessageEvent): void => {\n let payload;\n try {\n payload = JSON.parse(event.data);\n } catch (e) {\n logger.info('Failed to parse JSON', e);\n return;\n }\n\n if (payload.version !== MESSAGE_PROTOCOL_VERSION || payload.method !== DevToolsPluginMethod) {\n return;\n }\n if (payload.pluginName && payload.pluginName !== this.connectionInfo.pluginName) {\n return;\n }\n\n this.eventEmitter.emit(payload.params.method, payload.params.params);\n };\n\n /**\n * Get the WebSocket backing store. Exposed for testing.\n * @hidden\n */\n public getWebSocketBackingStore(): WebSocketBackingStore {\n return this.wsStore;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsPluginClientFactory.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,GAAyE,EAAE,CAAC;AAE7F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,cAA8B;IAE9B,IAAI,MAA4B,CAAC;IACjC,IAAI,cAAc,CAAC,MAAM,KAAK,KAAK,EAAE
|
|
1
|
+
{"version":3,"file":"DevToolsPluginClientFactory.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,GAAyE,EAAE,CAAC;AAE7F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,cAA8B;IAE9B,IAAI,MAA4B,CAAC;IACjC,IAAI,cAAc,CAAC,MAAM,KAAK,KAAK,EAAE;QACnC,MAAM,GAAG,IAAI,2BAA2B,CAAC,cAAc,CAAC,CAAC;KAC1D;SAAM;QACL,MAAM,GAAG,IAAI,+BAA+B,CAAC,cAAc,CAAC,CAAC;KAC9D;IACD,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAAkB;IAElB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,IAAI,QAAQ,GACV,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1B,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,IAAI,QAAQ,YAAY,OAAO,EAAE;YAC/B,OAAO,QAAQ,CAAC;SACjB;QACD,IACE,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK;YAChC,QAAQ,CAAC,cAAc,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS,EAC9D;YACA,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAM,eAAe,GAAG,0BAA0B,CAAC,EAAE,GAAG,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;QACtF,WAAW,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;QAC1C,QAAQ,GAAG,MAAM,eAAe,CAAC;QACjC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;KACpC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B;IAC5C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,QAAQ,YAAY,OAAO,EAAE;YAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;SACpD;aAAM;YACL,QAAQ,CAAC,UAAU,EAAE,CAAC;SACvB;KACF;AACH,CAAC","sourcesContent":["import type { DevToolsPluginClient } from './DevToolsPluginClient';\nimport { DevToolsPluginClientImplApp } from './DevToolsPluginClientImplApp';\nimport { DevToolsPluginClientImplBrowser } from './DevToolsPluginClientImplBrowser';\nimport type { ConnectionInfo } from './devtools.types';\nimport { getConnectionInfo } from './getConnectionInfo';\n\nconst instanceMap: Record<string, DevToolsPluginClient | Promise<DevToolsPluginClient>> = {};\n\n/**\n * Factory of DevToolsPluginClient based on sender types.\n * @hidden\n */\nexport async function createDevToolsPluginClient(\n connectionInfo: ConnectionInfo\n): Promise<DevToolsPluginClient> {\n let client: DevToolsPluginClient;\n if (connectionInfo.sender === 'app') {\n client = new DevToolsPluginClientImplApp(connectionInfo);\n } else {\n client = new DevToolsPluginClientImplBrowser(connectionInfo);\n }\n await client.initAsync();\n return client;\n}\n\n/**\n * Public API to get the DevToolsPluginClient instance.\n */\nexport async function getDevToolsPluginClientAsync(\n pluginName: string\n): Promise<DevToolsPluginClient> {\n const connectionInfo = getConnectionInfo();\n\n let instance: DevToolsPluginClient | Promise<DevToolsPluginClient> | null =\n instanceMap[pluginName];\n if (instance != null) {\n if (instance instanceof Promise) {\n return instance;\n }\n if (\n instance.isConnected() === false ||\n instance.connectionInfo.devServer !== connectionInfo.devServer\n ) {\n await instance.closeAsync();\n delete instanceMap[pluginName];\n instance = null;\n }\n }\n if (instance == null) {\n const instancePromise = createDevToolsPluginClient({ ...connectionInfo, pluginName });\n instanceMap[pluginName] = instancePromise;\n instance = await instancePromise;\n instanceMap[pluginName] = instance;\n }\n return instance;\n}\n\n/**\n * Internal testing API to cleanup all DevToolsPluginClient instances.\n */\nexport function cleanupDevToolsPluginInstances() {\n for (const pluginName of Object.keys(instanceMap)) {\n const instance = instanceMap[pluginName];\n delete instanceMap[pluginName];\n if (instance instanceof Promise) {\n instance.then((instance) => instance.closeAsync());\n } else {\n instance.closeAsync();\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsPluginClientImplApp.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientImplApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,oBAAoB;IACnE,uCAAuC;IAC/B,gBAAgB,GAA2B,EAAE,CAAC;IAEtD;;;OAGG;IACM,KAAK,CAAC,SAAS;QACtB,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,MAA8B,EAAE,EAAE;YACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,uBAAuB,IAAI,IAAI,IAAI,uBAAuB,KAAK,MAAM,CAAC,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"DevToolsPluginClientImplApp.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientImplApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,oBAAoB;IACnE,uCAAuC;IAC/B,gBAAgB,GAA2B,EAAE,CAAC;IAEtD;;;OAGG;IACM,KAAK,CAAC,SAAS;QACtB,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,MAA8B,EAAE,EAAE;YACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,uBAAuB,IAAI,IAAI,IAAI,uBAAuB,KAAK,MAAM,CAAC,eAAe,EAAE;gBACzF,MAAM,CAAC,IAAI,CACT,8EAA8E,uBAAuB,GAAG,CACzG,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC,CAAC;aAC1F;YACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { DevToolsPluginClient } from './DevToolsPluginClient';\nimport type { HandshakeMessageParams } from './devtools.types';\nimport * as logger from './logger';\n\n/**\n * The DevToolsPluginClient for the app -> browser communication.\n */\nexport class DevToolsPluginClientImplApp extends DevToolsPluginClient {\n // Map of pluginName -> browserClientId\n private browserClientMap: Record<string, string> = {};\n\n /**\n * Initialize the connection.\n * @hidden\n */\n override async initAsync(): Promise<void> {\n await super.initAsync();\n this.addHandshakeHandler();\n }\n\n private addHandshakeHandler() {\n this.addMessageListener('handshake', (params: HandshakeMessageParams) => {\n const previousBrowserClientId = this.browserClientMap[params.pluginName];\n if (previousBrowserClientId != null && previousBrowserClientId !== params.browserClientId) {\n logger.info(\n `Terminate the previous browser client connection - previousBrowserClientId[${previousBrowserClientId}]`\n );\n this.sendMessage('terminateBrowserClient', { browserClientId: previousBrowserClientId });\n }\n this.browserClientMap[params.pluginName] = params.browserClientId;\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsPluginClientImplBrowser.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientImplBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,oBAAoB;IAC/D,eAAe,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAExD;;;OAGG;IACM,KAAK,CAAC,SAAS;QACtB,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3D,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"DevToolsPluginClientImplBrowser.js","sourceRoot":"","sources":["../../src/devtools/DevToolsPluginClientImplBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,oBAAoB;IAC/D,eAAe,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAExD;;;OAGG;IACM,KAAK,CAAC,SAAS;QACtB,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3D,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,EAAE;gBACnD,OAAO;aACR;YACD,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;YAC7F,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU;SAC3C,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { DevToolsPluginClient } from './DevToolsPluginClient';\nimport * as logger from './logger';\n\n/**\n * The DevToolsPluginClient for the browser -> app communication.\n */\nexport class DevToolsPluginClientImplBrowser extends DevToolsPluginClient {\n private browserClientId: string = Date.now().toString();\n\n /**\n * Initialize the connection.\n * @hidden\n */\n override async initAsync(): Promise<void> {\n await super.initAsync();\n this.startHandshake();\n }\n\n private startHandshake() {\n this.addMessageListener('terminateBrowserClient', (params) => {\n if (this.browserClientId !== params.browserClientId) {\n return;\n }\n logger.info('Received terminateBrowserClient messages and terminate the current connection');\n this.closeAsync();\n });\n this.sendMessage('handshake', {\n browserClientId: this.browserClientId,\n pluginName: this.connectionInfo.pluginName,\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketWithReconnect.js","sourceRoot":"","sources":["../../src/devtools/WebSocketWithReconnect.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter, type EventSubscription } from 'fbemitter';\n\nexport interface Options {\n /**\n * Reconnect interval in milliseconds.\n * @default 1500\n */\n retriesInterval?: number;\n\n /**\n * The maximum number of retries.\n * @default 200\n */\n maxRetries?: number;\n\n /**\n * The timeout in milliseconds for the WebSocket connecting.\n */\n connectTimeout?: number;\n\n /**\n * The error handler.\n * @default throwing an error\n */\n onError?: (error: Error) => void;\n\n /**\n * The callback to be called when the WebSocket is reconnected.\n * @default no-op\n */\n onReconnect?: (reason: string) => void;\n}\n\nexport class WebSocketWithReconnect implements WebSocket {\n private readonly retriesInterval: number;\n private readonly maxRetries: number;\n private readonly connectTimeout: number;\n private readonly onError: (error: Error) => void;\n private readonly onReconnect: (reason: string) => void;\n\n private ws: WebSocket | null = null;\n private retries = 0;\n private connectTimeoutHandle: ReturnType<typeof setTimeout> | null = null;\n private isClosed = false;\n private sendQueue: (string | ArrayBufferView | Blob | ArrayBufferLike)[] = [];\n private lastCloseEvent: { code?: number; reason?: string; message?: string } | null = null;\n\n private readonly emitter = new EventEmitter();\n private readonly eventSubscriptions: EventSubscription[] = [];\n\n constructor(\n public readonly url: string,\n options?: Options\n ) {\n this.retriesInterval = options?.retriesInterval ?? 1500;\n this.maxRetries = options?.maxRetries ?? 200;\n this.connectTimeout = options?.connectTimeout ?? 5000;\n this.onError =\n options?.onError ??\n ((error) => {\n throw error;\n });\n this.onReconnect = options?.onReconnect ?? (() => {});\n\n this.connect();\n }\n\n public close(code?: number, reason?: string) {\n this.clearConnectTimeoutIfNeeded();\n this.emitter.emit(\n 'close',\n this.lastCloseEvent ?? {\n code: code ?? 1000,\n reason: reason ?? 'Explicit closing',\n message: 'Explicit closing',\n }\n );\n this.lastCloseEvent = null;\n this.isClosed = true;\n this.emitter.removeAllListeners();\n this.sendQueue = [];\n if (this.ws != null) {\n const ws = this.ws;\n this.ws = null;\n this.wsClose(ws);\n }\n }\n\n public addEventListener(event: 'message', listener: (event: WebSocketMessageEvent) => void): void;\n public addEventListener(event: 'open', listener: () => void): void;\n public addEventListener(event: 'error', listener: (event: WebSocketErrorEvent) => void): void;\n public addEventListener(event: 'close', listener: (event: WebSocketCloseEvent) => void): void;\n public addEventListener(event: string, listener: (event: any) => void) {\n this.eventSubscriptions.push(this.emitter.addListener(event, listener));\n }\n\n public removeEventListener(event: string, listener: (event: any) => void) {\n const index = this.eventSubscriptions.findIndex(\n (subscription) => subscription.listener === listener\n );\n if (index >= 0) {\n this.eventSubscriptions[index].remove();\n this.eventSubscriptions.splice(index, 1);\n }\n }\n\n //#region Internals\n\n private connect() {\n if (this.ws != null) {\n return;\n }\n this.connectTimeoutHandle = setTimeout(this.handleConnectTimeout, this.connectTimeout);\n\n this.ws = new WebSocket(this.url.toString());\n this.ws.addEventListener('message', this.handleMessage);\n this.ws.addEventListener('open', this.handleOpen);\n // @ts-ignore TypeScript expects (e: Event) => any, but we want (e: WebSocketErrorEvent) => any\n this.ws.addEventListener('error', this.handleError);\n this.ws.addEventListener('close', this.handleClose);\n }\n\n public send(data: string | ArrayBufferView | Blob | ArrayBufferLike): void {\n if (this.isClosed) {\n this.onError(new Error('Unable to send data: WebSocket is closed'));\n return;\n }\n\n if (this.retries >= this.maxRetries) {\n this.onError(\n new Error(`Unable to send data: Exceeded max retries - retries[${this.retries}]`)\n );\n return;\n }\n\n const ws = this.ws;\n if (ws != null && ws.readyState === WebSocket.OPEN) {\n ws.send(data);\n } else {\n this.sendQueue.push(data);\n }\n }\n\n private handleOpen = () => {\n this.clearConnectTimeoutIfNeeded();\n this.lastCloseEvent = null;\n this.emitter.emit('open');\n\n const sendQueue = this.sendQueue;\n this.sendQueue = [];\n for (const data of sendQueue) {\n this.send(data);\n }\n };\n\n private handleMessage = (event: WebSocketMessageEvent) => {\n this.emitter.emit('message', event);\n };\n\n private handleError = (event: WebSocketErrorEvent) => {\n this.clearConnectTimeoutIfNeeded();\n this.emitter.emit('error', event);\n this.reconnectIfNeeded(`WebSocket error - ${event.message}`);\n };\n\n private handleClose = (event: WebSocketCloseEvent) => {\n this.clearConnectTimeoutIfNeeded();\n this.lastCloseEvent = {\n code: event.code,\n reason: event.reason,\n message: event.message,\n };\n this.reconnectIfNeeded(`WebSocket closed - code[${event.code}] reason[${event.reason}]`);\n };\n\n private handleConnectTimeout = () => {\n this.reconnectIfNeeded('Timeout from connecting to the WebSocket');\n };\n\n private clearConnectTimeoutIfNeeded() {\n if (this.connectTimeoutHandle != null) {\n clearTimeout(this.connectTimeoutHandle);\n this.connectTimeoutHandle = null;\n }\n }\n\n private reconnectIfNeeded(reason: string) {\n if (this.ws != null) {\n this.wsClose(this.ws);\n this.ws = null;\n }\n if (this.isClosed) {\n return;\n }\n\n if (this.retries >= this.maxRetries) {\n this.onError(new Error('Exceeded max retries'));\n this.close();\n return;\n }\n\n setTimeout(() => {\n this.retries += 1;\n this.connect();\n this.onReconnect(reason);\n }, this.retriesInterval);\n }\n\n private wsClose(ws: WebSocket) {\n try {\n ws.removeEventListener('message', this.handleMessage);\n ws.removeEventListener('open', this.handleOpen);\n // @ts-ignore: TypeScript expects (e: Event) => any, but we want (e: WebSocketErrorEvent) => any\n ws.removeEventListener('error', this.handleError);\n ws.removeEventListener('close', this.handleClose);\n ws.close();\n } catch {}\n }\n\n public get readyState() {\n // Only return closed if the WebSocket is explicitly closed or exceeds max retries.\n if (this.isClosed) {\n return WebSocket.CLOSED;\n }\n\n const readyState = this.ws?.readyState;\n if (readyState === WebSocket.CLOSED) {\n return WebSocket.CONNECTING;\n }\n return readyState ?? WebSocket.CONNECTING;\n }\n\n //#endregion\n\n //#region WebSocket API proxy\n\n public readonly CONNECTING = 0;\n public readonly OPEN = 1;\n public readonly CLOSING = 2;\n public readonly CLOSED = 3;\n\n public get binaryType() {\n return this.ws?.binaryType ?? 'blob';\n }\n\n public get bufferedAmount() {\n return this.ws?.bufferedAmount ?? 0;\n }\n\n public get extensions() {\n return this.ws?.extensions ?? '';\n }\n\n public get protocol() {\n return this.ws?.protocol ?? '';\n }\n\n public ping(): void {\n return this.ws?.ping();\n }\n\n public dispatchEvent(event: Event) {\n return this.ws?.dispatchEvent(event) ?? false;\n }\n\n //#endregion\n\n //#regions Unsupported legacy properties\n\n public set onclose(value: ((e: WebSocketCloseEvent) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onerror(value: ((e: Event) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onmessage(value: ((e: WebSocketMessageEvent) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onopen(value: (() => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n //#endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WebSocketWithReconnect.js","sourceRoot":"","sources":["../../src/devtools/WebSocketWithReconnect.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter, type EventSubscription } from 'fbemitter';\n\nexport interface Options {\n /**\n * Reconnect interval in milliseconds.\n * @default 1500\n */\n retriesInterval?: number;\n\n /**\n * The maximum number of retries.\n * @default 200\n */\n maxRetries?: number;\n\n /**\n * The timeout in milliseconds for the WebSocket connecting.\n */\n connectTimeout?: number;\n\n /**\n * The error handler.\n * @default throwing an error\n */\n onError?: (error: Error) => void;\n\n /**\n * The callback to be called when the WebSocket is reconnected.\n * @default no-op\n */\n onReconnect?: (reason: string) => void;\n}\n\nexport class WebSocketWithReconnect implements WebSocket {\n private readonly retriesInterval: number;\n private readonly maxRetries: number;\n private readonly connectTimeout: number;\n private readonly onError: (error: Error) => void;\n private readonly onReconnect: (reason: string) => void;\n\n private ws: WebSocket | null = null;\n private retries = 0;\n private connectTimeoutHandle: ReturnType<typeof setTimeout> | null = null;\n private isClosed = false;\n private sendQueue: (string | ArrayBufferView | Blob | ArrayBufferLike)[] = [];\n private lastCloseEvent: { code?: number; reason?: string; message?: string } | null = null;\n\n private readonly emitter = new EventEmitter();\n private readonly eventSubscriptions: EventSubscription[] = [];\n\n constructor(\n public readonly url: string,\n options?: Options\n ) {\n this.retriesInterval = options?.retriesInterval ?? 1500;\n this.maxRetries = options?.maxRetries ?? 200;\n this.connectTimeout = options?.connectTimeout ?? 5000;\n this.onError =\n options?.onError ??\n ((error) => {\n throw error;\n });\n this.onReconnect = options?.onReconnect ?? (() => {});\n\n this.connect();\n }\n\n public close(code?: number, reason?: string) {\n this.clearConnectTimeoutIfNeeded();\n this.emitter.emit(\n 'close',\n this.lastCloseEvent ?? {\n code: code ?? 1000,\n reason: reason ?? 'Explicit closing',\n message: 'Explicit closing',\n }\n );\n this.lastCloseEvent = null;\n this.isClosed = true;\n this.emitter.removeAllListeners();\n this.sendQueue = [];\n if (this.ws != null) {\n const ws = this.ws;\n this.ws = null;\n this.wsClose(ws);\n }\n }\n\n public addEventListener(event: 'message', listener: (event: WebSocketMessageEvent) => void): void;\n public addEventListener(event: 'open', listener: () => void): void;\n public addEventListener(event: 'error', listener: (event: WebSocketErrorEvent) => void): void;\n public addEventListener(event: 'close', listener: (event: WebSocketCloseEvent) => void): void;\n public addEventListener(event: string, listener: (event: any) => void) {\n this.eventSubscriptions.push(this.emitter.addListener(event, listener));\n }\n\n public removeEventListener(event: string, listener: (event: any) => void) {\n const index = this.eventSubscriptions.findIndex(\n (subscription) => subscription.listener === listener\n );\n if (index >= 0) {\n this.eventSubscriptions[index].remove();\n this.eventSubscriptions.splice(index, 1);\n }\n }\n\n //#region Internals\n\n private connect() {\n if (this.ws != null) {\n return;\n }\n this.connectTimeoutHandle = setTimeout(this.handleConnectTimeout, this.connectTimeout);\n\n this.ws = new WebSocket(this.url.toString());\n this.ws.addEventListener('message', this.handleMessage);\n this.ws.addEventListener('open', this.handleOpen);\n // @ts-ignore TypeScript expects (e: Event) => any, but we want (e: WebSocketErrorEvent) => any\n this.ws.addEventListener('error', this.handleError);\n this.ws.addEventListener('close', this.handleClose);\n }\n\n public send(data: string | ArrayBufferView | Blob | ArrayBufferLike): void {\n if (this.isClosed) {\n this.onError(new Error('Unable to send data: WebSocket is closed'));\n return;\n }\n\n if (this.retries >= this.maxRetries) {\n this.onError(\n new Error(`Unable to send data: Exceeded max retries - retries[${this.retries}]`)\n );\n return;\n }\n\n const ws = this.ws;\n if (ws != null && ws.readyState === WebSocket.OPEN) {\n ws.send(data);\n } else {\n this.sendQueue.push(data);\n }\n }\n\n private handleOpen = () => {\n this.clearConnectTimeoutIfNeeded();\n this.lastCloseEvent = null;\n this.emitter.emit('open');\n\n const sendQueue = this.sendQueue;\n this.sendQueue = [];\n for (const data of sendQueue) {\n this.send(data);\n }\n };\n\n private handleMessage = (event: WebSocketMessageEvent) => {\n this.emitter.emit('message', event);\n };\n\n private handleError = (event: WebSocketErrorEvent) => {\n this.clearConnectTimeoutIfNeeded();\n this.emitter.emit('error', event);\n this.reconnectIfNeeded(`WebSocket error - ${event.message}`);\n };\n\n private handleClose = (event: WebSocketCloseEvent) => {\n this.clearConnectTimeoutIfNeeded();\n this.lastCloseEvent = {\n code: event.code,\n reason: event.reason,\n message: event.message,\n };\n this.reconnectIfNeeded(`WebSocket closed - code[${event.code}] reason[${event.reason}]`);\n };\n\n private handleConnectTimeout = () => {\n this.reconnectIfNeeded('Timeout from connecting to the WebSocket');\n };\n\n private clearConnectTimeoutIfNeeded() {\n if (this.connectTimeoutHandle != null) {\n clearTimeout(this.connectTimeoutHandle);\n this.connectTimeoutHandle = null;\n }\n }\n\n private reconnectIfNeeded(reason: string) {\n if (this.ws != null) {\n this.wsClose(this.ws);\n this.ws = null;\n }\n if (this.isClosed) {\n return;\n }\n\n if (this.retries >= this.maxRetries) {\n this.onError(new Error('Exceeded max retries'));\n this.close();\n return;\n }\n\n setTimeout(() => {\n this.retries += 1;\n this.connect();\n this.onReconnect(reason);\n }, this.retriesInterval);\n }\n\n private wsClose(ws: WebSocket) {\n try {\n ws.removeEventListener('message', this.handleMessage);\n ws.removeEventListener('open', this.handleOpen);\n // @ts-ignore: TypeScript expects (e: Event) => any, but we want (e: WebSocketErrorEvent) => any\n ws.removeEventListener('error', this.handleError);\n ws.removeEventListener('close', this.handleClose);\n ws.close();\n } catch {}\n }\n\n public get readyState() {\n // Only return closed if the WebSocket is explicitly closed or exceeds max retries.\n if (this.isClosed) {\n return WebSocket.CLOSED;\n }\n\n const readyState = this.ws?.readyState;\n if (readyState === WebSocket.CLOSED) {\n return WebSocket.CONNECTING;\n }\n return readyState ?? WebSocket.CONNECTING;\n }\n\n //#endregion\n\n //#region WebSocket API proxy\n\n public readonly CONNECTING = 0;\n public readonly OPEN = 1;\n public readonly CLOSING = 2;\n public readonly CLOSED = 3;\n\n public get binaryType() {\n return this.ws?.binaryType ?? 'blob';\n }\n\n public get bufferedAmount() {\n return this.ws?.bufferedAmount ?? 0;\n }\n\n public get extensions() {\n return this.ws?.extensions ?? '';\n }\n\n public get protocol() {\n return this.ws?.protocol ?? '';\n }\n\n public ping(): void {\n return this.ws?.ping();\n }\n\n public dispatchEvent(event: Event) {\n return this.ws?.dispatchEvent(event) ?? false;\n }\n\n //#endregion\n\n //#regions Unsupported legacy properties\n\n public set onclose(value: ((e: WebSocketCloseEvent) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onerror(value: ((e: Event) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onmessage(value: ((e: WebSocketMessageEvent) => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n public set onopen(value: (() => any) | null) {\n throw new Error('Unsupported legacy property, use addEventListener instead');\n }\n\n //#endregion\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,KAAK;YAClB,IAAI
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA8B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,UAAU,KAAK;YAClB,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAC9D,SAAS,CAAC,MAAM,CAAC,CAAC;aACnB;YAAC,OAAO,CAAC,EAAE;gBACV,QAAQ,CAAC,IAAI,KAAK,CAAC,uDAAuD,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aAC7F;QACH,CAAC;QAED,KAAK,UAAU,QAAQ;YACrB,IAAI;gBACF,MAAM,MAAM,EAAE,UAAU,EAAE,CAAC;aAC5B;YAAC,OAAO,CAAC,EAAE;gBACV,QAAQ,CACN,IAAI,KAAK,CAAC,0DAA0D,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CACrF,CAAC;aACH;QACH,CAAC;QAED,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,MAAM,KAAK,CAAC;KACb;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { DevToolsPluginClient } from './DevToolsPluginClient';\nimport { getDevToolsPluginClientAsync } from './DevToolsPluginClientFactory';\n\nexport { getDevToolsPluginClientAsync, DevToolsPluginClient };\n// Export the EventSubscription type if people need to use explicit type from `addMessageListener`\nexport type { EventSubscription } from 'fbemitter';\nexport { setEnableLogging } from './logger';\n\n/**\n * A React hook to get the DevToolsPluginClient instance.\n */\nexport function useDevToolsPluginClient(pluginName: string): DevToolsPluginClient | null {\n const [client, setClient] = useState<DevToolsPluginClient | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n useEffect(() => {\n async function setup() {\n try {\n const client = await getDevToolsPluginClientAsync(pluginName);\n setClient(client);\n } catch (e) {\n setError(new Error('Failed to setup client from useDevToolsPluginClient: ' + e.toString()));\n }\n }\n\n async function teardown() {\n try {\n await client?.closeAsync();\n } catch (e) {\n setError(\n new Error('Failed to teardown client from useDevToolsPluginClient: ' + e.toString())\n );\n }\n }\n\n setup();\n return () => {\n teardown();\n };\n }, [pluginName]);\n\n if (error != null) {\n throw error;\n }\n return client;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/devtools/logger.ts"],"names":[],"mappings":"AAAA,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,GAAG,CAAC,GAAG,MAAsC;IAC3D,IAAI,aAAa,EAAE
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/devtools/logger.ts"],"names":[],"mappings":"AAAA,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,GAAG,CAAC,GAAG,MAAsC;IAC3D,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAG,MAAwC;IAC/D,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;KAC1B;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,MAAuC;IAC7D,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;KACzB;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,MAAuC;IAC7D,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;KACzB;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC","sourcesContent":["let enableLogging = false;\n\nexport function log(...params: Parameters<typeof console.log>) {\n if (enableLogging) {\n console.log(...params);\n }\n}\n\nexport function debug(...params: Parameters<typeof console.debug>) {\n if (enableLogging) {\n console.debug(...params);\n }\n}\n\nexport function info(...params: Parameters<typeof console.info>) {\n if (enableLogging) {\n console.info(...params);\n }\n}\n\nexport function warn(...params: Parameters<typeof console.info>) {\n if (enableLogging) {\n console.warn(...params);\n }\n}\n\nexport function setEnableLogging(enabled: boolean) {\n enableLogging = enabled;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevLoadingView.js","sourceRoot":"","sources":["../../src/environment/DevLoadingView.tsx"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,cAAc;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,CAAe,GAAG,EAAE;QACzC,IAAI
|
|
1
|
+
{"version":3,"file":"DevLoadingView.js","sourceRoot":"","sources":["../../src/environment/DevLoadingView.tsx"],"names":[],"mappings":"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","sourcesContent":["// Prevent pulling in all of expo-modules-core on web\nimport { EventEmitter } from 'expo-modules-core/build/EventEmitter';\nimport React, { useEffect, useState, useRef, useMemo } from 'react';\nimport { Animated, StyleSheet, Text, Platform, View } from 'react-native';\n\nimport DevLoadingViewNativeModule from './DevLoadingViewNativeModule';\nimport { getInitialSafeArea } from './getInitialSafeArea';\n\nexport default function DevLoadingView() {\n const [message, setMessage] = useState('Refreshing...');\n const [isDevLoading, setIsDevLoading] = useState(false);\n const [isAnimating, setIsAnimating] = useState(false);\n const translateY = useRef(new Animated.Value(0)).current;\n const emitter = useMemo<EventEmitter>(() => {\n try {\n return new EventEmitter(DevLoadingViewNativeModule);\n } catch (error) {\n throw new Error(\n 'Failed to instantiate native emitter in `DevLoadingView` because the native module `DevLoadingView` is undefined: ' +\n error.message\n );\n }\n }, []);\n\n useEffect(() => {\n if (!emitter) return;\n\n function handleShowMessage(event: { message: string }) {\n setMessage(event.message);\n // TODO: if we show the refreshing banner and don't get a hide message\n // for 3 seconds, warn the user that it's taking a while and suggest\n // they reload\n\n translateY.setValue(0);\n setIsDevLoading(true);\n }\n\n function handleHide() {\n // TODO: if we showed the 'refreshing' banner less than 250ms ago, delay\n // switching to the 'finished' banner\n\n setIsAnimating(true);\n setIsDevLoading(false);\n Animated.timing(translateY, {\n toValue: 150,\n delay: 1000,\n duration: 350,\n useNativeDriver: Platform.OS !== 'web',\n }).start(({ finished }) => {\n if (finished) {\n setIsAnimating(false);\n translateY.setValue(0);\n }\n });\n }\n\n const showMessageSubscription = emitter.addListener(\n 'devLoadingView:showMessage',\n handleShowMessage\n );\n const hideSubscription = emitter.addListener('devLoadingView:hide', handleHide);\n\n return function cleanup() {\n showMessageSubscription.remove();\n hideSubscription.remove();\n };\n }, [translateY, emitter]);\n\n if (!isDevLoading && !isAnimating) {\n return null;\n }\n\n return (\n <Animated.View style={[styles.animatedContainer, { transform: [{ translateY }] }]}>\n <View style={styles.banner}>\n <View style={styles.contentContainer}>\n <View style={{ flexDirection: 'row' }}>\n <Text style={styles.text}>{message}</Text>\n </View>\n\n <View style={{ flex: 1 }}>\n <Text style={styles.subtitle}>\n {isDevLoading ? 'Using Fast Refresh' : \"Don't see your changes? Reload the app\"}\n </Text>\n </View>\n </View>\n </View>\n </Animated.View>\n );\n}\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n // @ts-expect-error: fixed is not a valid value for position in Yoga but it is on web.\n position: Platform.select({\n web: 'fixed',\n default: 'absolute',\n }),\n pointerEvents: 'none',\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 42, // arbitrary\n },\n\n banner: {\n flex: 1,\n overflow: 'visible',\n backgroundColor: 'rgba(0,0,0,0.75)',\n paddingBottom: getInitialSafeArea().bottom,\n },\n contentContainer: {\n flex: 1,\n paddingTop: 10,\n paddingBottom: 5,\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n },\n text: {\n color: '#fff',\n fontSize: 15,\n },\n subtitle: {\n color: 'rgba(255,255,255,0.8)',\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoGo.js","sourceRoot":"","sources":["../../src/environment/ExpoGo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA6BxD,kEAAkE;AAClE,wDAAwD;AACxD,MAAM,kBAAkB,GAAG,CAAC,GAAwB,EAAE;IACpD,IAAI
|
|
1
|
+
{"version":3,"file":"ExpoGo.js","sourceRoot":"","sources":["../../src/environment/ExpoGo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA6BxD,kEAAkE;AAClE,wDAAwD;AACxD,MAAM,kBAAkB,GAAG,CAAC,GAAwB,EAAE;IACpD,IAAI;QACF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACtC;IAAC,MAAM;QACN,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,kBAAkB,IAAI,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,kBAAkB,EAAE,aAAa,IAAI,IAAI,CAAC;AACnD,CAAC","sourcesContent":["import { requireNativeModule } from 'expo-modules-core';\n\ntype ExpoGoModule = {\n expoVersion: string;\n projectConfig: ExpoGoProjectConfig;\n};\n\ntype ExpoGoProjectConfig = {\n mainModuleName?: string;\n debuggerHost?: string;\n logUrl?: string;\n developer?: {\n tool?: string;\n [key: string]: any;\n };\n packagerOpts?: ExpoGoPackagerOpts;\n};\n\ntype ExpoGoPackagerOpts = {\n hostType?: string;\n dev?: boolean;\n strict?: boolean;\n minify?: boolean;\n urlType?: string;\n urlRandomness?: string;\n lanType?: string;\n [key: string]: any;\n};\n\n// ExpoGo module is available only when the app is run in Expo Go,\n// otherwise we use `null` instead of throwing an error.\nconst NativeExpoGoModule = ((): ExpoGoModule | null => {\n try {\n return requireNativeModule('ExpoGo');\n } catch {\n return null;\n }\n})();\n\n/**\n * Returns a boolean value whether the app is running in Expo Go.\n */\nexport function isRunningInExpoGo(): boolean {\n return NativeExpoGoModule != null;\n}\n\n/**\n * Returns an Expo Go project config from the manifest or `null` if the app is not running in Expo Go.\n */\nexport function getExpoGoProjectConfig(): ExpoGoProjectConfig | null {\n return NativeExpoGoModule?.projectConfig ?? null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoErrorManager.native.js","sourceRoot":"","sources":["../../src/errors/ExpoErrorManager.native.ts"],"names":[],"mappings":"AAGA,IAAI,sBAAsB,GAAG,IAAI,CAAC;AAElC,MAAM,uBAAuB,GAAG,2LAA2L,CAAC;AAE5N,SAAS,2BAA2B,CAAC,KAAiB;IACpD,KAAK,CAAC,OAAO,IAAI,MAAM,GAAG,uBAAuB,CAAC;AACpD,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAY;IACnD,KAAK,CAAC,OAAO,GAAG;;EAEhB,uBAAuB,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE
|
|
1
|
+
{"version":3,"file":"ExpoErrorManager.native.js","sourceRoot":"","sources":["../../src/errors/ExpoErrorManager.native.ts"],"names":[],"mappings":"AAGA,IAAI,sBAAsB,GAAG,IAAI,CAAC;AAElC,MAAM,uBAAuB,GAAG,2LAA2L,CAAC;AAE5N,SAAS,2BAA2B,CAAC,KAAiB;IACpD,KAAK,CAAC,OAAO,IAAI,MAAM,GAAG,uBAAuB,CAAC;AACpD,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAY;IACnD,KAAK,CAAC,OAAO,GAAG;;EAEhB,uBAAuB,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;QACvD,2BAA2B,CAAC,KAAK,CAAC,CAAC;KACpC;SAAM,IACL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,IAAI,4BAA4B;QACtF,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,mBAAmB;MACtG;QACA,+BAA+B,CAAC,KAAK,CAAC,CAAC;KACxC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO;IACnD,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,cAAc,CAAC,KAAK,CAAC,CAAC;KACvB;IACD,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,eAAe;IAChD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,sBAAsB,EAAE;YAC1B,YAAY,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO;SACR;QAED,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,sBAAsB,GAAG,KAAK,CAAC;AACjC,CAAC","sourcesContent":["// Similar interface to the one used in expo modules.\ntype CodedError = Error & { code?: string };\n\nlet isErrorHandlingEnabled = true;\n\nconst developmentBuildMessage = `If you're trying to use a module that is not supported in Expo Go, you need to create a development build of your app. See https://docs.expo.dev/development/introduction/ for more info.`;\n\nfunction customizeUnavailableMessage(error: CodedError) {\n error.message += '\\n\\n' + developmentBuildMessage;\n}\n\nfunction customizeModuleIsMissingMessage(error: Error) {\n error.message = `Your JavaScript code tried to access a native module that doesn't exist. \n\n${developmentBuildMessage}`;\n}\n\nfunction customizeError(error: Error | CodedError) {\n if ('code' in error && error.code === 'ERR_UNAVAILABLE') {\n customizeUnavailableMessage(error);\n } else if (\n error.message.includes('Native module cannot be null') || // RN 0.64 and below message\n error.message.includes('`new NativeEventEmitter()` requires a non-null argument.') // RN 0.65+ message\n ) {\n customizeModuleIsMissingMessage(error);\n }\n}\n\nfunction errorHandler(originalHandler, error, isFatal) {\n if (error instanceof Error) {\n customizeError(error);\n }\n originalHandler(error, isFatal);\n}\n\nexport function createErrorHandler(originalHandler) {\n return (error, isFatal) => {\n if (isErrorHandlingEnabled) {\n errorHandler(originalHandler, error, isFatal);\n return;\n }\n\n originalHandler(error, isFatal);\n };\n}\n\nexport function disableErrorHandling() {\n isErrorHandlingEnabled = false;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerRootComponent.js","sourceRoot":"","sources":["../../src/launch/registerRootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAarD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,SAAiC;IAEjC,IAAI,kBAAkB,GAAG,SAAS,CAAC;IAEnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE
|
|
1
|
+
{"version":3,"file":"registerRootComponent.js","sourceRoot":"","sources":["../../src/launch/registerRootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAarD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,SAAiC;IAEjC,IAAI,kBAAkB,GAAG,SAAS,CAAC;IAEnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAoC,CAAC;QACtF,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;KAC9C;IAED,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAChE,2DAA2D;IAC3D,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;YACzC,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;aAC7F;SACF;QACD,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE;YACjC,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG;SACpD,CAAC,CAAC;KACJ;AACH,CAAC","sourcesContent":["import '../Expo.fx';\n\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\n\ntype InitialProps = {\n exp?: {\n notification?: any;\n manifestString?: string;\n [key: string]: any;\n };\n shell?: boolean;\n shellManifestUrl?: string;\n [key: string]: any;\n};\n\nexport default function registerRootComponent<P extends InitialProps>(\n component: React.ComponentType<P>\n): void {\n let qualifiedComponent = component;\n\n if (process.env.NODE_ENV !== 'production') {\n const { withDevTools } = require('./withDevTools') as typeof import('./withDevTools');\n qualifiedComponent = withDevTools(component);\n }\n\n AppRegistry.registerComponent('main', () => qualifiedComponent);\n // Skip querying the DOM if we're in a Node.js environment.\n if (Platform.OS === 'web' && typeof window !== 'undefined') {\n const rootTag = document.getElementById('root');\n if (process.env.NODE_ENV !== 'production') {\n if (!rootTag) {\n throw new Error('Required HTML element with id \"root\" was not found in the document HTML.');\n }\n }\n AppRegistry.runApplication('main', {\n rootTag,\n hydrate: process.env.EXPO_PUBLIC_USE_STATIC === '1',\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDevTools.ios.js","sourceRoot":"","sources":["../../src/launch/withDevTools.ios.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,qFAAqF;IACrF,iFAAiF;IACjF,MAAM,oBAAoB,GAA2B,CAAC,GAAG,EAAE;QACzD,IAAI
|
|
1
|
+
{"version":3,"file":"withDevTools.ios.js","sourceRoot":"","sources":["../../src/launch/withDevTools.ios.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,qFAAqF;IACrF,iFAAiF;IACjF,MAAM,oBAAoB,GAA2B,CAAC,GAAG,EAAE;QACzD,IAAI;YACF,oCAAoC;YACpC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtE,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;SACnF;QAAC,MAAM,GAAE;QACV,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,4BAA4B,GAAG,iBAAiB,EAAE,CAAC;IAEzD,SAAS,YAAY,CAAC,KAAuC;QAC3D,oBAAoB,EAAE,CAAC;QAEvB,IAAI,4BAA4B,EAAE;YAChC,OAAO,CACL,EACE;UAAA,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAC5B;UAAA,CAAC,cAAc,CAAC,AAAD,EACjB;QAAA,GAAG,CACJ,CAAC;SACH;QAED,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;QAClF,YAAY,CAAC,WAAW,GAAG,gBAAgB,IAAI,GAAG,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport DevLoadingView from '../environment/DevLoadingView';\nimport { isRunningInExpoGo } from '../environment/ExpoGo';\n\n/**\n * Append the Expo Fast Refresh view and optionally\n * keep the screen awake if `expo-keep-awake` is installed.\n */\nexport function withDevTools<TComponent extends React.ComponentType<any>>(\n AppRootComponent: TComponent\n): React.ComponentType<React.ComponentProps<TComponent>> {\n // This hook can be optionally imported because __DEV__ never changes during runtime.\n // Using __DEV__ like this enables tree shaking to remove the hook in production.\n const useOptionalKeepAwake: (tag?: string) => void = (() => {\n try {\n // Optionally import expo-keep-awake\n const { useKeepAwake, ExpoKeepAwakeTag } = require('expo-keep-awake');\n return () => useKeepAwake(ExpoKeepAwakeTag, { suppressDeactivateWarnings: true });\n } catch {}\n return () => {};\n })();\n\n const shouldUseExpoFastRefreshView = isRunningInExpoGo();\n\n function WithDevTools(props: React.ComponentProps<TComponent>) {\n useOptionalKeepAwake();\n\n if (shouldUseExpoFastRefreshView) {\n return (\n <>\n <AppRootComponent {...props} />\n <DevLoadingView />\n </>\n );\n }\n\n return <AppRootComponent {...props} />;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const name = AppRootComponent.displayName || AppRootComponent.name || 'Anonymous';\n WithDevTools.displayName = `withDevTools(${name})`;\n }\n\n return WithDevTools;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDevTools.js","sourceRoot":"","sources":["../../src/launch/withDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gFAAgF;AAChF,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,qFAAqF;IACrF,iFAAiF;IACjF,MAAM,oBAAoB,GAA2B,CAAC,GAAG,EAAE;QACzD,IAAI
|
|
1
|
+
{"version":3,"file":"withDevTools.js","sourceRoot":"","sources":["../../src/launch/withDevTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gFAAgF;AAChF,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,qFAAqF;IACrF,iFAAiF;IACjF,MAAM,oBAAoB,GAA2B,CAAC,GAAG,EAAE;QACzD,IAAI;YACF,oCAAoC;YACpC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtE,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;SACnF;QAAC,MAAM,GAAE;QACV,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC;IAEL,SAAS,YAAY,CAAC,KAAuC;QAC3D,oBAAoB,EAAE,CAAC;QACvB,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;QAClF,YAAY,CAAC,WAAW,GAAG,gBAAgB,IAAI,GAAG,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import * as React from 'react';\n\n// Keep the screen awake on Android, we don't use the Fast Refresh overlay here.\n// The default behavior here is to skip the custom Fast Refresh indicator.\nexport function withDevTools<TComponent extends React.ComponentType<any>>(\n AppRootComponent: TComponent\n): React.ComponentType<React.ComponentProps<TComponent>> {\n // This hook can be optionally imported because __DEV__ never changes during runtime.\n // Using __DEV__ like this enables tree shaking to remove the hook in production.\n const useOptionalKeepAwake: (tag?: string) => void = (() => {\n try {\n // Optionally import expo-keep-awake\n const { useKeepAwake, ExpoKeepAwakeTag } = require('expo-keep-awake');\n return () => useKeepAwake(ExpoKeepAwakeTag, { suppressDeactivateWarnings: true });\n } catch {}\n return () => {};\n })();\n\n function WithDevTools(props: React.ComponentProps<TComponent>) {\n useOptionalKeepAwake();\n return <AppRootComponent {...props} />;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const name = AppRootComponent.displayName || AppRootComponent.name || 'Anonymous';\n WithDevTools.displayName = `withDevTools(${name})`;\n }\n\n return WithDevTools;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDevTools.web.js","sourceRoot":"","sources":["../../src/launch/withDevTools.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,SAAS,YAAY,CAAC,KAAuC;QAC3D,OAAO,CACL,EACE;QAAA,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAC5B;QAAA,CAAC,cAAc,CAAC,AAAD,EACjB;MAAA,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE
|
|
1
|
+
{"version":3,"file":"withDevTools.web.js","sourceRoot":"","sources":["../../src/launch/withDevTools.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,UAAU,YAAY,CAC1B,gBAA4B;IAE5B,SAAS,YAAY,CAAC,KAAuC;QAC3D,OAAO,CACL,EACE;QAAA,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAC5B;QAAA,CAAC,cAAc,CAAC,AAAD,EACjB;MAAA,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;QAClF,YAAY,CAAC,WAAW,GAAG,gBAAgB,IAAI,GAAG,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport DevLoadingView from '../environment/DevLoadingView';\n\nexport function withDevTools<TComponent extends React.ComponentType<any>>(\n AppRootComponent: TComponent\n): React.ComponentType<React.ComponentProps<TComponent>> {\n function WithDevTools(props: React.ComponentProps<TComponent>) {\n return (\n <>\n <AppRootComponent {...props} />\n <DevLoadingView />\n </>\n );\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const name = AppRootComponent.displayName || AppRootComponent.name || 'Anonymous';\n WithDevTools.displayName = `withDevTools(${name})`;\n }\n\n return WithDevTools;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfillNextTick.js","sourceRoot":"","sources":["../../src/timer/polyfillNextTick.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"polyfillNextTick.js","sourceRoot":"","sources":["../../src/timer/polyfillNextTick.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;QACvC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;CACH","sourcesContent":["/**\n * Defines a small polyfill for process.nextTick. Eventually we'd like to replace this polyfill with\n * a native implementation with the correct timing semantics.\n */\n\nif (!process.nextTick) {\n process.nextTick = (callback, ...args) => {\n setTimeout(() => callback(...args), 0);\n };\n}\n"]}
|
package/build/winter/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/winter/url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAEhF,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,SAAS,gBAAgB;IACvB,IAAI,OAAO;QAAE,OAAO,eAAe,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC;IACf,wCAAwC;IAExC,uDAAuD;IACvD,MAAM,UAAU,GACd,MAAM,CAAC,aAAa,KAAK,IAAI;QAC3B,CAAC,CAAC,2BAA2B;YAC3B,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B;YAC1B,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAE3F,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/winter/url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAEhF,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,SAAS,gBAAgB;IACvB,IAAI,OAAO;QAAE,OAAO,eAAe,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC;IACf,wCAAwC;IAExC,uDAAuD;IACvD,MAAM,UAAU,GACd,MAAM,CAAC,aAAa,KAAK,IAAI;QAC3B,CAAC,CAAC,2BAA2B;YAC3B,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B;YAC1B,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,iBAAiB,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAE3F,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,QAAQ,EAAE;QAC9D,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;QACtE,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC/C,eAAe,IAAI,KAAK,kBAAkB,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;SACxE;KACF;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,GAAG,CAAC,eAAe,GAAG,SAAS,eAAe,CAAC,IAAI;IACjD,IAAI,gBAAgB,EAAE,IAAI,IAAI,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC/C;IACD,OAAO,GAAG,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,kBAAkB,CAC9F,IAAI,CAAC,IAAI,CAAC,MAAM,CACjB,SAAS,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF,GAAG,CAAC,eAAe,GAAG,SAAS,eAAe,CAAC,GAAG;IAChD,cAAc;AAChB,CAAC,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC","sourcesContent":["/**\n * Copyright © 2023-present 650 Industries, Inc. (aka Expo)\n * Copyright © Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This file should not import `react-native` in order to remain self-contained.\n\nimport { URL, URLSearchParams } from 'whatwg-url-without-unicode';\n\nlet isSetup = false;\nlet BLOB_URL_PREFIX: string | null = null;\n\nfunction getBlobUrlPrefix() {\n if (isSetup) return BLOB_URL_PREFIX;\n isSetup = true;\n // if iOS: let BLOB_URL_PREFIX = 'blob:'\n\n // Pull the blob module without importing React Native.\n const BlobModule =\n global.RN$Bridgeless !== true\n ? // Legacy RN implementation\n global.nativeModuleProxy['BlobModule']\n : // Newer RN implementation\n global.__turboModuleProxy('BlobModule');\n\n const constants = 'BLOB_URI_SCHEME' in BlobModule ? BlobModule : BlobModule.getConstants();\n\n if (constants && typeof constants.BLOB_URI_SCHEME === 'string') {\n BLOB_URL_PREFIX = encodeURIComponent(constants.BLOB_URI_SCHEME) + ':';\n if (typeof constants.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${encodeURIComponent(constants.BLOB_URI_HOST)}/`;\n }\n }\n return BLOB_URL_PREFIX;\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * <manifest>\n * <application>\n * <provider\n * android:name=\"com.facebook.react.modules.blob.BlobProvider\"\n * android:authorities=\"@string/blob_provider_authority\"\n * android:exported=\"false\"\n * />\n * </application>\n * </manifest>\n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * <resources>\n * <string name=\"blob_provider_authority\">your.app.package.blobs</string>\n * </resources>\n * ```\n */\nURL.createObjectURL = function createObjectURL(blob) {\n if (getBlobUrlPrefix() == null) {\n throw new Error('Cannot create URL for blob');\n }\n return `${getBlobUrlPrefix()}${encodeURIComponent(blob.data.blobId)}?offset=${encodeURIComponent(\n blob.data.offset\n )}&size=${encodeURIComponent(blob.size)}`;\n};\n\nURL.revokeObjectURL = function revokeObjectURL(url) {\n // Do nothing.\n};\n\nexport { URL, URLSearchParams };\n"]}
|
|
@@ -12,73 +12,73 @@
|
|
|
12
12
|
"expo-analytics-amplitude": "~11.3.0",
|
|
13
13
|
"expo-app-auth": "~11.1.0",
|
|
14
14
|
"expo-app-loader-provider": "~8.0.0",
|
|
15
|
-
"expo-apple-authentication": "~6.4.
|
|
16
|
-
"expo-application": "~5.9.
|
|
17
|
-
"expo-asset": "~10.0.
|
|
18
|
-
"expo-auth-session": "~5.5.
|
|
19
|
-
"expo-av": "~14.0.
|
|
20
|
-
"expo-background-fetch": "~12.0.
|
|
21
|
-
"expo-barcode-scanner": "~13.0.
|
|
22
|
-
"expo-battery": "~8.0.
|
|
23
|
-
"expo-blur": "~13.0.
|
|
24
|
-
"expo-brightness": "~12.0.
|
|
15
|
+
"expo-apple-authentication": "~6.4.1",
|
|
16
|
+
"expo-application": "~5.9.1",
|
|
17
|
+
"expo-asset": "~10.0.2",
|
|
18
|
+
"expo-auth-session": "~5.5.1",
|
|
19
|
+
"expo-av": "~14.0.2",
|
|
20
|
+
"expo-background-fetch": "~12.0.1",
|
|
21
|
+
"expo-barcode-scanner": "~13.0.1",
|
|
22
|
+
"expo-battery": "~8.0.1",
|
|
23
|
+
"expo-blur": "~13.0.1",
|
|
24
|
+
"expo-brightness": "~12.0.1",
|
|
25
25
|
"expo-build-properties": "~0.12.0",
|
|
26
|
-
"expo-calendar": "~13.0.
|
|
27
|
-
"expo-camera": "~15.0.
|
|
28
|
-
"expo-cellular": "~6.0.
|
|
26
|
+
"expo-calendar": "~13.0.2",
|
|
27
|
+
"expo-camera": "~15.0.1",
|
|
28
|
+
"expo-cellular": "~6.0.1",
|
|
29
29
|
"expo-checkbox": "~3.0.0",
|
|
30
|
-
"expo-clipboard": "~6.0.
|
|
31
|
-
"expo-constants": "~16.0.
|
|
32
|
-
"expo-contacts": "~13.0.
|
|
33
|
-
"expo-crypto": "~13.0.
|
|
34
|
-
"expo-dev-client": "~4.0.
|
|
35
|
-
"expo-device": "~6.0.
|
|
36
|
-
"expo-document-picker": "~12.0.
|
|
37
|
-
"expo-face-detector": "~12.7.
|
|
38
|
-
"expo-file-system": "~17.0.
|
|
39
|
-
"expo-font": "~12.0.
|
|
40
|
-
"expo-gl": "~14.0.
|
|
30
|
+
"expo-clipboard": "~6.0.1",
|
|
31
|
+
"expo-constants": "~16.0.1",
|
|
32
|
+
"expo-contacts": "~13.0.1",
|
|
33
|
+
"expo-crypto": "~13.0.1",
|
|
34
|
+
"expo-dev-client": "~4.0.3",
|
|
35
|
+
"expo-device": "~6.0.1",
|
|
36
|
+
"expo-document-picker": "~12.0.1",
|
|
37
|
+
"expo-face-detector": "~12.7.1",
|
|
38
|
+
"expo-file-system": "~17.0.1",
|
|
39
|
+
"expo-font": "~12.0.3",
|
|
40
|
+
"expo-gl": "~14.0.1",
|
|
41
41
|
"expo-google-app-auth": "~8.3.0",
|
|
42
|
-
"expo-haptics": "~13.0.
|
|
43
|
-
"expo-image": "~1.12.
|
|
42
|
+
"expo-haptics": "~13.0.1",
|
|
43
|
+
"expo-image": "~1.12.4",
|
|
44
44
|
"expo-image-loader": "~4.7.0",
|
|
45
|
-
"expo-image-manipulator": "~12.0.
|
|
46
|
-
"expo-image-picker": "~15.0.
|
|
47
|
-
"expo-intent-launcher": "~11.0.
|
|
45
|
+
"expo-image-manipulator": "~12.0.2",
|
|
46
|
+
"expo-image-picker": "~15.0.2",
|
|
47
|
+
"expo-intent-launcher": "~11.0.1",
|
|
48
48
|
"expo-insights": "~0.7.0",
|
|
49
|
-
"expo-keep-awake": "~13.0.
|
|
50
|
-
"expo-linear-gradient": "~13.0.
|
|
51
|
-
"expo-linking": "~6.3.
|
|
52
|
-
"expo-local-authentication": "~14.0.
|
|
53
|
-
"expo-localization": "~15.0.
|
|
54
|
-
"expo-location": "~17.0.
|
|
55
|
-
"expo-mail-composer": "~13.0.
|
|
56
|
-
"expo-media-library": "~16.0.
|
|
57
|
-
"expo-module-template": "~10.14.
|
|
58
|
-
"expo-modules-core": "~1.12.
|
|
59
|
-
"expo-navigation-bar": "~3.0.
|
|
60
|
-
"expo-network": "~6.0.
|
|
61
|
-
"expo-notifications": "~0.28.
|
|
62
|
-
"expo-print": "~13.0.
|
|
63
|
-
"expo-random": "~14.0.
|
|
64
|
-
"expo-router": "~3.5.
|
|
65
|
-
"expo-screen-capture": "~6.0.
|
|
66
|
-
"expo-screen-orientation": "~7.0.
|
|
67
|
-
"expo-secure-store": "~13.0.
|
|
68
|
-
"expo-sensors": "~13.0.
|
|
69
|
-
"expo-sharing": "~12.0.
|
|
70
|
-
"expo-sms": "~12.0.
|
|
71
|
-
"expo-speech": "~12.0.
|
|
72
|
-
"expo-splash-screen": "~0.27.
|
|
73
|
-
"expo-sqlite": "~14.0.
|
|
74
|
-
"expo-status-bar": "~1.12.
|
|
75
|
-
"expo-store-review": "~7.0.
|
|
76
|
-
"expo-system-ui": "~3.0.
|
|
77
|
-
"expo-task-manager": "~11.8.
|
|
78
|
-
"expo-tracking-transparency": "~4.0.
|
|
79
|
-
"expo-updates": "~0.25.
|
|
49
|
+
"expo-keep-awake": "~13.0.1",
|
|
50
|
+
"expo-linear-gradient": "~13.0.1",
|
|
51
|
+
"expo-linking": "~6.3.1",
|
|
52
|
+
"expo-local-authentication": "~14.0.1",
|
|
53
|
+
"expo-localization": "~15.0.1",
|
|
54
|
+
"expo-location": "~17.0.1",
|
|
55
|
+
"expo-mail-composer": "~13.0.1",
|
|
56
|
+
"expo-media-library": "~16.0.3",
|
|
57
|
+
"expo-module-template": "~10.14.2",
|
|
58
|
+
"expo-modules-core": "~1.12.2",
|
|
59
|
+
"expo-navigation-bar": "~3.0.2",
|
|
60
|
+
"expo-network": "~6.0.1",
|
|
61
|
+
"expo-notifications": "~0.28.1",
|
|
62
|
+
"expo-print": "~13.0.1",
|
|
63
|
+
"expo-random": "~14.0.1",
|
|
64
|
+
"expo-router": "~3.5.2",
|
|
65
|
+
"expo-screen-capture": "~6.0.1",
|
|
66
|
+
"expo-screen-orientation": "~7.0.1",
|
|
67
|
+
"expo-secure-store": "~13.0.1",
|
|
68
|
+
"expo-sensors": "~13.0.2",
|
|
69
|
+
"expo-sharing": "~12.0.1",
|
|
70
|
+
"expo-sms": "~12.0.1",
|
|
71
|
+
"expo-speech": "~12.0.1",
|
|
72
|
+
"expo-splash-screen": "~0.27.2",
|
|
73
|
+
"expo-sqlite": "~14.0.3",
|
|
74
|
+
"expo-status-bar": "~1.12.1",
|
|
75
|
+
"expo-store-review": "~7.0.1",
|
|
76
|
+
"expo-system-ui": "~3.0.2",
|
|
77
|
+
"expo-task-manager": "~11.8.1",
|
|
78
|
+
"expo-tracking-transparency": "~4.0.1",
|
|
79
|
+
"expo-updates": "~0.25.3",
|
|
80
80
|
"expo-video-thumbnails": "~8.0.0",
|
|
81
|
-
"expo-web-browser": "~13.0.
|
|
81
|
+
"expo-web-browser": "~13.0.1",
|
|
82
82
|
"jest-expo": "~51.0.0",
|
|
83
83
|
"lottie-react-native": "6.7.0",
|
|
84
84
|
"react": "18.2.0",
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
"react-native-get-random-values": "~1.11.0",
|
|
90
90
|
"react-native-maps": "1.14.0",
|
|
91
91
|
"react-native-pager-view": "6.3.0",
|
|
92
|
-
"react-native-reanimated": "
|
|
93
|
-
"react-native-screens": "
|
|
92
|
+
"react-native-reanimated": "3.9.0-rc.1",
|
|
93
|
+
"react-native-screens": "3.31.0-rc.1",
|
|
94
94
|
"react-native-safe-area-context": "4.10.0-rc.1",
|
|
95
95
|
"react-native-svg": "15.2.0-rc.0",
|
|
96
96
|
"react-native-view-shot": "3.8.0",
|
|
@@ -100,5 +100,5 @@
|
|
|
100
100
|
"unimodules-image-loader-interface": "~6.1.0",
|
|
101
101
|
"@shopify/react-native-skia": "1.2.1",
|
|
102
102
|
"@shopify/flash-list": "1.6.4",
|
|
103
|
-
"@sentry/react-native": "5.
|
|
103
|
+
"@sentry/react-native": "~5.22.0"
|
|
104
104
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo",
|
|
3
|
-
"version": "51.0.0-preview.
|
|
3
|
+
"version": "51.0.0-preview.3",
|
|
4
4
|
"description": "The Expo SDK",
|
|
5
5
|
"main": "build/Expo.js",
|
|
6
6
|
"module": "build/Expo.js",
|
|
@@ -60,28 +60,28 @@
|
|
|
60
60
|
"homepage": "https://github.com/expo/expo/tree/main/packages/expo",
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@babel/runtime": "^7.20.0",
|
|
63
|
-
"@expo/cli": "0.18.
|
|
64
|
-
"@expo/config": "9.0.
|
|
63
|
+
"@expo/cli": "0.18.3",
|
|
64
|
+
"@expo/config": "9.0.1",
|
|
65
65
|
"@expo/config-plugins": "8.0.1",
|
|
66
|
-
"@expo/metro-config": "0.18.
|
|
66
|
+
"@expo/metro-config": "0.18.2",
|
|
67
67
|
"@expo/vector-icons": "^14.0.0",
|
|
68
|
-
"babel-preset-expo": "~11.0.
|
|
69
|
-
"expo-asset": "~10.0.
|
|
70
|
-
"expo-file-system": "~17.0.
|
|
71
|
-
"expo-font": "~12.0.
|
|
72
|
-
"expo-keep-awake": "~13.0.
|
|
73
|
-
"expo-modules-autolinking": "1.11.
|
|
74
|
-
"expo-modules-core": "1.12.
|
|
68
|
+
"babel-preset-expo": "~11.0.2",
|
|
69
|
+
"expo-asset": "~10.0.2",
|
|
70
|
+
"expo-file-system": "~17.0.1",
|
|
71
|
+
"expo-font": "~12.0.3",
|
|
72
|
+
"expo-keep-awake": "~13.0.1",
|
|
73
|
+
"expo-modules-autolinking": "1.11.1",
|
|
74
|
+
"expo-modules-core": "1.12.2",
|
|
75
75
|
"fbemitter": "^3.0.0",
|
|
76
76
|
"whatwg-url-without-unicode": "8.0.0-3"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/react": "~18.0.14",
|
|
80
80
|
"@types/react-test-renderer": "^18.0.0",
|
|
81
|
-
"expo-module-scripts": "^3.5.
|
|
81
|
+
"expo-module-scripts": "^3.5.1",
|
|
82
82
|
"react": "18.2.0",
|
|
83
83
|
"react-dom": "18.2.0",
|
|
84
84
|
"react-native": "0.74.0"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "f8f9d041c6467f325b58c7913e0f5ed1af102e11"
|
|
87
87
|
}
|