create-expo-stack 2.12.0-next.4118968 → 2.12.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.
package/README.md CHANGED
@@ -59,11 +59,11 @@ Each project is generated based on the results of the CLI, on a per-file basis.
59
59
 
60
60
  | Library | Category | Version | Description |
61
61
  | ------------------ | ------------------- | ------- | ---------------------------------------------- |
62
- | React Native | Mobile Framework | v0.74 | The best cross-platform mobile framework |
62
+ | React Native | Mobile Framework | v0.76 | The best cross-platform mobile framework |
63
63
  | React | UI Framework | v18 | The most popular UI framework in the world |
64
64
  | TypeScript | Language | v5 | Static typechecking |
65
- | React Navigation | Navigation | v6 | Performant and consistent navigation framework |
66
- | Expo | SDK | v51 | Allows (optional) Expo modules |
65
+ | React Navigation | Navigation | v7 | Performant and consistent navigation framework |
66
+ | Expo | SDK | v52 | Allows (optional) Expo modules |
67
67
  | Expo Font | Custom Fonts | v11 | Import custom fonts |
68
68
  | Expo Linking | URL Handling | v5 | Open your app via a URL |
69
69
  | Expo Router | Navigation | v3 | File-based routing in React-Native |
@@ -1,11 +1,11 @@
1
1
  import { forwardRef } from 'react';
2
- import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps, View } from 'react-native';
3
3
 
4
4
  type ButtonProps = {
5
5
  title?: string;
6
6
  } & TouchableOpacityProps;
7
7
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
8
+ export const Button = forwardRef<View, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
9
  return (
10
10
  <TouchableOpacity ref={ref} {...touchableProps} style={[styles.button, touchableProps.style]}>
11
11
  <Text style={styles.buttonText}>{title}</Text>
@@ -90,14 +90,14 @@
90
90
  <% } %>
91
91
 
92
92
  <% if (props.navigationPackage?.type === "navigation") { %>
93
- "@react-navigation/native": "^6.1.7",
94
- "react-native-gesture-handler": "~2.16.1",
95
- "react-native-safe-area-context": "4.10.1",
96
- "react-native-screens": "3.31.1",
93
+ "@react-navigation/native": "^7.0.3",
94
+ "react-native-gesture-handler": "~2.20.2",
95
+ "react-native-safe-area-context": "4.12.0",
96
+ "react-native-screens": "~4.1.0",
97
97
  <% } %>
98
98
 
99
99
  <% if (props.navigationPackage?.name === "react-navigation") { %>
100
- "@react-navigation/stack": "^6.3.17",
100
+ "@react-navigation/stack": "^7.0.4",
101
101
  "@expo/vector-icons": "^14.0.0",
102
102
  <% } %>
103
103
 
@@ -110,26 +110,26 @@
110
110
  <% } %>
111
111
 
112
112
  <% if (props.navigationPackage?.options.type === "tabs" && props.navigationPackage?.name === "react-navigation") { %>
113
- "@react-navigation/bottom-tabs": "^6.5.8",
113
+ "@react-navigation/bottom-tabs": "^7.0.5",
114
114
  <% } %>
115
115
 
116
116
  <% if ((props.navigationPackage?.options.type === "drawer + tabs") && (props.navigationPackage?.name === "react-navigation")) { %>
117
- "@react-navigation/drawer": "^6.6.15",
118
- "@react-navigation/bottom-tabs": "^6.5.8",
117
+ "@react-navigation/drawer": "^7.0.0",
118
+ "@react-navigation/bottom-tabs": "^7.0.5",
119
119
  "react-native-reanimated": "~3.10.1",
120
120
  <% } else if (props.navigationPackage?.options.type === "drawer + tabs") { %>
121
- "@react-navigation/drawer": "^6.6.15",
122
- "@react-navigation/bottom-tabs": "^6.5.8",
121
+ "@react-navigation/drawer": "^7.0.0",
122
+ "@react-navigation/bottom-tabs": "^7.0.5",
123
123
  <% } %>
124
124
 
