create-expo-stack 2.10.5-next.08640a3 → 2.10.5-next.0aee640

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.
@@ -8,354 +8,413 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
11
38
  Object.defineProperty(exports, "__esModule", { value: true });
12
39
  exports.runCLI = void 0;
13
- const prompts_1 = require("@clack/prompts");
14
- const constants_1 = require("../constants");
15
- const getPackageManager_1 = require("./getPackageManager");
16
- const configStorage_1 = require("./configStorage");
17
- const recommendedBunVersion = '1.0.22';
40
+ var prompts_1 = require("@clack/prompts");
41
+ var constants_1 = require("../constants");
42
+ var getPackageManager_1 = require("./getPackageManager");
43
+ var configStorage_1 = require("./configStorage");
44
+ var recommendedBunVersion = '1.0.22';
18
45
  function runCLI(toolbox, projectName) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- const { parameters: { options }, print: { info, success, warning } } = toolbox;
21
- // Set the default options
22
- const cliResults = constants_1.defaultOptions;
23
- // Project name already validated, just set cliResults
24
- cliResults.projectName = projectName;
25
- cliResults.flags.overwrite = !!options.overwrite;
26
- cliResults.flags.eas = !!options.eas;
27
- // Clear default packages
28
- cliResults.packages = [];
29
- // Check whether the user has any saved create expo stack configurations
30
- const savedConfigs = yield (0, configStorage_1.loadConfigs)();
31
- // If the user has saved configurations, ask if they would like to use them
32
- if (savedConfigs.length > 0) {
33
- const useSavedConfig = yield (0, prompts_1.confirm)({
34
- message: 'Would you like to use a saved configuration?',
35
- initialValue: false
36
- });
37
- if ((0, prompts_1.isCancel)(useSavedConfig)) {
38
- (0, prompts_1.cancel)('Cancelled... 👋');
39
- return process.exit(0);
40
- }
41
- if (useSavedConfig) {
42
- const savedConfigSelect = yield (0, prompts_1.select)({
43
- message: 'Which saved configuration would you like to use?',
44
- options: savedConfigs.map((config) => ({ value: config.name, label: config.name }))
45
- });
46
- if ((0, prompts_1.isCancel)(savedConfigSelect)) {
47
- (0, prompts_1.cancel)('Cancelled... 👋');
48
- return process.exit(0);
49
- }
50
- const selectedConfig = savedConfigs.find((config) => config.name === savedConfigSelect);
51
- if (selectedConfig) {
52
- cliResults.packages = selectedConfig.cliResults.packages;
53
- cliResults.flags = selectedConfig.cliResults.flags;
54
- success(`Using saved configuration: ${selectedConfig.name}`);
55
- return cliResults;
56
- }
57
- else {
58
- warning('Saved configuration not found, continuing with default configuration.');
59
- }
60
- }
61
- }
62
- // Ask about TypeScript
63
- const shouldUseTypescript = yield (0, prompts_1.confirm)({
64
- message: 'Would you like to use TypeScript with this project?',
65
- initialValue: true
66
- });
67
- if ((0, prompts_1.isCancel)(shouldUseTypescript)) {
68
- (0, prompts_1.cancel)('Cancelled... 👋');
69
- return process.exit(0);
70
- }
71
- if (shouldUseTypescript) {
72
- success('Good call, now using TypeScript! 🚀');
73
- }
74
- else {
75
- success(`Wrong answer, we're gonna use Typescript.`);
76
- }
77
- const defaultPackageManagerVersion = (0, getPackageManager_1.getDefaultPackageManagerVersion)();
78
- if (cliResults.flags.packageManager) {
79
- if (options.bun || options.pnpm || options.npm || options.yarn) {
80
- cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
81
- }
82
- else {
83
- const shouldUseDefaultPackageManager = yield (0, prompts_1.confirm)({
84
- message: `\nWe've detected ${cliResults.flags.packageManager} ${defaultPackageManagerVersion ? `v${defaultPackageManagerVersion}` : ''} as your preferred package manager.\nWould you like to continue using it?`,
85
- initialValue: true
86
- });
87
- if ((0, prompts_1.isCancel)(shouldUseDefaultPackageManager)) {
88
- (0, prompts_1.cancel)('Cancelled... 👋');
89
- return process.exit(0);
90
- }
91
- if (!shouldUseDefaultPackageManager) {
92
- const packageManagerSelect = yield (0, prompts_1.select)({
93
- message: 'Gotcha! Which package manager would you like to use?',
46
+ return __awaiter(this, void 0, void 0, function () {
47
+ var options, _a, info, success, warning, cliResults, savedConfigs, useSavedConfig, savedConfigSelect_1, selectedConfig, shouldUseTypescript, defaultPackageManagerVersion, shouldUseDefaultPackageManager, packageManagerSelect, packageManagerSelect, navigationSelect, navigationType, shouldContinue, shouldContinue, stylingSelect, selectedComponents, authenticationSelect, easEnabled, shouldSaveConfig, name;
48
+ return __generator(this, function (_b) {
49
+ switch (_b.label) {
50
+ case 0:
51
+ options = toolbox.parameters.options, _a = toolbox.print, info = _a.info, success = _a.success, warning = _a.warning;
52
+ cliResults = constants_1.defaultOptions;
53
+ // Project name already validated, just set cliResults
54
+ cliResults.projectName = projectName;
55
+ cliResults.flags.overwrite = !!options.overwrite;
56
+ cliResults.flags.eas = !!options.eas;
57
+ // Clear default packages
58
+ cliResults.packages = [];
59
+ return [4 /*yield*/, (0, configStorage_1.loadConfigs)()];
60
+ case 1:
61
+ savedConfigs = _b.sent();
62
+ if (!(savedConfigs.length > 0)) return [3 /*break*/, 4];
63
+ return [4 /*yield*/, (0, prompts_1.confirm)({
64
+ message: 'Would you like to use a saved configuration?',
65
+ initialValue: false
66
+ })];
67
+ case 2:
68
+ useSavedConfig = _b.sent();
69
+ if ((0, prompts_1.isCancel)(useSavedConfig)) {
70
+ (0, prompts_1.cancel)('Cancelled... 👋');
71
+ return [2 /*return*/, process.exit(0)];
72
+ }
73
+ if (!useSavedConfig) return [3 /*break*/, 4];
74
+ return [4 /*yield*/, (0, prompts_1.select)({
75
+ message: 'Which saved configuration would you like to use?',
76
+ options: savedConfigs.map(function (config) { return ({ value: config.name, label: config.name }); })
77
+ })];
78
+ case 3:
79
+ savedConfigSelect_1 = _b.sent();
80
+ if ((0, prompts_1.isCancel)(savedConfigSelect_1)) {
81
+ (0, prompts_1.cancel)('Cancelled... 👋');
82
+ return [2 /*return*/, process.exit(0)];
83
+ }
84
+ selectedConfig = savedConfigs.find(function (config) { return config.name === savedConfigSelect_1; });
85
+ if (selectedConfig) {
86
+ cliResults.packages = selectedConfig.cliResults.packages;
87
+ cliResults.flags = selectedConfig.cliResults.flags;
88
+ success("Using saved configuration: ".concat(selectedConfig.name));
89
+ return [2 /*return*/, cliResults];
90
+ }
91
+ else {
92
+ warning('Saved configuration not found, continuing with default configuration.');
93
+ }
94
+ _b.label = 4;
95
+ case 4: return [4 /*yield*/, (0, prompts_1.confirm)({
96
+ message: 'Would you like to use TypeScript with this project?',
97
+ initialValue: true
98
+ })];
99
+ case 5:
100
+ shouldUseTypescript = _b.sent();
101
+ if ((0, prompts_1.isCancel)(shouldUseTypescript)) {
102
+ (0, prompts_1.cancel)('Cancelled... 👋');
103
+ return [2 /*return*/, process.exit(0)];
104
+ }
105
+ if (shouldUseTypescript) {
106
+ success('Good call, now using TypeScript! 🚀');
107
+ }
108
+ else {
109
+ success("Wrong answer, we're gonna use Typescript.");
110
+ }
111
+ defaultPackageManagerVersion = (0, getPackageManager_1.getDefaultPackageManagerVersion)();
112
+ if (!cliResults.flags.packageManager) return [3 /*break*/, 10];
113
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 6];
114
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
115
+ return [3 /*break*/, 9];
116
+ case 6: return [4 /*yield*/, (0, prompts_1.confirm)({
117
+ message: "\nWe've detected ".concat(cliResults.flags.packageManager, " ").concat(defaultPackageManagerVersion ? "v".concat(defaultPackageManagerVersion) : '', " as your preferred package manager.\nWould you like to continue using it?"),
118
+ initialValue: true
119
+ })];
120
+ case 7:
121
+ shouldUseDefaultPackageManager = _b.sent();
122
+ if ((0, prompts_1.isCancel)(shouldUseDefaultPackageManager)) {
123
+ (0, prompts_1.cancel)('Cancelled... 👋');
124
+ return [2 /*return*/, process.exit(0)];
125
+ }
126
+ if (!!shouldUseDefaultPackageManager) return [3 /*break*/, 9];
127
+ return [4 /*yield*/, (0, prompts_1.select)({
128
+ message: 'Gotcha! Which package manager would you like to use?',
129
+ options: [
130
+ { value: 'npm', label: 'npm' },
131
+ { value: 'yarn', label: 'yarn' },
132
+ { value: 'pnpm', label: 'pnpm' },
133
+ { value: 'bun', label: 'bun' }
134
+ ],
135
+ initialValue: 'npm'
136
+ })];
137
+ case 8:
138
+ packageManagerSelect = _b.sent();
139
+ if ((0, prompts_1.isCancel)(packageManagerSelect)) {
140
+ (0, prompts_1.cancel)('Cancelled... 👋');
141
+ return [2 /*return*/, process.exit(0)];
142
+ }
143
+ cliResults.flags.packageManager = packageManagerSelect;
144
+ _b.label = 9;
145
+ case 9: return [3 /*break*/, 13];
146
+ case 10:
147
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 11];
148
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
149
+ return [3 /*break*/, 13];
150
+ case 11: return [4 /*yield*/, (0, prompts_1.select)({
151
+ message: 'Which package manager would you like to use?',
94
152
  options: [
95
153
  { value: 'npm', label: 'npm' },
96
154
  { value: 'yarn', label: 'yarn' },
97
155
  { value: 'pnpm', label: 'pnpm' },
98
156
  { value: 'bun', label: 'bun' }
99
- ],
100
- initialValue: 'npm'
101
- });
157
+ ]
158
+ })];
159
+ case 12:
160
+ packageManagerSelect = _b.sent();
102
161
  if ((0, prompts_1.isCancel)(packageManagerSelect)) {
103
162
  (0, prompts_1.cancel)('Cancelled... 👋');
104
- return process.exit(0);
163
+ return [2 /*return*/, process.exit(0)];
105
164
  }
106
165
  cliResults.flags.packageManager = packageManagerSelect;
107
- }
108
- }
109
- }
110
- else {
111
- if (options.bun || options.pnpm || options.npm || options.yarn) {
112
- cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
113
- }
114
- else {
115
- const packageManagerSelect = yield (0, prompts_1.select)({
116
- message: 'Which package manager would you like to use?',
117
- options: [
118
- { value: 'npm', label: 'npm' },
119
- { value: 'yarn', label: 'yarn' },
120
- { value: 'pnpm', label: 'pnpm' },
121
- { value: 'bun', label: 'bun' }
122
- ]
123
- });
124
- if ((0, prompts_1.isCancel)(packageManagerSelect)) {
125
- (0, prompts_1.cancel)('Cancelled... 👋');
126
- return process.exit(0);
127
- }
128
- cliResults.flags.packageManager = packageManagerSelect;
129
- }
130
- }
131
- const navigationSelect = yield (0, prompts_1.select)({
132
- message: 'What would you like to use for Navigation?',
133
- options: [
134
- { value: 'react-navigation', label: 'React Navigation' },
135
- { value: 'expo-router', label: 'Expo Router' },
136
- { value: undefined, label: 'None' }
137
- ],
138
- initialValue: 'expo-router'
139
- });
140
- if ((0, prompts_1.isCancel)(navigationSelect)) {
141
- (0, prompts_1.cancel)('Cancelled... 👋');
142
- return process.exit(0);
143
- }
144
- if (navigationSelect) {
145
- const navigationType = yield (0, prompts_1.select)({
146
- message: 'What type of navigation would you like to use?',
147
- options: [
148
- { value: 'stack', label: 'Stack' },
149
- { value: 'tabs', label: 'Tabs' },
150
- { value: 'drawer + tabs', label: 'Drawer + Tabs' }
151
- ]
152
- });
153
- if ((0, prompts_1.isCancel)(navigationType)) {
154
- (0, prompts_1.cancel)('Cancelled... 👋');
155
- return process.exit(0);
156
- }
157
- cliResults.packages.push({
158
- name: navigationSelect,
159
- type: 'navigation',
160
- options: {
161
- type: navigationType
162
- }
163
- });
164
- // If the user is using a version of bun that is anything but version 1.0.22, communicate a message
165
- if (cliResults.flags.packageManager === 'bun' &&
166
- defaultPackageManagerVersion &&
167
- defaultPackageManagerVersion !== recommendedBunVersion) {
168
- warning('⚠️' + ' ' + ` We've detected you're using Bun v${defaultPackageManagerVersion}.`);
169
- info('');
170
- warning(`Some packages may not work correctly if you continue. We recommend using Bun v${recommendedBunVersion} until peerDependencies are properly resolved with bun install.`);
171
- warning(`For more information, visit https://github.com/oven-sh/bun/issues/4946`);
172
- info('');
173
- warning(`To switch to Bun v${recommendedBunVersion}, run:`);
174
- info('');
175
- warning(`\tcurl -fsSL https://bun.sh/install | bash -s "bun-v${recommendedBunVersion}"`);
176
- info('');
177
- warning(`or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).`);
178
- info('');
179
- const shouldContinue = yield (0, prompts_1.confirm)({
180
- message: `Would you like to continue without switching to Bun v${recommendedBunVersion}?`,
181
- initialValue: false
182
- });
183
- if ((0, prompts_1.isCancel)(shouldContinue)) {
184
- (0, prompts_1.cancel)('Cancelled... 👋');
185
- return process.exit(0);
186
- }
187
- success(`Great, we'll use ${navigationSelect}!`);
188
- }
189
- else if (cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion) {
190
- warning('⚠️' + ' ' + ` We've detected you're using Bun but we are unable to determine which version you are using.`);
191
- info('');
192
- warning(`We recommend using Bun v${recommendedBunVersion} until peerDependencies are properly resolved with bun install. If you continue with a version that is not v${recommendedBunVersion}, some packages may not work correctly.`);
193
- warning(`For more information, visit https://github.com/oven-sh/bun/issues/4946`);
194
- info('');
195
- warning(`To check your version of Bun, run:`);
196
- info('');
197
- warning(`\tbun -version`);
198
- info('');
199
- warning(`To switch to Bun v${recommendedBunVersion}, run:`);
200
- info('');
201
- warning(`\tcurl -fsSL https://bun.sh/install | bash -s "bun-v${recommendedBunVersion}"`);
202
- info('');
203
- warning(`or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).`);
204
- info('');
205
- const shouldContinue = yield (0, prompts_1.confirm)({
206
- message: `Would you like to continue with your current version of Bun?`,
207
- initialValue: false
208
- });
209
- if ((0, prompts_1.isCancel)(shouldContinue)) {
210
- (0, prompts_1.cancel)('Cancelled... 👋');
211
- return process.exit(0);
212
- }
213
- success(`Great, we'll use ${navigationSelect}!`);
214
- }
215
- }
216
- else {
217
- success(`No problem, skipping navigation for now.`);
218
- }
219
- const stylingSelect = yield (0, prompts_1.select)({
220
- message: 'What would you like to use for styling?',
221
- options: navigationSelect === 'expo-router'
222
- ? [
223
- { value: 'nativewindui', label: 'NativeWindUI' },
224
- { value: 'nativewind', label: 'NativeWind' },
225
- { value: 'restyle', label: 'Restyle' },
226
- { value: 'stylesheet', label: 'StyleSheet' },
227
- { value: 'tamagui', label: 'Tamagui (experimental)' },
228
- { value: 'unistyles', label: 'Unistyles' }
229
- ]
230
- : [
231
- { value: 'nativewind', label: 'NativeWind' },
232
- { value: 'restyle', label: 'Restyle' },
233
- { value: 'stylesheet', label: 'StyleSheet' },
234
- { value: 'tamagui', label: 'Tamagui (experimental)' },
235
- { value: 'unistyles', label: 'Unistyles' }
236
- ],
237
- initialValue: navigationSelect === 'expo-router' ? 'nativewindui' : 'nativewind'
238
- });
239
- if ((0, prompts_1.isCancel)(stylingSelect)) {
240
- (0, prompts_1.cancel)('Cancelled... 👋');
241
- return process.exit(0);
242
- }
243
- if (stylingSelect === 'nativewindui') {
244
- let selectedComponents = [];
245
- selectedComponents = (yield (0, prompts_1.multiselect)({
246
- message: 'Which components would you like to explore?',
247
- options: [
248
- { value: 'action-sheet', label: 'Action Sheet' },
249
- { value: 'activity-indicator', label: 'Activity Indicator' },
250
- { value: 'activity-view', label: 'Activity View' },
251
- { value: 'alert', label: 'Alert' },
252
- { value: 'avatar', label: 'Avatar' },
253
- { value: 'bottom-sheet', label: 'Bottom Sheet' },
254
- { value: 'context-menu', label: 'Context Menu' },
255
- { value: 'date-picker', label: 'Date Picker' },
256
- { value: 'dropdown-menu', label: 'Dropdown Menu' },
257
- { value: 'picker', label: 'Picker' },
258
- { value: 'progress-indicator', label: 'Progress Indicator' },
259
- { value: 'ratings-indicator', label: 'Ratings Indicator' },
260
- { value: 'segmented-control', label: 'Segmented Control' },
261
- { value: 'selectable-text', label: 'Selectable Text' },
262
- { value: 'slider', label: 'Slider' },
263
- { value: 'text', label: 'Text' },
264
- { value: 'toggle', label: 'Toggle' }
265
- ],
266
- required: false,
267
- initialValues: [
268
- 'action-sheet',
269
- 'activity-indicator',
270
- 'activity-view',
271
- 'alert',
272
- 'avatar',
273
- 'bottom-sheet',
274
- 'context-menu',
275
- 'date-picker',
276
- 'dropdown-menu',
277
- 'picker',
278
- 'progress-indicator',
279
- 'ratings-indicator',
280
- 'segmented-control',
281
- 'selectable-text',
282
- 'slider',
283
- 'text',
284
- 'toggle'
285
- ]
286
- }));
287
- if ((0, prompts_1.isCancel)(selectedComponents)) {
288
- (0, prompts_1.cancel)('Cancelled... 👋');
289
- return process.exit(0);
166
+ _b.label = 13;
167
+ case 13: return [4 /*yield*/, (0, prompts_1.select)({
168
+ message: 'What would you like to use for Navigation?',
169
+ options: [
170
+ { value: 'react-navigation', label: 'React Navigation' },
171
+ { value: 'expo-router', label: 'Expo Router' },
172
+ { value: undefined, label: 'None' }
173
+ ],
174
+ initialValue: 'expo-router'
175
+ })];
176
+ case 14:
177
+ navigationSelect = _b.sent();
178
+ if ((0, prompts_1.isCancel)(navigationSelect)) {
179
+ (0, prompts_1.cancel)('Cancelled... 👋');
180
+ return [2 /*return*/, process.exit(0)];
181
+ }
182
+ if (!navigationSelect) return [3 /*break*/, 20];
183
+ return [4 /*yield*/, (0, prompts_1.select)({
184
+ message: 'What type of navigation would you like to use?',
185
+ options: [
186
+ { value: 'stack', label: 'Stack' },
187
+ { value: 'tabs', label: 'Tabs' },
188
+ { value: 'drawer + tabs', label: 'Drawer + Tabs' }
189
+ ]
190
+ })];
191
+ case 15:
192
+ navigationType = _b.sent();
193
+ if ((0, prompts_1.isCancel)(navigationType)) {
194
+ (0, prompts_1.cancel)('Cancelled... 👋');
195
+ return [2 /*return*/, process.exit(0)];
196
+ }
197
+ cliResults.packages.push({
198
+ name: navigationSelect,
199
+ type: 'navigation',
200
+ options: {
201
+ type: navigationType
202
+ }
203
+ });
204
+ if (!(cliResults.flags.packageManager === 'bun' &&
205
+ defaultPackageManagerVersion &&
206
+ defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/, 17];
207
+ warning('⚠️' + ' ' + " We've detected you're using Bun v".concat(defaultPackageManagerVersion, "."));
208
+ info('');
209
+ warning("Some packages may not work correctly if you continue. We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install."));
210
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
211
+ info('');
212
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
213
+ info('');
214
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
215
+ info('');
216
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
217
+ info('');
218
+ return [4 /*yield*/, (0, prompts_1.confirm)({
219
+ message: "Would you like to continue without switching to Bun v".concat(recommendedBunVersion, "?"),
220
+ initialValue: false
221
+ })];
222
+ case 16:
223
+ shouldContinue = _b.sent();
224
+ if ((0, prompts_1.isCancel)(shouldContinue)) {
225
+ (0, prompts_1.cancel)('Cancelled... 👋');
226
+ return [2 /*return*/, process.exit(0)];
227
+ }
228
+ success("Great, we'll use ".concat(navigationSelect, "!"));
229
+ return [3 /*break*/, 19];
230
+ case 17:
231
+ if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/, 19];
232
+ warning('⚠️' + ' ' + " We've detected you're using Bun but we are unable to determine which version you are using.");
233
+ info('');
234
+ warning("We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install. If you continue with a version that is not v").concat(recommendedBunVersion, ", some packages may not work correctly."));
235
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
236
+ info('');
237
+ warning("To check your version of Bun, run:");
238
+ info('');
239
+ warning("\tbun -version");
240
+ info('');
241
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
242
+ info('');
243
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
244
+ info('');
245
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
246
+ info('');
247
+ return [4 /*yield*/, (0, prompts_1.confirm)({
248
+ message: "Would you like to continue with your current version of Bun?",
249
+ initialValue: false
250
+ })];
251
+ case 18:
252
+ shouldContinue = _b.sent();
253
+ if ((0, prompts_1.isCancel)(shouldContinue)) {
254
+ (0, prompts_1.cancel)('Cancelled... 👋');
255
+ return [2 /*return*/, process.exit(0)];
256
+ }
257
+ success("Great, we'll use ".concat(navigationSelect, "!"));
258
+ _b.label = 19;
259
+ case 19: return [3 /*break*/, 21];
260
+ case 20:
261
+ success("No problem, skipping navigation for now.");
262
+ _b.label = 21;
263
+ case 21: return [4 /*yield*/, (0, prompts_1.select)({
264
+ message: 'What would you like to use for styling?',
265
+ options: navigationSelect === 'expo-router'
266
+ ? [
267
+ { value: 'nativewindui', label: 'NativeWindUI' },
268
+ { value: 'nativewind', label: 'NativeWind' },
269
+ { value: 'restyle', label: 'Restyle' },
270
+ { value: 'stylesheet', label: 'StyleSheet' },
271
+ { value: 'tamagui', label: 'Tamagui (experimental)' },
272
+ { value: 'unistyles', label: 'Unistyles' }
273
+ ]
274
+ : [
275
+ { value: 'nativewind', label: 'NativeWind' },
276
+ { value: 'restyle', label: 'Restyle' },
277
+ { value: 'stylesheet', label: 'StyleSheet' },
278
+ { value: 'tamagui', label: 'Tamagui (experimental)' },
279
+ { value: 'unistyles', label: 'Unistyles' }
280
+ ],
281
+ initialValue: navigationSelect === 'expo-router' ? 'nativewindui' : 'nativewind'
282
+ })];
283
+ case 22:
284
+ stylingSelect = _b.sent();
285
+ if ((0, prompts_1.isCancel)(stylingSelect)) {
286
+ (0, prompts_1.cancel)('Cancelled... 👋');
287
+ return [2 /*return*/, process.exit(0)];
288
+ }
289
+ if (!(stylingSelect === 'nativewindui')) return [3 /*break*/, 24];
290
+ selectedComponents = [];
291
+ return [4 /*yield*/, (0, prompts_1.multiselect)({
292
+ message: 'Which components would you like to explore?',
293
+ options: [
294
+ { value: 'action-sheet', label: 'Action Sheet' },
295
+ { value: 'activity-indicator', label: 'Activity Indicator' },
296
+ { value: 'activity-view', label: 'Activity View' },
297
+ { value: 'alert', label: 'Alert' },
298
+ { value: 'avatar', label: 'Avatar' },
299
+ { value: 'bottom-sheet', label: 'Bottom Sheet' },
300
+ { value: 'context-menu', label: 'Context Menu' },
301
+ { value: 'date-picker', label: 'Date Picker' },
302
+ { value: 'dropdown-menu', label: 'Dropdown Menu' },
303
+ { value: 'picker', label: 'Picker' },
304
+ { value: 'progress-indicator', label: 'Progress Indicator' },
305
+ { value: 'ratings-indicator', label: 'Ratings Indicator' },
306
+ { value: 'segmented-control', label: 'Segmented Control' },
307
+ { value: 'selectable-text', label: 'Selectable Text' },
308
+ { value: 'slider', label: 'Slider' },
309
+ { value: 'text', label: 'Text' },
310
+ { value: 'toggle', label: 'Toggle' }
311
+ ],
312
+ required: false,
313
+ initialValues: [
314
+ 'action-sheet',
315
+ 'activity-indicator',
316
+ 'activity-view',
317
+ 'alert',
318
+ 'avatar',
319
+ 'bottom-sheet',
320
+ 'context-menu',
321
+ 'date-picker',
322
+ 'dropdown-menu',
323
+ 'picker',
324
+ 'progress-indicator',
325
+ 'ratings-indicator',
326
+ 'segmented-control',
327
+ 'selectable-text',
328
+ 'slider',
329
+ 'text',
330
+ 'toggle'
331
+ ]
332
+ })];
333
+ case 23:
334
+ selectedComponents = (_b.sent());
335
+ if ((0, prompts_1.isCancel)(selectedComponents)) {
336
+ (0, prompts_1.cancel)('Cancelled... 👋');
337
+ return [2 /*return*/, process.exit(0)];
338
+ }
339
+ cliResults.packages.push({
340
+ name: 'nativewindui',
341
+ type: 'styling',
342
+ options: {
343
+ selectedComponents: selectedComponents
344
+ }
345
+ });
346
+ success("You'll be styling with ease using NativeWindUI!");
347
+ return [3 /*break*/, 25];
348
+ case 24:
349
+ cliResults.packages.push({ name: stylingSelect, type: 'styling' });
350
+ success("You'll be styling with ease using ".concat(stylingSelect.toString().charAt(0).toUpperCase() + stylingSelect.toString().slice(1), "!"));
351
+ _b.label = 25;
352
+ case 25: return [4 /*yield*/, (0, prompts_1.select)({
353
+ message: 'What would you like to use for authentication?',
354
+ options: [
355
+ { value: undefined, label: 'None' },
356
+ { value: 'supabase', label: 'Supabase' },
357
+ { value: 'firebase', label: 'Firebase' }
358
+ ]
359
+ })];
360
+ case 26:
361
+ authenticationSelect = _b.sent();
362
+ if ((0, prompts_1.isCancel)(authenticationSelect)) {
363
+ (0, prompts_1.cancel)('Cancelled... 👋');
364
+ return [2 /*return*/, process.exit(0)];
365
+ }
366
+ if (authenticationSelect) {
367
+ cliResults.packages.push({ name: authenticationSelect, type: 'authentication' });
368
+ }
369
+ else {
370
+ success("No problem, skipping authentication for now.");
371
+ }
372
+ return [4 /*yield*/, (0, prompts_1.confirm)({
373
+ message: "Do you want to setup EAS",
374
+ initialValue: false
375
+ })];
376
+ case 27:
377
+ easEnabled = _b.sent();
378
+ if ((0, prompts_1.isCancel)(easEnabled)) {
379
+ (0, prompts_1.cancel)('Cancelled... 👋');
380
+ return [2 /*return*/, process.exit(0)];
381
+ }
382
+ if (easEnabled) {
383
+ cliResults.flags.eas = true;
384
+ success("We'll setup EAS for you.");
385
+ }
386
+ else {
387
+ success("No problem, skipping eas for now.");
388
+ }
389
+ return [4 /*yield*/, (0, prompts_1.confirm)({
390
+ message: 'Would you like to save this configuration for future use?',
391
+ initialValue: false
392
+ })];
393
+ case 28:
394
+ shouldSaveConfig = _b.sent();
395
+ if ((0, prompts_1.isCancel)(shouldSaveConfig)) {
396
+ (0, prompts_1.cancel)('Cancelled... 👋');
397
+ return [2 /*return*/, process.exit(0)];
398
+ }
399
+ if (!shouldSaveConfig) return [3 /*break*/, 31];
400
+ return [4 /*yield*/, (0, prompts_1.text)({
401
+ message: 'What do you want to name this configuration?',
402
+ placeholder: 'Default'
403
+ })];
404
+ case 29:
405
+ name = _b.sent();
406
+ if ((0, prompts_1.isCancel)(name)) {
407
+ (0, prompts_1.cancel)('Cancelled... 👋');
408
+ return [2 /*return*/, process.exit(0)];
409
+ }
410
+ return [4 /*yield*/, (0, configStorage_1.saveConfig)({ name: name, cliResults: cliResults })];
411
+ case 30:
412
+ _b.sent();
413
+ _b.label = 31;
414
+ case 31: return [2 /*return*/, cliResults];
290
415
  }
291
- cliResults.packages.push({
292
- name: 'nativewindui',
293
- type: 'styling',
294
- options: {
295
- selectedComponents: selectedComponents
296
- }
297
- });
298
- success(`You'll be styling with ease using NativeWindUI!`);
299
- }
300
- else {
301
- cliResults.packages.push({ name: stylingSelect, type: 'styling' });
302
- success(`You'll be styling with ease using ${stylingSelect.toString().charAt(0).toUpperCase() + stylingSelect.toString().slice(1)}!`);
303
- }
304
- const authenticationSelect = yield (0, prompts_1.select)({
305
- message: 'What would you like to use for authentication?',
306
- options: [
307
- { value: undefined, label: 'None' },
308
- { value: 'supabase', label: 'Supabase' },
309
- { value: 'firebase', label: 'Firebase' }
310
- ]
311
- });
312
- if ((0, prompts_1.isCancel)(authenticationSelect)) {
313
- (0, prompts_1.cancel)('Cancelled... 👋');
314
- return process.exit(0);
315
- }
316
- if (authenticationSelect) {
317
- cliResults.packages.push({ name: authenticationSelect, type: 'authentication' });
318
- }
319
- else {
320
- success(`No problem, skipping authentication for now.`);
321
- }
322
- const easEnabled = yield (0, prompts_1.confirm)({
323
- message: `Do you want to setup EAS`,
324
- initialValue: false
325
416
  });
