create-expo-stack 2.5.0-next.cfc261a → 2.5.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.
Files changed (32) hide show
  1. package/README.md +209 -7
  2. package/build/commands/create-expo-stack.js +51 -53
  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/utilities/getPackageManager.d.ts +1 -0
  25. package/build/types/utilities/validateProjectName.d.ts +1 -1
  26. package/build/utilities/configureProjectFiles.js +10 -2
  27. package/build/utilities/getPackageManager.js +9 -2
  28. package/build/utilities/printOutput.js +4 -2
  29. package/build/utilities/renderTitle.js +8 -1
  30. package/build/utilities/runCLI.js +114 -40
  31. package/build/utilities/validateProjectName.js +14 -8
  32. package/package.json +66 -66
@@ -38,13 +38,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.runCLI = void 0;
40
40
  var constants_1 = require("../constants");
41
+ var getPackageManager_1 = require("./getPackageManager");
42
+ var recommendedBunVersion = '1.0.14';
41
43
  function runCLI(toolbox, projectName) {
42
44
  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) {
45
+ var options, _a, info, success, warning, highlight, prompt, cliResults, useTypescript, defaultPackageManagerVersion, shouldUseDefaultPackageManager, askPackageManager, packageManagerSelect, askPackageManager, packageManagerSelect, askNavigation, askNavigationType, navigationSelect, navigationTypeSelect, shouldContinue, shouldContinue, baseStylePackageNames, askStyling, stylingSelect, askAuthentication, authenticationSelect, askInternalization, internalizationSelect;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
46
48
  case 0:
47
- options = toolbox.parameters.options, success = toolbox.print.success, prompt = toolbox.prompt;
49
+ options = toolbox.parameters.options, _a = toolbox.print, info = _a.info, success = _a.success, warning = _a.warning, highlight = _a.highlight, prompt = toolbox.prompt;
48
50
  cliResults = constants_1.defaultOptions;
49
51
  // Project name already validated, just set cliResults
50
52
  cliResults.projectName = projectName;
@@ -53,13 +55,53 @@ function runCLI(toolbox, projectName) {
53
55
  cliResults.packages = [];
54
56
  return [4 /*yield*/, prompt.confirm('Would you like to use TypeScript with this project?', true)];
55
57
  case 1:
56
- useTypescript = _a.sent();
58
+ useTypescript = _b.sent();
57
59
  if (useTypescript) {
58
60
  success('Good call, now using TypeScript! 🚀');
59
61
  }
60
62
  else {
61
63
  success("Wrong answer, we're gonna use Typescript.");
62
64
  }
65
+ defaultPackageManagerVersion = (0, getPackageManager_1.getDefaultPackageManagerVersion)();
66
+ if (!cliResults.flags.packageManager) return [3 /*break*/, 6];
67
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 2];
68
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
69
+ return [3 /*break*/, 5];
70
+ case 2:
71
+ highlight("\nWe've detected ".concat(cliResults.flags.packageManager, " ").concat(defaultPackageManagerVersion ? "v".concat(defaultPackageManagerVersion) : '', " as your preferred package manager."));
72
+ return [4 /*yield*/, prompt.confirm("Would you like to continue using it?", true)];
73
+ case 3:
74
+ shouldUseDefaultPackageManager = _b.sent();
75
+ if (!!shouldUseDefaultPackageManager) return [3 /*break*/, 5];
76
+ askPackageManager = {
77
+ type: 'select',
78
+ name: 'packageManagerSelect',
79
+ message: 'Which package manager would you like to use?',
80
+ choices: ['npm', 'yarn', 'pnpm', 'bun']
81
+ };
82
+ return [4 /*yield*/, prompt.ask(askPackageManager)];
83
+ case 4:
84
+ packageManagerSelect = (_b.sent()).packageManagerSelect;
85
+ cliResults.flags.packageManager = packageManagerSelect;
86
+ _b.label = 5;
87
+ case 5: return [3 /*break*/, 9];
88
+ case 6:
89
+ if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 7];
90
+ cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
91
+ return [3 /*break*/, 9];
92
+ case 7:
93
+ askPackageManager = {
94
+ type: 'select',
95
+ name: 'packageManagerSelect',
96
+ message: 'Which package manager would you like to use?',
97
+ choices: ['npm', 'yarn', 'pnpm', 'bun']
98
+ };
99
+ return [4 /*yield*/, prompt.ask(askPackageManager)];
100
+ case 8:
101
+ packageManagerSelect = (_b.sent()).packageManagerSelect;
102
+ cliResults.flags.packageManager = packageManagerSelect;
103
+ _b.label = 9;
104
+ case 9:
63
105
  askNavigation = {
64
106
  type: 'select',
65
107
  name: 'navigationSelect',
@@ -73,12 +115,12 @@ function runCLI(toolbox, projectName) {
73
115
  choices: ['Stack', 'Tabs', 'Drawer + Tabs']
74
116
  };
75
117
  return [4 /*yield*/, prompt.ask(askNavigation)];
76
- case 2:
77
- navigationSelect = (_a.sent()).navigationSelect;
78
- if (!(navigationSelect !== 'None')) return [3 /*break*/, 4];
118
+ case 10:
119
+ navigationSelect = (_b.sent()).navigationSelect;
120
+ if (!(navigationSelect !== 'None')) return [3 /*break*/, 16];
79
121
  return [4 /*yield*/, prompt.ask(askNavigationType)];
80
- case 3:
81
- navigationTypeSelect = (_a.sent()).navigationTypeSelect;
122
+ case 11:
123
+ navigationTypeSelect = (_b.sent()).navigationTypeSelect;
82
124
  if (navigationSelect === 'React Navigation') {
83
125
  cliResults.packages.push({
84
126
  name: 'react-navigation',
@@ -97,21 +139,68 @@ function runCLI(toolbox, projectName) {
97
139
  }
98
140
  });
99
141
  }
142
+ if (!(cliResults.flags.packageManager === 'bun' &&
143
+ defaultPackageManagerVersion &&
144
+ defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/, 13];
145
+ warning('⚠️' + ' ' + " We've detected you're using Bun v".concat(defaultPackageManagerVersion, "."));
146
+ info('');
147
+ 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."));
148
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
149
+ info('');
150
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
151
+ info('');
152
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
153
+ info('');
154
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
155
+ info('');
156
+ return [4 /*yield*/, prompt.confirm("Would you like to continue without switching to Bun v".concat(recommendedBunVersion, "?"), true)];
157
+ case 12:
158
+ shouldContinue = _b.sent();
159
+ if (!shouldContinue) {
160
+ throw new Error("User cancelled to install recommended version of Bun.");
161
+ }
162
+ return [3 /*break*/, 15];
163
+ case 13:
164
+ if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/, 15];
165
+ warning('⚠️' + ' ' + " We've detected you're using Bun but we are unable to determine which version you are using.");
166
+ info('');
167
+ 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."));
168
+ warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
169
+ info('');
170
+ warning("To check your version of Bun, run:");
171
+ info('');
172
+ warning("\tbun -version");
173
+ info('');
174
+ warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
175
+ info('');
176
+ warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
177
+ info('');
178
+ warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
179
+ info('');
180
+ return [4 /*yield*/, prompt.confirm('Would you like to continue with your current version of Bun?', true)];
181
+ case 14:
182
+ shouldContinue = _b.sent();
183
+ if (!shouldContinue) {
184
+ throw new Error('User cancelled to install recommended version of Bun.');
185
+ }
186
+ _b.label = 15;
187
+ case 15:
100
188
  success("Great, we'll use ".concat(navigationSelect, "!"));
101
- return [3 /*break*/, 5];
102
- case 4:
189
+ return [3 /*break*/, 17];
190
+ case 16:
103
191
  success("No problem, skipping navigation for now.");
104
- _a.label = 5;
105
- case 5:
192
+ _b.label = 17;
193
+ case 17:
194
+ baseStylePackageNames = ['Nativewind', 'Restyle', 'Stylesheet', 'Tamagui (experimental)', 'Unistyles'];
106
195
  askStyling = {
107
196
  type: 'select',
108
197
  name: 'stylingSelect',
109
198
  message: 'What would you like to use for styling?',
110
- choices: ['Nativewind', 'Restyle', 'Stylesheet', 'Tamagui (experimental)', 'Unistyles']
199
+ choices: baseStylePackageNames
111
200
  };
112
201
  return [4 /*yield*/, prompt.ask(askStyling)];
113
- case 6:
114
- stylingSelect = (_a.sent()).stylingSelect;
202
+ case 18:
203
+ stylingSelect = (_b.sent()).stylingSelect;
115
204
  if (stylingSelect === 'Nativewind') {
116
205
  cliResults.packages.push({ name: 'nativewind', type: 'styling' });
117
206
  success("You'll be styling with ease using Tailwind.");
@@ -139,8 +228,8 @@ function runCLI(toolbox, projectName) {
139
228
  choices: ['None', 'Supabase', 'Firebase']
140
229
  };
141
230
  return [4 /*yield*/, prompt.ask(askAuthentication)];
142
- case 7:
143
- authenticationSelect = (_a.sent()).authenticationSelect;
231
+ case 19:
232
+ authenticationSelect = (_b.sent()).authenticationSelect;
144
233
  if (authenticationSelect === 'Supabase') {
145
234
  cliResults.packages.push({ name: 'supabase', type: 'authentication' });
146
235
  success("You'll be using Supabase for authentication.");
@@ -155,12 +244,12 @@ function runCLI(toolbox, projectName) {
155
244
  askInternalization = {
156
245
  type: 'select',
157
246
  name: 'internalizationSelect',
158
- message: 'What would you like to use for internationalization?',
159
- choices: ['i18next', 'None']
247
+ message: 'What would you like to support internationalization?',
248
+ choices: ['None', 'i18next']
160
249
  };
161
250
  return [4 /*yield*/, prompt.ask(askInternalization)];
162
- case 8:
163
- internalizationSelect = (_a.sent()).internalizationSelect;
251
+ case 20:
252
+ internalizationSelect = (_b.sent()).internalizationSelect;
164
253
  if (internalizationSelect === 'i18next') {
165
254
  cliResults.packages.push({ name: 'i18next', type: 'internationalization' });
166
255
  success("You'll be using i18next for internationalization.");
@@ -168,25 +257,10 @@ function runCLI(toolbox, projectName) {
168
257
  else {
169
258
  success("No problem, skipping internationalization for now.");
170
259
  }
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];
260
+ return [2 /*return*/, cliResults];
187
261
  }
188
262
  });
189
263
  });
