create-expo-stack 2.4.3-next.e841ea5 → 2.5.0-next.738ca1b

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.
Files changed (39) hide show
  1. package/README.md +4 -4
  2. package/build/commands/create-expo-stack.js +12 -4
  3. package/build/templates/base/App.tsx.ejs +32 -6
  4. package/build/templates/base/app.json.ejs +6 -0
  5. package/build/templates/base/package.json.ejs +20 -6
  6. package/build/templates/base/prettier.config.js.ejs +11 -0
  7. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +18 -0
  8. package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +4 -0
  9. package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +3 -0
  10. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +18 -0
  11. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +18 -0
  12. package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +3 -0
  13. package/build/templates/packages/i18next/components/InternalizationExample.tsx.ejs +23 -0
  14. package/build/templates/packages/i18next/core/i18n/fallbackChecker.ts.ejs +13 -0
  15. package/build/templates/packages/i18next/core/i18n/init.ts.ejs +24 -0
  16. package/build/templates/packages/i18next/core/i18n/languageDetector.ts.ejs +13 -0
  17. package/build/templates/packages/i18next/translation/en.json.ejs +8 -0
  18. package/build/templates/packages/i18next/translation/fr.json.ejs +8 -0
  19. package/build/templates/packages/i18next/translation/index.ts.ejs +20 -0
  20. package/build/templates/packages/react-navigation/App.tsx.ejs +3 -0
  21. package/build/templates/packages/react-navigation/screens/home.tsx.ejs +19 -1
  22. package/build/templates/packages/react-navigation/screens/one.tsx.ejs +18 -0
  23. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +18 -1
  24. package/build/types/types.d.ts +3 -2
  25. package/build/types/utilities/configureProjectFiles.d.ts +1 -1
  26. package/build/types/utilities/generateProjectFiles.d.ts +1 -1
  27. package/build/types.js +3 -2
  28. package/build/utilities/configureProjectFiles.js +20 -11
  29. package/build/utilities/generateProjectFiles.js +7 -3
  30. package/build/utilities/runCLI.js +24 -8
  31. package/build/utilities/showHelp.js +4 -1
  32. package/package.json +1 -1
  33. package/build/templates/base/.prettierrc +0 -7
  34. package/build/templates/packages/expo-router/index.js +0 -4
  35. package/build/templates/packages/expo-router/index.ts +0 -1
  36. package/build/types/templates/packages/expo-router/index.d.ts +0 -1
  37. /package/build/templates/packages/expo-router/drawer/app/{[...unmatched].tsx.ejs → +not-found.tsx.ejs} +0 -0
  38. /package/build/templates/packages/expo-router/stack/app/{[...unmatched].tsx.ejs → +not-found.tsx.ejs} +0 -0
  39. /package/build/templates/packages/expo-router/tabs/app/{[...unmatched].tsx.ejs → +not-found.tsx.ejs} +0 -0
package/README.md CHANGED
@@ -43,14 +43,14 @@ Each project is generated based on the results of the CLI, on a per-file basis.
43
43
 
44
44
  | Library | Category | Version | Description |
45
45
  | ------------------ | ------------------- | ------- | ---------------------------------------------- |
46
- | React Native | Mobile Framework | v0.72 | The best cross-platform mobile framework |
46
+ | React Native | Mobile Framework | v0.73 | The best cross-platform mobile framework |
47
47
  | React | UI Framework | v18 | The most popular UI framework in the world |
48
- | TypeScript | Language | v4 | Static typechecking |
48
+ | TypeScript | Language | v5 | Static typechecking |
49
49
  | React Navigation | Navigation | v6 | Performant and consistent navigation framework |
50
- | Expo | SDK | v49 | Allows (optional) Expo modules |
50
+ | Expo | SDK | v50 | Allows (optional) Expo modules |
51
51
  | Expo Font | Custom Fonts | v11 | Import custom fonts |
52
52
  | Expo Linking | URL Handling | v5 | Open your app via a URL |
53
- | Expo Router | Navigation | v2 | File-based routing in React-Native |
53
+ | Expo Router | Navigation | v3 | File-based routing in React-Native |
54
54
  | Expo Splash Screen | Splash Screen | v0.18 | Custom splash screen |
55
55
  | Expo Status Bar | Status Bar Library | v1 | Status bar support |
56
56
  | Expo System UI | System UI Library | v2 | System UI support |
@@ -50,7 +50,7 @@ var command = {
50
50
  name: 'create-expo-stack',
51
51
  description: 'Create a new Expo project',
52
52
  run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
53
- var _a, exists, removeAsync, _b, first, options, _c, error, info, highlight, success, warning, prompt, printSomethingWentWrong, useDefault, skipCLI, useBlankTypescript, optionsPassedIn, cliResults, askName, name, pathSegments, err_1, generateRerunScript, packageManager, packages, authenticationPackage, navigationPackage, stylingPackage, files, formattedFiles, err_2;
53
+ var _a, exists, removeAsync, _b, first, options, _c, error, info, highlight, success, warning, prompt, printSomethingWentWrong, useDefault, skipCLI, useBlankTypescript, optionsPassedIn, cliResults, askName, name, pathSegments, err_1, generateRerunScript, packageManager, packages, authenticationPackage, navigationPackage, stylingPackage, internalizationPackage, files, formattedFiles, err_2;
54
54
  return __generator(this, function (_d) {
55
55
  switch (_d.label) {
56
56
  case 0:
@@ -263,6 +263,13 @@ var command = {
263
263
  type: 'authentication'
264
264
  });
265
265
  }
266
+ // Internalization packages
267
+ if (options.i18next) {
268
+ cliResults.packages.push({
269
+ name: 'i18next',
270
+ type: 'internationalization'
271
+ });
272
+ }
266
273
  // By this point, all cliResults should be set
267
274
  info('');
268
275
  highlight('Your project configuration:');
@@ -309,10 +316,11 @@ var command = {
309
316
  authenticationPackage = packages.find(function (p) { return p.type === 'authentication'; }) || undefined;
310
317
  navigationPackage = packages.find(function (p) { return p.type === 'navigation'; }) || undefined;
311
318
  stylingPackage = packages.find(function (p) { return p.type === 'styling'; });
319
+ internalizationPackage = packages.find(function (p) { return p.type === 'internationalization'; });
312
320
  files = [];
313
- files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults);
321
+ files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults, internalizationPackage);
314
322
  formattedFiles = [];
315
- formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox);
323
+ formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox, internalizationPackage);
316
324
  return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox, stylingPackage)];
317
325
  case 16:
318
326
  _d.sent();
@@ -334,4 +342,4 @@ var command = {
334
342
  }); }
335
343
  };
