create-expo-stack 2.5.0-next.e5e8f32 → 2.5.1-next.9becc72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +201 -2
  2. package/build/commands/create-expo-stack.js +69 -61
  3. package/build/templates/base/components/Container.tsx.ejs +13 -0
  4. package/build/templates/base/package.json.ejs +1 -1
  5. package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/index.tsx.ejs +3 -10
  6. package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/two.tsx.ejs +4 -11
  7. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +4 -10
  8. package/build/templates/packages/expo-router/drawer/app/+not-found.tsx.ejs +17 -22
  9. package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +2 -1
  10. package/build/templates/packages/expo-router/stack/app/+not-found.tsx.ejs +13 -18
  11. package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +6 -12
  12. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +5 -13
  13. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +2 -1
  14. package/build/templates/packages/nativewind/components/Button.tsx.ejs +2 -2
  15. package/build/templates/packages/nativewind/components/Container.tsx.ejs +9 -0
  16. package/build/templates/packages/nativewind/tailwind.config.js.ejs +1 -1
  17. package/build/templates/packages/restyle/components/Button.tsx.ejs +3 -2
  18. package/build/templates/packages/restyle/components/Container.tsx.ejs +6 -0
  19. package/build/templates/packages/tamagui/components/Button.tsx.ejs +1 -1
  20. package/build/templates/packages/tamagui/components/Container.tsx.ejs +6 -0
  21. package/build/templates/packages/unistyles/components/Button.tsx.ejs +1 -1
  22. package/build/templates/packages/unistyles/components/Container.tsx.ejs +9 -0
  23. package/build/templates/packages/unistyles/theme.ts.ejs +2 -1
  24. package/build/types/types.d.ts +3 -0
  25. package/build/types/utilities/getPackageManager.d.ts +1 -0
  26. package/build/types/utilities/validateProjectName.d.ts +1 -1
  27. package/build/utilities/configureProjectFiles.js +10 -2
  28. package/build/utilities/getPackageManager.js +9 -2
  29. package/build/utilities/printOutput.js +37 -38
  30. package/build/utilities/renderTitle.js +8 -1
  31. package/build/utilities/runCLI.js +204 -114
  32. package/build/utilities/validateProjectName.js +27 -16
  33. package/package.json +1 -1
@@ -37,156 +37,246 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.runCLI = void 0;
40
+ var prompts_1 = require("@clack/prompts");
40
41
  var constants_1 = require("../constants");
