@mr.dj2u/create-expo-stack 2.21.3-mrdj.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 +435 -0
- package/bin/create-expo-stack.js +2 -0
- package/build/cli.js +49 -0
- package/build/commands/create-expo-stack.js +471 -0
- package/build/constants.js +39 -0
- package/build/templates/base/.gitignore.ejs +26 -0
- package/build/templates/base/.npmrc.ejs +1 -0
- package/build/templates/base/App.tsx.ejs +66 -0
- package/build/templates/base/app.json.ejs +69 -0
- package/build/templates/base/assets/adaptive-icon.png +0 -0
- package/build/templates/base/assets/favicon.png +0 -0
- package/build/templates/base/assets/icon.png +0 -0
- package/build/templates/base/assets/splash.png +0 -0
- package/build/templates/base/babel.config.js.ejs +38 -0
- package/build/templates/base/components/BackButton.tsx.ejs +23 -0
- package/build/templates/base/components/Button.tsx.ejs +42 -0
- package/build/templates/base/components/Container.tsx.ejs +14 -0
- package/build/templates/base/components/EditScreenInfo.tsx.ejs +44 -0
- package/build/templates/base/components/HeaderButton.tsx.ejs +31 -0
- package/build/templates/base/components/ScreenContent.tsx.ejs +40 -0
- package/build/templates/base/components/TabBarIcon.tsx.ejs +15 -0
- package/build/templates/base/eslint.config.js.ejs +15 -0
- package/build/templates/base/package.json.ejs +191 -0
- package/build/templates/base/prettier.config.js.ejs +11 -0
- package/build/templates/base/tsconfig.json.ejs +39 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs +40 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/index.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/two.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs +65 -0
- package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/drawer/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/drawer/app/+not-found.tsx.ejs +100 -0
- package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +91 -0
- package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/expo-router/expo-env.d.ts +4 -0
- package/build/templates/packages/expo-router/index.js.ejs +4 -0
- package/build/templates/packages/expo-router/metro.config.js.ejs +24 -0
- package/build/templates/packages/expo-router/stack/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/stack/app/+not-found.tsx.ejs +113 -0
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +63 -0
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +56 -0
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +73 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +37 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +37 -0
- package/build/templates/packages/expo-router/tabs/app/+html.tsx.ejs +49 -0
- package/build/templates/packages/expo-router/tabs/app/+not-found.tsx.ejs +110 -0
- package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +84 -0
- package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/firebase/.env.ejs +8 -0
- package/build/templates/packages/firebase/metro.config.js.ejs +14 -0
- package/build/templates/packages/firebase/utils/firebase.ts.ejs +26 -0
- package/build/templates/packages/i18next/components/InternalizationExample.tsx.ejs +23 -0
- package/build/templates/packages/i18next/core/i18n/fallbackChecker.ts.ejs +13 -0
- package/build/templates/packages/i18next/core/i18n/init.ts.ejs +24 -0
- package/build/templates/packages/i18next/core/i18n/languageDetector.ts.ejs +13 -0
- package/build/templates/packages/i18next/translation/en.json.ejs +8 -0
- package/build/templates/packages/i18next/translation/fr.json.ejs +8 -0
- package/build/templates/packages/i18next/translation/index.ts.ejs +20 -0
- package/build/templates/packages/nativewind/components/BackButton.tsx.ejs +22 -0
- package/build/templates/packages/nativewind/components/Button.tsx.ejs +21 -0
- package/build/templates/packages/nativewind/components/Container.tsx.ejs +13 -0
- package/build/templates/packages/nativewind/components/EditScreenInfo.tsx.ejs +40 -0
- package/build/templates/packages/nativewind/components/ScreenContent.tsx.ejs +27 -0
- package/build/templates/packages/nativewind/global.css +3 -0
- package/build/templates/packages/nativewind/metro.config.js +7 -0
- package/build/templates/packages/nativewind/nativewind-env.d.ts +2 -0
- package/build/templates/packages/nativewind/tailwind.config.js.ejs +15 -0
- package/build/templates/packages/nativewindui/components/Container.tsx.ejs +14 -0
- package/build/templates/packages/nativewindui/components/EditScreenInfo.tsx.ejs +45 -0
- package/build/templates/packages/nativewindui/components/HeaderButton.tsx.ejs +31 -0
- package/build/templates/packages/nativewindui/components/ScreenContent.tsx.ejs +40 -0
- package/build/templates/packages/nativewindui/components/TabBarIcon.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/Icon.ios.tsx.ejs +52 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/Icon.tsx.ejs +58 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/index.ts.ejs +16 -0
- package/build/templates/packages/nativewindui/components/nativewindui/Icon/types.ts.ejs +18 -0
- package/build/templates/packages/nativewindui/components/nativewindui/ThemeToggle.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs +28 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/index.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/(tabs)/two.tsx.ejs +15 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/_layout.tsx.ejs +35 -0
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/index.tsx.ejs +535 -0
- package/build/templates/packages/nativewindui/drawer/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/drawer/app/+not-found.tsx.ejs +83 -0
- package/build/templates/packages/nativewindui/drawer/app/_layout.tsx.ejs +75 -0
- package/build/templates/packages/nativewindui/drawer/app/modal.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/global.css.ejs +91 -0
- package/build/templates/packages/nativewindui/lib/cn.ts.ejs +6 -0
- package/build/templates/packages/nativewindui/lib/useColorScheme.tsx.ejs +21 -0
- package/build/templates/packages/nativewindui/nativewind-env.d.ts.ejs +1 -0
- package/build/templates/packages/nativewindui/stack/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/stack/app/+not-found.tsx.ejs +18 -0
- package/build/templates/packages/nativewindui/stack/app/_layout.tsx.ejs +78 -0
- package/build/templates/packages/nativewindui/stack/app/index.tsx.ejs +487 -0
- package/build/templates/packages/nativewindui/stack/app/modal.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/_layout.tsx.ejs +35 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/index.tsx.ejs +537 -0
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/two.tsx.ejs +22 -0
- package/build/templates/packages/nativewindui/tabs/app/+html.tsx.ejs +46 -0
- package/build/templates/packages/nativewindui/tabs/app/+not-found.tsx.ejs +90 -0
- package/build/templates/packages/nativewindui/tabs/app/_layout.tsx.ejs +78 -0
- package/build/templates/packages/nativewindui/tabs/app/modal.tsx.ejs +21 -0
- package/build/templates/packages/nativewindui/tailwind.config.js.ejs +67 -0
- package/build/templates/packages/nativewindui/theme/colors.ts.ejs +123 -0
- package/build/templates/packages/nativewindui/theme/index.ts.ejs +32 -0
- package/build/templates/packages/nativewindui/theme/with-opacity.ts.ejs +155 -0
- package/build/templates/packages/react-navigation/App.tsx.ejs +73 -0
- package/build/templates/packages/react-navigation/navigation/drawer-navigator.tsx.ejs +31 -0
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +108 -0
- package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +38 -0
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +41 -0
- package/build/templates/packages/react-navigation/screens/home.tsx.ejs +5 -0
- package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +20 -0
- package/build/templates/packages/react-navigation/screens/one.tsx.ejs +5 -0
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +54 -0
- package/build/templates/packages/react-navigation/screens/two.tsx.ejs +5 -0
- package/build/templates/packages/restyle/components/BackButton.tsx.ejs +19 -0
- package/build/templates/packages/restyle/components/Button.tsx.ejs +32 -0
- package/build/templates/packages/restyle/components/Container.tsx.ejs +16 -0
- package/build/templates/packages/restyle/components/EditScreenInfo.tsx.ejs +38 -0
- package/build/templates/packages/restyle/components/ScreenContent.tsx.ejs +30 -0
- package/build/templates/packages/restyle/theme.ts.ejs +51 -0
- package/build/templates/packages/supabase/.env.ejs +2 -0
- package/build/templates/packages/supabase/utils/supabase.ts.ejs +14 -0
- package/build/templates/packages/tamagui/components/BackButton.tsx.ejs +12 -0
- package/build/templates/packages/tamagui/components/Button.tsx.ejs +17 -0
- package/build/templates/packages/tamagui/components/Container.tsx.ejs +12 -0
- package/build/templates/packages/tamagui/components/EditScreenInfo.tsx.ejs +27 -0
- package/build/templates/packages/tamagui/components/ScreenContent.tsx.ejs +23 -0
- package/build/templates/packages/tamagui/tamagui.config.ts.ejs +14 -0
- package/build/templates/packages/unistyles/breakpoints.ts.ejs +9 -0
- package/build/templates/packages/unistyles/components/BackButton.tsx.ejs +28 -0
- package/build/templates/packages/unistyles/components/Button.tsx.ejs +42 -0
- package/build/templates/packages/unistyles/components/Container.tsx.ejs +17 -0
- package/build/templates/packages/unistyles/components/EditScreenInfo.tsx.ejs +53 -0
- package/build/templates/packages/unistyles/components/ScreenContent.tsx.ejs +43 -0
- package/build/templates/packages/unistyles/theme.ts.ejs +34 -0
- package/build/templates/packages/unistyles/unistyles.ts.ejs +27 -0
- package/build/templates/packages/uniwind/global.css +2 -0
- package/build/templates/packages/uniwind/metro.config.js.ejs +10 -0
- package/build/templates/packages/vexo-analytics/.env.ejs +7 -0
- package/build/templates/packages/zustand/store/store.ts.ejs +15 -0
- package/build/types/cli.d.ts +4 -0
- package/build/types/commands/create-expo-stack.d.ts +3 -0
- package/build/types/constants.d.ts +10 -0
- package/build/types/types.d.ts +33 -0
- package/build/types/utilities/bumpVersion.d.ts +1 -0
- package/build/types/utilities/clearNavigationPackages.d.ts +2 -0
- package/build/types/utilities/clearStylingPackages.d.ts +2 -0
- package/build/types/utilities/configAnalytics.d.ts +18 -0
- package/build/types/utilities/configStorage.d.ts +8 -0
- package/build/types/utilities/configureProjectFiles.d.ts +3 -0
- package/build/types/utilities/copyBaseAssets.d.ts +2 -0
- package/build/types/utilities/generateNWUI.d.ts +3 -0
- package/build/types/utilities/generateProjectFiles.d.ts +5 -0
- package/build/types/utilities/getPackageManager.d.ts +8 -0
- package/build/types/utilities/index.d.ts +10 -0
- package/build/types/utilities/printOutput.d.ts +3 -0
- package/build/types/utilities/publishToGitHub.d.ts +2 -0
- package/build/types/utilities/renderTitle.d.ts +2 -0
- package/build/types/utilities/runCLI.d.ts +3 -0
- package/build/types/utilities/runEasConfigure.d.ts +3 -0
- package/build/types/utilities/runIgnite.d.ts +3 -0
- package/build/types/utilities/showHelp.d.ts +1 -0
- package/build/types/utilities/systemCommand.d.ts +14 -0
- package/build/types/utilities/usePackage.d.ts +2 -0
- package/build/types/utilities/validateProjectName.d.ts +4 -0
- package/build/types.js +39 -0
- package/build/utilities/bumpVersion.js +21 -0
- package/build/utilities/clearNavigationPackages.js +11 -0
- package/build/utilities/clearStylingPackages.js +11 -0
- package/build/utilities/configAnalytics.js +70 -0
- package/build/utilities/configStorage.js +50 -0
- package/build/utilities/configureProjectFiles.js +380 -0
- package/build/utilities/copyBaseAssets.js +21 -0
- package/build/utilities/generateNWUI.js +54 -0
- package/build/utilities/generateProjectFiles.js +106 -0
- package/build/utilities/getPackageManager.js +103 -0
- package/build/utilities/index.js +27 -0
- package/build/utilities/printOutput.js +251 -0
- package/build/utilities/publishToGitHub.js +173 -0
- package/build/utilities/renderTitle.js +55 -0
- package/build/utilities/runCLI.js +437 -0
- package/build/utilities/runEasConfigure.js +83 -0
- package/build/utilities/runIgnite.js +26 -0
- package/build/utilities/showHelp.js +85 -0
- package/build/utilities/systemCommand.js +40 -0
- package/build/utilities/usePackage.js +8 -0
- package/build/utilities/validateProjectName.js +42 -0
- package/package.json +77 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text, View } from 'react-native';
|
|
3
|
+
import { StyleSheet } from 'react-native-unistyles';
|
|
4
|
+
|
|
5
|
+
import { EditScreenInfo } from './EditScreenInfo';
|
|
6
|
+
|
|
7
|
+
type ScreenContentProps = {
|
|
8
|
+
title: string;
|
|
9
|
+
path: string;
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const ScreenContent = ({ title, path, children } : ScreenContentProps) => {
|
|
14
|
+
return (
|
|
15
|
+
<View style={styles.container}>
|
|
16
|
+
<Text style={styles.title}>{title}</Text>
|
|
17
|
+
<View style={styles.separator} />
|
|
18
|
+
<EditScreenInfo path={path} />
|
|
19
|
+
{children}
|
|
20
|
+
</View>
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const styles = StyleSheet.create(theme => ({
|
|
25
|
+
container: {
|
|
26
|
+
flex: 1,
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
padding: 24,
|
|
30
|
+
backgroundColor: 'white',
|
|
31
|
+
},
|
|
32
|
+
separator: {
|
|
33
|
+
height: 1,
|
|
34
|
+
marginVertical: 30,
|
|
35
|
+
width: '80%',
|
|
36
|
+
backgroundColor: theme.colors.limedSpruce,
|
|
37
|
+
},
|
|
38
|
+
title: {
|
|
39
|
+
fontSize: 20,
|
|
40
|
+
fontWeight: 'bold',
|
|
41
|
+
color: theme.colors.typography,
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const sharedColors = {
|
|
2
|
+
azureRadiance: '#007AFF',
|
|
3
|
+
limedSpruce: '#38434D',
|
|
4
|
+
cornflowerBlue: '#6366F1',
|
|
5
|
+
astral: '#2E78B7'
|
|
6
|
+
} as const;
|
|
7
|
+
|
|
8
|
+
export const lightTheme = {
|
|
9
|
+
colors: {
|
|
10
|
+
...sharedColors,
|
|
11
|
+
typography: '#000000',
|
|
12
|
+
background: '#ffffff',
|
|
13
|
+
},
|
|
14
|
+
margins: {
|
|
15
|
+
sm: 2,
|
|
16
|
+
md: 4,
|
|
17
|
+
lg: 8,
|
|
18
|
+
xl: 12,
|
|
19
|
+
},
|
|
20
|
+
} as const;
|
|
21
|
+
|
|
22
|
+
export const darkTheme = {
|
|
23
|
+
colors: {
|
|
24
|
+
...sharedColors,
|
|
25
|
+
typography: '#ffffff',
|
|
26
|
+
background: '#000000',
|
|
27
|
+
},
|
|
28
|
+
margins: {
|
|
29
|
+
sm: 2,
|
|
30
|
+
md: 4,
|
|
31
|
+
lg: 8,
|
|
32
|
+
xl: 12,
|
|
33
|
+
},
|
|
34
|
+
} as const;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native-unistyles';
|
|
2
|
+
|
|
3
|
+
import { breakpoints } from './breakpoints';
|
|
4
|
+
import { lightTheme, darkTheme } from './theme';
|
|
5
|
+
|
|
6
|
+
type AppBreakpoints = typeof breakpoints;
|
|
7
|
+
|
|
8
|
+
type AppThemes = {
|
|
9
|
+
light: typeof lightTheme;
|
|
10
|
+
dark: typeof darkTheme;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare module 'react-native-unistyles' {
|
|
14
|
+
export interface UnistylesBreakpoints extends AppBreakpoints {}
|
|
15
|
+
export interface UnistylesThemes extends AppThemes {}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
StyleSheet.configure({
|
|
19
|
+
breakpoints,
|
|
20
|
+
themes: {
|
|
21
|
+
light: lightTheme,
|
|
22
|
+
dark: darkTheme
|
|
23
|
+
},
|
|
24
|
+
settings: {
|
|
25
|
+
adaptiveThemes: true
|
|
26
|
+
}
|
|
27
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
2
|
+
const { withUniwindConfig } = require('uniwind/metro');
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line no-undef
|
|
5
|
+
const config = getDefaultConfig(__dirname);
|
|
6
|
+
|
|
7
|
+
module.exports = withUniwindConfig(config, {
|
|
8
|
+
cssEntryFile: './global.css',
|
|
9
|
+
dtsFile: './uniwind-types.d.ts'
|
|
10
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { create } from 'zustand'
|
|
2
|
+
|
|
3
|
+
export interface BearState {
|
|
4
|
+
bears: number
|
|
5
|
+
increasePopulation: () => void
|
|
6
|
+
removeAllBears: () => void
|
|
7
|
+
updateBears: (newBears: number) => void
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const useStore = create<BearState>((set) => ({
|
|
11
|
+
bears: 0,
|
|
12
|
+
increasePopulation: () => set((state) => ({ bears: state.bears + 1 })),
|
|
13
|
+
removeAllBears: () => set({ bears: 0 }),
|
|
14
|
+
updateBears: (newBears) => set({ bears: newBears }),
|
|
15
|
+
}))
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CliResults, SelectedComponents } from './types';
|
|
2
|
+
export declare const CES_TITLE = "create expo stack";
|
|
3
|
+
export declare const RN_NEW_TITLE = "rn new";
|
|
4
|
+
export declare const TITLE_TEXT: string;
|
|
5
|
+
export declare const DEFAULT_APP_NAME = "my-expo-app";
|
|
6
|
+
export declare const defaultOptions: CliResults;
|
|
7
|
+
export declare const nativewindUIOptions: SelectedComponents[];
|
|
8
|
+
export declare const navigationValidationError = "You must pass in either --react-navigation or --expo-router if you want to use the --tabs or --drawer+tabs options";
|
|
9
|
+
export declare const projectNameValidationError = "A project with the name";
|
|
10
|
+
export declare const bunInstallationError = "Cancelled to install recommended version of Bun.";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface CliFlags {
|
|
2
|
+
noGit: boolean;
|
|
3
|
+
noInstall: boolean;
|
|
4
|
+
overwrite: boolean;
|
|
5
|
+
importAlias: string | boolean;
|
|
6
|
+
packageManager: PackageManager;
|
|
7
|
+
eas: boolean;
|
|
8
|
+
publish: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const availablePackages: readonly ["@react-navigation/drawer", "expo-router", "expoRouter", "firebase", "nativewind", "nativewindui", "nwui", "react-navigation", "reactNavigation", "gesture-handler", "gestureHandler", "reanimated", "react-native-gesture-handler", "react-native-reanimated", "react-native-keyboard-controller", "react-native-screens", "react-native-svg", "react-native-worklets", "keyboard-controller", "keyboardController", "reactnavigation", "screens", "restyle", "stylesheet", "supabase", "svg", "tamagui", "uniwind", "unistyles", "worklets", "i18next", "zustand", "vexo-analytics"];
|
|
11
|
+
export type AuthenticationSelect = 'supabase' | 'firebase' | undefined;
|
|
12
|
+
export type NavigationSelect = 'react-navigation' | 'expo-router' | undefined;
|
|
13
|
+
export type NavigationTypes = 'stack' | 'tabs' | 'drawer + tabs' | undefined;
|
|
14
|
+
export type StylingSelect = 'nativewind' | 'stylesheet' | 'unistyles' | 'nativewindui' | 'uniwind' | 'restyle' | 'tamagui';
|
|
15
|
+
export type PackageManager = 'yarn' | 'npm' | 'pnpm' | 'bun';
|
|
16
|
+
export type StateManagementSelect = 'zustand' | undefined;
|
|
17
|
+
export type Internationalization = 'i18next';
|
|
18
|
+
export type Analytics = 'vexo-analytics';
|
|
19
|
+
export type SoftwareMansionSelect = 'react-native-gesture-handler' | 'react-native-reanimated' | 'react-native-keyboard-controller' | 'react-native-screens' | 'react-native-svg' | 'react-native-worklets';
|
|
20
|
+
export type SelectedComponents = 'action-sheet' | 'activity-indicator' | 'activity-view' | 'avatar' | 'button' | 'date-picker' | 'picker' | 'progress-indicator' | 'ratings-indicator' | 'slider' | 'text' | 'toggle';
|
|
21
|
+
export type AvailablePackages = {
|
|
22
|
+
name: (typeof availablePackages)[number];
|
|
23
|
+
type: 'navigation' | 'styling' | 'authentication' | 'internationalization' | 'state-management' | 'analytics' | 'software-mansion';
|
|
24
|
+
options?: {
|
|
25
|
+
selectedComponents?: SelectedComponents[];
|
|
26
|
+
type?: NavigationTypes;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export interface CliResults {
|
|
30
|
+
projectName: string;
|
|
31
|
+
packages: AvailablePackages[];
|
|
32
|
+
flags: CliFlags;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Analytics, AuthenticationSelect, CliFlags, Internationalization, NavigationSelect, NavigationTypes, PackageManager, SelectedComponents, StylingSelect } from '../types';
|
|
2
|
+
export declare function storeConfigAnalytics({ timestamp, cesVersion, authType, internalization, nativewindUIComponents, navigationLibrary, navigationType, packageManager, packageManagerVersion, stylingLibrary, eas, importAlias, noGit, noInstall, overwrite, os, osPlatform, osArch, osRelease, analytics }: {
|
|
3
|
+
timestamp: string;
|
|
4
|
+
cesVersion: string;
|
|
5
|
+
authType?: AuthenticationSelect;
|
|
6
|
+
navigationLibrary?: NavigationSelect;
|
|
7
|
+
navigationType?: NavigationTypes;
|
|
8
|
+
stylingLibrary?: StylingSelect;
|
|
9
|
+
packageManager: PackageManager;
|
|
10
|
+
packageManagerVersion: string;
|
|
11
|
+
internalization?: Internationalization;
|
|
12
|
+
nativewindUIComponents?: SelectedComponents[];
|
|
13
|
+
os: string;
|
|
14
|
+
osPlatform: string;
|
|
15
|
+
osArch: string;
|
|
16
|
+
osRelease: string;
|
|
17
|
+
analytics: Analytics;
|
|
18
|
+
} & Partial<CliFlags>): Promise<void>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Toolbox } from 'gluegun/build/types/domain/toolbox';
|
|
2
|
+
import { AvailablePackages, CliResults } from '../types';
|
|
3
|
+
export declare function configureProjectFiles(authenticationPackage: AvailablePackages | undefined, files: string[], navigationPackage: AvailablePackages | undefined, stylingPackage: AvailablePackages | undefined, analyticsPackage: AvailablePackages | undefined, toolbox: Toolbox, cliResults: CliResults, internalizationPackage: AvailablePackages | undefined, stateManagementPackage: AvailablePackages | undefined): string[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Toolbox } from 'gluegun/build/types/domain/toolbox';
|
|
2
|
+
import { AvailablePackages, CliResults, PackageManager } from '../types';
|
|
3
|
+
export declare function generateProjectFiles(authenticationPackage: AvailablePackages | undefined, analyticsPackage: AvailablePackages | undefined, cliResults: CliResults, files: string[], formattedFiles: any[], navigationPackage: AvailablePackages | undefined, packageManager: PackageManager, stylingPackage: AvailablePackages | undefined, toolbox: Toolbox, internalizationPackage: AvailablePackages | undefined, stateManagementPackage: AvailablePackages | undefined): any[];
|
|
4
|
+
export declare function toExpoSlug(projectName: string): string;
|
|
5
|
+
export declare function toExpoScheme(projectName: string): string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Toolbox } from 'gluegun/build/types/domain/toolbox';
|
|
2
|
+
import { CliResults } from '../types';
|
|
3
|
+
export type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
|
|
4
|
+
export type PackageManagerRunnerX = 'npx' | 'pnpx' | 'yarn dlx' | 'bunx';
|
|
5
|
+
export declare function getPackageManager(toolbox: Toolbox, cliResults: CliResults): PackageManager;
|
|
6
|
+
export declare function getPackageManagerRunnerX(toolbox: Toolbox, cliResults: CliResults): PackageManagerRunnerX;
|
|
7
|
+
export declare function getDefaultPackageManagerVersion(): string;
|
|
8
|
+
export declare function getVersionForPackageManager(packageManager: PackageManager): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './configureProjectFiles';
|
|
2
|
+
export * from './generateProjectFiles';
|
|
3
|
+
export * from './getPackageManager';
|
|
4
|
+
export * from './printOutput';
|
|
5
|
+
export * from './renderTitle';
|
|
6
|
+
export * from './runCLI';
|
|
7
|
+
export * from './runIgnite';
|
|
8
|
+
export * from './showHelp';
|
|
9
|
+
export * from './usePackage';
|
|
10
|
+
export * from './publishToGitHub';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function showHelp(info: any, highlight: any, warning: any): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Toolbox } from 'gluegun/build/types/domain/toolbox';
|
|
2
|
+
type STDIO = 'inherit' | 'ignore' | 'pipe' | 'overlapped';
|
|
3
|
+
export declare const ONLY_ERRORS: readonly ["ignore", "ignore", "inherit"];
|
|
4
|
+
export declare function quoteShellArg(value: string): string;
|
|
5
|
+
export declare function runSystemCommand({ command, errorMessage, stdio, toolbox, shell, env, failOnError }: {
|
|
6
|
+
command: string;
|
|
7
|
+
toolbox: Toolbox;
|
|
8
|
+
stdio: readonly [STDIO, STDIO, STDIO] | STDIO | undefined;
|
|
9
|
+
errorMessage: string;
|
|
10
|
+
shell?: boolean;
|
|
11
|
+
env?: Record<string, string>;
|
|
12
|
+
failOnError?: boolean;
|
|
13
|
+
}): Promise<any>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GluegunPrompt } from 'gluegun';
|
|
2
|
+
type ExistsResult = false | 'dir' | 'file' | 'other';
|
|
3
|
+
export declare function validateProjectName(exists: (path: string) => ExistsResult, removeAsync: (path?: string) => Promise<void>, prompt: GluegunPrompt | null, projectName: string, overwrite: boolean): Promise<void>;
|
|
4
|
+
export {};
|
package/build/types.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.availablePackages = void 0;
|
|
4
|
+
exports.availablePackages = [
|
|
5
|
+
'@react-navigation/drawer',
|
|
6
|
+
'expo-router',
|
|
7
|
+
'expoRouter',
|
|
8
|
+
'firebase',
|
|
9
|
+
'nativewind',
|
|
10
|
+
'nativewindui',
|
|
11
|
+
'nwui',
|
|
12
|
+
'react-navigation',
|
|
13
|
+
'reactNavigation',
|
|
14
|
+
'gesture-handler',
|
|
15
|
+
'gestureHandler',
|
|
16
|
+
'reanimated',
|
|
17
|
+
'react-native-gesture-handler',
|
|
18
|
+
'react-native-reanimated',
|
|
19
|
+
'react-native-keyboard-controller',
|
|
20
|
+
'react-native-screens',
|
|
21
|
+
'react-native-svg',
|
|
22
|
+
'react-native-worklets',
|
|
23
|
+
'keyboard-controller',
|
|
24
|
+
'keyboardController',
|
|
25
|
+
'reactnavigation',
|
|
26
|
+
'screens',
|
|
27
|
+
'restyle',
|
|
28
|
+
'stylesheet',
|
|
29
|
+
'supabase',
|
|
30
|
+
'svg',
|
|
31
|
+
'tamagui',
|
|
32
|
+
'uniwind',
|
|
33
|
+
'unistyles',
|
|
34
|
+
'worklets',
|
|
35
|
+
'i18next',
|
|
36
|
+
'zustand',
|
|
37
|
+
'vexo-analytics'
|
|
38
|
+
];
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV2EsUUFBQSxpQkFBaUIsR0FBRztJQUMvQiwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLFlBQVk7SUFDWixVQUFVO0lBQ1YsWUFBWTtJQUNaLGNBQWM7SUFDZCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWiw4QkFBOEI7SUFDOUIseUJBQXlCO0lBQ3pCLGtDQUFrQztJQUNsQyxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2QixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixTQUFTO0lBQ1QsU0FBUztJQUNULFlBQVk7SUFDWixVQUFVO0lBQ1YsS0FBSztJQUNMLFNBQVM7SUFDVCxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixTQUFTO0lBQ1QsU0FBUztJQUNULGdCQUFnQjtDQUNSLENBQUMifQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const child_process_1 = require("child_process");
|
|
4
|
+
function bumpVersion(type) {
|
|
5
|
+
if (['major', 'minor', 'patch'].includes(type)) {
|
|
6
|
+
try {
|
|
7
|
+
(0, child_process_1.execSync)(`npm version ${type}`, { stdio: 'inherit' });
|
|
8
|
+
console.log(`${type.charAt(0).toUpperCase() + type.slice(1)} version bumped successfully.`);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
console.error(`Error bumping the ${type} version:`, error);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
console.error('Invalid version type. Please use "major", "minor", or "patch".');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
// Get the argument from the command line
|
|
19
|
+
const versionType = process.argv[2];
|
|
20
|
+
bumpVersion(versionType);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcFZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2J1bXBWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQXlDO0FBRXpDLFNBQVMsV0FBVyxDQUFDLElBQVk7SUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDO1lBQ0gsSUFBQSx3QkFBUSxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7QUFDSCxDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function clearNavigationPackages(cliResults) {
|
|
4
|
+
const stylingPackageIndex = cliResults.packages.findIndex((p) => p.type === 'navigation');
|
|
5
|
+
if (stylingPackageIndex !== -1) {
|
|
6
|
+
cliResults.packages.splice(stylingPackageIndex, 1);
|
|
7
|
+
}
|
|
8
|
+
return cliResults;
|
|
9
|
+
}
|
|
10
|
+
exports.default = clearNavigationPackages;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXJOYXZpZ2F0aW9uUGFja2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2NsZWFyTmF2aWdhdGlvblBhY2thZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsU0FBd0IsdUJBQXVCLENBQUMsVUFBc0I7SUFDcEUsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQztJQUMxRixJQUFJLG1CQUFtQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFORCwwQ0FNQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function clearStylingPackages(cliResults) {
|
|
4
|
+
const stylingPackageIndex = cliResults.packages.findIndex((p) => p.type === 'styling');
|
|
5
|
+
if (stylingPackageIndex !== -1) {
|
|
6
|
+
cliResults.packages.splice(stylingPackageIndex, 1);
|
|
7
|
+
}
|
|
8
|
+
return cliResults;
|
|
9
|
+
}
|
|
10
|
+
exports.default = clearStylingPackages;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXJTdHlsaW5nUGFja2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2NsZWFyU3R5bGluZ1BhY2thZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsU0FBd0Isb0JBQW9CLENBQUMsVUFBc0I7SUFDakUsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN2RixJQUFJLG1CQUFtQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFORCx1Q0FNQyJ9
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.storeConfigAnalytics = void 0;
|
|
13
|
+
const google_auth_library_1 = require("google-auth-library");
|
|
14
|
+
const googleapis_1 = require("googleapis");
|
|
15
|
+
const key_data = 'eyJ0eXBlIjoic2VydmljZV9hY2NvdW50IiwicHJvamVjdF9pZCI6ImNyZWF0ZS1leHBvLXN0YWNrLWFuYWx5dGljcyIsInByaXZhdGVfa2V5X2lkIjoiNTdmZTc1OThmYTRkM2NkNWNhN2E0MmU4OGM1ZWYwMzdjODljNDI3NiIsInByaXZhdGVfa2V5IjoiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdkFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLWXdnZ1NpQWdFQUFvSUJBUURndnl6TTV3cFMrUnJRXG5hRmJBZmhwRU15dnhQK1IxV1p6Ykx1Nm1QblpsOVNvZmVHK0hHejdHWWNoZ29ScU9iaEk0MERpL1ZmblA0MVpEXG5kQVZTYXhMSlZSdm9ESHlEUkxRQzcrRE5TWWFEWlRSMXpIdGl6Z2M4UUhxbjV0Qmt0YXdWdWc5ZkhBUFk0MmtBXG4xcjlhdmttakNoM2sxSTNxdFhlbVlUQWt5Z09FZXVLbzJzbmptajcyNUZLRDBRREJKSlVhYnVyd3RrR1doV3pKXG5LaEd6YlNlb0JIeGJMemNlUDlGang1RFlTdW5oS2E1blFXdGRzS2dwdlgzSGthZEU2V0NYQjg1ZHd4MytHVGRVXG5ybnFUSTRRVWpWRHV3SnFaOEpWUEZjYUF2L0dlbHdUT1VGNGNROFQ4VWVadGtHUzN2L1hlRmROL1BTZGZYM0tZXG5CNVEwdXNtREFnTUJBQUVDZ2dFQU9KK0J5b2dGSGwxN1ozbDZMZG8zaE9vOWpuVVIrb3pleTR3Wi9WRnNaQWl1XG5HYXF1c3FQbkgzVWdWbFFRakVUb0cxOCtoTnBFNjU3enExL3VQVk1Uc3h6WndJOXd5V1BFVko4YURLNlRFTVN0XG5RR2FKeVoxdHpqelNpajNKVUM1RFVtQURvbXM4L3VaZ25LRCtLZjhhTDFVTHJnenRTbTU0M0RiTk9kK1pua1VjXG5zeDYzVXVQNmdVY0tiVDRhTVl3Wk5mL3BzUW9SMkdwaXdSQjhQd3hzS0x1Uk5qcC8rTHZuYXV4dkRvY1hvbHFRXG41UHFFYi9pOFlKMlJ3alI2THBUc3FIdWtIZ056ZytOci9JQnpUWDR5Y0V2OWh6bWw4VzVGOGRDd1IzQkYyV05XXG52VmFYZVRNY1ZFcWcxWS9TMDd0UUMrTlFuWHlFY0pSOGRVcW8zQU1qTVFLQmdRRDFkbE54TXlXYnRVSDZPaWx2XG4rbXF2OWdkSVZ1eVJWeEtydG9PcVlqd2gzWEVYZW9seU9Selhac0hvNlQ5b0NpZnRpenBQOXFmYkNWYVAzdk1BXG43OWl3cE4vUE1QY1NoeWtnR2RyR1ArRUY3ODV0amtLQ2dmSE9PbUxUbEp5Z3psdTFuUU1vcTcwOGdoeXd6MEtmXG5tekc4OVlHQ1RmaTMvSmQ5MWN3WU5IRHhrd0tCZ1FEcVpTN0ZYNEt2cjlpWll0Vko4VDRHNE0zUVJ2dWJRMUFoXG5Yd0ZVN2JDUzJ1M294cktlZnJPTFlCTHJsbXQ0Qk1tL2NLMVNteHBndHZrdEQ3WFVtcVdrUGRnRUhGaUxjcHoxXG5XS0tTKytpRHE4SXplZzUxMFBkcVAwbVNlY1R6cHk1V2hmMHJwTi9vVDY0YVJnVUVmaEZtZHdVYWZRcnlOY1B1XG5uMWlEa0loK1VRS0JnSEJWODhBbHdUdHVpOEJoNTk3b2d2VCtxcnlQazNxOGw3M2dMSWZJcDI1ME1yS2xFTXdtXG5tUzEzU0owNFNoMXFNSFhGTnkyclc0eWh6R3pSZ3ZMVjBaeWVDQk9CZkVHTmUrUEdFVnFUbDM4cERaY1QrUnBUXG5MLy9LdHJuUUZKSi9mbmN5WVdTMm5FZFo0Sm1HY1I0c1gybjBEWTQ5OHVyNC9iZklKYnlhRzJwakFvR0FkRG9DXG5EQ3JGRWJyZmE0ZWZmWS9iRXV3TUFqZ0FjVWZhaHdHbUZtZmFRNmU5aXN4a0s4Vmw0RG1laUNWSld2VDgyU25WXG5OLzNqQVl3WldLZk9vUUtpR2lQMFptMXIxcEhabEtzRHltQ1JOaUZJSmVCakpUYWVTSmZqTW5laEdyU09mS2JxXG5GK2NrZy94bXQyNTY5SFJTeW4xQUVaZHBneHIzOGU0ZnBQVlpTVkVDZ1lBWkw2K0pTdXoxY3BsaXloQ3lJU2NXXG5RWEFTMTNiRXMvbHd6MjhZT3ltN2JnMzVzZjdhOFBPMjBocGNPWnVERERySlpjME9LbG9tNXQzSHYxUDIreWNOXG5NczFQbnBqRjFEYlZ6ZFBDcm8xTkxKdTk4eEVYNWJXSXRDUkF1Q1hKUS90MWVKL3d6TThjbGhLYnRYVGdQTHl4XG5mSnViMERTWFpqUmtYUFNDcU0yb0t3PT1cbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsImNsaWVudF9lbWFpbCI6ImNlcy1hbmFseXRpY3NAY3JlYXRlLWV4cG8tc3RhY2stYW5hbHl0aWNzLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwiY2xpZW50X2lkIjoiMTEyMjg4MzM5NDYxNTA5NDM0MTcwIiwiYXV0aF91cmkiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCIsInRva2VuX3VyaSI6Imh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwiYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwiY2xpZW50X3g1MDlfY2VydF91cmwiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9yb2JvdC92MS9tZXRhZGF0YS94NTA5L2Nlcy1hbmFseXRpY3MlNDBjcmVhdGUtZXhwby1zdGFjay1hbmFseXRpY3MuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJ1bml2ZXJzZV9kb21haW4iOiJnb29nbGVhcGlzLmNvbSJ9';
|
|
16
|
+
const keys = Buffer.from(key_data, 'base64').toString('utf-8');
|
|
17
|
+
function storeConfigAnalytics(_a) {
|
|
18
|
+
return __awaiter(this, arguments, void 0, function* ({ timestamp, cesVersion, authType, internalization, nativewindUIComponents = [], navigationLibrary, navigationType, packageManager, packageManagerVersion, stylingLibrary, eas, importAlias, noGit, noInstall, overwrite, os, osPlatform, osArch, osRelease, analytics }) {
|
|
19
|
+
var _b;
|
|
20
|
+
if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
|
|
21
|
+
console.log('Skipping analytics in development or test environment');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const auth = new google_auth_library_1.GoogleAuth({
|
|
26
|
+
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
|
|
27
|
+
credentials: JSON.parse(keys)
|
|
28
|
+
});
|
|
29
|
+
const service = googleapis_1.google.sheets({ version: 'v4', auth });
|
|
30
|
+
yield service.spreadsheets.values.append({
|
|
31
|
+
spreadsheetId: '1Nav_XXi8stJjaBBK8bX0CebRF5QKXU25BZc57I06yGQ',
|
|
32
|
+
range: 'Sheet1!A:A',
|
|
33
|
+
valueInputOption: 'RAW',
|
|
34
|
+
requestBody: {
|
|
35
|
+
values: [
|
|
36
|
+
[
|
|
37
|
+
timestamp !== null && timestamp !== void 0 ? timestamp : '',
|
|
38
|
+
cesVersion !== null && cesVersion !== void 0 ? cesVersion : '',
|
|
39
|
+
navigationLibrary !== null && navigationLibrary !== void 0 ? navigationLibrary : '',
|
|
40
|
+
navigationType !== null && navigationType !== void 0 ? navigationType : '',
|
|
41
|
+
stylingLibrary !== null && stylingLibrary !== void 0 ? stylingLibrary : '',
|
|
42
|
+
packageManager,
|
|
43
|
+
packageManagerVersion !== null && packageManagerVersion !== void 0 ? packageManagerVersion : '',
|
|
44
|
+
internalization !== null && internalization !== void 0 ? internalization : '',
|
|
45
|
+
(_b = nativewindUIComponents === null || nativewindUIComponents === void 0 ? void 0 : nativewindUIComponents.join(',')) !== null && _b !== void 0 ? _b : '',
|
|
46
|
+
authType !== null && authType !== void 0 ? authType : '',
|
|
47
|
+
eas ? 'true' : 'false',
|
|
48
|
+
importAlias ? 'true' : 'false',
|
|
49
|
+
noGit ? 'true' : 'false',
|
|
50
|
+
noInstall ? 'true' : 'false',
|
|
51
|
+
overwrite ? 'true' : 'false',
|
|
52
|
+
os !== null && os !== void 0 ? os : '',
|
|
53
|
+
osPlatform !== null && osPlatform !== void 0 ? osPlatform : '',
|
|
54
|
+
osArch !== null && osArch !== void 0 ? osArch : '',
|
|
55
|
+
osRelease !== null && osRelease !== void 0 ? osRelease : '',
|
|
56
|
+
analytics !== null && analytics !== void 0 ? analytics : ''
|
|
57
|
+
]
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
insertDataOption: 'INSERT_ROWS'
|
|
61
|
+
});
|
|
62
|
+
// return result;
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
console.warn('analytics API returned an error: ' + err);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
exports.storeConfigAnalytics = storeConfigAnalytics;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnQW5hbHl0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9jb25maWdBbmFseXRpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQWlEO0FBQ2pELDJDQUFvQztBQWFwQyxNQUFNLFFBQVEsR0FDWixza0dBQXNrRyxDQUFDO0FBRXprRyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFL0QsU0FBc0Isb0JBQW9CO3lEQUFDLEVBQ3pDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFDZixzQkFBc0IsR0FBRyxFQUFFLEVBQzNCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsR0FBRyxFQUNILFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxFQUFFLEVBQ0YsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQWlCVTs7UUFDbkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDOUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQ3JFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxnQ0FBVSxDQUFDO2dCQUMxQixNQUFNLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztnQkFDeEQsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQzlCLENBQUMsQ0FBQztZQUVILE1BQU0sT0FBTyxHQUFHLG1CQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRXZELE1BQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxhQUFhLEVBQUUsOENBQThDO2dCQUM3RCxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsV0FBVyxFQUFFO29CQUNYLE1BQU0sRUFBRTt3QkFDTjs0QkFDRSxTQUFTLGFBQVQsU0FBUyxjQUFULFNBQVMsR0FBSSxFQUFFOzRCQUNmLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLEVBQUU7NEJBQ2hCLGlCQUFpQixhQUFqQixpQkFBaUIsY0FBakIsaUJBQWlCLEdBQUksRUFBRTs0QkFDdkIsY0FBYyxhQUFkLGNBQWMsY0FBZCxjQUFjLEdBQUksRUFBRTs0QkFDcEIsY0FBYyxhQUFkLGNBQWMsY0FBZCxjQUFjLEdBQUksRUFBRTs0QkFDcEIsY0FBYzs0QkFDZCxxQkFBcUIsYUFBckIscUJBQXFCLGNBQXJCLHFCQUFxQixHQUFJLEVBQUU7NEJBQzNCLGVBQWUsYUFBZixlQUFlLGNBQWYsZUFBZSxHQUFJLEVBQUU7NEJBQ3JCLE1BQUEsc0JBQXNCLGFBQXRCLHNCQUFzQix1QkFBdEIsc0JBQXNCLENBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQ0FBSSxFQUFFOzRCQUN2QyxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxFQUFFOzRCQUNkLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPOzRCQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzs0QkFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87NEJBQ3hCLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPOzRCQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzs0QkFDNUIsRUFBRSxhQUFGLEVBQUUsY0FBRixFQUFFLEdBQUksRUFBRTs0QkFDUixVQUFVLGFBQVYsVUFBVSxjQUFWLFVBQVUsR0FBSSxFQUFFOzRCQUNoQixNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFOzRCQUNaLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLEVBQUU7NEJBQ2YsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksRUFBRTt5QkFDaEI7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsZ0JBQWdCLEVBQUUsYUFBYTthQUNoQyxDQUFDLENBQUM7WUFFSCxpQkFBaUI7UUFDbkIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0NBQUE7QUF4RkQsb0RBd0ZDIn0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.loadConfigs = exports.saveConfig = void 0;
|
|
16
|
+
const fs_1 = require("fs");
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const os_1 = __importDefault(require("os"));
|
|
19
|
+
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.create-expo-stack');
|
|
20
|
+
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'configurations.json');
|
|
21
|
+
const ensureConfigDirExists = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
yield fs_1.promises.mkdir(CONFIG_DIR, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error.code !== 'EEXIST') {
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const saveConfig = (config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
yield ensureConfigDirExists();
|
|
33
|
+
const configs = yield (0, exports.loadConfigs)();
|
|
34
|
+
yield fs_1.promises.writeFile(CONFIG_FILE, JSON.stringify([...configs, config], null, 2));
|
|
35
|
+
});
|
|
36
|
+
exports.saveConfig = saveConfig;
|
|
37
|
+
const loadConfigs = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
+
try {
|
|
39
|
+
const data = yield fs_1.promises.readFile(CONFIG_FILE, 'utf8');
|
|
40
|
+
return JSON.parse(data);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error.code === 'ENOENT') {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
exports.loadConfigs = loadConfigs;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBb0M7QUFDcEMsZ0RBQXdCO0FBRXhCLDRDQUFvQjtBQUVwQixNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ2pFLE1BQU0sV0FBVyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFPakUsTUFBTSxxQkFBcUIsR0FBRyxHQUFTLEVBQUU7SUFDdkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxhQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUEsQ0FBQztBQUVLLE1BQU0sVUFBVSxHQUFHLENBQU8sTUFBaUIsRUFBaUIsRUFBRTtJQUNuRSxNQUFNLHFCQUFxQixFQUFFLENBQUM7SUFDOUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLG1CQUFXLEdBQUUsQ0FBQztJQUNwQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDLENBQUEsQ0FBQztBQUpXLFFBQUEsVUFBVSxjQUlyQjtBQUVLLE1BQU0sV0FBVyxHQUFHLEdBQStCLEVBQUU7SUFDMUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyxDQUFBLENBQUM7QUFWVyxRQUFBLFdBQVcsZUFVdEIifQ==
|