336
344
  exports.default = command;
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLHlCQUF5QixHQUFHLG9IQUFvSCxDQUFDO0FBRXZKLElBQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsR0FBRyxFQUFFLFVBQU8sT0FBTzs7Ozs7b0JBRWYsS0FJRSxPQUFPLFdBSjBCLEVBQXJCLE1BQU0sWUFBQSxFQUFFLFdBQVcsaUJBQUEsRUFDakMsS0FHRSxPQUFPLFdBSHFCLEVBQWhCLEtBQUssV0FBQSxFQUFFLE9BQU8sYUFBQSxFQUM1QixLQUVFLE9BQU8sTUFGMEMsRUFBMUMsS0FBSyxXQUFBLEVBQUUsSUFBSSxVQUFBLEVBQUUsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLEVBQ2pELE1BQU0sR0FDSixPQUFPLE9BREgsQ0FDSTtvQkFFTix1QkFBdUIsR0FBRzt3QkFDOUIsSUFBSSxDQUFDLHVFQUE2RCxDQUFDLENBQUM7d0JBQ3BFLElBQUksQ0FDRiwySEFBMkgsQ0FDNUgsQ0FBQzt3QkFDRixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1gsQ0FBQyxDQUFDO29CQUNGLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzlCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxD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
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLHlCQUF5QixHQUFHLG9IQUFvSCxDQUFDO0FBRXZKLElBQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsR0FBRyxFQUFFLFVBQU8sT0FBTzs7Ozs7b0JBRWYsS0FJRSxPQUFPLFdBSjBCLEVBQXJCLE1BQU0sWUFBQSxFQUFFLFdBQVcsaUJBQUEsRUFDakMsS0FHRSxPQUFPLFdBSHFCLEVBQWhCLEtBQUssV0FBQSxFQUFFLE9BQU8sYUFBQSxFQUM1QixLQUVFLE9BQU8sTUFGMEMsRUFBMUMsS0FBSyxXQUFBLEVBQUUsSUFBSSxVQUFBLEVBQUUsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLEVBQ2pELE1BQU0sR0FDSixPQUFPLE9BREgsQ0FDSTtvQkFFTix1QkFBdUIsR0FBRzt3QkFDOUIsSUFBSSxDQUFDLHVFQUE2RCxDQUFDLENBQUM7d0JBQ3BFLElBQUksQ0FDRiwySEFBMkgsQ0FDNUgsQ0FBQzt3QkFDRixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1gsQ0FBQyxDQUFDO29CQUNGLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzlCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxD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
@@ -19,13 +19,24 @@ import React from 'react';
19
19
  import { StyleSheet, Text, View } from 'react-native';
20
20
  <% } %>
21
21
 
22
+ <% if (props.internalizationPackage?.name === "i18next") { %>
23
+ import { InternalizationExample } from 'components/InternalizationExample';
24
+
25
+ import './translation';
26
+ <% } %>
27
+
28
+
22
29
  import { StatusBar } from 'expo-status-bar';
23
30
 
24
31
  <% if (props.stylingPackage?.name === "nativewind") {%>
25
32
  export default function App() {
26
33
  return (
27
34
  <View className={styles.container}>
35
+ <% if (props.internalizationPackage?.name === "i18next") { %>
36
+ <InternalizationExample />
37
+ <% } else { %>
28
38
  <Text>Open up App.tsx to start working on your app!</Text>
39
+ <% } %>
29
40
  <StatusBar style="auto" />
30
41
  </View >
31
42
  );
@@ -46,27 +57,38 @@ import { StatusBar } from 'expo-status-bar';
46
57
  return (
47
58
  <TamaguiProvider config={config}>
48
59
  <MyView>
49
- <Text>Open up App.tsx to start working on your app!</Text>
60
+ <Text>Open up App.tsx to start working on your app!</Text>
61
+ <% if (props.internalizationPackage?.name === "i18next") { %>
62
+ <InternalizationExample />
63
+ <% } %>
50
64
  <StatusBar style="auto" />
51
65
  </MyView>
52
66
  </TamaguiProvider >
53
67
  );
54
68
  }
55
69
  <% } else if (props.stylingPackage?.name === "restyle") {%>
56
- export default function App() {
70
+ export default function App() {
57
71
  return (
58
72
  <ThemeProvider theme={theme}>
59
- <Text>Open up App.tsx to start working on your app!</Text>
73
+ <% if (props.internalizationPackage?.name === "i18next") { %>
74
+ <InternalizationExample />
75
+ <% } else { %>
76
+ <Text>Open up App.tsx to start working on your app!</Text>
77
+ <% } %>
60
78
  <StatusBar style="auto" />
61
79
  </ThemeProvider>
62
80
  );
63
81
  }
64
82
  <% } else if (props.stylingPackage?.name === "unistyles") {%>
65
- export default function App() {
83
+ export default function App() {
66
84
  const {styles} = useStyles(stylesheet)
67
85
  return (
68
86
  <View style={styles.container}>
69
- <Text>Open up App.tsx to start working on your app!</Text>
87
+ <% if (props.internalizationPackage?.name === "i18next") { %>
88
+ <InternalizationExample />
89
+ <% } else { %>
90
+ <Text>Open up App.tsx to start working on your app!</Text>
91
+ <% } %>
70
92
  <StatusBar style="auto" />
71
93
  </View >
72
94
  );
@@ -84,7 +106,11 @@ import { StatusBar } from 'expo-status-bar';
84
106
  export default function App() {
85
107
  return (
86
108
  <View style={styles.container}>
87
- <Text>Open up App.tsx to start working on your app!</Text>
109
+ <% if (props.internalizationPackage?.name === "i18next") { %>
110
+ <InternalizationExample />
111
+ <% } else { %>
112
+ <Text>Open up App.tsx to start working on your app!</Text>
113
+ <% } %>
88
114
  <StatusBar style="auto" />
89
115
  </View >
90
116
  );
@@ -47,5 +47,11 @@
47
47
  "backgroundColor": "#ffffff"
48
48
  }
49
49
  }
50
+ <% if (props.internalizationPackage?.name === "i18next") { %>
51
+ ,
52
+ "plugins": [
53
+ "expo-localization"
54
+ ]
55
+ <% } %>
50
56
  }
51
57
  }
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "<%= props.projectName %>",
3
3
  "version": "1.0.0",
4
+ <% if (props.navigationPackage?.name === "expo-router") { %>
5
+ "main": "expo-router/entry",
6
+ <% } %>
4
7
  "scripts": {
5
8
  "android": "expo start --android",
6
9
  <% if (props.packageManager === "bun") { %>
7
- "format": "bun run eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
10
+ "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
8
11
  <% } else { %>
9
12
  "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
10
13
  <% } %>
@@ -66,13 +69,13 @@
66
69
  <% if (props.navigationPackage?.name === "expo-router") { %>
67
70
  "@expo/vector-icons": "^14.0.0",
68
71
  "expo-linking": "~6.2.2",
69
- "expo-router": "^3.4.6",
72
+ "expo-router": "^3.4.7",
70
73
  "expo-constants": "~15.4.5",
71
74
  "expo-system-ui": "~2.9.3",
72
75
  "expo-web-browser": "~12.8.2",
73
76
  "react-dom": "18.2.0",
74
77
  "react-native-reanimated": "~3.6.2",
75
- "react-native-web": "~0.19.6",
78
+ "react-native-web": "~0.19.10",
76
79
  <% } %>
77
80
 
78
81
  <% if (props.authenticationPackage?.name === "supabase") { %>
@@ -85,27 +88,38 @@
85
88
  "firebase": "^10.5.2",
86
89
  "react-native-url-polyfill": "^2.0.0",
87
90
  <% } %>
91
+
92
+ <% if (props.internalizationPackage?.name === "i18next") { %>
93
+ "i18next": "^23.7.20",
94
+ "react-i18next": "^14.0.1",
95
+ "expo-localization": "~14.8.3",
96
+ <% } %>
88
97
 
89
- "expo": "~50.0.5",
98
+ "expo": "~50.0.7",
90
99
  "expo-status-bar": "~1.11.1",
91
100
  "react": "18.2.0",
92
101
  "react-native": "0.73.4"
93
102
  },
94
103
  "devDependencies": {
104
+ <%# patch for this issue : https://github.com/expo/expo/issues/26641 %>
105
+ <% if (props.packageManager === "bun" && props.navigationPackage?.name === "expo-router") { %>
106
+ "ajv": "^8.12.0",
107
+ <% } %>
95
108
  "@babel/core": "^7.20.0",
96
109
  "@types/react": "~18.2.14",
97
110
  "@typescript-eslint/eslint-plugin": "^6.7.2",
98
111
  "@typescript-eslint/parser": "^6.7.2",
99
112
  "eslint": "^8.50.0",
100
113
  "eslint-config-universe": "^12.0.0",
101
- "prettier": "^3.0.3",
114
+ "prettier": "^3.2.5",
102
115
  <% if (props.stylingPackage?.name === "nativewind") { %>
103
116
  "tailwindcss": "^3.4.0",
117
+ "prettier-plugin-tailwindcss": "^0.5.11",
104
118
  <% } %>
105
119
  <% if (props.stylingPackage?.name === "tamagui") { %>
106
120
  "@tamagui/babel-plugin": "1.74.8",
107
121
  <% } %>
108
- "typescript": "^5.1.3"
122
+ "typescript": "^5.3.3"
109
123
  },
110
124
  "eslintConfig": {
111
125
  "extends": "universe/native"
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ printWidth: 100,
3
+ tabWidth: 2,
4
+ singleQuote: true,
5
+ bracketSameLine: true,
6
+ trailingComma: 'es5',
7
+ <% if (props.stylingPackage?.name === "nativewind") { %>
8
+ plugins: [require.resolve("prettier-plugin-tailwindcss")],
9
+ tailwindAttributes: ["className"],
10
+ <% } %>
11
+ };
@@ -10,6 +10,9 @@
10
10
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
11
11
  import { StyleSheet, Text, View } from "react-native";
12
12
  <% } %>