42
+ var getPackageManager_1 = require("./getPackageManager");
43
+ var recommendedBunVersion = '1.0.14';
41
44
  function runCLI(toolbox, projectName) {
42
45
  return __awaiter(this, void 0, void 0, function () {
43
- var options, success, prompt, cliResults, useTypescript, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, askStyling, stylingSelect, askAuthentication, authenticationSelect, askInternalization, internalizationSelect, askPackageManager, packageManagerSelect;
44
- return __generator(this, function (_a) {
45
- switch (_a.label) {
46
+ var options, _a, info, success, warning, cliResults, shouldUseTypescript, defaultPackageManagerVersion, shouldUseDefaultPackageManager, packageManagerSelect, packageManagerSelect, navigationSelect, navigationType, shouldContinue, shouldContinue, stylingSelect, authenticationSelect, internationalizationSelect;
47
+ return __generator(this, function (_b) {
48
+ switch (_b.label) {
46
49
  case 0:
47
- options = toolbox.parameters.options, success = toolbox.print.success, prompt = toolbox.prompt;
50
+ options = toolbox.parameters.options, _a = toolbox.print, info = _a.info, success = _a.success, warning = _a.warning;
48
51
  cliResults = constants_1.defaultOptions;
49
52
  // Project name already validated, just set cliResults
50
53
  cliResults.projectName = projectName;
51
54
  cliResults.flags.overwrite = !!options.overwrite;
52
55
  // Clear default packages
53
56
  cliResults.packages = [];
54
- return [4 /*yield*/, prompt.confirm('Would you like to use TypeScript with this project?', true)];
57
+ return [4 /*yield*/, (0, prompts_1.confirm)({
58
+ message: 'Would you like to use TypeScript with this project?',
59
+ initialValue: true
60
+ })];
55
61
  case 1:
56
- useTypescript = _a.sent();
57
- if (useTypescript) {
62
+ shouldUseTypescript = _b.sent();
63
+ if ((0, prompts_1.isCancel)(shouldUseTypescript)) {
64
+ (0, prompts_1.cancel)('Cancelled... 👋');
65
+ return [2 /*return*/, process.exit(0)];
66
+ }
67
+ if (shouldUseTypescript) {
58
68
  success('Good call, now using TypeScript! 🚀');
59
69
  }
60
70
  else {
61
71
  success("Wrong answer, we're gonna use Typescript.");
62
72
  }
63
- askNavigation = {
64
- type: 'select',
65
- name: 'navigationSelect',
66
- message: 'What would you like to use for Navigation?',
67
- choices: ['React Navigation', 'Expo Router', 'None']
68
- };
69
- askNavigationType = {
70
- type: 'select',
71
- name: 'navigationTypeSelect',
72
- message: 'What type of navigation would you like to use?',
73
- choices: ['Stack', 'Tabs', 'Drawer + Tabs']
74
- };
75
- return [4 /*yield*/, prompt.ask(askNavigation)];
76
- case 2:
77
- navigationSelect = (_a.sent()).navigationSelect;
78
- if (!(navigationSelect !== 'None')) return [3 /*break*/, 4];
79
- return [4 /*yield*/, prompt.ask(askNavigationType)];
73
+ defaultPackageManagerVersion = (0, getPackageManager_1.getDefaultPackageManagerVersion)();
74
+ if (!cliResults.flags.packageManager) return [3 /*break*/, 6];
75
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 2];
76
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
77
+ return [3 /*break*/, 5];
78
+ case 2: return [4 /*yield*/, (0, prompts_1.confirm)({
79
+ 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?"),
80
+ initialValue: true
81
+ })];
80
82
  case 3:
81
- navigationTypeSelect = (_a.sent()).navigationTypeSelect;
82
- if (navigationSelect === 'React Navigation') {
83
- cliResults.packages.push({
84
- name: 'react-navigation',
85
- type: 'navigation',
86
- options: {
87
- type: navigationTypeSelect.toLowerCase()
88
- }
89
- });
83
+ shouldUseDefaultPackageManager = _b.sent();
84
+ if ((0, prompts_1.isCancel)(shouldUseDefaultPackageManager)) {
85
+ (0, prompts_1.cancel)('Cancelled... 👋');
86
+ return [2 /*return*/, process.exit(0)];
90
87
  }
91
- else {
92
- cliResults.packages.push({
93
- name: 'expo-router',
94
- type: 'navigation',
95
- options: {
96
- type: navigationTypeSelect.toLowerCase()
97
- }
98
- });
99
- }
100
- success("Great, we'll use ".concat(navigationSelect, "!"));
101
- return [3 /*break*/, 5];
88
+ if (!!shouldUseDefaultPackageManager) return [3 /*break*/, 5];
89
+ return [4 /*yield*/, (0, prompts_1.select)({
90
+ message: 'Gotcha! Which package manager would you like to use?',
91
+ options: [
92
+ { value: 'npm', label: 'npm' },
93
+ { value: 'yarn', label: 'yarn' },
94
+ { value: 'pnpm', label: 'pnpm' },
95
+ { value: 'bun', label: 'bun' }
96
+ ]
97
+ })];
102
98
  case 4:
103
- success("No problem, skipping navigation for now.");
104
- _a.label = 5;
105
- case 5:
106
- askStyling = {
107
- type: 'select',
108
- name: 'stylingSelect',
109
- message: 'What would you like to use for styling?',
110
- choices: ['Nativewind', 'Restyle', 'Stylesheet', 'Tamagui (experimental)', 'Unistyles']
111
- };
112
- return [4 /*yield*/, prompt.ask(askStyling)];
99
+ packageManagerSelect = _b.sent();
100
+ if ((0, prompts_1.isCancel)(packageManagerSelect)) {
101
+ (0, prompts_1.cancel)('Cancelled... 👋');
102
+ return [2 /*return*/, process.exit(0)];
103
+ }
104
+ cliResults.flags.packageManager = packageManagerSelect;
105
+ _b.label = 5;
106
+ case 5: return [3 /*break*/, 9];
113
107
  case 6:
114
- stylingSelect = (_a.sent()).stylingSelect;
115
- if (stylingSelect === 'Nativewind') {
116
- cliResults.packages.push({ name: 'nativewind', type: 'styling' });
117
- success("You'll be styling with ease using Tailwind.");
108
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 7];
109
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
110
+ return [3 /*break*/, 9];
111
+ case 7: return [4 /*yield*/, (0, prompts_1.select)({
112
+ message: 'Which package manager would you like to use?',
113
+ options: [
114
+ { value: 'npm', label: 'npm' },
115
+ { value: 'yarn', label: 'yarn' },
116
+ { value: 'pnpm', label: 'pnpm' },
117
+ { value: 'bun', label: 'bun' }
118
+ ]
119
+ })];
120
+ case 8:
121
+ packageManagerSelect = _b.sent();
122
+ if ((0, prompts_1.isCancel)(packageManagerSelect)) {
123
+ (0, prompts_1.cancel)('Cancelled... 👋');
124
+ return [2 /*return*/, process.exit(0)];
125
+ }
126
+ cliResults.flags.packageManager = packageManagerSelect;
127
+ _b.label = 9;
128
+ case 9: return [4 /*yield*/, (0, prompts_1.select)({
129
+ message: 'What would you like to use for Navigation?',
130
+ options: [
131
+ { value: 'react-navigation', label: 'React Navigation' },
132
+ { value: 'expo-router', label: 'Expo Router' },
133
+ { value: undefined, label: 'None' }
134
+ ],
135
+ initialValue: 'expo-router'
136
+ })];
137
+ case 10:
138
+ navigationSelect = _b.sent();
139
+ if ((0, prompts_1.isCancel)(navigationSelect)) {
140
+ (0, prompts_1.cancel)('Cancelled... 👋');
141
+ return [2 /*return*/, process.exit(0)];
118
142
  }
119
- else if (stylingSelect === 'Tamagui (experimental)') {
120
- cliResults.packages.push({ name: 'tamagui', type: 'styling' });
121
- success("You'll be styling with ease using Tamagui.");
143
+ if (!navigationSelect) return [3 /*break*/, 16];
144
+ return [4 /*yield*/, (0, prompts_1.select)({
145
+ message: 'What type of navigation would you like to use?',
146
+ options: [
147
+ { value: 'stack', label: 'Stack' },
148
+ { value: 'tabs', label: 'Tabs' },
149
+ { value: 'drawer + tabs', label: 'Drawer + Tabs' }
150
+ ]
151
+ })];
152
+ case 11:
153
+ navigationType = _b.sent();
154
+ if ((0, prompts_1.isCancel)(navigationType)) {
155
+ (0, prompts_1.cancel)('Cancelled... 👋');
156
+ return [2 /*return*/, process.exit(0)];
122
157
  }
123
- else if (stylingSelect === 'Restyle') {
124
- cliResults.packages.push({ name: 'restyle', type: 'styling' });
125
- success("You'll be styling with ease using Restyle.");
158
+ cliResults.packages.push({
159
+ name: navigationSelect,
160
+ type: 'navigation',
161
+ options: {
162
+ type: navigationType
163
+ }
164
+ });
165
+ if (!(cliResults.flags.packageManager === 'bun' &&
166
+ defaultPackageManagerVersion &&
167
+ defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/, 13];
168
+ warning('⚠️' + ' ' + " We've detected you're using Bun v".concat(defaultPackageManagerVersion, "."));
169
+ info('');
170
+ 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."));
171
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
172
+ info('');
173
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
174
+ info('');
175
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
176
+ info('');
177
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
178
+ info('');
179
+ return [4 /*yield*/, (0, prompts_1.confirm)({
180
+ message: "Would you like to continue without switching to Bun v".concat(recommendedBunVersion, "?"),
181
+ initialValue: false
182
+ })];
183
+ case 12:
184
+ shouldContinue = _b.sent();
185
+ if ((0, prompts_1.isCancel)(shouldContinue)) {
186
+ (0, prompts_1.cancel)('Cancelled... 👋');
187
+ return [2 /*return*/, process.exit(0)];
126
188
  }
127
- else if (stylingSelect === 'Unistyles') {
128
- cliResults.packages.push({ name: 'unistyles', type: 'styling' });
129
- success("You'll be styling with ease using Unistyles.");
189
+ success("Great, we'll use ".concat(navigationSelect, "!"));
190
+ return [3 /*break*/, 15];
191
+ case 13:
192
+ if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/, 15];
193
+ warning('⚠️' + ' ' + " We've detected you're using Bun but we are unable to determine which version you are using.");
194
+ info('');
195
+ 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."));
196
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
197
+ info('');
198
+ warning("To check your version of Bun, run:");
199
+ info('');
200
+ warning("\tbun -version");
201
+ info('');
202
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
203
+ info('');
204
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
205
+ info('');
206
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
207
+ info('');
208
+ return [4 /*yield*/, (0, prompts_1.confirm)({
209
+ message: "Would you like to continue with your current version of Bun?",
210
+ initialValue: false
211
+ })];
212
+ case 14:
213
+ shouldContinue = _b.sent();
214
+ if ((0, prompts_1.isCancel)(shouldContinue)) {
215
+ (0, prompts_1.cancel)('Cancelled... 👋');
216
+ return [2 /*return*/, process.exit(0)];
130
217
  }
131
- else {
132
- cliResults.packages.push({ name: 'stylesheet', type: 'styling' });
133
- success("Cool, you're using the default StyleSheet that comes with React Native.");
134
- }
135
- askAuthentication = {
136
- type: 'select',
137
- name: 'authenticationSelect',
138
- message: 'What would you like to use for authentication?',
139
- choices: ['None', 'Supabase', 'Firebase']
140
- };
141
- return [4 /*yield*/, prompt.ask(askAuthentication)];
142
- case 7:
143
- authenticationSelect = (_a.sent()).authenticationSelect;
144
- if (authenticationSelect === 'Supabase') {
145
- cliResults.packages.push({ name: 'supabase', type: 'authentication' });
146
- success("You'll be using Supabase for authentication.");
147
- }
148
- else if (authenticationSelect === 'Firebase') {
149
- cliResults.packages.push({ name: 'firebase', type: 'authentication' });
150
- success("You'll be using Firebase for authentication.");
218
+ success("Great, we'll use ".concat(navigationSelect, "!"));
219
+ _b.label = 15;
220
+ case 15: return [3 /*break*/, 17];
221
+ case 16:
222
+ success("No problem, skipping navigation for now.");
223
+ _b.label = 17;
224
+ case 17: return [4 /*yield*/, (0, prompts_1.select)({
225
+ message: 'What would you like to use for styling?',
226
+ options: [
227
+ { value: 'nativewind', label: 'NativeWind' },
228
+ { value: 'restyle', label: 'Restyle' },
229
+ { value: 'stylesheet', label: 'StyleSheet' },
230
+ { value: 'tamagui', label: 'Tamagui (experimental)' },
231
+ { value: 'unistyles', label: 'Unistyles' }
232
+ ],
233
+ initialValue: 'nativewind'
234
+ })];
235
+ case 18:
236
+ stylingSelect = _b.sent();
237
+ if ((0, prompts_1.isCancel)(stylingSelect)) {
238
+ (0, prompts_1.cancel)('Cancelled... 👋');
239
+ return [2 /*return*/, process.exit(0)];
240
+ }
241
+ cliResults.packages.push({ name: stylingSelect, type: 'styling' });
242
+ success("You'll be styling with ease using ".concat(stylingSelect.toString().charAt(0).toUpperCase() + stylingSelect.toString().slice(1), "!"));
243
+ return [4 /*yield*/, (0, prompts_1.select)({
244
+ message: 'What would you like to use for authentication?',
245
+ options: [
246
+ { value: undefined, label: 'None' },
247
+ { value: 'supabase', label: 'Supabase' },
248
+ { value: 'firebase', label: 'Firebase' }
249
+ ]
250
+ })];
251
+ case 19:
252
+ authenticationSelect = _b.sent();
253
+ if ((0, prompts_1.isCancel)(authenticationSelect)) {
254
+ (0, prompts_1.cancel)('Cancelled... 👋');
255
+ return [2 /*return*/, process.exit(0)];
256
+ }
257
+ if (authenticationSelect) {
258
+ cliResults.packages.push({ name: authenticationSelect, type: 'authentication' });
151
259
  }
152
260
  else {
153
261
  success("No problem, skipping authentication for now.");
154
262
  }
155
- askInternalization = {
156
- type: 'select',
157
- name: 'internalizationSelect',
158
- message: 'What would you like to use for internationalization?',
159
- choices: ['i18next', 'None']
160
- };
161
- return [4 /*yield*/, prompt.ask(askInternalization)];
162
- case 8:
163
- internalizationSelect = (_a.sent()).internalizationSelect;
164
- if (internalizationSelect === 'i18next') {
263
+ return [4 /*yield*/, (0, prompts_1.confirm)({
264
+ message: "What would you like to support internationalization?",
265
+ initialValue: false
266
+ })];
267
+ case 20:
268
+ internationalizationSelect = _b.sent();
269
+ if (internationalizationSelect) {
165
270
  cliResults.packages.push({ name: 'i18next', type: 'internationalization' });
166
271
  success("You'll be using i18next for internationalization.");
167
272
  }
168
273
  else {
169
274
  success("No problem, skipping internationalization for now.");
170
275
  }
171
- if (!!cliResults.flags.packageManager) return [3 /*break*/, 10];
172
- askPackageManager = {
173
- type: 'select',
174
- name: 'packageManagerSelect',
175
- message: 'Which package manager would you like to use?',
176
- choices: ['npm', 'yarn', 'pnpm', 'bun']
177
- };
178
- return [4 /*yield*/, prompt.ask(askPackageManager)];
179
- case 9:
180
- packageManagerSelect = (_a.sent()).packageManagerSelect;
181
- cliResults.flags.packageManager = packageManagerSelect;
182
- return [3 /*break*/, 11];
183
- case 10:
184
- cliResults.flags.packageManager = 'npm';
185
- _a.label = 11;
186
- case 11: return [2 /*return*/, cliResults];
276
+ return [2 /*return*/, cliResults];
187
277
  }
188
278
  });
189
279
  });
190
280
  }
191
281
  exports.runCLI = runCLI;
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQThDO0FBRzlDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FHbkIsT0FBTyxtQkFIWSxFQUNaLE9BQU8sR0FFZCxPQUFPLGNBRk8sRUFDaEIsTUFBTSxHQUNKLE9BQU8sT0FESCxDQUNJO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFFakQseUJBQXlCO29CQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFFSCxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLHFEQUFxRCxFQUFFLElBQUksQ0FBQyxFQUFBOztvQkFBakcsYUFBYSxHQUFHLFNBQWlGO29CQUV2RyxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztvQkFDakQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUdLLGFBQWEsR0FBRzt3QkFDcEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztxQkFDckQsQ0FBQztvQkFFSSxpQkFBaUIsR0FBRzt3QkFDeEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qs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
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQW1FO0FBRW5FLDBDQUE4QztBQVM5Qyx5REFBc0U7QUFFdEUsSUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFFdkMsU0FBc0IsTUFBTSxDQUFDLE9BQWdCLEVBQUUsV0FBbUI7Ozs7OztvQkFFaEQsT0FBTyxHQUVuQixPQUFPLG1CQUZZLEVBQ3JCLEtBQ0UsT0FBTyxNQUR3QixFQUF4QixJQUFJLFVBQUEsRUFBRSxPQUFPLGFBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDckI7b0JBR04sVUFBVSxHQUFHLDBCQUFjLENBQUM7b0JBRWxDLHNEQUFzRDtvQkFDdEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUVqRCx5QkFBeUI7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUVHLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDeEMsT0FBTyxFQUFFLHFEQUFxRDs0QkFDOUQsWUFBWSxFQUFFLElBQUk7eUJBQ25CLENBQUMsRUFBQTs7b0JBSEksbUJBQW1CLEdBQUcsU0FHMUI7b0JBRUYsSUFBSSxJQUFBLGtCQUFRLEVBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQztvQkFFRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7d0JBQ3hCLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7b0JBQ3ZELENBQUM7b0JBRUssNEJBQTRCLEdBQUcsSUFBQSxtREFBK0IsR0FBRSxDQUFDO3lCQUNuRSxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBL0Isd0JBQStCO3lCQUM3QixDQUFBLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUEsRUFBMUQsd0JBQTBEO29CQUM1RCxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7O3dCQUV0RSxxQkFBTSxJQUFBLGlCQUFPLEVBQUM7d0JBQ25ELE9BQU8sRUFBRSwyQkFBb0IsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLGNBQzFELDRCQUE0QixDQUFDLENBQUMsQ0FBQyxXQUFJLDRCQUE0QixDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsOEVBQ0c7d0JBQzNFLFlBQVksRUFBRSxJQUFJO3FCQUNuQixDQUFDLEVBQUE7O29CQUxJLDhCQUE4QixHQUFHLFNBS3JDO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQzt3QkFDN0MsSUFBQSxnQkFBTSxFQUFDLGlCQUFpQixDQUFDLENBQUM7d0JBQzFCLHNCQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQ3pCLENBQUM7eUJBQ0csQ0FBQyw4QkFBOEIsRUFBL0Isd0JBQStCO29CQUNKLHFCQUFNLElBQUEsZ0JBQU0sRUFBQzs0QkFDeEMsT0FBTyxFQUFFLHNEQUFzRDs0QkFDL0QsT0FBTyxFQUFFO2dDQUNQLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dDQUM5QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtnQ0FDaEMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0NBQ2hDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFOzZCQUMvQjt5QkFDRixDQUFDLEVBQUE7O29CQVJJLG9CQUFvQixHQUFHLFNBUTNCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBQSxnQkFBTSxFQUFDLGlCQUFpQixDQUFDLENBQUM7d0JBQzFCLHNCQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQ3pCLENBQUM7b0JBRUQsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsb0JBQXNDLENBQUM7Ozs7eUJBSXpFLENBQUEsT0FBTyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQSxFQUExRCx3QkFBMEQ7b0JBQzVELFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs7d0JBRWhGLHFCQUFNLElBQUEsZ0JBQU0sRUFBQzt3QkFDeEMsT0FBTyxFQUFFLDhDQUE4Qzt3QkFDdkQsT0FBTyxFQUFFOzRCQUNQLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFOzRCQUM5QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTs0QkFDaEMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7NEJBQ2hDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO3lCQUMvQjtxQkFDRixDQUFDLEVBQUE7O29CQVJJLG9CQUFvQixHQUFHLFNBUTNCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBQSxnQkFBTSxFQUFDLGlCQUFpQixDQUFDLENBQUM7d0JBQzFCLHNCQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0JBQ3pCLENBQUM7b0JBRUQsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsb0JBQXNDLENBQUM7O3dCQUlwRCxxQkFBTSxJQUFBLGdCQUFNLEVBQUM7d0JBQ3BDLE9BQU8sRUFBRSw0Q0FBNEM7d0JBQ3JELE9BQU8sRUFBRTs0QkFDUCxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7NEJBQ3hELEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzRCQUM5QyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTt5QkFDcEM7d0JBQ0QsWUFBWSxFQUFFLGFBQWE7cUJBQzVCLENBQUMsRUFBQTs7b0JBUkksZ0JBQWdCLEdBQUcsU0FRdkI7b0JBRUYsSUFBSSxJQUFBLGtCQUFRLEVBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO3dCQUMvQixJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQzt5QkFFRyxnQkFBZ0IsRUFBaEIseUJBQWdCO29CQUNLLHFCQUFNLElBQUEsZ0JBQU0sRUFBQzs0QkFDbEMsT0FBTyxFQUFFLGdEQUFnRDs0QkFDekQsT0FBTyxFQUFFO2dDQUNQLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dDQUNsQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtnQ0FDaEMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7NkJBQ25EO3lCQUNGLENBQUMsRUFBQTs7b0JBUEksY0FBYyxHQUFHLFNBT3JCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7d0JBQzdCLElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO3dCQUMxQixzQkFBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUN6QixDQUFDO29CQUVELFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUN2QixJQUFJLEVBQUUsZ0JBQW9DO3dCQUMxQyxJQUFJLEVBQUUsWUFBWTt3QkFDbEIsT0FBTyxFQUFFOzRCQUNQLElBQUksRUFBRSxjQUFpQzt5QkFDeEM7cUJBQ0YsQ0FBQyxDQUFDO3lCQUlELENBQUEsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssS0FBSzt3QkFDekMsNEJBQTRCO3dCQUM1Qiw0QkFBNEIsS0FBSyxxQkFBcUIsQ0FBQSxFQUZ0RCx5QkFFc0Q7b0JBRXRELE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLDRDQUFxQyw0QkFBNEIsTUFBRyxDQUFDLENBQUM7b0JBQzNGLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDVCxPQUFPLENBQ0wsd0ZBQWlGLHFCQUFxQixvRUFBaUUsQ0FDeEssQ0FBQztvQkFDRixPQUFPLENBQUMsd0VBQXdFLENBQUMsQ0FBQztvQkFDbEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNULE9BQU8sQ0FBQyw0QkFBcUIscUJBQXFCLFdBQVEsQ0FBQyxDQUFDO29CQUM1RCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1QsT0FBTyxDQUFDLCtEQUF1RCxxQkFBcUIsT0FBRyxDQUFDLENBQUM7b0JBQ3pGLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDVCxPQUFPLENBQUMsaUdBQWlHLENBQUMsQ0FBQztvQkFDM0csSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUVjLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDbkMsT0FBTyxFQUFFLCtEQUF3RCxxQkFBcUIsTUFBRzs0QkFDekYsWUFBWSxFQUFFLEtBQUs7eUJBQ3BCLENBQUMsRUFBQTs7b0JBSEksY0FBYyxHQUFHLFNBR3JCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7d0JBQzdCLElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO3dCQUMxQixzQkFBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUN6QixDQUFDO29CQUNELE9BQU8sQ0FBQywyQkFBb0IsZ0JBQWdCLE1BQUcsQ0FBQyxDQUFDOzs7eUJBQ3hDLENBQUEsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssS0FBSyxJQUFJLENBQUMsNEJBQTRCLENBQUEsRUFBMUUseUJBQTBFO29CQUNuRixPQUFPLENBQ0wsSUFBSSxHQUFHLEdBQUcsR0FBRyw4RkFBOEYsQ0FDNUcsQ0FBQztvQkFDRixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1QsT0FBTyxDQUNMLGtDQUEyQixxQkFBcUIseUhBQStHLHFCQUFxQiw0Q0FBeUMsQ0FDOU4sQ0FBQztvQkFDRixPQUFPLENBQUMsd0VBQXdFLENBQUMsQ0FBQztvQkFDbEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNULE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDVCxPQUFPLENBQUMsNEJBQXFCLHFCQUFxQixXQUFRLENBQUMsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNULE9BQU8sQ0FBQywrREFBdUQscUJBQXFCLE9BQUcsQ0FBQyxDQUFDO29CQUN6RixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ1QsT0FBTyxDQUFDLGlHQUFpRyxDQUFDLENBQUM7b0JBQzNHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFFYyxxQkFBTSxJQUFBLGlCQUFPLEVBQUM7NEJBQ25DLE9BQU8sRUFBRSw4REFBOEQ7NEJBQ3ZFLFlBQVksRUFBRSxLQUFLO3lCQUNwQixDQUFDLEVBQUE7O29CQUhJLGNBQWMsR0FBRyxTQUdyQjtvQkFFRixJQUFJLElBQUEsa0JBQVEsRUFBQyxjQUFjLENBQUMsRUFBRSxDQUFDO3dCQUM3QixJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQztvQkFDRCxPQUFPLENBQUMsMkJBQW9CLGdCQUFnQixNQUFHLENBQUMsQ0FBQzs7OztvQkFHbkQsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7O3lCQUdoQyxxQkFBTSxJQUFBLGdCQUFNLEVBQUM7d0JBQ2pDLE9BQU8sRUFBRSx5Q0FBeUM7d0JBQ2xELE9BQU8sRUFBRTs0QkFDUCxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTs0QkFDNUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7NEJBQ3RDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFOzRCQUM1QyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFOzRCQUNyRCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTt5QkFDM0M7d0JBQ0QsWUFBWSxFQUFFLFlBQVk7cUJBQzNCLENBQUMsRUFBQTs7b0JBVkksYUFBYSxHQUFHLFNBVXBCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQzVCLElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO3dCQUMxQixzQkFBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUN6QixDQUFDO29CQUVELFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQThCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7b0JBQ3BGLE9BQU8sQ0FDTCw0Q0FDRSxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQ25GLENBQ0osQ0FBQztvQkFFMkIscUJBQU0sSUFBQSxnQkFBTSxFQUFDOzRCQUN4QyxPQUFPLEVBQUUsZ0RBQWdEOzRCQUN6RCxPQUFPLEVBQUU7Z0NBQ1AsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0NBQ25DLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dDQUN4QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTs2QkFDekM7eUJBQ0YsQ0FBQyxFQUFBOztvQkFQSSxvQkFBb0IsR0FBRyxTQU8zQjtvQkFFRixJQUFJLElBQUEsa0JBQVEsRUFBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7d0JBQ25DLElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO3dCQUMxQixzQkFBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO29CQUN6QixDQUFDO29CQUNELElBQUksb0JBQW9CLEVBQUUsQ0FBQzt3QkFDekIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsb0JBQTRDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDM0csQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO29CQUMxRCxDQUFDO29CQUVrQyxxQkFBTSxJQUFBLGlCQUFPLEVBQUM7NEJBQy9DLE9BQU8sRUFBRSxzREFBc0Q7NEJBQy9ELFlBQVksRUFBRSxLQUFLO3lCQUNwQixDQUFDLEVBQUE7O29CQUhJLDBCQUEwQixHQUFHLFNBR2pDO29CQUVGLElBQUksMEJBQTBCLEVBQUUsQ0FBQzt3QkFDL0IsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7d0JBQzVFLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO29CQUMvRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7b0JBQ2hFLENBQUM7b0JBRUQsc0JBQU8sVUFBVSxFQUFDOzs7O0NBQ25CO0FBMVBELHdCQTBQQyJ9
@@ -37,34 +37,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.validateProjectName = void 0;
40
- function validateProjectName(exists, removeAsync, prompt, projectName) {
40
+ var prompts_1 = require("@clack/prompts");
41
+ function validateProjectName(exists, removeAsync, prompt, projectName, overwrite) {
41
42
  return __awaiter(this, void 0, void 0, function () {
42
- var confirmDelete;
43
+ var s, shouldDeleteExistingProject;
43
44
  return __generator(this, function (_a) {
44
45
  switch (_a.label) {
45
46
  case 0:
47
+ s = (0, prompts_1.spinner)();
46
48
  if (!exists(projectName)) {
47
49
  return [2 /*return*/];
48
50
  }
49
- if (!(prompt != null)) return [3 /*break*/, 3];
50
- return [4 /*yield*/, prompt.ask([
51
- {
52
- type: 'confirm',
53
- name: 'delete',
54
- message: "A folder with the name '".concat(projectName, "' already exists. Do you want to delete it?")
55
- }
56
- ])];
57
- case 1:
58
- confirmDelete = _a.sent();
59
- if (!confirmDelete.delete) return [3 /*break*/, 3];
51
+ if (!(overwrite || (exists(projectName) === 'dir' && !prompt))) return [3 /*break*/, 2];
60
52
  return [4 /*yield*/, removeAsync(projectName)];
53
+ case 1:
54
+ _a.sent();
55
+ return [2 /*return*/];
61
56
  case 2:
57
+ if (!(prompt != null)) return [3 /*break*/, 5];
58
+ return [4 /*yield*/, (0, prompts_1.confirm)({
59
+ message: "A folder with the name '".concat(projectName, "' already exists. Do you want to delete it?"),
60
+ initialValue: true
61
+ })];
62
+ case 3:
63
+ shouldDeleteExistingProject = _a.sent();
64
+ if ((0, prompts_1.isCancel)(shouldDeleteExistingProject)) {
65
+ (0, prompts_1.cancel)('Cancelled... 👋');
66
+ return [2 /*return*/, process.exit(0)];
67
+ }
68
+ if (!shouldDeleteExistingProject) return [3 /*break*/, 5];
69
+ s.start('Deleting existing project...');
70
+ return [4 /*yield*/, removeAsync(projectName)];
71
+ case 4:
62
72
  _a.sent();
63
- return [2 /*return*/, void console.log("Deleted existing directory: ".concat(projectName))];
64
- case 3: throw new Error("A project with the name '".concat(projectName, "' already exists."));
73
+ s.stop("Deleted existing directory: ".concat(projectName));
74
+ return [2 /*return*/];
75
+ case 5: throw new Error("A project with the name '".concat(projectName, "' already exists."));
65
76
  }
66
77
  });
67
78
  });
68
79
  }
69
80
  exports.validateProjectName = validateProjectName;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxTQUFzQixtQkFBbUIsQ0FDdkMsTUFBc0MsRUFDdEMsV0FBNkMsRUFDN0MsTUFBNEIsRUFDNUIsV0FBbUI7Ozs7OztvQkFFbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO3dCQUN6QixzQkFBTztvQkFDVCxDQUFDO3lCQUVHLENBQUEsTUFBTSxJQUFJLElBQUksQ0FBQSxFQUFkLHdCQUFjO29CQUNNLHFCQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ3JDO2dDQUNFLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxRQUFRO2dDQUNkLE9BQU8sRUFBRSxrQ0FBMkIsV0FBVyxnREFBNkM7NkJBQzdGO3lCQUNGLENBQUMsRUFBQTs7b0JBTkksYUFBYSxHQUFHLFNBTXBCO3lCQUVFLGFBQWEsQ0FBQyxNQUFNLEVBQXBCLHdCQUFvQjtvQkFDdEIscUJBQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFBOztvQkFBOUIsU0FBOEIsQ0FBQztvQkFDL0Isc0JBQU8sS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUErQixXQUFXLENBQUUsQ0FBQyxFQUFDO3dCQUkxRSxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUE0QixXQUFXLHNCQUFtQixDQUFDLENBQUM7Ozs7Q0FDN0U7QUExQkQsa0RBMEJDIn0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBb0U7QUFJcEUsU0FBc0IsbUJBQW1CLENBQ3ZDLE1BQXNDLEVBQ3RDLFdBQTZDLEVBQzdDLE1BQTRCLEVBQzVCLFdBQW1CLEVBQ25CLFNBQWtCOzs7Ozs7b0JBRVosQ0FBQyxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQ3pCLHNCQUFPO29CQUNULENBQUM7eUJBRUcsQ0FBQSxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUEsRUFBdkQsd0JBQXVEO29CQUN6RCxxQkFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O29CQUE5QixTQUE4QixDQUFDO29CQUMvQixzQkFBTzs7eUJBR0wsQ0FBQSxNQUFNLElBQUksSUFBSSxDQUFBLEVBQWQsd0JBQWM7b0JBQ29CLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDaEQsT0FBTyxFQUFFLGtDQUEyQixXQUFXLGdEQUE2Qzs0QkFDNUYsWUFBWSxFQUFFLElBQUk7eUJBQ25CLENBQUMsRUFBQTs7b0JBSEksMkJBQTJCLEdBQUcsU0FHbEM7b0JBRUYsSUFBSSxJQUFBLGtCQUFRLEVBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO3dCQUMxQyxJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQzt5QkFFRywyQkFBMkIsRUFBM0Isd0JBQTJCO29CQUM3QixDQUFDLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7b0JBQ3hDLHFCQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBQTs7b0JBQTlCLFNBQThCLENBQUM7b0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsc0NBQStCLFdBQVcsQ0FBRSxDQUFDLENBQUM7b0JBQ3JELHNCQUFPO3dCQUlYLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQTRCLFdBQVcsc0JBQW1CLENBQUMsQ0FBQzs7OztDQUM3RTtBQXJDRCxrREFxQ0MifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo-stack",
3
- "version": "2.5.0-next.e5e8f32",
3
+ "version": "2.5.1-next.9becc72",
4
4
  "description": "CLI tool to initialize a React Native application with Expo",
5
5
  "repository": {
6
6
  "type": "git",