125
125
  <% if (props.navigationPackage?.name === "expo-router") { %>
126
126
  "@expo/vector-icons": "^14.0.0",
127
127
  "expo-linking": "~6.3.1",
128
- "expo-router": "~3.5.14",
128
+ "expo-router": "~4.0.6",
129
129
  "expo-constants": "~16.0.1",
130
130
  "expo-system-ui": "~3.0.4",
131
131
  "expo-web-browser": "~13.0.3",
132
- "react-dom": "18.2.0",
132
+ "react-dom": "18.3.1",
133
133
  "react-native-reanimated": "~3.10.1",
134
134
  "react-native-web": "~0.19.10",
135
135
  <% } %>
@@ -153,10 +153,10 @@
153
153
  "expo-dev-launcher": "^4.0.22",
154
154
  <% } %>
155
155
 
156
- "expo": "^51.0.0",
156
+ "expo": "^52.0.7",
157
157
  "expo-status-bar": "~1.12.1",
158
- "react": "18.2.0",
159
- "react-native": "0.74.1"
158
+ "react": "18.3.1",
159
+ "react-native": "0.76.1"
160
160
  },
161
161
  "devDependencies": {
162
162
  <%# patch for this issue : https://github.com/expo/expo/issues/26641 %>
@@ -164,7 +164,7 @@
164
164
  "ajv": "^8.12.0",
165
165
  <% } %>
166
166
  "@babel/core": "^7.20.0",
167
- "@types/react": "~18.2.45",
167
+ "@types/react": "~18.3.12",
168
168
  "@typescript-eslint/eslint-plugin": "^7.7.0",
169
169
  "@typescript-eslint/parser": "^7.7.0",
170
170
  "eslint": "^8.57.0",
@@ -186,12 +186,5 @@
186
186
  <% if (props.navigationPackage?.name !== "expo-router") { %>
187
187
  "main": "node_modules/expo/AppEntry.js",
188
188
  <% } %>
189
- <% if (props.navigationPackage?.type === "navigation") { %>
190
- "expo": {
191
- "install": {
192
- "exclude": ["react-native-safe-area-context"]
193
- }
194
- },
195
- <% } %>
196
189
  "private": true
197
190
  }
@@ -1,11 +1,11 @@
1
1
  import { forwardRef } from 'react';