13
+ <% if (props.internalizationPackage?.name === "i18next") { %>
14
+ import { InternalizationExample } from '../../components/InternalizationExample';
15
+ <% } %>
13
16
 
14
17
  import EditScreenInfo from "../../components/edit-screen-info";
15
18
 
@@ -20,6 +23,9 @@ const Page = () => {
20
23
  return (
21
24
  <View style={theme.components.container}>
22
25
  <Text style={theme.components.title}>Home</Text>
26
+ <% if (props.internalizationPackage?.name === "i18next") { %>
27
+ <InternalizationExample />
28
+ <% } %>
23
29
  <View style={theme.components.separator} />
24
30
  <EditScreenInfo path="app/(tabs)/index.tsx" />
25
31
  </View>
@@ -28,6 +34,9 @@ const Page = () => {
28
34
  return (
29
35
  <View className={styles.container}>
30
36
  <Text className={styles.title}>Home</Text>
37
+ <% if (props.internalizationPackage?.name === "i18next") { %>
38
+ <InternalizationExample />
39
+ <% } %>
31
40
  <View className={styles.separator} />
32
41
  <EditScreenInfo path="app/(tabs)/index.tsx" />
33
42
  </View>
@@ -37,6 +46,9 @@ const Page = () => {
37
46
  <Theme name="light">
38
47
  <YStack flex={1} alignItems="center" justifyContent="center">
39
48
  <H2>Home</H2>
49
+ <% if (props.internalizationPackage?.name === "i18next") { %>
50
+ <InternalizationExample />
51
+ <% } %>
40
52
  <Separator />
41
53
  <EditScreenInfo path="app/(tabs)/index.tsx" />
42
54
  </YStack>
@@ -46,6 +58,9 @@ const Page = () => {
46
58
  return (
47
59
  <Box flex={1} alignItems="center" justifyContent="center">
48
60
  <Text variant="title">Home</Text>
61
+ <% if (props.internalizationPackage?.name === "i18next") { %>
62
+ <InternalizationExample />
63
+ <% } %>
49
64
  <Box height={1} marginVertical="l_32" width="80%" />
50
65
  <EditScreenInfo path="app/(tabs)/index.tsx" />
51
66
  </Box>
@@ -54,6 +69,9 @@ const Page = () => {
54
69
  return (
55
70
  <View style={styles.container}>
56
71
  <Text style={styles.title}>Home</Text>
72
+ <% if (props.internalizationPackage?.name === "i18next") { %>
73
+ <InternalizationExample />
74
+ <% } %>
57
75
  <View style={styles.separator} />
58
76
  <EditScreenInfo path="app/(tabs)/index.tsx" />
59
77
  </View>
@@ -5,6 +5,10 @@ import '../global.css';
5
5
  import '../unistyles';
6
6
  <% } %>
7
7
 
8
+ <% if (props.internalizationPackage?.name === "i18next") { %>
9
+ import '../translation';
10
+ <% } %>
11
+
8
12
  import 'react-native-gesture-handler';
9
13
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
10
14
  import { Stack } from 'expo-router';
@@ -4,6 +4,9 @@ import '../global.css';
4
4
  <% if (props.stylingPackage?.name === "unistyles") { %>
5
5
  import '../unistyles';
6
6
  <% } %>
7
+ <% if (props.internalizationPackage?.name === "i18next") { %>
8
+ import '../translation';
9
+ <% } %>
7
10
 
8
11
  <% if (props.stylingPackage?.name === "tamagui") { %>
9
12
  import { useFonts } from 'expo-font';
@@ -12,6 +12,9 @@
12
12
  <% } else { %>
13
13
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
14
14
  <% } %>
15
+ <% if (props.internalizationPackage?.name === "i18next") { %>
16
+ import { InternalizationExample } from '../components/InternalizationExample';
17
+ <% } %>
15
18
  import { Stack } from "expo-router";
16
19
 
17
20
  import { Link } from "expo-router";
@@ -33,6 +36,9 @@ export default function Page() {
33
36
  <View>
34
37
  <Text className={styles.title}>Hello World</Text>
35
38
  <Text className={styles.subtitle}>This is the first page of your app.</Text>
39
+ <% if (props.internalizationPackage?.name === "i18next") { %>
40
+ <InternalizationExample />
41
+ <% } %>
36
42
  </View>
37
43
  <Link href={{ pathname: "/details", params: { name: "Dan" } }} asChild>
38
44
  <TouchableOpacity className={styles.button} >
@@ -48,6 +54,9 @@ export default function Page() {
48
54
  <YStack>
49
55
  <Title>Hello World</Title>
50
56
  <Subtitle>This is the first page of your app.</Subtitle>
57
+ <% if (props.internalizationPackage?.name === "i18next") { %>
58
+ <InternalizationExample />
59
+ <% } %>
51
60
  </YStack>
52
61
  <Link href={{ pathname: "/details", params: { name: "Dan" } }} asChild>
53
62
  <Button><ButtonText>Show Details</ButtonText></Button>
@@ -64,6 +73,9 @@ export default function Page() {
64
73
  <Text variant="large" color="darkGray">
65
74
  This is the first page of your app.
66
75
  </Text>
76
+ <% if (props.internalizationPackage?.name === "i18next") { %>
77
+ <InternalizationExample />
78
+ <% } %>
67
79
  </Box>
68
80
  <Link href={{ pathname: '/details', params: { name: 'Dan' } }} asChild>
69
81
  <TouchableOpacity
@@ -84,6 +96,9 @@ export default function Page() {
84
96
  <View>
85
97
  <Text style={theme.components.title}>Hello World</Text>
86
98
  <Text style={theme.components.subtitle}>This is the first page of your app.</Text>
99
+ <% if (props.internalizationPackage?.name === "i18next") { %>
100
+ <InternalizationExample />
101
+ <% } %>
87
102
  </View>
88
103
  <Link href={{ pathname: '/details', params: { name: 'Dan' } }} asChild>
89
104
  <TouchableOpacity style={theme.components.button} >
@@ -99,6 +114,9 @@ export default function Page() {
99
114
  <View>
100
115
  <Text style={styles.title}>Hello World</Text>
101
116
  <Text style={styles.subtitle}>This is the first page of your app.</Text>
117
+ <% if (props.internalizationPackage?.name === "i18next") { %>
118
+ <InternalizationExample />
119
+ <% } %>
102
120
  </View>
103
121
  <Link href={{ pathname: "/details", params: { name: "Dan" } }} asChild>
104
122
  <TouchableOpacity style={styles.button} >
@@ -10,6 +10,9 @@
10
10
  <% } else { %>
11
11
  import { StyleSheet, Text, View } from "react-native";
12
12
  <% } %>
13
+ <% if (props.internalizationPackage?.name === "i18next") { %>
14
+ import { InternalizationExample } from '../../components/InternalizationExample';
15
+ <% } %>
13
16
 
14
17
  import EditScreenInfo from "../../components/edit-screen-info";
15
18
 
@@ -20,6 +23,9 @@ export default function TabOneScreen() {
20
23
  return (
21
24
  <View style={theme.components.container}>
22
25
  <Text style={theme.components.title}>Tab One</Text>
26
+ <% if (props.internalizationPackage?.name === "i18next") { %>
27
+ <InternalizationExample />
28
+ <% } %>
23
29
  <View style={theme.components.separator} />
24
30
  <EditScreenInfo path="app/(tabs)/index.tsx" />
25
31
  </View>
@@ -28,6 +34,9 @@ export default function TabOneScreen() {
28
34
  return (
29
35
  <View className={styles.container}>
30
36
  <Text className={styles.title}>Tab One</Text>
37
+ <% if (props.internalizationPackage?.name === "i18next") { %>
38
+ <InternalizationExample />
39
+ <% } %>
31
40
  <View className={styles.separator} />
32
41
  <EditScreenInfo path="app/(tabs)/index.tsx" />
33
42
  </View>
@@ -37,6 +46,9 @@ export default function TabOneScreen() {
37
46
  <Theme name="light">
38
47
  <YStack flex={1} alignItems="center" justifyContent="center">
39
48
  <H2>Tab One</H2>
49
+ <% if (props.internalizationPackage?.name === "i18next") { %>
50
+ <InternalizationExample />
51
+ <% } %>
40
52
  <Separator />
41
53
  <EditScreenInfo path="app/(tabs)/index.tsx" />
42
54
  </YStack>
@@ -46,6 +58,9 @@ export default function TabOneScreen() {
46
58
  return (
47
59
  <Box flex={1} alignItems="center" justifyContent="center">
48
60
  <Text variant="title">Tab One</Text>
61
+ <% if (props.internalizationPackage?.name === "i18next") { %>
62
+ <InternalizationExample />
63
+ <% } %>
49
64
  <Box height={1} marginVertical="l_32" width="80%" />
50
65
  <EditScreenInfo path="app/(tabs)/index.tsx" />
51
66
  </Box>
@@ -54,6 +69,9 @@ export default function TabOneScreen() {
54
69
  return (
55
70
  <View style={styles.container}>
56
71
  <Text style={styles.title}>Tab One</Text>
72
+ <% if (props.internalizationPackage?.name === "i18next") { %>
73
+ <InternalizationExample />
74
+ <% } %>
57
75
  <View style={styles.separator} />
58
76
  <EditScreenInfo path="app/(tabs)/index.tsx" />
59
77
  </View>
@@ -4,6 +4,9 @@ import '../global.css';
4
4
  <% if (props.stylingPackage?.name === "unistyles") { %>
5
5
  import '../unistyles';
6
6
  <% } %>
7
+ <% if (props.internalizationPackage?.name === "i18next") { %>
8
+ import '../translation';
9
+ <% } %>
7
10
 
8
11
  <% if (props.stylingPackage?.name === "tamagui") { %>
9
12
  import React, { useEffect } from "react";
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { Button, StyleSheet, View } from 'react-native';
4
+
5
+ export const InternalizationExample = () => {
6
+ const { t, i18n } = useTranslation();
7
+
8
+ const toggleLanguage = (locale: 'en' | 'fr') => {
9
+ i18n.changeLanguage(locale);
10
+ };
11
+ return (
12
+ <>
13
+ <View style={styles.content}>
14
+ <Button title={t('button.french')} onPress={() => toggleLanguage('fr')} />
15
+ <Button title={t('button.english')} onPress={() => toggleLanguage('en')} />
16
+ </View>
17
+ </>
18
+ );
19
+ };
20
+
21
+ export const styles = StyleSheet.create({
22
+ content: { gap: 20, padding: 20 },
23
+ });
@@ -0,0 +1,13 @@
1
+ import { Resource } from 'i18next';
2
+
3
+ export const fallbackChecker = (resources: Resource, fallbackLng: string) => {
4
+ const languages = Object.keys(resources);
5
+ const hasFallback = languages.find((key) => fallbackLng === key);
6
+
7
+ if (!hasFallback) {
8
+ throw new Error(
9
+ `fallbackLng "${fallbackLng}", is not present in your resources, please check your config, languages available: ${languages.join(', ')}`
10
+ );
11
+ }
12
+ return fallbackLng;
13
+ };
@@ -0,0 +1,24 @@
1
+ import i18n, { Resource } from 'i18next';
2
+ import { initReactI18next } from 'react-i18next';
3
+
4
+ import { fallbackChecker } from './fallbackChecker';
5
+ import { languageDetector } from './languageDetector';
6
+
7
+ type Init18n = {
8
+ resources: Resource;
9
+ fallbackLng: string;
10
+ };
11
+
12
+ export const init18n = ({ resources, fallbackLng }: Init18n) => {
13
+ return i18n
14
+ .use(languageDetector)
15
+ .use(initReactI18next)
16
+ .init({
17
+ resources,
18
+ fallbackLng: fallbackChecker(resources, fallbackLng),
19
+ compatibilityJSON: 'v3', // By default React Native projects does not support Intl
20
+ interpolation: {
21
+ escapeValue: false,
22
+ },
23
+ });
24
+ };
@@ -0,0 +1,13 @@
1
+ import * as Localization from 'expo-localization';
2
+ import { LanguageDetectorModule } from 'i18next';
3
+
4
+ export const languageDetector: LanguageDetectorModule = {
5
+ type: 'languageDetector',
6
+ detect: () => {
7
+ const locales = Localization.getLocales();
8
+ const firstLanguageCode = locales[0].languageCode ?? 'en';
9
+ return firstLanguageCode;
10
+ },
11
+ init: () => {},
12
+ cacheUserLanguage: () => {},
13
+ };
@@ -0,0 +1,8 @@
1
+ {
2
+ "hello": "Hello, World!",
3
+ "title": "Open up App.tsx to start working on your app!",
4
+ "button": {
5
+ "french": "Switch language to French",
6
+ "english": "Switch language to English"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "hello": "Bonjour, le monde !",
3
+ "title": "Ouvrez App.tsx pour commencer à travailler sur votre application !",
4
+ "button": {
5
+ "french": "Changer la langue en français",
6
+ "english": "Changer la langue en anglais"
7
+ }
8
+ }
@@ -0,0 +1,20 @@
1
+ import { init18n } from 'core/i18n/init';
2
+ import en from 'translation/en.json';
3
+ import fr from 'translation/fr.json';
4
+
5
+ export const resources = {
6
+ en: {
7
+ translation: en,
8
+ },
9
+ fr: {
10
+ translation: fr,
11
+ },
12
+ };
13
+
14
+ export const fallbackLng = 'en';
15
+
16
+ export type LanguageCode = keyof typeof resources;
17
+
18
+ const i18n = init18n({ resources, fallbackLng });
19
+
20
+ export default i18n;
@@ -4,6 +4,9 @@ import './global.css';
4
4
  <% if (props.stylingPackage?.name === "unistyles") { %>
5
5
  import './unistyles';
6
6
  <% } %>
7
+ <% if (props.internalizationPackage?.name === "i18next") { %>
8
+ import './translation';
9
+ <% } %>
7
10
  import "react-native-gesture-handler";
8
11
  <% if (props.stylingPackage?.name === "tamagui") { %>
9
12
  import React, { useEffect } from "react";
@@ -11,6 +11,9 @@
11
11
  <% } else if (props.stylingPackage?.name === 'stylesheet') { %>
12
12
  import { StyleSheet, Text, View } from 'react-native';
13
13
  <% } %>
14
+ <% if (props.internalizationPackage?.name === "i18next") { %>
15
+ import { InternalizationExample } from '../../components/InternalizationExample';
16
+ <% } %>
14
17
 
15
18
  const Page = () => {
16
19
  <% if (props.stylingPackage?.name === 'unistyles') { %>
@@ -18,7 +21,10 @@ const Page = () => {
18
21
 
19
22
  return (
20
23
  <View style={theme.components.container}>
21
- <Text style={theme.components.title}>News</Text>
24
+ <Text style={theme.components.title}>Home</Text>
25
+ <% if (props.internalizationPackage?.name === "i18next") { %>
26
+ <InternalizationExample />
27
+ <% } %>
22
28
  <View style={theme.components.separator} />
23
29
  </View>
24
30
  );
@@ -26,6 +32,9 @@ const Page = () => {
26
32
  return (
27
33
  <View className={styles.container}>
28
34
  <Text className={styles.title}>Home</Text>
35
+ <% if (props.internalizationPackage?.name === "i18next") { %>
36
+ <InternalizationExample />
37
+ <% } %>
29
38
  <View className={styles.separator} />
30
39
  <EditScreenInfo path='app/(tabs)/index.tsx' />
31
40
  </View>
@@ -35,6 +44,9 @@ const Page = () => {
35
44
  <Theme name='light'>
36
45
  <YStack flex={1} alignItems='center' justifyContent='center'>
37
46
  <H2>Home</H2>
47
+ <% if (props.internalizationPackage?.name === "i18next") { %>
48
+ <InternalizationExample />
49
+ <% } %>
38
50
  <Separator />
39
51
  </YStack>
40
52
  </Theme>
@@ -43,6 +55,9 @@ const Page = () => {
43
55
  return (
44
56
  <Box flex={1} alignItems='center' justifyContent='center'>
45
57
  <Text variant='title'>Home</Text>
58
+ <% if (props.internalizationPackage?.name === "i18next") { %>
59
+ <InternalizationExample />
60
+ <% } %>
46
61
  <Box height={1} marginVertical='l_32' width='80%' />
47
62
  </Box>
48
63
  );
@@ -50,6 +65,9 @@ const Page = () => {
50
65
  return (
51
66
  <View style={styles.container}>
52
67
  <Text style={styles.title}>Home</Text>
68
+ <% if (props.internalizationPackage?.name === "i18next") { %>
69
+ <InternalizationExample />
70
+ <% } %>
53
71
  <View style={styles.separator} />
54
72
  </View>
55
73
  );
@@ -10,6 +10,9 @@
10
10
  <% } else { %>
11
11
  import { StyleSheet, Text, View } from "react-native";
12
12
  <% } %>
13
+ <% if (props.internalizationPackage?.name === "i18next") { %>
14
+ import { InternalizationExample } from '../../components/InternalizationExample';
15
+ <% } %>
13
16
 
14
17
  import EditScreenInfo from "../components/edit-screen-info";
15
18
 
@@ -18,6 +21,9 @@ export default function TabOneScreen() {
18
21
  return (
19
22
  <View className={styles.container}>
20
23
  <Text className={styles.title}>Tab One</Text>
24
+ <% if (props.internalizationPackage?.name === "i18next") { %>
25
+ <InternalizationExample />
26
+ <% } %>
21
27
  <View className={styles.separator} />
22
28
  <EditScreenInfo path="src/screens/one.tsx" />
23
29
  </View>
@@ -27,6 +33,9 @@ export default function TabOneScreen() {
27
33
  <Theme name="light">
28
34
  <YStack flex={1} alignItems="center" justifyContent="center">
29
35
  <H2>Tab One</H2>
36
+ <% if (props.internalizationPackage?.name === "i18next") { %>
37
+ <InternalizationExample />
38
+ <% } %>
30
39
  <Separator />
31
40
  <EditScreenInfo path="src/screens/one.tsx" />
32
41
  </YStack>
@@ -38,6 +47,9 @@ export default function TabOneScreen() {
38
47
  return (
39
48
  <Box flex={1} alignItems="center" justifyContent="center">
40
49
  <Text variant="title">Tab One</Text>
50
+ <% if (props.internalizationPackage?.name === "i18next") { %>
51
+ <InternalizationExample />
52
+ <% } %>
41
53
  <Box style={styles.separator} />
42
54
  <EditScreenInfo path="src/screens/one.tsx" />
43
55
  </Box>
@@ -47,6 +59,9 @@ export default function TabOneScreen() {
47
59
  return (
48
60
  <View style={theme.components.container}>
49
61
  <Text style={theme.components.title}>Tab One</Text>
62
+ <% if (props.internalizationPackage?.name === "i18next") { %>
63
+ <InternalizationExample />
64
+ <% } %>
50
65
  <View style={theme.components.separator} />
51
66
  <EditScreenInfo path='src/screens/one.tsx' />
52
67
  </View>
@@ -55,6 +70,9 @@ export default function TabOneScreen() {
55
70
  return (
56
71
  <View style={styles.container}>
57
72
  <Text style={styles.title}>Tab One</Text>
73
+ <% if (props.internalizationPackage?.name === "i18next") { %>
74
+ <InternalizationExample />
75
+ <% } %>
58
76
  <View style={styles.separator} />
59
77
  <EditScreenInfo path="src/screens/one.tsx" />
60
78
  </View>
@@ -15,7 +15,9 @@ import { StackNavigationProp } from "@react-navigation/stack";
15
15
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
16
16
  <% } %>
17
17
  import { RootStackParamList } from "../navigation";
18
-
18
+ <% if (props.internalizationPackage?.name === "i18next") { %>
19
+ import { InternalizationExample } from '../../components/InternalizationExample';
20
+ <% } %>
19
21
  type OverviewScreenNavigationProps = StackNavigationProp<RootStackParamList, "Overview">;
20
22
 
21
23
  export default function Overview() {
@@ -27,6 +29,9 @@ export default function Overview() {
27
29
  <View>
28
30
  <Text className={styles.title}>Hello World</Text>
29
31
  <Text className={styles.subtitle}>This is the first page of your app.</Text>
32
+ <% if (props.internalizationPackage?.name === "i18next") { %>
33
+ <InternalizationExample />
34
+ <% } %>
30
35
  </View>
31
36
  <TouchableOpacity className={styles.button} onPress={() => navigation.navigate("Details", { name: "Dan" })}>
32
37
  <Text className={styles.buttonText}>Show Details</Text>
@@ -41,6 +46,9 @@ export default function Overview() {
41
46
  <YStack>
42
47
  <Title>Hello World</Title>
43
48
  <Subtitle>This is the first page of your app.</Subtitle>
49
+ <% if (props.internalizationPackage?.name === "i18next") { %>
50
+ <InternalizationExample />
51
+ <% } %>
44
52
  </YStack>
45
53
  <Button onPress={() => navigation.navigate("Details", { name: "Dan" })}>
46
54
  <ButtonText>Show Details</ButtonText>
@@ -58,6 +66,9 @@ export default function Overview() {
58
66
  <Text variant="large" color="darkGray">
59
67
  This is the first page of your app.
60
68
  </Text>
69
+ <% if (props.internalizationPackage?.name === "i18next") { %>
70
+ <InternalizationExample />
71
+ <% } %>
61
72
  </Box>
62
73
  <TouchableOpacity
63
74
  style={styles.button}
@@ -77,6 +88,9 @@ export default function Overview() {
77
88
  <View>
78
89
  <Text style={theme.components.title}>Hello World</Text>
79
90
  <Text style={theme.components.subtitle}>This is the first page of your app.</Text>
91
+ <% if (props.internalizationPackage?.name === "i18next") { %>
92
+ <InternalizationExample />
93
+ <% } %>
80
94
  </View>
81
95
  <TouchableOpacity style={theme.components.button} onPress={() => navigation.navigate('Details', { name: 'Dan' })}>
82
96
  <Text style={theme.components.buttonText}>Show Details</Text>
@@ -91,6 +105,9 @@ export default function Overview() {
91
105
  <View>
92
106
  <Text style={styles.title}>Hello World</Text>
93
107
  <Text style={styles.subtitle}>This is the first page of your app.</Text>
108
+ <% if (props.internalizationPackage?.name === "i18next") { %>
109
+ <InternalizationExample />
110
+ <% } %>
94
111
  </View>
95
112
  <TouchableOpacity style={styles.button} onPress={() => navigation.navigate("Details", { name: "Dan" })}>
96
113
  <Text style={styles.buttonText}>Show Details</Text>
@@ -5,12 +5,13 @@ export interface CliFlags {
5
5
  importAlias: string | boolean;
6
6
  packageManager: PackageManager;
7
7
  }
8
- export declare const availablePackages: readonly ["@react-navigation/drawer", "expo-router", "expoRouter", "firebase", "nativewind", "react-navigation", "reactNavigation", "react-native-gesture-handler", "react-native-reanimated", "reactnavigation", "stylesheet", "supabase", "tamagui", "restyle", "unistyles"];
8
+ export declare const availablePackages: readonly ["@react-navigation/drawer", "expo-router", "expoRouter", "firebase", "nativewind", "react-navigation", "reactNavigation", "react-native-gesture-handler", "react-native-reanimated", "reactnavigation", "stylesheet", "supabase", "tamagui", "restyle", "unistyles", "i18next"];
9
9
  export type NavigationTypes = 'stack' | 'tabs' | 'drawer + tabs' | undefined;
10
10
  export type PackageManager = 'yarn' | 'npm' | 'pnpm' | 'bun';
11
+ export type Internalization = 'i18next';
11
12
  export type AvailablePackages = {
12
13
  name: (typeof availablePackages)[number];
13
- type: 'navigation' | 'styling' | 'authentication';
14
+ type: 'navigation' | 'styling' | 'authentication' | 'internationalization';
14
15
  options?: {
15
16
  type?: NavigationTypes;
16
17
  };
@@ -1,3 +1,3 @@
1
1
  import { Toolbox } from 'gluegun/build/types/domain/toolbox';
2
2
  import { AvailablePackages, CliResults } from '../types';
3
- export declare function configureProjectFiles(authenticationPackage: AvailablePackages | undefined, files: string[], navigationPackage: AvailablePackages | undefined, stylingPackage: AvailablePackages | undefined, toolbox: Toolbox, cliResults: CliResults): string[];
3
+ export declare function configureProjectFiles(authenticationPackage: AvailablePackages | undefined, files: string[], navigationPackage: AvailablePackages | undefined, stylingPackage: AvailablePackages | undefined, toolbox: Toolbox, cliResults: CliResults, internalizationPackage: AvailablePackages | undefined): string[];
@@ -1,3 +1,3 @@
1
1
  import { Toolbox } from 'gluegun/build/types/domain/toolbox';
2
2
  import { AvailablePackages, CliResults, PackageManager } from '../types';
3
- export declare function generateProjectFiles(authenticationPackage: AvailablePackages | undefined, cliResults: CliResults, files: string[], formattedFiles: any[], navigationPackage: AvailablePackages | undefined, packageManager: PackageManager, stylingPackage: AvailablePackages | undefined, toolbox: Toolbox): any[];
3
+ export declare function generateProjectFiles(authenticationPackage: AvailablePackages | undefined, cliResults: CliResults, files: string[], formattedFiles: any[], navigationPackage: AvailablePackages | undefined, packageManager: PackageManager, stylingPackage: AvailablePackages | undefined, toolbox: Toolbox, internalizationPackage: AvailablePackages | undefined): any[];
package/build/types.js CHANGED
@@ -16,6 +16,7 @@ exports.availablePackages = [
16
16
  'supabase',
17
17
  'tamagui',
18
18
  'restyle',
19
- 'unistyles'
19
+ 'unistyles',
20
+ 'i18next'
20
21
  ];
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU2EsUUFBQSxpQkFBaUIsR0FBRztJQUMvQiwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLFlBQVk7SUFDWixVQUFVO0lBQ1YsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVU7SUFDVixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7Q0FDSCxDQUFDIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU2EsUUFBQSxpQkFBaUIsR0FBRztJQUMvQiwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLFlBQVk7SUFDWixVQUFVO0lBQ1YsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsOEJBQThCO0lBQzlCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFVBQVU7SUFDVixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxTQUFTO0NBQ0QsQ0FBQyJ9
@@ -11,7 +11,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.configureProjectFiles = void 0;
13
13
  var getPackageManager_1 = require("./getPackageManager");
14
- function configureProjectFiles(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults) {
14
+ function configureProjectFiles(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults, internalizationPackage) {
15
15
  var _a, _b, _c, _d, _e;
16
16
  // Define the files common to all templates to be generated
17
17
  var baseFiles = [
@@ -21,7 +21,7 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
21
21
  'base/babel.config.js.ejs',
22
22
  'base/package.json.ejs',
23
23
  'base/.gitignore.ejs',
24
- 'base/.prettierrc'
24
+ 'base/prettier.config.js.ejs'
25
25
  ];
26
26
  var packageManager = (0, getPackageManager_1.getPackageManager)(toolbox, cliResults);
27
27
  // Add npmrc file if user is using pnpm and expo router
@@ -110,18 +110,14 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
110
110
  // add expo router files if needed
111
111
  // modify base files with expo router specifications
112
112
  if ((navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.name) === 'expo-router') {
113
- var expoRouterFiles = [
114
- 'packages/expo-router/expo-env.d.ts',
115
- 'packages/expo-router/metro.config.js.ejs',
116
- 'packages/expo-router/index.ts'
117
- ];
113
+ var expoRouterFiles = ['packages/expo-router/expo-env.d.ts', 'packages/expo-router/metro.config.js.ejs'];
118
114
  // if it's a stack, add the stack files) {
119
115
  if (((_d = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _d === void 0 ? void 0 : _d.type) === 'stack') {
120
116
  expoRouterFiles = __spreadArray(__spreadArray([], expoRouterFiles, true), [
121
117
  'packages/expo-router/stack/app/_layout.tsx.ejs',
122
118
  'packages/expo-router/stack/app/details.tsx.ejs',
123
119
  'packages/expo-router/stack/app/index.tsx.ejs',
124
- 'packages/expo-router/stack/app/[...unmatched].tsx.ejs',
120
+ 'packages/expo-router/stack/app/+not-found.tsx.ejs',
125
121
  'packages/expo-router/stack/app/+html.tsx.ejs'
126
122
  ], false);
127
123
  }
@@ -133,7 +129,7 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
133
129
  'packages/expo-router/tabs/app/(tabs)/two.tsx.ejs',
134
130
  'packages/expo-router/tabs/app/_layout.tsx.ejs',
135
131
  'packages/expo-router/tabs/app/modal.tsx.ejs',
136
- 'packages/expo-router/tabs/app/[...unmatched].tsx.ejs',
132
+ 'packages/expo-router/tabs/app/+not-found.tsx.ejs',
137
133
  'packages/expo-router/tabs/app/+html.tsx.ejs',
138
134
  'packages/expo-router/tabs/components/edit-screen-info.tsx.ejs'
139
135
  ], false);
@@ -142,7 +138,7 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
142
138
  // it's a drawer navigator
143
139
  expoRouterFiles = __spreadArray(__spreadArray([], expoRouterFiles, true), [
144
140
  'packages/expo-router/drawer/app/_layout.tsx.ejs',
145
- 'packages/expo-router/drawer/app/[...unmatched].tsx.ejs',
141
+ 'packages/expo-router/drawer/app/+not-found.tsx.ejs',
146
142
  'packages/expo-router/drawer/app/+html.tsx.ejs',
147
143
  'packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs',
148
144
  'packages/expo-router/drawer/app/(drawer)/index.tsx.ejs',
@@ -171,7 +167,20 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
171
167
  ];
172
168
  files = __spreadArray(__spreadArray([], files, true), firebaseFiles, true);
173
169
  }
170
+ // add i18next files if needed
171
+ if ((internalizationPackage === null || internalizationPackage === void 0 ? void 0 : internalizationPackage.name) === 'i18next') {
172
+ var i18nextFiles = [
173
+ 'packages/i18next/core/i18n/fallbackChecker.ts.ejs',
174
+ 'packages/i18next/core/i18n/init.ts.ejs',
175
+ 'packages/i18next/core/i18n/languageDetector.ts.ejs',
176
+ 'packages/i18next/translation/en.json.ejs',
177
+ 'packages/i18next/translation/fr.json.ejs',
178
+ 'packages/i18next/translation/index.ts.ejs',
179
+ 'packages/i18next/components/InternalizationExample.tsx.ejs'
180
+ ];
181
+ files = __spreadArray(__spreadArray([], files, true), i18nextFiles, true);
182
+ }
174
183
  return files;
175
184
  }
176
185
  exports.configureProjectFiles = configureProjectFiles;
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUHJvamVjdEZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9jb25maWd1cmVQcm9qZWN0RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEseURBQXdEO0FBRXhELFNBQWdCLHFCQUFxQixDQUNuQyxxQkFBb0QsRUFDcEQsS0FBZSxFQUNmLGlCQUFnRCxFQUNoRCxjQUE2QyxFQUM3QyxPQUFnQixFQUNoQixVQUFzQjs7SUFFdEIsMkRBQTJEO0lBQzNELElBQU0sU0FBUyxHQUFHO1FBQ2hCLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsSUFBTSxjQUFjLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsdURBQXVEO0lBQ3ZELElBQUksY0FBYyxLQUFLLE1BQU0sSUFBSSxDQUFBLGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLElBQUksTUFBSyxhQUFhLEVBQUUsQ0FBQztRQUMzRSxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUsscUJBQU8sU0FBUyxPQUFDLENBQUM7SUFFdkIsaUNBQWlDO0lBQ2pDLG1EQUFtRDtJQUNuRCxJQUFJLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLElBQUksTUFBSyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxJQUFNLGVBQWUsR0FBRztZQUN0Qiw0Q0FBNEM7WUFDNUMsa0NBQWtDO1lBQ2xDLHFDQUFxQztZQUNyQyxnQ0FBZ0M7U0FDakMsQ0FBQztRQUVGLEtBQUssbUNBQU8sS0FBSyxTQUFLLGVBQWUsT0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCw4QkFB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
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUHJvamVjdEZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9jb25maWd1cmVQcm9qZWN0RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEseURBQXdEO0FBRXhELFNBQWdCLHFCQUFxQixDQUNuQyxxQkFBb0QsRUFDcEQsS0FBZSxFQUNmLGlCQUFnRCxFQUNoRCxjQUE2QyxFQUM3QyxPQUFnQixFQUNoQixVQUFzQixFQUN0QixzQkFBcUQ7O0lBRXJELDJEQUEyRDtJQUMzRCxJQUFNLFNBQVMsR0FBRztRQUNoQix3QkFBd0I7UUFDeEIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQiw2QkFBNkI7S0FDOUIsQ0FBQztJQUVGLElBQU0sY0FBYyxHQUFHLElBQUEscUNBQWlCLEVBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlELHVEQUF1RDtJQUN2RCxJQUFJLGNBQWMsS0FBSyxNQUFNLElBQUksQ0FBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxJQUFJLE1BQUssYUFBYSxFQUFFLENBQUM7UUFDM0UsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLHFCQUFPLFNBQVMsT0FBQyxDQUFDO0lBRXZCLGlDQUFpQztJQUNqQyxtREFBbUQ7SUFDbkQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxJQUFJLE1BQUssWUFBWSxFQUFFLENBQUM7UUFDMUMsSUFBTSxlQUFlLEdBQUc7WUFDdEIsNENBQTRDO1lBQzVDLGtDQUFrQztZQUNsQyxxQ0FBcUM7WUFDckMsZ0NBQWdDO1NBQ2pDLENBQUM7UUFFRixLQUFLLG1DQUFPLEtBQUssU0FBSyxlQUFlLE9BQUMsQ0FBQztJQUN6QyxD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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateProjectFiles = void 0;
4
- function generateProjectFiles(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox) {
4
+ function generateProjectFiles(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox, internalizationPackage) {
5
5
  var projectName = cliResults.projectName, packages = cliResults.packages, flags = cliResults.flags;
6
6
  return files.reduce(function (prev, file) {
7
7
  var _a, _b, _c;
@@ -42,6 +42,9 @@ function generateProjectFiles(authenticationPackage, cliResults, files, formatte
42
42
  target = target.replace('drawer/', '');
43
43
  }
44
44
  }
45
+ if ((internalizationPackage === null || internalizationPackage === void 0 ? void 0 : internalizationPackage.name) === 'i18next') {
46
+ target = target.replace('packages/i18next/', '');
47
+ }
45
48
  var gen = toolbox.template.generate({
46
49
  template: template,
47
50
  target: "./".concat(projectName, "/") + target,
@@ -52,11 +55,12 @@ function generateProjectFiles(authenticationPackage, cliResults, files, formatte
52
55
  projectName: projectName,
53
56
  packageManager: packageManager,
54
57
  packages: packages,
55
- stylingPackage: stylingPackage
58
+ stylingPackage: stylingPackage,
59
+ internalizationPackage: internalizationPackage
56
60
  }
57
61
  });
58
62
  return prev.concat([gen]);
59
63
  }, formattedFiles);
60
64
  }
61
65
  exports.generateProjectFiles = generateProjectFiles;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2dlbmVyYXRlUHJvamVjdEZpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUNsQyxxQkFBb0QsRUFDcEQsVUFBc0IsRUFDdEIsS0FBZSxFQUNmLGNBQXFCLEVBQ3JCLGlCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixjQUE2QyxFQUM3QyxPQUFnQjtJQUVSLElBQUEsV0FBVyxHQUFzQixVQUFVLFlBQWhDLEVBQUUsUUFBUSxHQUFZLFVBQVUsU0FBdEIsRUFBRSxLQUFLLEdBQUssVUFBVSxNQUFmLENBQWdCO0lBRXBELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJOztRQUM3QixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQSxjQUFjLGFBQWQsY0FBYyx1QkFB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
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2dlbmVyYXRlUHJvamVjdEZpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUNsQyxxQkFBb0QsRUFDcEQsVUFBc0IsRUFDdEIsS0FBZSxFQUNmLGNBQXFCLEVBQ3JCLGlCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixjQUE2QyxFQUM3QyxPQUFnQixFQUNoQixzQkFBcUQ7SUFFN0MsSUFBQSxXQUFXLEdBQXNCLFVBQVUsWUFBaEMsRUFBRSxRQUFRLEdBQVksVUFBVSxTQUF0QixFQUFFLEtBQUssR0FBSyxVQUFVLE1BQWYsQ0FBZ0I7SUFFcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFFLElBQUk7O1FBQzdCLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUEscUJBQXFCLGFBQXJCLHFCQUFxQix1QkFBckIscUJBQXFCLENBQUUsSUFBSSxNQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUEscUJBQXFCLGFBQXJCLHFCQUFxQix1QkFBckIscUJBQXFCLENBQUUsSUFBSSxNQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFBLGNBQWMs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
@@ -40,7 +40,7 @@ exports.runCLI = void 0;
40
40
  var constants_1 = require("../constants");
41
41
  function runCLI(toolbox, projectName) {
42
42
  return __awaiter(this, void 0, void 0, function () {
43
- var options, success, prompt, cliResults, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, askStyling, stylingSelect, askAuthentication, authenticationSelect, askPackageManager, packageManagerSelect;
43
+ var options, success, prompt, cliResults, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, askStyling, stylingSelect, askAuthentication, authenticationSelect, askInternalization, internalizationSelect, askPackageManager, packageManagerSelect;
44
44
  return __generator(this, function (_a) {
45
45
  switch (_a.label) {
46
46
  case 0:
@@ -152,7 +152,23 @@ function runCLI(toolbox, projectName) {
152
152
  else {
153
153
  success("No problem, skipping authentication for now.");
154
154
  }
155
- if (!!cliResults.flags.packageManager) return [3 /*break*/, 9];
155
+ askInternalization = {
156
+ type: 'select',
157
+ name: 'internalizationSelect',
158
+ message: 'What would you like to use for internationalization?',
159
+ choices: ['i18next', 'None']
160
+ };
161
+ return [4 /*yield*/, prompt.ask(askInternalization)];
162
+ case 8:
163
+ internalizationSelect = (_a.sent()).internalizationSelect;
164
+ if (internalizationSelect === 'i18next') {
165
+ cliResults.packages.push({ name: 'i18next', type: 'internationalization' });
166
+ success("You'll be using i18next for internationalization.");
167
+ }
168
+ else {
169
+ success("No problem, skipping internationalization for now.");
170
+ }
171
+ if (!!cliResults.flags.packageManager) return [3 /*break*/, 10];
156
172
  askPackageManager = {
157
173
  type: 'select',
158
174
  name: 'packageManagerSelect',
@@ -160,17 +176,17 @@ function runCLI(toolbox, projectName) {
160
176
  choices: ['npm', 'yarn', 'pnpm', 'bun']
161
177
  };
162
178
  return [4 /*yield*/, prompt.ask(askPackageManager)];
163
- case 8:
179
+ case 9:
164
180
  packageManagerSelect = (_a.sent()).packageManagerSelect;
165
181
  cliResults.flags.packageManager = packageManagerSelect;
166
- return [3 /*break*/, 10];
167
- case 9:
182
+ return [3 /*break*/, 11];
183
+ case 10:
168
184
  cliResults.flags.packageManager = 'npm';
169
- _a.label = 10;
170
- case 10: return [2 /*return*/, cliResults];
185
+ _a.label = 11;
186
+ case 11: return [2 /*return*/, cliResults];
171
187
  }
172
188
  });
173
189
  });
174
190
  }
175
191
  exports.runCLI = runCLI;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQThDO0FBRzlDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FHbkIsT0FBTyxtQkFIWSxFQUNaLE9BQU8sR0FFZCxPQUFPLGNBRk8sRUFDaEIsTUFBTSxHQUNKLE9BQU8sT0FESCxDQUNJO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFFakQseUJBQXlCO29CQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFFSCxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLHFEQUFxRCxFQUFFLElBQUksQ0FBQyxFQUFBOztvQkFBakcsYUFBYSxHQUFHLFNBQWlGO29CQUV2RyxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztvQkFDakQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUdLLGFBQWEsR0FBRzt3QkFDcEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztxQkFDckQsQ0FBQztvQkFFSSxpQkFBaUIsR0FBRzt3QkFDeEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qs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
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQThDO0FBRzlDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FHbkIsT0FBTyxtQkFIWSxFQUNaLE9BQU8sR0FFZCxPQUFPLGNBRk8sRUFDaEIsTUFBTSxHQUNKLE9BQU8sT0FESCxDQUNJO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFFakQseUJBQXlCO29CQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFFSCxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLHFEQUFxRCxFQUFFLElBQUksQ0FBQyxFQUFBOztvQkFBakcsYUFBYSxHQUFHLFNBQWlGO29CQUV2RyxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztvQkFDakQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUdLLGFBQWEsR0FBRzt3QkFDcEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztxQkFDckQsQ0FBQztvQkFFSSxpQkFBaUIsR0FBRzt3QkFDeEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qs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
@@ -40,6 +40,9 @@ function showHelp(info, highlight, warning) {
40
40
  info(' --unistyles Use Unistyles for styling');
41
41
  info(' --stylesheet Use StyleSheet for styling');
42
42
  info('');
43
+ highlight(' Styling Package Options');
44
+ info(' --i18next Use i18next for internationalization');
45
+ info('');
43
46
  highlight(' Opinionated Stacks');
44
47
  info(' -i, --ignite Use Ignite to create an opinionated stack');
45
48
  info('');
@@ -54,4 +57,4 @@ function showHelp(info, highlight, warning) {
54
57
  info('');
55
58
  }
56
59
  exports.showHelp = showHelp;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd0hlbHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3Nob3dIZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU87SUFDL0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkIsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDckUsSUFBSSxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDaEYsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDcEUsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDMUQsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRVQsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDNUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQXBERCw0QkFvREMifQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvd0hlbHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3Nob3dIZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU87SUFDL0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNULFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkIsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDckUsSUFBSSxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDaEYsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDcEUsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFDbkUsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDMUQsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRVQsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDbEYsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDNUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQXZERCw0QkF1REMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo-stack",
3
- "version": "2.4.3-next.e841ea5",
3
+ "version": "2.5.0-next.738ca1b",
4
4
  "description": "CLI tool to initialize a React Native application with Expo",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,7 +0,0 @@
1
- {
2
- "printWidth": 100,
3
- "tabWidth": 2,
4
- "singleQuote": true,
5
- "bracketSameLine": true,
6
- "trailingComma": "es5"
7
- }
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("expo-router/entry");
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3BhY2thZ2VzL2V4cG8tcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTJCIn0=
@@ -1 +0,0 @@
1
- import 'expo-router/entry';
@@ -1 +0,0 @@
1
- import 'expo-router/entry';