326
- if ((0, prompts_1.isCancel)(easEnabled)) {
327
- (0, prompts_1.cancel)('Cancelled... 👋');
328
- return process.exit(0);
329
- }
330
- if (easEnabled) {
331
- cliResults.flags.eas = true;
332
- success(`We'll setup EAS for you.`);
333
- }
334
- else {
335
- success(`No problem, skipping eas for now.`);
336
- }
337
- // Offer user ability to save configuration
338
- const shouldSaveConfig = yield (0, prompts_1.confirm)({
339
- message: 'Would you like to save this configuration for future use?',
340
- initialValue: false
341
- });
342
- if ((0, prompts_1.isCancel)(shouldSaveConfig)) {
343
- (0, prompts_1.cancel)('Cancelled... 👋');
344
- return process.exit(0);
345
- }
346
- if (shouldSaveConfig) {
347
- const name = yield (0, prompts_1.text)({
348
- message: 'What do you want to name this configuration?',
349
- placeholder: 'Default'
350
- });
351
- if ((0, prompts_1.isCancel)(name)) {
352
- (0, prompts_1.cancel)('Cancelled... 👋');
353
- return process.exit(0);
354
- }
355
- yield (0, configStorage_1.saveConfig)({ name, cliResults });
356
- }
357
- return cliResults;
358
417
  });
