@nx/expo 22.2.0-beta.2 → 22.2.0-beta.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/migrations.json +109 -0
- package/package.json +8 -7
- package/plugins/with-nx-metro.d.ts +1 -1
- package/plugins/with-nx-metro.d.ts.map +1 -1
- package/plugins/with-nx-metro.js +1 -1
- package/src/generators/application/application.js +1 -1
- package/src/generators/application/files/nx-welcome/claimed/src/app/App.tsx.template +7 -10
- package/src/generators/application/files/nx-welcome/not-configured/src/app/App.tsx.template +7 -10
- package/src/generators/application/files/nx-welcome/unclaimed/src/app/App.tsx.template +7 -10
- package/src/generators/init/init.d.ts +1 -1
- package/src/generators/init/init.d.ts.map +1 -1
- package/src/generators/init/init.js +11 -9
- package/src/generators/library/library.d.ts.map +1 -1
- package/src/generators/library/library.js +7 -6
- package/src/migrations/update-22-2-0/add-expo-system-ui.d.ts +8 -0
- package/src/migrations/update-22-2-0/add-expo-system-ui.d.ts.map +1 -0
- package/src/migrations/update-22-2-0/add-expo-system-ui.js +48 -0
- package/src/migrations/update-22-2-0/create-ai-instructions-for-expo-54.d.ts +3 -0
- package/src/migrations/update-22-2-0/create-ai-instructions-for-expo-54.d.ts.map +1 -0
- package/src/migrations/update-22-2-0/create-ai-instructions-for-expo-54.js +16 -0
- package/src/migrations/update-22-2-0/files/ai-instructions-for-expo-54.md +519 -0
- package/src/migrations/update-22-2-0/update-jest-for-expo-54.d.ts +12 -0
- package/src/migrations/update-22-2-0/update-jest-for-expo-54.d.ts.map +1 -0
- package/src/migrations/update-22-2-0/update-jest-for-expo-54.js +150 -0
- package/src/utils/ensure-dependencies.d.ts +1 -1
- package/src/utils/ensure-dependencies.d.ts.map +1 -1
- package/src/utils/ensure-dependencies.js +16 -15
- package/src/utils/jest/add-jest.d.ts.map +1 -1
- package/src/utils/jest/add-jest.js +35 -10
- package/src/utils/version-utils.d.ts +48 -0
- package/src/utils/version-utils.d.ts.map +1 -0
- package/src/utils/version-utils.js +130 -0
- package/src/utils/versions.d.ts +46 -16
- package/src/utils/versions.d.ts.map +1 -1
- package/src/utils/versions.js +51 -17
package/migrations.json
CHANGED
|
@@ -17,6 +17,27 @@
|
|
|
17
17
|
"cli": "nx",
|
|
18
18
|
"description": "Add custom Jest resolver to handle Expo winter runtime issues",
|
|
19
19
|
"factory": "./src/migrations/update-21-4-0/add-jest-resolver"
|
|
20
|
+
},
|
|
21
|
+
"update-22-2-0-create-ai-instructions-for-expo-54": {
|
|
22
|
+
"version": "22.2.0-beta.3",
|
|
23
|
+
"cli": "nx",
|
|
24
|
+
"description": "Create AI migration instructions for Expo SDK 54 upgrade",
|
|
25
|
+
"factory": "./src/migrations/update-22-2-0/create-ai-instructions-for-expo-54"
|
|
26
|
+
},
|
|
27
|
+
"update-22-2-0-add-expo-system-ui": {
|
|
28
|
+
"version": "22.2.0-beta.3",
|
|
29
|
+
"cli": "nx",
|
|
30
|
+
"description": "Add expo-system-ui dependency for Expo SDK 54",
|
|
31
|
+
"factory": "./src/migrations/update-22-2-0/add-expo-system-ui"
|
|
32
|
+
},
|
|
33
|
+
"update-22-2-0-update-jest-for-expo-54": {
|
|
34
|
+
"requires": {
|
|
35
|
+
"expo": ">= 54.0.0"
|
|
36
|
+
},
|
|
37
|
+
"version": "22.2.0-beta.3",
|
|
38
|
+
"cli": "nx",
|
|
39
|
+
"description": "Update Jest configuration for Expo SDK 54",
|
|
40
|
+
"factory": "./src/migrations/update-22-2-0/update-jest-for-expo-54"
|
|
20
41
|
}
|
|
21
42
|
},
|
|
22
43
|
"packageJsonUpdates": {
|
|
@@ -169,6 +190,94 @@
|
|
|
169
190
|
"alwaysAddToPackageJson": false
|
|
170
191
|
}
|
|
171
192
|
}
|
|
193
|
+
},
|
|
194
|
+
"22.2.0": {
|
|
195
|
+
"version": "22.2.0-beta.3",
|
|
196
|
+
"requires": {
|
|
197
|
+
"expo": ">= 53.0.0"
|
|
198
|
+
},
|
|
199
|
+
"packages": {
|
|
200
|
+
"expo": {
|
|
201
|
+
"version": "~54.0.0",
|
|
202
|
+
"alwaysAddToPackageJson": false
|
|
203
|
+
},
|
|
204
|
+
"expo-splash-screen": {
|
|
205
|
+
"version": "~31.0.11",
|
|
206
|
+
"alwaysAddToPackageJson": false
|
|
207
|
+
},
|
|
208
|
+
"expo-status-bar": {
|
|
209
|
+
"version": "~3.0.8",
|
|
210
|
+
"alwaysAddToPackageJson": false
|
|
211
|
+
},
|
|
212
|
+
"expo-system-ui": {
|
|
213
|
+
"version": "~6.0.8",
|
|
214
|
+
"alwaysAddToPackageJson": false
|
|
215
|
+
},
|
|
216
|
+
"@expo/cli": {
|
|
217
|
+
"version": "~54.0.16",
|
|
218
|
+
"alwaysAddToPackageJson": false
|
|
219
|
+
},
|
|
220
|
+
"babel-preset-expo": {
|
|
221
|
+
"version": "~54.0.7",
|
|
222
|
+
"alwaysAddToPackageJson": false
|
|
223
|
+
},
|
|
224
|
+
"react": {
|
|
225
|
+
"version": "^19.1.0",
|
|
226
|
+
"alwaysAddToPackageJson": false
|
|
227
|
+
},
|
|
228
|
+
"react-dom": {
|
|
229
|
+
"version": "^19.1.0",
|
|
230
|
+
"alwaysAddToPackageJson": false
|
|
231
|
+
},
|
|
232
|
+
"@types/react": {
|
|
233
|
+
"version": "^19.1.0",
|
|
234
|
+
"alwaysAddToPackageJson": false
|
|
235
|
+
},
|
|
236
|
+
"react-native": {
|
|
237
|
+
"version": "~0.81.5",
|
|
238
|
+
"alwaysAddToPackageJson": false
|
|
239
|
+
},
|
|
240
|
+
"react-native-web": {
|
|
241
|
+
"version": "~0.21.0",
|
|
242
|
+
"alwaysAddToPackageJson": false
|
|
243
|
+
},
|
|
244
|
+
"@expo/metro-config": {
|
|
245
|
+
"version": "~54.0.9",
|
|
246
|
+
"alwaysAddToPackageJson": false
|
|
247
|
+
},
|
|
248
|
+
"@expo/metro-runtime": {
|
|
249
|
+
"version": "~6.1.2",
|
|
250
|
+
"alwaysAddToPackageJson": false
|
|
251
|
+
},
|
|
252
|
+
"react-native-svg-transformer": {
|
|
253
|
+
"version": "~1.5.1",
|
|
254
|
+
"alwaysAddToPackageJson": false
|
|
255
|
+
},
|
|
256
|
+
"react-native-svg": {
|
|
257
|
+
"version": "15.12.1",
|
|
258
|
+
"alwaysAddToPackageJson": false
|
|
259
|
+
},
|
|
260
|
+
"@testing-library/react-native": {
|
|
261
|
+
"version": "~13.2.0",
|
|
262
|
+
"alwaysAddToPackageJson": false
|
|
263
|
+
},
|
|
264
|
+
"jest-expo": {
|
|
265
|
+
"version": "~54.0.13",
|
|
266
|
+
"alwaysAddToPackageJson": false
|
|
267
|
+
},
|
|
268
|
+
"@babel/runtime": {
|
|
269
|
+
"version": "~7.27.6",
|
|
270
|
+
"alwaysAddToPackageJson": false
|
|
271
|
+
},
|
|
272
|
+
"metro-config": {
|
|
273
|
+
"version": "~0.83.0",
|
|
274
|
+
"alwaysAddToPackageJson": false
|
|
275
|
+
},
|
|
276
|
+
"metro-resolver": {
|
|
277
|
+
"version": "~0.83.0",
|
|
278
|
+
"alwaysAddToPackageJson": false
|
|
279
|
+
}
|
|
280
|
+
}
|
|
172
281
|
}
|
|
173
282
|
}
|
|
174
283
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/expo",
|
|
3
|
-
"version": "22.2.0-beta.
|
|
3
|
+
"version": "22.2.0-beta.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Expo Plugin for Nx contains executors and generators for managing and developing an expo application within your workspace. For example, you can directly build for different target platforms as well as generate projects and publish your code.",
|
|
6
6
|
"keywords": [
|
|
@@ -28,12 +28,13 @@
|
|
|
28
28
|
"main": "./index.js",
|
|
29
29
|
"types": "index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@nx/devkit": "22.2.0-beta.
|
|
32
|
-
"@nx/eslint": "22.2.0-beta.
|
|
33
|
-
"@nx/js": "22.2.0-beta.
|
|
34
|
-
"@nx/react": "22.2.0-beta.
|
|
31
|
+
"@nx/devkit": "22.2.0-beta.3",
|
|
32
|
+
"@nx/eslint": "22.2.0-beta.3",
|
|
33
|
+
"@nx/js": "22.2.0-beta.3",
|
|
34
|
+
"@nx/react": "22.2.0-beta.3",
|
|
35
35
|
"enhanced-resolve": "^5.8.3",
|
|
36
36
|
"picocolors": "^1.1.0",
|
|
37
|
+
"semver": "^7.6.3",
|
|
37
38
|
"tsconfig-paths": "^4.1.2",
|
|
38
39
|
"tslib": "^2.3.0"
|
|
39
40
|
},
|
|
@@ -42,8 +43,8 @@
|
|
|
42
43
|
"metro-resolver": ">= 0.82.0"
|
|
43
44
|
},
|
|
44
45
|
"optionalDependencies": {
|
|
45
|
-
"@nx/detox": "22.2.0-beta.
|
|
46
|
-
"@nx/rollup": "22.2.0-beta.
|
|
46
|
+
"@nx/detox": "22.2.0-beta.3",
|
|
47
|
+
"@nx/rollup": "22.2.0-beta.3"
|
|
47
48
|
},
|
|
48
49
|
"executors": "./executors.json",
|
|
49
50
|
"ng-update": {
|
|
@@ -21,6 +21,6 @@ interface WithNxOptions {
|
|
|
21
21
|
*/
|
|
22
22
|
mainFields?: string[];
|
|
23
23
|
}
|
|
24
|
-
export declare function withNxMetro(userConfig: MetroConfig, opts?: WithNxOptions):
|
|
24
|
+
export declare function withNxMetro(userConfig: MetroConfig, opts?: WithNxOptions): any;
|
|
25
25
|
export {};
|
|
26
26
|
//# sourceMappingURL=with-nx-metro.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-nx-metro.d.ts","sourceRoot":"","sources":["../../../../packages/expo/plugins/with-nx-metro.ts"],"names":[],"mappings":"AAuBA,KAAK,WAAW,GAAG,GAAG,CAAC;AAIvB,UAAU,aAAa;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,
|
|
1
|
+
{"version":3,"file":"with-nx-metro.d.ts","sourceRoot":"","sources":["../../../../packages/expo/plugins/with-nx-metro.ts"],"names":[],"mappings":"AAuBA,KAAK,WAAW,GAAG,GAAG,CAAC;AAIvB,UAAU,aAAa;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,GAAE,aAAkB,OAmC5E"}
|
package/plugins/with-nx-metro.js
CHANGED
|
@@ -21,7 +21,7 @@ function getMetroConfig() {
|
|
|
21
21
|
return metroConfig;
|
|
22
22
|
}
|
|
23
23
|
const metro_resolver_1 = require("./metro-resolver");
|
|
24
|
-
|
|
24
|
+
function withNxMetro(userConfig, opts = {}) {
|
|
25
25
|
const extensions = ['', 'ts', 'tsx', 'js', 'jsx', 'json'];
|
|
26
26
|
if (opts.debug)
|
|
27
27
|
process.env.NX_REACT_NATIVE_DEBUG = 'true';
|
|
@@ -39,7 +39,7 @@ async function expoApplicationGeneratorInternal(host, schema) {
|
|
|
39
39
|
const initTask = await (0, init_1.default)(host, { ...options, skipFormat: true });
|
|
40
40
|
tasks.push(initTask);
|
|
41
41
|
if (!options.skipPackageJson) {
|
|
42
|
-
tasks.push((0, ensure_dependencies_1.ensureDependencies)(host, options.unitTestRunner));
|
|
42
|
+
tasks.push(await (0, ensure_dependencies_1.ensureDependencies)(host, options.unitTestRunner));
|
|
43
43
|
}
|
|
44
44
|
(0, init_root_babel_config_1.initRootBabelConfig)(host);
|
|
45
45
|
await (0, create_application_files_1.createApplicationFiles)(host, options);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable jsx-a11y/accessible-emoji */
|
|
2
2
|
import React, { useRef, useState } from 'react';
|
|
3
3
|
import {
|
|
4
|
-
SafeAreaView,
|
|
5
4
|
StyleSheet,
|
|
6
5
|
ScrollView,
|
|
7
6
|
View,
|
|
@@ -17,14 +16,9 @@ export const App = () => {
|
|
|
17
16
|
const scrollViewRef = useRef<null | ScrollView>(null);
|
|
18
17
|
|
|
19
18
|
return (
|
|
20
|
-
|
|
19
|
+
<View style={styles.container}>
|
|
21
20
|
<StatusBar barStyle="dark-content" />
|
|
22
|
-
<
|
|
23
|
-
style={{
|
|
24
|
-
flex: 1,
|
|
25
|
-
}}
|
|
26
|
-
>
|
|
27
|
-
<ScrollView
|
|
21
|
+
<ScrollView
|
|
28
22
|
ref={(ref) => {
|
|
29
23
|
scrollViewRef.current = ref;
|
|
30
24
|
}}
|
|
@@ -594,11 +588,14 @@ export const App = () => {
|
|
|
594
588
|
</View>
|
|
595
589
|
</View>
|
|
596
590
|
</ScrollView>
|
|
597
|
-
|
|
598
|
-
</>
|
|
591
|
+
</View>
|
|
599
592
|
);
|
|
600
593
|
};
|
|
601
594
|
const styles = StyleSheet.create({
|
|
595
|
+
container: {
|
|
596
|
+
flex: 1,
|
|
597
|
+
backgroundColor: '#ffffff',
|
|
598
|
+
},
|
|
602
599
|
scrollView: {
|
|
603
600
|
backgroundColor: '#ffffff',
|
|
604
601
|
},
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable jsx-a11y/accessible-emoji */
|
|
2
2
|
import React, { useRef, useState } from 'react';
|
|
3
3
|
import {
|
|
4
|
-
SafeAreaView,
|
|
5
4
|
StyleSheet,
|
|
6
5
|
ScrollView,
|
|
7
6
|
View,
|
|
@@ -17,14 +16,9 @@ export const App = () => {
|
|
|
17
16
|
const scrollViewRef = useRef<null | ScrollView>(null);
|
|
18
17
|
|
|
19
18
|
return (
|
|
20
|
-
|
|
19
|
+
<View style={styles.container}>
|
|
21
20
|
<StatusBar barStyle="dark-content" />
|
|
22
|
-
<
|
|
23
|
-
style={{
|
|
24
|
-
flex: 1,
|
|
25
|
-
}}
|
|
26
|
-
>
|
|
27
|
-
<ScrollView
|
|
21
|
+
<ScrollView
|
|
28
22
|
ref={(ref) => {
|
|
29
23
|
scrollViewRef.current = ref;
|
|
30
24
|
}}
|
|
@@ -592,11 +586,14 @@ export const App = () => {
|
|
|
592
586
|
</View>
|
|
593
587
|
</View>
|
|
594
588
|
</ScrollView>
|
|
595
|
-
|
|
596
|
-
</>
|
|
589
|
+
</View>
|
|
597
590
|
);
|
|
598
591
|
};
|
|
599
592
|
const styles = StyleSheet.create({
|
|
593
|
+
container: {
|
|
594
|
+
flex: 1,
|
|
595
|
+
backgroundColor: '#ffffff',
|
|
596
|
+
},
|
|
600
597
|
scrollView: {
|
|
601
598
|
backgroundColor: '#ffffff',
|
|
602
599
|
},
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable jsx-a11y/accessible-emoji */
|
|
2
2
|
import React, { useRef, useState } from 'react';
|
|
3
3
|
import {
|
|
4
|
-
SafeAreaView,
|
|
5
4
|
StyleSheet,
|
|
6
5
|
ScrollView,
|
|
7
6
|
View,
|
|
@@ -17,14 +16,9 @@ export const App = () => {
|
|
|
17
16
|
const scrollViewRef = useRef<null | ScrollView>(null);
|
|
18
17
|
|
|
19
18
|
return (
|
|
20
|
-
|
|
19
|
+
<View style={styles.container}>
|
|
21
20
|
<StatusBar barStyle="dark-content" />
|
|
22
|
-
<
|
|
23
|
-
style={{
|
|
24
|
-
flex: 1,
|
|
25
|
-
}}
|
|
26
|
-
>
|
|
27
|
-
<ScrollView
|
|
21
|
+
<ScrollView
|
|
28
22
|
ref={(ref) => {
|
|
29
23
|
scrollViewRef.current = ref;
|
|
30
24
|
}}
|
|
@@ -594,11 +588,14 @@ export const App = () => {
|
|
|
594
588
|
</View>
|
|
595
589
|
</View>
|
|
596
590
|
</ScrollView>
|
|
597
|
-
|
|
598
|
-
</>
|
|
591
|
+
</View>
|
|
599
592
|
);
|
|
600
593
|
};
|
|
601
594
|
const styles = StyleSheet.create({
|
|
595
|
+
container: {
|
|
596
|
+
flex: 1,
|
|
597
|
+
backgroundColor: '#ffffff',
|
|
598
|
+
},
|
|
602
599
|
scrollView: {
|
|
603
600
|
backgroundColor: '#ffffff',
|
|
604
601
|
},
|
|
@@ -2,6 +2,6 @@ import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
|
2
2
|
import { Schema } from './schema';
|
|
3
3
|
export declare function expoInitGenerator(tree: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
4
4
|
export declare function expoInitGeneratorInternal(host: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
5
|
-
export declare function updateDependencies(host: Tree, schema: Schema): GeneratorCallback
|
|
5
|
+
export declare function updateDependencies(host: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
6
6
|
export default expoInitGenerator;
|
|
7
7
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/generators/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAIjB,IAAI,EACL,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/generators/init/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAIjB,IAAI,EACL,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAE3D;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAwDzE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAoBlE;AAMD,eAAe,iBAAiB,CAAC"}
|
|
@@ -7,6 +7,7 @@ const devkit_1 = require("@nx/devkit");
|
|
|
7
7
|
const add_plugin_1 = require("@nx/devkit/src/utils/add-plugin");
|
|
8
8
|
const plugin_1 = require("../../../plugins/plugin");
|
|
9
9
|
const versions_1 = require("../../utils/versions");
|
|
10
|
+
const version_utils_1 = require("../../utils/version-utils");
|
|
10
11
|
const add_git_ignore_entry_1 = require("./lib/add-git-ignore-entry");
|
|
11
12
|
function expoInitGenerator(tree, schema) {
|
|
12
13
|
return expoInitGeneratorInternal(tree, { addPlugin: false, ...schema });
|
|
@@ -47,24 +48,25 @@ async function expoInitGeneratorInternal(host, schema) {
|
|
|
47
48
|
const tasks = [];
|
|
48
49
|
if (!schema.skipPackageJson) {
|
|
49
50
|
tasks.push(moveDependency(host));
|
|
50
|
-
tasks.push(updateDependencies(host, schema));
|
|
51
|
+
tasks.push(await updateDependencies(host, schema));
|
|
51
52
|
}
|
|
52
53
|
if (!schema.skipFormat) {
|
|
53
54
|
await (0, devkit_1.formatFiles)(host);
|
|
54
55
|
}
|
|
55
56
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
56
57
|
}
|
|
57
|
-
function updateDependencies(host, schema) {
|
|
58
|
+
async function updateDependencies(host, schema) {
|
|
59
|
+
const versions = await (0, version_utils_1.getExpoDependenciesVersionsToInstall)(host);
|
|
58
60
|
return (0, devkit_1.addDependenciesToPackageJson)(host, {
|
|
59
|
-
react:
|
|
60
|
-
'react-dom':
|
|
61
|
-
'react-native':
|
|
62
|
-
expo:
|
|
61
|
+
react: versions.react,
|
|
62
|
+
'react-dom': versions.reactDom,
|
|
63
|
+
'react-native': versions.reactNative,
|
|
64
|
+
expo: versions.expo,
|
|
63
65
|
}, {
|
|
64
66
|
'@nx/expo': versions_1.nxVersion,
|
|
65
|
-
'@expo/cli':
|
|
66
|
-
'metro-config':
|
|
67
|
-
'metro-resolver':
|
|
67
|
+
'@expo/cli': versions.expoCli,
|
|
68
|
+
'metro-config': versions.metro,
|
|
69
|
+
'metro-resolver': versions.metro,
|
|
68
70
|
}, undefined, schema.keepExistingVersions);
|
|
69
71
|
}
|
|
70
72
|
function moveDependency(host) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAOjB,IAAI,EAGL,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAM5B;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAiH5B;
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/generators/library/library.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAOjB,IAAI,EAGL,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAM5B;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAiH5B;AAwJD,eAAe,oBAAoB,CAAC"}
|
|
@@ -17,7 +17,7 @@ const add_rollup_build_target_1 = require("@nx/react/src/generators/library/lib/
|
|
|
17
17
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
18
18
|
const component_1 = require("../component/component");
|
|
19
19
|
const path_1 = require("path");
|
|
20
|
-
const
|
|
20
|
+
const version_utils_1 = require("../../utils/version-utils");
|
|
21
21
|
async function expoLibraryGenerator(host, schema) {
|
|
22
22
|
return await expoLibraryGeneratorInternal(host, {
|
|
23
23
|
addPlugin: false,
|
|
@@ -44,7 +44,7 @@ async function expoLibraryGeneratorInternal(host, schema) {
|
|
|
44
44
|
const initTask = await (0, init_1.default)(host, { ...options, skipFormat: true });
|
|
45
45
|
tasks.push(initTask);
|
|
46
46
|
if (!options.skipPackageJson) {
|
|
47
|
-
tasks.push((0, ensure_dependencies_1.ensureDependencies)(host, options.unitTestRunner));
|
|
47
|
+
tasks.push(await (0, ensure_dependencies_1.ensureDependencies)(host, options.unitTestRunner));
|
|
48
48
|
}
|
|
49
49
|
(0, init_root_babel_config_1.initRootBabelConfig)(host);
|
|
50
50
|
createFiles(host, options);
|
|
@@ -101,6 +101,7 @@ async function expoLibraryGeneratorInternal(host, schema) {
|
|
|
101
101
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
102
102
|
}
|
|
103
103
|
async function addProject(host, options) {
|
|
104
|
+
const versions = await (0, version_utils_1.getExpoDependenciesVersionsToInstall)(host);
|
|
104
105
|
const project = {
|
|
105
106
|
root: options.projectRoot,
|
|
106
107
|
sourceRoot: (0, devkit_1.joinPathFragments)(options.projectRoot, 'src'),
|
|
@@ -112,8 +113,8 @@ async function addProject(host, options) {
|
|
|
112
113
|
name: options.importPath,
|
|
113
114
|
version: '0.0.1',
|
|
114
115
|
peerDependencies: {
|
|
115
|
-
react:
|
|
116
|
-
'react-native':
|
|
116
|
+
react: versions.react,
|
|
117
|
+
'react-native': versions.reactNative,
|
|
117
118
|
},
|
|
118
119
|
};
|
|
119
120
|
if (options.isUsingTsSolutionConfig) {
|
|
@@ -158,8 +159,8 @@ async function addProject(host, options) {
|
|
|
158
159
|
(0, devkit_1.updateJson)(host, `${options.projectRoot}/package.json`, (json) => {
|
|
159
160
|
json.peerDependencies = {
|
|
160
161
|
...json.peerDependencies,
|
|
161
|
-
react:
|
|
162
|
-
'react-native':
|
|
162
|
+
react: versions.react,
|
|
163
|
+
'react-native': versions.reactNative,
|
|
163
164
|
};
|
|
164
165
|
return json;
|
|
165
166
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
/**
|
|
3
|
+
* Add expo-system-ui to Expo projects for SDK 54.
|
|
4
|
+
* expo-system-ui is now a built-in module that handles system UI colors
|
|
5
|
+
* and user interface style configuration.
|
|
6
|
+
*/
|
|
7
|
+
export default function update(tree: Tree): void;
|
|
8
|
+
//# sourceMappingURL=add-expo-system-ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-expo-system-ui.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/migrations/update-22-2-0/add-expo-system-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAML,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,IAAI,QAsCxC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = update;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
/**
|
|
6
|
+
* Add expo-system-ui to Expo projects for SDK 54.
|
|
7
|
+
* expo-system-ui is now a built-in module that handles system UI colors
|
|
8
|
+
* and user interface style configuration.
|
|
9
|
+
*/
|
|
10
|
+
function update(tree) {
|
|
11
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
12
|
+
for (const [projectName, config] of projects.entries()) {
|
|
13
|
+
if (config.projectType !== 'application' ||
|
|
14
|
+
!isExpoProject(tree, config.root)) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const appPackageJsonPath = (0, devkit_1.joinPathFragments)(config.root, 'package.json');
|
|
18
|
+
if (!tree.exists(appPackageJsonPath)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const packageJson = (0, devkit_1.readJson)(tree, appPackageJsonPath);
|
|
22
|
+
// Check if expo-system-ui is already installed
|
|
23
|
+
if (packageJson.dependencies?.['expo-system-ui'] ||
|
|
24
|
+
packageJson.devDependencies?.['expo-system-ui']) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
// Add expo-system-ui dependency
|
|
28
|
+
(0, devkit_1.updateJson)(tree, appPackageJsonPath, (json) => {
|
|
29
|
+
json.dependencies = json.dependencies || {};
|
|
30
|
+
json.dependencies['expo-system-ui'] = '~6.0.0';
|
|
31
|
+
return json;
|
|
32
|
+
});
|
|
33
|
+
devkit_1.logger.info(`Added expo-system-ui dependency to ${projectName} for SDK 54 support`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function isExpoProject(tree, projectRoot) {
|
|
37
|
+
const packageJsonPath = (0, devkit_1.joinPathFragments)(projectRoot, 'package.json');
|
|
38
|
+
if (!tree.exists(packageJsonPath)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const packageJson = (0, devkit_1.readJson)(tree, packageJsonPath);
|
|
43
|
+
return Boolean(packageJson.dependencies?.expo || packageJson.devDependencies?.expo);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-ai-instructions-for-expo-54.d.ts","sourceRoot":"","sources":["../../../../../../packages/expo/src/migrations/update-22-2-0/create-ai-instructions-for-expo-54.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wBAA8B,6BAA6B,CAAC,IAAI,EAAE,IAAI,qBAerE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = createAiInstructionsForExpo54;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
async function createAiInstructionsForExpo54(tree) {
|
|
7
|
+
const pathToAiInstructions = (0, path_1.join)(__dirname, 'files', 'ai-instructions-for-expo-54.md');
|
|
8
|
+
if (!(0, fs_1.existsSync)(pathToAiInstructions)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const contents = (0, fs_1.readFileSync)(pathToAiInstructions, 'utf-8');
|
|
12
|
+
tree.write('ai-migrations/MIGRATE_EXPO_54.md', contents);
|
|
13
|
+
return [
|
|
14
|
+
`We created 'ai-migrations/MIGRATE_EXPO_54.md' with instructions for an AI Agent to help migrate your Expo projects to Expo SDK 54.`,
|
|
15
|
+
];
|
|
16
|
+
}
|