expo 55.0.0-canary-20260120-bb71700 → 55.0.0-preview.0

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.
@@ -32,7 +32,7 @@ buildscript {
32
32
  def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
33
33
 
34
34
  group = 'host.exp.exponent'
35
- version = '55.0.0-canary-20260120-bb71700'
35
+ version = '55.0.0-preview.0'
36
36
 
37
37
  expoModule {
38
38
  // We can't prebuild the module because it depends on the generated files.
@@ -43,7 +43,7 @@ android {
43
43
  namespace "expo.core"
44
44
  defaultConfig {
45
45
  versionCode 1
46
- versionName "55.0.0-canary-20260120-bb71700"
46
+ versionName "55.0.0-preview.0"
47
47
  consumerProguardFiles("proguard-rules.pro")
48
48
  }
49
49
  testOptions {
@@ -1,8 +1,8 @@
1
1
  {
2
- "@expo/fingerprint": "0.15.5-canary-20260120-bb71700",
3
- "@expo/metro-runtime": "6.2.0-canary-20260120-bb71700",
2
+ "@expo/fingerprint": "~0.16.0",
3
+ "@expo/metro-runtime": "~55.0.0",
4
4
  "@expo/vector-icons": "^15.0.2",
5
- "@expo/ui": "0.2.0-canary-20260120-bb71700",
5
+ "@expo/ui": "~55.0.0-beta.0",
6
6
  "@react-native-async-storage/async-storage": "2.2.0",
7
7
  "@react-native-community/datetimepicker": "8.6.0",
8
8
  "@react-native-masked-view/masked-view": "0.3.2",
@@ -12,85 +12,85 @@
12
12
  "@react-native-picker/picker": "2.11.4",
13
13
  "@react-native-segmented-control/segmented-control": "2.5.7",
14
14
  "@stripe/stripe-react-native": "0.57.2",
15
- "eslint-config-expo": "10.0.1-canary-20260120-bb71700",
15
+ "eslint-config-expo": "~55.0.0",
16
16
  "expo-analytics-amplitude": "~11.3.0",
17
17
  "expo-app-auth": "~11.1.0",
18
18
  "expo-app-loader-provider": "~8.0.0",
19
- "expo-apple-authentication": "8.0.9-canary-20260120-bb71700",
20
- "expo-application": "7.0.9-canary-20260120-bb71700",
21
- "expo-asset": "12.0.13-canary-20260120-bb71700",
22
- "expo-audio": "1.2.0-canary-20260120-bb71700",
23
- "expo-auth-session": "7.1.0-canary-20260120-bb71700",
24
- "expo-background-fetch": "14.0.10-canary-20260120-bb71700",
25
- "expo-background-task": "1.0.11-canary-20260120-bb71700",
26
- "expo-battery": "10.0.9-canary-20260120-bb71700",
27
- "expo-blur": "16.0.0-canary-20260120-bb71700",
28
- "expo-brightness": "15.0.0-canary-20260120-bb71700",
29
- "expo-build-properties": "2.0.0-canary-20260120-bb71700",
30
- "expo-calendar": "15.1.0-canary-20260120-bb71700",
31
- "expo-camera": "17.1.0-canary-20260120-bb71700",
32
- "expo-cellular": "8.0.9-canary-20260120-bb71700",
33
- "expo-checkbox": "5.0.9-canary-20260120-bb71700",
34
- "expo-clipboard": "9.0.0-canary-20260120-bb71700",
35
- "expo-constants": "18.1.0-canary-20260120-bb71700",
36
- "expo-contacts": "15.1.0-canary-20260120-bb71700",
37
- "expo-crypto": "15.1.0-canary-20260120-bb71700",
38
- "expo-dev-client": "6.1.0-canary-20260120-bb71700",
39
- "expo-device": "8.0.11-canary-20260120-bb71700",
40
- "expo-document-picker": "14.0.9-canary-20260120-bb71700",
41
- "expo-file-system": "19.0.22-canary-20260120-bb71700",
42
- "expo-font": "14.1.0-canary-20260120-bb71700",
43
- "expo-gl": "16.0.10-canary-20260120-bb71700",
44
- "expo-glass-effect": "0.2.0-canary-20260120-bb71700",
19
+ "expo-apple-authentication": "~55.0.0",
20
+ "expo-application": "~55.0.0",
21
+ "expo-asset": "~55.0.0",
22
+ "expo-audio": "~55.0.0",
23
+ "expo-auth-session": "~55.0.0",
24
+ "expo-background-fetch": "~55.0.0",
25
+ "expo-background-task": "~55.0.0",
26
+ "expo-battery": "~55.0.0",
27
+ "expo-blur": "~55.0.0",
28
+ "expo-brightness": "~55.0.0",
29
+ "expo-build-properties": "~55.0.0",
30
+ "expo-calendar": "~55.0.0",
31
+ "expo-camera": "~55.0.0",
32
+ "expo-cellular": "~55.0.0",
33
+ "expo-checkbox": "~55.0.0",
34
+ "expo-clipboard": "~55.0.0",
35
+ "expo-constants": "~55.0.0",
36
+ "expo-contacts": "~55.0.0",
37
+ "expo-crypto": "~55.0.0",
38
+ "expo-dev-client": "~55.0.0",
39
+ "expo-device": "~55.0.0",
40
+ "expo-document-picker": "~55.0.0",
41
+ "expo-file-system": "~55.0.0",
42
+ "expo-font": "~55.0.0",
43
+ "expo-gl": "~55.0.0",
44
+ "expo-glass-effect": "~55.0.0",
45
45
  "expo-google-app-auth": "~8.3.0",
46
- "expo-haptics": "15.0.9-canary-20260120-bb71700",
47
- "expo-image": "3.1.0-canary-20260120-bb71700",
48
- "expo-image-loader": "7.0.0-canary-20260120-bb71700",
49
- "expo-image-manipulator": "14.0.9-canary-20260120-bb71700",
50
- "expo-image-picker": "17.1.0-canary-20260120-bb71700",
51
- "expo-intent-launcher": "13.0.9-canary-20260120-bb71700",
52
- "expo-insights": "0.10.9-canary-20260120-bb71700",
53
- "expo-keep-awake": "15.0.9-canary-20260120-bb71700",
54
- "expo-linear-gradient": "15.0.9-canary-20260120-bb71700",
55
- "expo-linking": "8.0.12-canary-20260120-bb71700",
56
- "expo-local-authentication": "17.0.9-canary-20260120-bb71700",
57
- "expo-localization": "18.0.0-canary-20260120-bb71700",
58
- "expo-location": "19.1.0-canary-20260120-bb71700",
59
- "expo-mail-composer": "15.0.9-canary-20260120-bb71700",
60
- "expo-manifests": "1.0.11-canary-20260120-bb71700",
61
- "expo-maps": "0.13.0-canary-20260120-bb71700",
46
+ "expo-haptics": "~55.0.0",
47
+ "expo-image": "~55.0.0",
48
+ "expo-image-loader": "~55.0.0",
49
+ "expo-image-manipulator": "~55.0.0",
50
+ "expo-image-picker": "~55.0.0",
51
+ "expo-intent-launcher": "~55.0.0",
52
+ "expo-insights": "~55.0.0",
53
+ "expo-keep-awake": "~55.0.0",
54
+ "expo-linear-gradient": "~55.0.0",
55
+ "expo-linking": "~55.0.0",
56
+ "expo-local-authentication": "~55.0.0",
57
+ "expo-localization": "~55.0.0",
58
+ "expo-location": "~55.0.0",
59
+ "expo-mail-composer": "~55.0.0",
60
+ "expo-manifests": "~55.0.0",
61
+ "expo-maps": "~55.0.0",
62
62
  "expo-mcp": "~0.2.1",
63
- "expo-media-library": "18.3.0-canary-20260120-bb71700",
64
- "expo-mesh-gradient": "0.4.9-canary-20260120-bb71700",
65
- "expo-module-template": "11.0.19-canary-20260120-bb71700",
66
- "expo-modules-core": "4.0.0-canary-20260120-bb71700",
67
- "expo-navigation-bar": "5.0.11-canary-20260120-bb71700",
68
- "expo-network": "8.0.9-canary-20260120-bb71700",
69
- "expo-notifications": "1.0.0-canary-20260120-bb71700",
70
- "expo-print": "15.0.9-canary-20260120-bb71700",
71
- "expo-live-photo": "1.0.9-canary-20260120-bb71700",
72
- "expo-router": "7.0.0-canary-20260120-bb71700",
73
- "expo-screen-capture": "8.0.10-canary-20260120-bb71700",
74
- "expo-screen-orientation": "9.0.9-canary-20260120-bb71700",
75
- "expo-secure-store": "15.0.9-canary-20260120-bb71700",
76
- "expo-sensors": "15.0.9-canary-20260120-bb71700",
77
- "expo-server": "1.1.0-canary-20260120-bb71700",
78
- "expo-sharing": "14.0.9-canary-20260120-bb71700",
79
- "expo-sms": "14.0.9-canary-20260120-bb71700",
80
- "expo-speech": "14.1.0-canary-20260120-bb71700",
81
- "expo-splash-screen": "31.0.14-canary-20260120-bb71700",
82
- "expo-sqlite": "16.1.0-canary-20260120-bb71700",
83
- "expo-status-bar": "3.0.10-canary-20260120-bb71700",
84
- "expo-store-review": "9.0.10-canary-20260120-bb71700",
85
- "expo-symbols": "1.1.0-canary-20260120-bb71700",
86
- "expo-system-ui": "6.0.10-canary-20260120-bb71700",
87
- "expo-task-manager": "14.0.10-canary-20260120-bb71700",
88
- "expo-tracking-transparency": "6.0.9-canary-20260120-bb71700",
89
- "expo-updates": "29.1.0-canary-20260120-bb71700",
90
- "expo-video-thumbnails": "10.0.9-canary-20260120-bb71700",
91
- "expo-video": "4.0.0-canary-20260120-bb71700",
92
- "expo-web-browser": "15.0.11-canary-20260120-bb71700",
93
- "jest-expo": "55.0.0-canary-20260120-bb71700",
63
+ "expo-media-library": "~55.0.0",
64
+ "expo-mesh-gradient": "~55.0.0",
65
+ "expo-module-template": "~55.0.0",
66
+ "expo-modules-core": "~55.0.0",
67
+ "expo-navigation-bar": "~55.0.0",
68
+ "expo-network": "~55.0.0",
69
+ "expo-notifications": "~55.0.0",
70
+ "expo-print": "~55.0.0",
71
+ "expo-live-photo": "~55.0.0",
72
+ "expo-router": "~55.0.0-beta.0",
73
+ "expo-screen-capture": "~55.0.0",
74
+ "expo-screen-orientation": "~55.0.0",
75
+ "expo-secure-store": "~55.0.0",
76
+ "expo-sensors": "~55.0.0",
77
+ "expo-server": "~55.0.0",
78
+ "expo-sharing": "~55.0.0",
79
+ "expo-sms": "~55.0.0",
80
+ "expo-speech": "~55.0.0",
81
+ "expo-splash-screen": "~55.0.0",
82
+ "expo-sqlite": "~55.0.0",
83
+ "expo-status-bar": "~55.0.0",
84
+ "expo-store-review": "~55.0.0",
85
+ "expo-symbols": "~55.0.0",
86
+ "expo-system-ui": "~55.0.0",
87
+ "expo-task-manager": "~55.0.0",
88
+ "expo-tracking-transparency": "~55.0.0",
89
+ "expo-updates": "~55.0.0",
90
+ "expo-video-thumbnails": "~55.0.0",
91
+ "expo-video": "~55.0.0",
92
+ "expo-web-browser": "~55.0.0",
93
+ "jest-expo": "~55.0.0",
94
94
  "lottie-react-native": "~7.3.4",
95
95
  "react": "19.2.0",
96
96
  "react-dom": "19.2.0",
@@ -110,7 +110,7 @@
110
110
  "react-native-webview": "13.16.0",
111
111
  "react-server-dom-webpack": "~19.2.3",
112
112
  "sentry-expo": "~7.0.0",
113
- "unimodules-app-loader": "6.0.9-canary-20260120-bb71700",
113
+ "unimodules-app-loader": "~55.0.0",
114
114
  "unimodules-image-loader-interface": "~6.1.0",
115
115
  "@shopify/react-native-skia": "2.4.14",
116
116
  "@shopify/flash-list": "2.0.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "55.0.0-canary-20260120-bb71700",
3
+ "version": "55.0.0-preview.0",
4
4
  "description": "The Expo SDK",
5
5
  "main": "src/Expo.ts",
6
6
  "module": "src/Expo.ts",
@@ -77,44 +77,44 @@
77
77
  "homepage": "https://github.com/expo/expo/tree/main/packages/expo",
78
78
  "dependencies": {
79
79
  "@babel/runtime": "^7.20.0",
80
- "@expo/cli": "55.0.0-canary-20260120-bb71700",
81
- "@expo/config": "12.0.14-canary-20260120-bb71700",
82
- "@expo/config-plugins": "54.1.0-canary-20260120-bb71700",
83
- "@expo/devtools": "0.1.9-canary-20260120-bb71700",
84
- "@expo/fingerprint": "0.15.5-canary-20260120-bb71700",
85
- "@expo/local-build-cache-provider": "0.0.1-canary-20260120-bb71700",
80
+ "@expo/cli": "55.0.0",
81
+ "@expo/config": "~55.0.0",
82
+ "@expo/config-plugins": "~55.0.0",
83
+ "@expo/devtools": "55.0.0",
84
+ "@expo/fingerprint": "0.16.0",
85
+ "@expo/local-build-cache-provider": "55.0.0",
86
86
  "@expo/metro": "~54.2.0",
87
- "@expo/metro-config": "54.1.0-canary-20260120-bb71700",
87
+ "@expo/metro-config": "55.0.0",
88
88
  "@expo/vector-icons": "^15.0.2",
89
- "@expo/log-box": "0.0.13-canary-20260120-bb71700",
89
+ "@expo/log-box": "55.0.0",
90
90
  "@ungap/structured-clone": "^1.3.0",
91
- "babel-preset-expo": "54.1.0-canary-20260120-bb71700",
92
- "expo-asset": "12.0.13-canary-20260120-bb71700",
93
- "expo-constants": "18.1.0-canary-20260120-bb71700",
94
- "expo-file-system": "19.0.22-canary-20260120-bb71700",
95
- "expo-font": "14.1.0-canary-20260120-bb71700",
96
- "expo-keep-awake": "15.0.9-canary-20260120-bb71700",
97
- "expo-modules-autolinking": "3.1.0-canary-20260120-bb71700",
98
- "expo-modules-core": "4.0.0-canary-20260120-bb71700",
91
+ "babel-preset-expo": "~55.0.0",
92
+ "expo-asset": "~55.0.0",
93
+ "expo-constants": "~55.0.0",
94
+ "expo-file-system": "~55.0.0",
95
+ "expo-font": "~55.0.0",
96
+ "expo-keep-awake": "~55.0.0",
97
+ "expo-modules-autolinking": "55.0.0",
98
+ "expo-modules-core": "55.0.0",
99
99
  "pretty-format": "^29.7.0",
100
100
  "react-refresh": "^0.14.2",
101
101
  "whatwg-url-without-unicode": "8.0.0-3"
102
102
  },
103
103
  "devDependencies": {
104
- "@expo/dom-webview": "0.2.9-canary-20260120-bb71700",
105
- "@expo/metro-runtime": "6.2.0-canary-20260120-bb71700",
104
+ "@expo/dom-webview": "55.0.0",
105
+ "@expo/metro-runtime": "^55.0.0",
106
106
  "@types/node": "^22.14.0",
107
107
  "@types/react": "~19.2.0",
108
108
  "@types/react-test-renderer": "~19.1.0",
109
- "expo-module-scripts": "5.1.0-canary-20260120-bb71700",
109
+ "expo-module-scripts": "^55.0.0",
110
110
  "react": "19.2.0",
111
111
  "react-dom": "19.2.0",
112
112
  "react-native": "0.83.1",
113
113
  "web-streams-polyfill": "^3.3.2"
114
114
  },
115
115
  "peerDependencies": {
116
- "@expo/dom-webview": "0.2.9-canary-20260120-bb71700",
117
- "@expo/metro-runtime": "6.2.0-canary-20260120-bb71700",
116
+ "@expo/dom-webview": "*",
117
+ "@expo/metro-runtime": "*",
118
118
  "react": "*",
119
119
  "react-native": "*",
120
120
  "react-native-webview": "*"
@@ -129,5 +129,6 @@
129
129
  "react-native-webview": {
130
130
  "optional": true
131
131
  }
132
- }
132
+ },
133
+ "gitHead": "6b424b7810c62417bb53f7e3d4e18a25403dbfeb"
133
134
  }
@@ -17,8 +17,32 @@ type MetroRequire = {
17
17
 
18
18
  type DependencyMapPaths = { [moduleID: number | string]: unknown } | null;
19
19
 
20
+ declare const crossOriginIsolated: boolean | undefined;
20
21
  declare let __METRO_GLOBAL_PREFIX__: string;
21
22
 
23
+ // Shim script that wraps around a given worker entrypoint and:
24
+ // - Remaps `fetch` to the base URL given
25
+ // - Remaps `importScripts` to the base URL given
26
+ // This doesn't cover all cases and won't fix that:
27
+ // - self.location will be set to a blob URL
28
+ // - new URL won't relatively resolve
29
+ // - XMLHttpRequest, WebSocket, etc won't relatively resolve
30
+ function makeWorkerContent(url: string): string {
31
+ return `
32
+ const ASYNC_WORKER_BASE = ${JSON.stringify(url)};
33
+ const IMPORT_SCRIPTS = importScripts;
34
+ const FETCH = fetch;
35
+ const fromBaseURL = (input) => new URL(input, ASYNC_WORKER_BASE).href;
36
+ self.fetch = function(input, init) {
37
+ return FETCH(typeof input === 'string' ? fromBaseURL(input) : input, init);
38
+ };
39
+ self.importScripts = function(...urls) {
40
+ return IMPORT_SCRIPTS.apply(self, urls.map(fromBaseURL));
41
+ };
42
+ importScripts(ASYNC_WORKER_BASE);
43
+ `;
44
+ }
45
+
22
46
  function maybeLoadBundle(moduleID: number, paths: DependencyMapPaths): void | Promise<void> {
23
47
  const loadBundle: (bundlePath: unknown) => Promise<void> = (globalThis as any)[
24
48
  `${__METRO_GLOBAL_PREFIX__ ?? ''}__loadBundleAsync`
@@ -91,6 +115,26 @@ asyncRequire.unstable_resolve = function unstable_resolve(
91
115
  return id;
92
116
  };
93
117
 
118
+ // Wraps around `new Worker` and if `crossOriginIsolated` is truthy, indicating CORP/COEP is active,
119
+ // instantiates the worker with an inline script instead, which works around the CORS error. This is
120
+ // necessary if the worker script won't have the same CORP/COEP headers as the document
121
+ asyncRequire.unstable_createWorker = function unstable_createWorker(
122
+ workerUrl: string,
123
+ workerOpts?: WorkerOptions
124
+ ) {
125
+ if (typeof crossOriginIsolated !== 'undefined' && crossOriginIsolated) {
126
+ try {
127
+ const content = makeWorkerContent(workerUrl);
128
+ workerUrl = URL.createObjectURL(new Blob([content], { type: 'text/javascript' }));
129
+ return new Worker(workerUrl, workerOpts);
130
+ } finally {
131
+ URL.revokeObjectURL(workerUrl);
132
+ }
133
+ } else {
134
+ return new Worker(workerUrl, workerOpts);
135
+ }
136
+ };
137
+
94
138
  // TODO(@kitten): Missing metro type definitions
95
139
  declare const module: any;
96
140
 
package/template.tgz CHANGED
Binary file