@digilogiclabs/create-saas-app 1.19.6 → 1.19.8
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/CHANGELOG.md +60 -0
- package/README.md +23 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/templates/mobile/base/template/.env.example +7 -7
- package/dist/templates/mobile/base/template/app.json +44 -0
- package/dist/templates/mobile/base/template/eas.json +19 -0
- package/dist/templates/mobile/base/template/package.json +7 -5
- package/dist/templates/mobile/ui-auth-payments/template/app.json +2 -1
- package/dist/templates/mobile/ui-auth-payments/template/eas.json +1 -1
- package/dist/templates/mobile/ui-auth-payments/template/package.json +9 -7
- package/dist/templates/mobile/ui-auth-payments/template/tsconfig.json +1 -1
- package/dist/templates/mobile/ui-auth-payments-ai/template/app.json +2 -1
- package/dist/templates/mobile/ui-auth-payments-ai/template/eas.json +1 -1
- package/dist/templates/mobile/ui-auth-payments-ai/template/package.json +9 -7
- package/dist/templates/mobile/ui-auth-payments-ai/template/tsconfig.json +1 -1
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +74 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +25 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +25 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +3 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +37 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +11 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +9 -7
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +32 -0
- package/package.json +1 -1
- package/src/templates/mobile/base/template/.env.example +7 -7
- package/src/templates/mobile/base/template/app.json +44 -0
- package/src/templates/mobile/base/template/eas.json +19 -0
- package/src/templates/mobile/base/template/package.json +7 -5
- package/src/templates/mobile/ui-auth-payments/template/app.json +2 -1
- package/src/templates/mobile/ui-auth-payments/template/eas.json +1 -1
- package/src/templates/mobile/ui-auth-payments/template/package.json +9 -7
- package/src/templates/mobile/ui-auth-payments/template/tsconfig.json +1 -1
- package/src/templates/mobile/ui-auth-payments-ai/template/app.json +2 -1
- package/src/templates/mobile/ui-auth-payments-ai/template/eas.json +1 -1
- package/src/templates/mobile/ui-auth-payments-ai/template/package.json +9 -7
- package/src/templates/mobile/ui-auth-payments-ai/template/tsconfig.json +1 -1
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +74 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +25 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +25 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +3 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +37 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +11 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +9 -7
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +32 -0
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type-check": "tsc --noEmit"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"expo": "~
|
|
22
|
+
"expo": "~51.0.0",
|
|
23
23
|
"react": "18.2.0",
|
|
24
24
|
"react-native": "0.73.6",
|
|
25
25
|
|
|
@@ -35,20 +35,21 @@
|
|
|
35
35
|
"react-native-gesture-handler": "~2.14.0",
|
|
36
36
|
"react-native-reanimated": "~3.6.2",
|
|
37
37
|
|
|
38
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
39
|
-
"@digilogiclabs/saas-factory-auth": "^1.0.
|
|
40
|
-
"@digilogiclabs/saas-factory-payments": "^1.2.
|
|
38
|
+
"@digilogiclabs/saas-factory-ui": "^0.27.1",
|
|
39
|
+
"@digilogiclabs/saas-factory-auth": "^1.0.5",
|
|
40
|
+
"@digilogiclabs/saas-factory-payments": "^1.2.6",
|
|
41
41
|
|
|
42
42
|
"@supabase/supabase-js": "^2.39.0",
|
|
43
43
|
"@react-native-async-storage/async-storage": "1.21.0",
|
|
44
44
|
|
|
45
|
-
"@stripe/stripe-react-native": "
|
|
45
|
+
"@stripe/stripe-react-native": "0.28.0",
|
|
46
|
+
"@supabase/ssr": "^0.7.0",
|
|
46
47
|
|
|
47
48
|
"expo-router": "~3.4.0",
|
|
48
49
|
"expo-font": "~11.10.0",
|
|
49
50
|
"expo-linking": "~6.2.2",
|
|
50
51
|
"expo-constants": "~15.4.0",
|
|
51
|
-
"expo-status-bar": "~1.
|
|
52
|
+
"expo-status-bar": "~1.6.0",
|
|
52
53
|
"expo-splash-screen": "~0.26.4",
|
|
53
54
|
"expo-system-ui": "~2.9.3",
|
|
54
55
|
"expo-web-browser": "~12.8.2",
|
|
@@ -72,7 +73,8 @@
|
|
|
72
73
|
"metro-react-native-babel-transformer": "~0.77.0",
|
|
73
74
|
"metro-inspector-proxy": "~0.77.0",
|
|
74
75
|
|
|
75
|
-
"@react-native-community/netinfo": "11.
|
|
76
|
+
"@react-native-community/netinfo": "^11.0.0",
|
|
77
|
+
"expo-linear-gradient": "~12.3.0",
|
|
76
78
|
"react-native-mmkv": "^2.12.2",
|
|
77
79
|
"react-native-svg": "14.1.0",
|
|
78
80
|
"react-native-url-polyfill": "^2.0.0",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"usesNonExemptEncryption": false
|
|
23
23
|
},
|
|
24
24
|
"infoPlist": {
|
|
25
|
-
"NSCameraUsageDescription": "This app uses the camera to
|
|
25
|
+
"NSCameraUsageDescription": "This app uses the camera to take photos",
|
|
26
|
+
"NSPhotoLibraryUsageDescription": "This app accesses the photo library to select images",
|
|
26
27
|
"NSLocationWhenInUseUsageDescription": "This app uses location to provide location-based features",
|
|
27
28
|
"NSLocationAlwaysAndWhenInUseUsageDescription": "This app uses location to provide location-based features"
|
|
28
29
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type-check": "tsc --noEmit"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"expo": "~
|
|
22
|
+
"expo": "~51.0.0",
|
|
23
23
|
"react": "18.2.0",
|
|
24
24
|
"react-native": "0.73.6",
|
|
25
25
|
|
|
@@ -35,22 +35,23 @@
|
|
|
35
35
|
"react-native-gesture-handler": "~2.14.0",
|
|
36
36
|
"react-native-reanimated": "~3.6.2",
|
|
37
37
|
|
|
38
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
39
|
-
"@digilogiclabs/saas-factory-auth": "^1.0.
|
|
40
|
-
"@digilogiclabs/saas-factory-payments": "^1.2.
|
|
38
|
+
"@digilogiclabs/saas-factory-ui": "^0.27.1",
|
|
39
|
+
"@digilogiclabs/saas-factory-auth": "^1.0.5",
|
|
40
|
+
"@digilogiclabs/saas-factory-payments": "^1.2.6",
|
|
41
41
|
"@digilogiclabs/saas-factory-ai": "^4.0.2",
|
|
42
42
|
"@digilogiclabs/saas-factory-ai-types": "^4.0.2",
|
|
43
43
|
|
|
44
44
|
"@supabase/supabase-js": "^2.39.0",
|
|
45
45
|
"@react-native-async-storage/async-storage": "1.21.0",
|
|
46
46
|
|
|
47
|
-
"@stripe/stripe-react-native": "
|
|
47
|
+
"@stripe/stripe-react-native": "0.28.0",
|
|
48
|
+
"@supabase/ssr": "^0.7.0",
|
|
48
49
|
|
|
49
50
|
"expo-router": "~3.4.0",
|
|
50
51
|
"expo-font": "~11.10.0",
|
|
51
52
|
"expo-linking": "~6.2.2",
|
|
52
53
|
"expo-constants": "~15.4.0",
|
|
53
|
-
"expo-status-bar": "~1.
|
|
54
|
+
"expo-status-bar": "~1.6.0",
|
|
54
55
|
"expo-splash-screen": "~0.26.4",
|
|
55
56
|
"expo-system-ui": "~2.9.3",
|
|
56
57
|
"expo-web-browser": "~12.8.2",
|
|
@@ -74,7 +75,8 @@
|
|
|
74
75
|
"metro-react-native-babel-transformer": "~0.77.0",
|
|
75
76
|
"metro-inspector-proxy": "~0.77.0",
|
|
76
77
|
|
|
77
|
-
"@react-native-community/netinfo": "11.
|
|
78
|
+
"@react-native-community/netinfo": "^11.0.0",
|
|
79
|
+
"expo-linear-gradient": "~12.3.0",
|
|
78
80
|
"react-native-mmkv": "^2.12.2",
|
|
79
81
|
"react-native-svg": "14.1.0",
|
|
80
82
|
"react-native-url-polyfill": "^2.0.0",
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expo": {
|
|
3
|
+
"name": "{{titleCaseName}}",
|
|
4
|
+
"slug": "{{packageName}}",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"orientation": "portrait",
|
|
7
|
+
"icon": "./assets/icon.png",
|
|
8
|
+
"userInterfaceStyle": "automatic",
|
|
9
|
+
"splash": {
|
|
10
|
+
"image": "./assets/splash.png",
|
|
11
|
+
"resizeMode": "contain",
|
|
12
|
+
"backgroundColor": "#ffffff"
|
|
13
|
+
},
|
|
14
|
+
"assetBundlePatterns": [
|
|
15
|
+
"**/*"
|
|
16
|
+
],
|
|
17
|
+
"ios": {
|
|
18
|
+
"supportsTablet": true,
|
|
19
|
+
"bundleIdentifier": "{{iosBundleId}}",
|
|
20
|
+
"infoPlist": {
|
|
21
|
+
"NSCameraUsageDescription": "This app uses the camera to take photos",
|
|
22
|
+
"NSPhotoLibraryUsageDescription": "This app accesses the photo library to select images",
|
|
23
|
+
"NSMicrophoneUsageDescription": "This app needs access to microphone for audio features.",
|
|
24
|
+
"NSLocationAlwaysAndWhenInUseUsageDescription": "This app uses location to provide location-based features",
|
|
25
|
+
"NSLocationWhenInUseUsageDescription": "This app uses location to provide location-based features"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"android": {
|
|
29
|
+
"adaptiveIcon": {
|
|
30
|
+
"foregroundImage": "./assets/adaptive-icon.png",
|
|
31
|
+
"backgroundColor": "#ffffff"
|
|
32
|
+
},
|
|
33
|
+
"package": "{{androidPackage}}",
|
|
34
|
+
"permissions": [
|
|
35
|
+
"CAMERA",
|
|
36
|
+
"RECORD_AUDIO",
|
|
37
|
+
"ACCESS_FINE_LOCATION",
|
|
38
|
+
"ACCESS_COARSE_LOCATION",
|
|
39
|
+
"INTERNET",
|
|
40
|
+
"ACCESS_NETWORK_STATE"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"web": {
|
|
44
|
+
"favicon": "./assets/favicon.png",
|
|
45
|
+
"bundler": "metro"
|
|
46
|
+
},
|
|
47
|
+
"plugins": [
|
|
48
|
+
"expo-router",
|
|
49
|
+
[
|
|
50
|
+
"expo-location",
|
|
51
|
+
{
|
|
52
|
+
"locationAlwaysAndWhenInUsePermission": "Allow {{titleCaseName}} to use your location to provide location-based features."
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
[
|
|
56
|
+
"expo-camera",
|
|
57
|
+
{
|
|
58
|
+
"cameraPermission": "Allow {{titleCaseName}} to access your camera to scan QR codes and take photos."
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
"expo-notifications",
|
|
63
|
+
{
|
|
64
|
+
"icon": "./assets/notification-icon.png",
|
|
65
|
+
"color": "#ffffff"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"expo-secure-store"
|
|
69
|
+
],
|
|
70
|
+
"experiments": {
|
|
71
|
+
"typedRoutes": true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports = function(api) {
|
|
2
|
+
api.cache(true);
|
|
3
|
+
return {
|
|
4
|
+
presets: ['babel-preset-expo'],
|
|
5
|
+
plugins: [
|
|
6
|
+
[
|
|
7
|
+
'module-resolver',
|
|
8
|
+
{
|
|
9
|
+
root: ['./'],
|
|
10
|
+
alias: {
|
|
11
|
+
'@': './',
|
|
12
|
+
'@/components': './components',
|
|
13
|
+
'@/hooks': './hooks',
|
|
14
|
+
'@/utils': './utils',
|
|
15
|
+
'@/types': './types',
|
|
16
|
+
'@/constants': './constants',
|
|
17
|
+
'@/lib': './lib'
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
'expo-router/babel',
|
|
22
|
+
'react-native-reanimated/plugin',
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli": {
|
|
3
|
+
"version": ">= 5.7.0"
|
|
4
|
+
},
|
|
5
|
+
"build": {
|
|
6
|
+
"development": {
|
|
7
|
+
"developmentClient": true,
|
|
8
|
+
"distribution": "internal"
|
|
9
|
+
},
|
|
10
|
+
"preview": {
|
|
11
|
+
"distribution": "internal",
|
|
12
|
+
"ios": {
|
|
13
|
+
"resourceClass": "m-medium"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"production": {
|
|
17
|
+
"ios": {
|
|
18
|
+
"resourceClass": "m-medium"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"submit": {
|
|
23
|
+
"production": {}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import '@testing-library/jest-native/extend-expect';
|
|
2
|
+
|
|
3
|
+
// Mock react-native-reanimated
|
|
4
|
+
jest.mock('react-native-reanimated', () => {
|
|
5
|
+
const Reanimated = require('react-native-reanimated/mock');
|
|
6
|
+
Reanimated.default.call = () => {};
|
|
7
|
+
return Reanimated;
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
// Mock expo modules
|
|
11
|
+
jest.mock('expo-constants', () => ({
|
|
12
|
+
default: {
|
|
13
|
+
expoConfig: {
|
|
14
|
+
extra: {}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
jest.mock('expo-status-bar', () => ({
|
|
20
|
+
StatusBar: 'StatusBar'
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
jest.mock('expo-router', () => ({
|
|
24
|
+
router: {
|
|
25
|
+
push: jest.fn(),
|
|
26
|
+
replace: jest.fn(),
|
|
27
|
+
back: jest.fn(),
|
|
28
|
+
},
|
|
29
|
+
Link: 'Link',
|
|
30
|
+
useRouter: () => ({
|
|
31
|
+
push: jest.fn(),
|
|
32
|
+
replace: jest.fn(),
|
|
33
|
+
back: jest.fn(),
|
|
34
|
+
}),
|
|
35
|
+
usePathname: () => '/',
|
|
36
|
+
useLocalSearchParams: () => ({}),
|
|
37
|
+
}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
2
|
+
const { withNativeWind } = require('nativewind/metro');
|
|
3
|
+
|
|
4
|
+
const config = getDefaultConfig(__dirname);
|
|
5
|
+
|
|
6
|
+
// Configure SVG support
|
|
7
|
+
config.transformer.babelTransformerPath = require.resolve('react-native-svg-transformer');
|
|
8
|
+
config.resolver.assetExts = config.resolver.assetExts.filter((ext) => ext !== 'svg');
|
|
9
|
+
config.resolver.sourceExts = [...config.resolver.sourceExts, 'svg'];
|
|
10
|
+
|
|
11
|
+
module.exports = withNativeWind(config, { input: './global.css' });
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"db:types": "supabase gen types --local > types/supabase.ts"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"expo": "~
|
|
25
|
+
"expo": "~51.0.0",
|
|
26
26
|
"react": "18.2.0",
|
|
27
27
|
"react-native": "0.73.6",
|
|
28
28
|
|
|
@@ -38,22 +38,23 @@
|
|
|
38
38
|
"react-native-gesture-handler": "~2.14.0",
|
|
39
39
|
"react-native-reanimated": "~3.6.2",
|
|
40
40
|
|
|
41
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
42
|
-
"@digilogiclabs/saas-factory-auth": "^1.0.
|
|
43
|
-
"@digilogiclabs/saas-factory-payments": "^1.2.
|
|
41
|
+
"@digilogiclabs/saas-factory-ui": "^0.27.1",
|
|
42
|
+
"@digilogiclabs/saas-factory-auth": "^1.0.5",
|
|
43
|
+
"@digilogiclabs/saas-factory-payments": "^1.2.6",
|
|
44
44
|
"@digilogiclabs/saas-factory-ai": "^4.0.2",
|
|
45
45
|
"@digilogiclabs/saas-factory-ai-types": "^4.0.2",
|
|
46
46
|
|
|
47
47
|
"@supabase/supabase-js": "^2.39.0",
|
|
48
48
|
"@react-native-async-storage/async-storage": "1.21.0",
|
|
49
49
|
|
|
50
|
-
"@stripe/stripe-react-native": "
|
|
50
|
+
"@stripe/stripe-react-native": "0.28.0",
|
|
51
|
+
"@supabase/ssr": "^0.7.0",
|
|
51
52
|
|
|
52
53
|
"expo-router": "~3.4.0",
|
|
53
54
|
"expo-font": "~11.10.0",
|
|
54
55
|
"expo-linking": "~6.2.2",
|
|
55
56
|
"expo-constants": "~15.4.0",
|
|
56
|
-
"expo-status-bar": "~1.
|
|
57
|
+
"expo-status-bar": "~1.6.0",
|
|
57
58
|
"expo-splash-screen": "~0.26.4",
|
|
58
59
|
"expo-system-ui": "~2.9.3",
|
|
59
60
|
"expo-web-browser": "~12.8.2",
|
|
@@ -79,7 +80,8 @@
|
|
|
79
80
|
"expo-speech": "~11.7.0",
|
|
80
81
|
"expo-av": "~13.10.4",
|
|
81
82
|
|
|
82
|
-
"@react-native-community/netinfo": "11.
|
|
83
|
+
"@react-native-community/netinfo": "^11.0.0",
|
|
84
|
+
"expo-linear-gradient": "~12.3.0",
|
|
83
85
|
"react-native-mmkv": "^2.12.2",
|
|
84
86
|
"react-native-svg": "14.1.0",
|
|
85
87
|
"react-native-url-polyfill": "^2.0.0",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "expo/tsconfig.base",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"strict": true,
|
|
5
|
+
"baseUrl": "./",
|
|
6
|
+
"paths": {
|
|
7
|
+
"@/*": ["./*"],
|
|
8
|
+
"@/components/*": ["./components/*"],
|
|
9
|
+
"@/hooks/*": ["./hooks/*"],
|
|
10
|
+
"@/utils/*": ["./utils/*"],
|
|
11
|
+
"@/types/*": ["./types/*"],
|
|
12
|
+
"@/constants/*": ["./constants/*"],
|
|
13
|
+
"@/lib/*": ["./lib/*"]
|
|
14
|
+
},
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"allowSyntheticDefaultImports": true,
|
|
17
|
+
"esModuleInterop": true,
|
|
18
|
+
"moduleResolution": "bundler",
|
|
19
|
+
"resolveJsonModule": true,
|
|
20
|
+
"noEmit": true,
|
|
21
|
+
"jsx": "react-jsx"
|
|
22
|
+
},
|
|
23
|
+
"include": [
|
|
24
|
+
"**/*.ts",
|
|
25
|
+
"**/*.tsx",
|
|
26
|
+
".expo/types/**/*.ts",
|
|
27
|
+
"expo-env.d.ts"
|
|
28
|
+
],
|
|
29
|
+
"exclude": [
|
|
30
|
+
"node_modules"
|
|
31
|
+
]
|
|
32
|
+
}
|