359
418
  }
360
419
  exports.runCLI = runCLI;
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsNENBQXNGO0FBRXRGLDRDQUE4QztBQVU5QywyREFBc0U7QUFDdEUsbURBQTBEO0FBRTFELE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRXZDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COztRQUNoRSxNQUFNLEVBQ0osVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ3ZCLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQ2xDLEdBQUcsT0FBTyxDQUFDO1FBRVosMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLDBCQUFjLENBQUM7UUFFbEMsc0RBQXNEO1FBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2pELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBRXJDLHlCQUF5QjtRQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUV6Qix3RUFBd0U7UUFDeEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLDJCQUFXLEdBQUUsQ0FBQztRQUV6QywyRUFBMkU7UUFDM0UsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDO2dCQUNuQyxPQUFPLEVBQUUsOENBQThDO2dCQUN2RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7WUFFSCxJQUFJLElBQUEsa0JBQVEsRUFBQyxjQUFjLENBQUMsRUFB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
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQXNGO0FBRXRGLDBDQUE4QztBQVU5Qyx5REFBc0U7QUFDdEUsaURBQTBEO0FBRTFELElBQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRXZDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FFbkIsT0FBTyxtQkFGWSxFQUNyQixLQUNFLE9BQU8sTUFEd0IsRUFBeEIsSUFBSSxVQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLENBQ3JCO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFDakQsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7b0JBRXJDLHlCQUF5QjtvQkFDekIsVUFBVSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBR0oscUJBQU0sSUFBQSwyQkFBVyxHQUFFLEVBQUE7O29CQUFsQyxZQUFZLEdBQUcsU0FBbUI7eUJBR3BDLENBQUEsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUEsRUFBdkIsd0JBQXVCO29CQUNGLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDbkMsT0FBTyxFQUFFLDhDQUE4Qzs0QkFDdkQsWUFBWSxFQUFFLEtBQUs7eUJBQ3BCLENBQUMsRUFBQTs7b0JBSEksY0FBYyxHQUFHLFNBR3JCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFD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