2
- import { Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { Text, TouchableOpacity, TouchableOpacityProps, View } from 'react-native';
3
3
 
4
4
  type ButtonProps = {
5
5
  title: string;
6
6
  } & TouchableOpacityProps;
7
7
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
8
+ export const Button = forwardRef<View, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
9
  return (
10
10
  <TouchableOpacity ref={ref} {...touchableProps} className={`${styles.button} ${touchableProps.className}`}>
11
11
  <Text className={styles.buttonText}>{title}</Text>
@@ -1,11 +1,11 @@
1
1
  import { forwardRef } from 'react';
2
- import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { StyleSheet, Text, TouchableOpacity, TouchableOpacityProps, View } from 'react-native';
3
3
 
4
4
  type ButtonProps = {
5
5
  title?: string;
6
6
  } & TouchableOpacityProps;
7
7
 
8
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
8
+ export const Button = forwardRef<View, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
9
  return (
10
10
  <TouchableOpacity ref={ref} {...touchableProps} style={[styles.button, touchableProps.style]}>
11
11
  <Text style={styles.buttonText}>{title}</Text>
@@ -60,7 +60,7 @@ export default function RootLayout() {
60
60
  }
61
61
 
62
62
  const SCREEN_OPTIONS = {
63
- animation: 'ios', // for android
63
+ animation: 'ios_from_right', // for android
64
64
  } as const;
65
65
 
66
66
  const DRAWER_OPTIONS = {
@@ -63,7 +63,7 @@ export default function RootLayout() {
63
63
  }
64
64
 
65
65
  const SCREEN_OPTIONS = {
66
- animation: 'ios', // for android
66
+ animation: 'ios_from_right', // for android
67
67
  } as const;
68
68
 
69
69
  const INDEX_OPTIONS = {
@@ -63,7 +63,7 @@ export default function RootLayout() {
63
63
  }
64
64
 
65
65
  const SCREEN_OPTIONS = {
66
- animation: 'ios', // for android
66
+ animation: 'ios_from_right', // for android
67
67
  } as const;
68
68
 
69
69
  const TABS_OPTIONS = {
@@ -1,4 +1,5 @@
1
1
  import { Theme } from '@react-navigation/native';
2
+ import { DefaultTheme, DarkTheme } from '@react-navigation/native';
2
3
  import { COLORS } from './colors';
3
4
 
4
5
  const NAV_THEME: { light: Theme; dark: Theme } = {
@@ -12,6 +13,7 @@ const NAV_THEME: { light: Theme; dark: Theme } = {
12
13
  primary: COLORS.light.primary,
13
14
  text: COLORS.black,
14
15
  },
16
+ fonts: DefaultTheme.fonts,
15
17
  },
16
18
  dark: {
17
19
  dark: true,
@@ -23,6 +25,7 @@ const NAV_THEME: { light: Theme; dark: Theme } = {
23
25
  primary: COLORS.dark.primary,
24
26
  text: COLORS.white,
25
27
  },
28
+ fonts: DarkTheme.fonts,
26
29
  },
27
30
  };
28
31
 
@@ -1,12 +1,12 @@
1
1
  import { forwardRef } from 'react';
2
- import { TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { TouchableOpacity, TouchableOpacityProps, View } from 'react-native';
3
3
  import { Text, makeStyles } from 'theme';
4
4
 
5
5
  type ButtonProps = {
6
6
  title?: string;
7
7
  } & TouchableOpacityProps;
8
8
 
9
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
9
+ export const Button = forwardRef<View, ButtonProps>(({ title, ...touchableProps }, ref) => {
10
10
  const styles = useStyles();
11
11
 
12
12
  return (
@@ -1,5 +1,5 @@
1
1
  import { forwardRef } from 'react';
2
- import { Text, TouchableOpacity, TouchableOpacityProps } from 'react-native';
2
+ import { Text, TouchableOpacity, TouchableOpacityProps, View } from 'react-native';
3
3
  import { useStyles } from 'react-native-unistyles';
4
4
 
5
5
  type ButtonProps = {
@@ -7,7 +7,7 @@ type ButtonProps = {
7
7
  } & TouchableOpacityProps;
8
8
 
9
9
 
10
- export const Button = forwardRef<TouchableOpacity, ButtonProps>(({ title, ...touchableProps }, ref) => {
10
+ export const Button = forwardRef<View, ButtonProps>(({ title, ...touchableProps }, ref) => {
11
11
  const { theme } = useStyles();
12
12
 
13
13
  return (
package/package.json CHANGED
@@ -1,74 +1,74 @@
1
1
  {
2
- "name": "create-expo-stack",
3
- "version": "2.12.0-next.4118968",
4
- "description": "CLI tool to initialize a React Native application with Expo",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/roninoss/create-expo-stack.git",
8
- "directory": "cli"
9
- },
10
- "homepage": "https://rn.new",
11
- "license": "MIT",
12
- "types": "build/types/types.d.ts",
13
- "bin": {
14
- "create-expo-stack": "bin/create-expo-stack.js"
15
- },
16
- "files": [
17
- "build",
18
- "LICENSE",
19
- "readme.md",
20
- "docs",
21
- "bin"
22
- ],
23
- "scripts": {
24
- "build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
25
- "bump": "bun run ./src/utilities/bumpVersion.ts",
26
- "clean-build": "rm -rf ./build",
27
- "compile": "tsc -p .",
28
- "copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
29
- "dev": "bun run build && NODE_ENV=development bun run bin/create-expo-stack.js",
30
- "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix --resolve-plugins-relative-to . && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
31
- "lint-templates": "bun run ejslint ./src/templates",
32
- "prepublishOnly": "bun run build",
33
- "publishPublic": "bun run build && npm publish --access public",
34
- "snapshot-update": "bun test --bail=1 --timeout 160000 --update-snapshots",
35
- "test:watch": "bun test --watch",
36
- "test": "bun test --bail=1 --timeout 160000",
37
- "test:all": "ALL_PACKAGE_MANAGERS=true bun test --bail=1 --timeout 160000"
38
- },
39
- "prettier": {
40
- "arrowParens": "always",
41
- "bracketSameLine": false,
42
- "bracketSpacing": true,
43
- "printWidth": 120,
44
- "semi": true,
45
- "singleQuote": true,
46
- "tabWidth": 2,
47
- "trailingComma": "none",
48
- "useTabs": false
49
- },
50
- "dependencies": {
51
- "@clack/prompts": "^0.7.0",
52
- "ejs-lint": "^2.0.0",
53
- "expo": "^51.0.11",
54
- "figlet": "^1.6.0",
55
- "gluegun": "latest",
56
- "google-auth-library": "^9.11.0",
57
- "googleapis": "^140.0.0",
58
- "gradient-string": "^2.0.2"
59
- },
60
- "devDependencies": {
61
- "@types/gradient-string": "^1.1.2",
62
- "@typescript-eslint/eslint-plugin": "^6.9.1",
63
- "@typescript-eslint/parser": "^6.9.1",
64
- "copyfiles": "^2.4.1",
65
- "eslint": "^8.53.0",
66
- "eslint-config-prettier": "^9.0.0",
67
- "eslint-plugin-prettier": "^5.0.1",
68
- "husky": "^5.1.3",
69
- "prettier": "^3.1.0"
70
- },
71
- "publishConfig": {
72
- "provenance": false
73
- }
2
+ "name": "create-expo-stack",
3
+ "version": "2.12.0",
4
+ "description": "CLI tool to initialize a React Native application with Expo",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/roninoss/create-expo-stack.git",
8
+ "directory": "cli"
9
+ },
10
+ "homepage": "https://rn.new",
11
+ "license": "MIT",
12
+ "types": "build/types/types.d.ts",
13
+ "bin": {
14
+ "create-expo-stack": "bin/create-expo-stack.js"
15
+ },
16
+ "files": [
17
+ "build",
18
+ "LICENSE",
19
+ "readme.md",
20
+ "docs",
21
+ "bin"
22
+ ],
23
+ "scripts": {
24
+ "build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
25
+ "bump": "bun run ./src/utilities/bumpVersion.ts",
26
+ "clean-build": "rm -rf ./build",
27
+ "compile": "tsc -p .",
28
+ "copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
29
+ "dev": "bun run build && NODE_ENV=development bun run bin/create-expo-stack.js",
30
+ "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix --resolve-plugins-relative-to . && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
31
+ "lint-templates": "bun run ejslint ./src/templates",
32
+ "prepublishOnly": "bun run build",
33
+ "publishPublic": "bun run build && npm publish --access public",
34
+ "snapshot-update": "bun test --bail=1 --timeout 160000 --update-snapshots",
35
+ "test:watch": "bun test --watch",
36
+ "test": "bun test --bail=1 --timeout 160000",
37
+ "test:all": "ALL_PACKAGE_MANAGERS=true bun test --bail=1 --timeout 160000"
38
+ },
39
+ "prettier": {
40
+ "arrowParens": "always",
41
+ "bracketSameLine": false,
42
+ "bracketSpacing": true,
43
+ "printWidth": 120,
44
+ "semi": true,
45
+ "singleQuote": true,
46
+ "tabWidth": 2,
47
+ "trailingComma": "none",
48
+ "useTabs": false
49
+ },
50
+ "dependencies": {
51
+ "@clack/prompts": "^0.7.0",
52
+ "ejs-lint": "^2.0.0",
53
+ "expo": "^51.0.11",
54
+ "figlet": "^1.6.0",
55
+ "gluegun": "latest",
56
+ "google-auth-library": "^9.11.0",
57
+ "googleapis": "^140.0.0",
58
+ "gradient-string": "^2.0.2"
59
+ },
60
+ "devDependencies": {
61
+ "@types/gradient-string": "^1.1.2",
62
+ "@typescript-eslint/eslint-plugin": "^6.9.1",
63
+ "@typescript-eslint/parser": "^6.9.1",
64
+ "copyfiles": "^2.4.1",
65
+ "eslint": "^8.53.0",
66
+ "eslint-config-prettier": "^9.0.0",
67
+ "eslint-plugin-prettier": "^5.0.1",
68
+ "husky": "^5.1.3",
69
+ "prettier": "^3.1.0"
70
+ },
71
+ "publishConfig": {
72
+ "provenance": false
73
+ }
74
74
  }