190
264
  }
191
265
  exports.runCLI = runCLI;
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQThDO0FBRzlDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FHbkIsT0FBTyxtQkFIWSxFQUNaLE9BQU8sR0FFZCxPQUFPLGNBRk8sRUFDaEIsTUFBTSxHQUNKLE9BQU8sT0FESCxDQUNJO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFFakQseUJBQXlCO29CQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFFSCxxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLHFEQUFxRCxFQUFFLElBQUksQ0FBQyxFQUFBOztvQkFBakcsYUFBYSxHQUFHLFNBQWlGO29CQUV2RyxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztvQkFDakQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUdLLGFBQWEsR0FBRzt3QkFDcEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztxQkFDckQsQ0FBQztvQkFFSSxpQkFBaUIsR0FBRzt3QkFDeEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qs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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsMENBQThDO0FBRTlDLHlEQUFzRTtBQUV0RSxJQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztBQUV2QyxTQUFzQixNQUFNLENBQUMsT0FBZ0IsRUFBRSxXQUFtQjs7Ozs7O29CQUVoRCxPQUFPLEdBR25CLE9BQU8sbUJBSFksRUFDckIsS0FFRSxPQUFPLE1BRm1DLEVBQW5DLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLFNBQVMsZUFBQSxFQUMxQyxNQUFNLEdBQ0osT0FBTyxPQURILENBQ0k7b0JBR04sVUFBVSxHQUFHLDBCQUFjLENBQUM7b0JBRWxDLHNEQUFzRDtvQkFDdEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUVqRCx5QkFBeUI7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUVILHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMscURBQXFELEVBQUUsSUFBSSxDQUFDLEVBQUE7O29CQUFqRyxhQUFhLEdBQUcsU0FBaUY7b0JBRXZHLElBQUksYUFBYSxFQUFFLENBQUM7d0JBQ2xCLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7b0JBQ3ZELENBQUM7b0JBRUssNEJBQTRCLEdBQUcsSUFBQSxtREFBK0IsR0FBRSxDQUFDO3lCQUNuRSxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBL0Isd0JBQStCO3lCQUM3QixD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
@@ -37,7 +37,7 @@ 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
+ function validateProjectName(exists, removeAsync, prompt, projectName, success, overwrite) {
41
41
  return __awaiter(this, void 0, void 0, function () {
42
42
  var confirmDelete;
43
43
  return __generator(this, function (_a) {
@@ -46,7 +46,13 @@ function validateProjectName(exists, removeAsync, prompt, projectName) {
46
46
  if (!exists(projectName)) {
47
47
  return [2 /*return*/];
48
48
  }
49
- if (!(prompt != null)) return [3 /*break*/, 3];
49
+ if (!(overwrite || (exists(projectName) === 'dir' && !prompt))) return [3 /*break*/, 2];
50
+ return [4 /*yield*/, removeAsync(projectName)];
51
+ case 1:
52
+ _a.sent();
53
+ return [2 /*return*/];
54
+ case 2:
55
+ if (!(prompt != null)) return [3 /*break*/, 5];
50
56
  return [4 /*yield*/, prompt.ask([
51
57
  {
52
58
  type: 'confirm',
@@ -54,17 +60,17 @@ function validateProjectName(exists, removeAsync, prompt, projectName) {
54
60
  message: "A folder with the name '".concat(projectName, "' already exists. Do you want to delete it?")
55
61
  }
56
62
  ])];
57
- case 1:
63
+ case 3:
58
64
  confirmDelete = _a.sent();
59
- if (!confirmDelete.delete) return [3 /*break*/, 3];
65
+ if (!confirmDelete.delete) return [3 /*break*/, 5];
60
66
  return [4 /*yield*/, removeAsync(projectName)];
61
- case 2:
67
+ case 4:
62
68
  _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."));
69
+ return [2 /*return*/, void success("Deleted existing directory: ".concat(projectName))];
70
+ case 5: throw new Error("A project with the name '".concat(projectName, "' already exists."));
65
71
  }
66
72
  });
67
73
  });
68
74
  }
69
75
  exports.validateProjectName = validateProjectName;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxTQUFzQixtQkFBbUIsQ0FDdkMsTUFBc0MsRUFDdEMsV0FBNkMsRUFDN0MsTUFBNEIsRUFDNUIsV0FBbUI7Ozs7OztvQkFFbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO3dCQUN6QixzQkFBTztvQkFDVCxDQUFDO3lCQUVHLENBQUEsTUFBTSxJQUFJLElBQUksQ0FBQSxFQUFkLHdCQUFjO29CQUNNLHFCQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ3JDO2dDQUNFLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxRQUFRO2dDQUNkLE9BQU8sRUFBRSxrQ0FBMkIsV0FBVyxnREFBNkM7NkJBQzdGO3lCQUNGLENBQUMsRUFBQTs7b0JBTkksYUFBYSxHQUFHLFNBTXBCO3lCQUVFLGFBQWEsQ0FBQyxNQUFNLEVBQXBCLHdCQUFvQjtvQkFDdEIscUJBQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFBOztvQkFBOUIsU0FBOEIsQ0FBQztvQkFDL0Isc0JBQU8sS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUErQixXQUFXLENBQUUsQ0FBQyxFQUFDO3dCQUkxRSxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUE0QixXQUFXLHNCQUFtQixDQUFDLENBQUM7Ozs7Q0FDN0U7QUExQkQsa0RBMEJDIn0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQcm9qZWN0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGVQcm9qZWN0TmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxTQUFzQixtQkFBbUIsQ0FDdkMsTUFBc0MsRUFDdEMsV0FBNkMsRUFDN0MsTUFBNEIsRUFDNUIsV0FBbUIsRUFDbkIsT0FBa0MsRUFDbEMsU0FBa0I7Ozs7OztvQkFFbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO3dCQUN6QixzQkFBTztvQkFDVCxDQUFDO3lCQUVHLENBQUEsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBLEVBQXZELHdCQUF1RDtvQkFDekQscUJBQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFBOztvQkFBOUIsU0FBOEIsQ0FBQztvQkFDL0Isc0JBQU87O3lCQUdMLENBQUEsTUFBTSxJQUFJLElBQUksQ0FBQSxFQUFkLHdCQUFjO29CQUNNLHFCQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ3JDO2dDQUNFLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxRQUFRO2dDQUNkLE9BQU8sRUFBRSxrQ0FBMkIsV0FBVyxnREFBNkM7NkJBQzdGO3lCQUNGLENBQUMsRUFBQTs7b0JBTkksYUFBYSxHQUFHLFNBTXBCO3lCQUVFLGFBQWEsQ0FBQyxNQUFNLEVBQXBCLHdCQUFvQjtvQkFDdEIscUJBQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFBOztvQkFBOUIsU0FBOEIsQ0FBQztvQkFDL0Isc0JBQU8sS0FBSyxPQUFPLENBQUMsc0NBQStCLFdBQVcsQ0FBRSxDQUFDLEVBQUM7d0JBSXRFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQTRCLFdBQVcsc0JBQW1CLENBQUMsQ0FBQzs7OztDQUM3RTtBQWpDRCxrREFpQ0MifQ==
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
1
  {
2
- "name": "create-expo-stack",
3
- "version": "2.5.0-next.cfc261a",
4
- "description": "CLI tool to initialize a React Native application with Expo",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/danstepanov/create-expo-stack.git",
8
- "directory": "cli"
9
- },
10
- "homepage": "https://createexpostack.com",
11
- "license": "MIT",
12
- "types": "build/types/types.d.ts",
13
- "bin": {
14
- "create-expo-stack": "bin/create-expo-stack.js"
15
- },
16
- "files": [
17
- "build",
18
- "LICENSE",
19
- "readme.md",
20
- "docs",
21
- "bin"
22
- ],
23
- "scripts": {
24
- "build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
25
- "bump": "bun run ./src/utilities/bumpVersion.ts",
26
- "clean-build": "rm -rf ./build",
27
- "compile": "tsc -p .",
28
- "copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
29
- "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix --resolve-plugins-relative-to . && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
30
- "lint-templates": "bun run ejslint ./src/templates",
31
- "prepublishOnly": "bun run build",
32
- "publishPublic": "bun run build && npm publish --access public",
33
- "snapupdate": "jest --updateSnapshot",
34
- "test:watch": "bun test --watch",
35
- "test": "bun test --timeout 30000"
36
- },
37
- "prettier": {
38
- "arrowParens": "always",
39
- "bracketSameLine": false,
40
- "bracketSpacing": true,
41
- "printWidth": 120,
42
- "semi": true,
43
- "singleQuote": true,
44
- "tabWidth": 2,
45
- "trailingComma": "none",
46
- "useTabs": false
47
- },
48
- "dependencies": {
49
- "ejs-lint": "^2.0.0",
50
- "figlet": "^1.6.0",
51
- "gluegun": "latest",
52
- "gradient-string": "^2.0.2"
53
- },
54
- "devDependencies": {
55
- "@types/gradient-string": "^1.1.2",
56
- "@typescript-eslint/eslint-plugin": "^6.9.1",
57
- "@typescript-eslint/parser": "^6.9.1",
58
- "copyfiles": "^2.4.1",
59
- "eslint": "^8.53.0",
60
- "eslint-config-prettier": "^9.0.0",
61
- "eslint-plugin-prettier": "^5.0.1",
62
- "husky": "^5.1.3",
63
- "prettier": "^3.1.0"
64
- },
65
- "publishConfig": {
66
- "provenance": false
67
- }
2
+ "name": "create-expo-stack",
3
+ "version": "2.5.0",
4
+ "description": "CLI tool to initialize a React Native application with Expo",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/danstepanov/create-expo-stack.git",
8
+ "directory": "cli"
9
+ },
10
+ "homepage": "https://createexpostack.com",
11
+ "license": "MIT",
12
+ "types": "build/types/types.d.ts",
13
+ "bin": {
14
+ "create-expo-stack": "bin/create-expo-stack.js"
15
+ },
16
+ "files": [
17
+ "build",
18
+ "LICENSE",
19
+ "readme.md",
20
+ "docs",
21
+ "bin"
22
+ ],
23
+ "scripts": {
24
+ "build": "bun run clean-build && bun run compile && bun run copy-templates && bun run lint-templates",
25
+ "bump": "bun run ./src/utilities/bumpVersion.ts",
26
+ "clean-build": "rm -rf ./build",
27
+ "compile": "tsc -p .",
28
+ "copy-templates": "bun run copyfiles -u 2 -a \"./src/templates/**/*\" ./build/templates",
29
+ "format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix --resolve-plugins-relative-to . && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
30
+ "lint-templates": "bun run ejslint ./src/templates",
31
+ "prepublishOnly": "bun run build",
32
+ "publishPublic": "bun run build && npm publish --access public",
33
+ "snapupdate": "jest --updateSnapshot",
34
+ "test:watch": "bun test --watch",
35
+ "test": "bun test --timeout 30000"
36
+ },
37
+ "prettier": {
38
+ "arrowParens": "always",
39
+ "bracketSameLine": false,
40
+ "bracketSpacing": true,
41
+ "printWidth": 120,
42
+ "semi": true,
43
+ "singleQuote": true,
44
+ "tabWidth": 2,
45
+ "trailingComma": "none",
46
+ "useTabs": false
47
+ },
48
+ "dependencies": {
49
+ "ejs-lint": "^2.0.0",
50
+ "figlet": "^1.6.0",
51
+ "gluegun": "latest",
52
+ "gradient-string": "^2.0.2"
53
+ },
54
+ "devDependencies": {
55
+ "@types/gradient-string": "^1.1.2",
56
+ "@typescript-eslint/eslint-plugin": "^6.9.1",
57
+ "@typescript-eslint/parser": "^6.9.1",
58
+ "copyfiles": "^2.4.1",
59
+ "eslint": "^8.53.0",
60
+ "eslint-config-prettier": "^9.0.0",
61
+ "eslint-plugin-prettier": "^5.0.1",
62
+ "husky": "^5.1.3",
63
+ "prettier": "^3.1.0"
64
+ },
65
+ "publishConfig": {
66
+ "provenance": false
67
+ }
68
68
  }