create-expo-stack 2.22.0 → 2.23.1

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 +13 -13
  2. package/build/commands/create-expo-stack.js +17 -6
  3. package/build/templates/base/App.tsx.ejs +1 -1
  4. package/build/templates/base/components/TabBarIcon.tsx.ejs +2 -2
  5. package/build/templates/base/package.json.ejs +14 -0
  6. package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +1 -1
  7. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +11 -2
  8. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +1 -1
  9. package/build/templates/packages/i18next/translation/index.ts.ejs +3 -3
  10. package/build/templates/packages/nativewind/components/EditScreenInfo.tsx.ejs +2 -1
  11. package/build/templates/packages/nativewindui/components/TabBarIcon.tsx.ejs +2 -2
  12. package/build/templates/packages/nativewindui/drawer/app/(drawer)/index.tsx.ejs +7 -7
  13. package/build/templates/packages/nativewindui/drawer/app/_layout.tsx.ejs +4 -5
  14. package/build/templates/packages/nativewindui/drawer/app/modal.tsx.ejs +2 -2
  15. package/build/templates/packages/nativewindui/lib/useHeaderSearchBar.tsx.ejs +33 -0
  16. package/build/templates/packages/nativewindui/stack/app/_layout.tsx.ejs +1 -1
  17. package/build/templates/packages/nativewindui/stack/app/index.tsx.ejs +9 -39
  18. package/build/templates/packages/nativewindui/tabs/app/(tabs)/index.tsx.ejs +10 -13
  19. package/build/templates/packages/nativewindui/tabs/app/_layout.tsx.ejs +5 -9
  20. package/build/templates/packages/nativewindui/tabs/app/modal.tsx.ejs +1 -1
  21. package/build/templates/packages/nativewindui/theme/index.ts.ejs +1 -1
  22. package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +1 -1
  23. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +1 -1
  24. package/build/types/types.d.ts +3 -2
  25. package/build/types/utilities/softwareMansion.d.ts +13 -0
  26. package/build/types.js +10 -2
  27. package/build/utilities/configureProjectFiles.js +2 -1
  28. package/build/utilities/generateNWUI.js +105 -1
  29. package/build/utilities/runCLI.js +61 -1
  30. package/build/utilities/showHelp.js +7 -1
  31. package/build/utilities/softwareMansion.js +48 -0
  32. package/build/utilities/systemCommand.js +5 -1
  33. package/package.json +1 -1
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.softwareMansionPackageOptions = void 0;
4
+ exports.shouldAddSoftwareMansionPackage = shouldAddSoftwareMansionPackage;
5
+ exports.getSoftwareMansionPromptOptions = getSoftwareMansionPromptOptions;
6
+ exports.softwareMansionPackageOptions = [
7
+ {
8
+ name: 'react-native-gesture-handler',
9
+ aliases: ['reactNativeGestureHandler', 'react-native-gesture-handler', 'gesture-handler', 'gestureHandler'],
10
+ label: 'React Native Gesture Handler'
11
+ },
12
+ {
13
+ name: 'react-native-screens',
14
+ aliases: ['reactNativeScreens', 'react-native-screens', 'screens'],
15
+ label: 'React Native Screens'
16
+ },
17
+ {
18
+ name: 'react-native-svg',
19
+ aliases: ['reactNativeSvg', 'react-native-svg', 'svg'],
20
+ label: 'React Native SVG'
21
+ },
22
+ {
23
+ name: 'react-native-keyboard-controller',
24
+ aliases: [
25
+ 'reactNativeKeyboardController',
26
+ 'react-native-keyboard-controller',
27
+ 'keyboard-controller',
28
+ 'keyboardController'
29
+ ],
30
+ label: 'React Native Keyboard Controller'
31
+ }
32
+ ];
33
+ function shouldAddSoftwareMansionPackage(name, cliResults) {
34
+ if (cliResults.packages.some((pkg) => pkg.name === name)) {
35
+ return false;
36
+ }
37
+ if ((name === 'react-native-gesture-handler' || name === 'react-native-screens') &&
38
+ cliResults.packages.some((pkg) => pkg.type === 'navigation')) {
39
+ return false;
40
+ }
41
+ return true;
42
+ }
43
+ function getSoftwareMansionPromptOptions(cliResults) {
44
+ return exports.softwareMansionPackageOptions
45
+ .filter(({ name }) => shouldAddSoftwareMansionPackage(name, cliResults))
46
+ .map(({ name, label }) => ({ value: name, label }));
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdHdhcmVNYW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9zb2Z0d2FyZU1hbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0NBLDBFQWFDO0FBRUQsMEVBSUM7QUEvQ1ksUUFBQSw2QkFBNkIsR0FBbUM7SUFDM0U7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLDhCQUE4QixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDO1FBQzNHLEtBQUssRUFBRSw4QkFBOEI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxDQUFDO1FBQ2xFLEtBQUssRUFBRSxzQkFBc0I7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDO1FBQ3RELEtBQUssRUFBRSxrQkFBa0I7S0FDMUI7SUFDRDtRQUNFLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsT0FBTyxFQUFFO1lBQ1AsK0JBQStCO1lBQy9CLGtDQUFrQztZQUNsQyxxQkFBcUI7WUFDckIsb0JBQW9CO1NBQ3JCO1FBQ0QsS0FBSyxFQUFFLGtDQUFrQztLQUMxQztDQUNGLENBQUM7QUFFRixTQUFnQiwrQkFBK0IsQ0FBQyxJQUEyQixFQUFFLFVBQXNCO0lBQ2pHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUNFLENBQUMsSUFBSSxLQUFLLDhCQUE4QixJQUFJLElBQUksS0FBSyxzQkFBc0IsQ0FBQztRQUM1RSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsRUFDNUQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLCtCQUErQixDQUFDLFVBQXNCO0lBQ3BFLE9BQU8scUNBQTZCO1NBQ2pDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN2RSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMifQ==
@@ -14,6 +14,10 @@ exports.quoteShellArg = quoteShellArg;
14
14
  exports.runSystemCommand = runSystemCommand;
15
15
  exports.ONLY_ERRORS = ['ignore', 'ignore', 'inherit'];
16
16
  function quoteShellArg(value) {
17
+ // Values made of safe characters don't need quoting on any platform
18
+ if (/^[A-Za-z0-9._-]+$/.test(value)) {
19
+ return value;
20
+ }
17
21
  if (process.platform === 'win32') {
18
22
  return `"${value.replace(/"/g, '""')}"`;
19
23
  }
@@ -38,4 +42,4 @@ function runSystemCommand(_a) {
38
42
  }
39
43
  });
40
44
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3lzdGVtQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFNQSxzQ0FNQztBQUVELDRDQXdDQztBQWxEWSxRQUFBLFdBQVcsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFFcEUsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBc0IsZ0JBQWdCO3lEQUFDLEVBQ3JDLE9BQU8sRUFDUCxZQUFZLEVBQ1osS0FBSyxFQUNMLE9BQU8sRUFDUCxLQUFLLEdBQUcsSUFBSSxFQUNaLEdBQUcsRUFDSCxHQUFHLEVBQ0gsV0FBVyxHQUFHLElBQUksRUFVbkI7UUFDQyxNQUFNLEVBQ0osS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2hCLE1BQU0sRUFDUCxHQUFHLE9BQU8sQ0FBQztRQUVaLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDekMsS0FBSztZQUNMLEtBQUs7WUFDTCxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsaUNBQU0sT0FBTyxDQUFDLEdBQUcsR0FBSyxHQUFHLEVBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHO1lBQ25ELEdBQUc7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVwRCxLQUFLLENBQUMsMEJBQTBCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0NBQUEifQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3lzdGVtQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFNQSxzQ0FXQztBQUVELDRDQXdDQztBQXZEWSxRQUFBLFdBQVcsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFFcEUsU0FBZ0IsYUFBYSxDQUFDLEtBQWE7SUFDekMsb0VBQW9FO0lBQ3BFLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBc0IsZ0JBQWdCO3lEQUFDLEVBQ3JDLE9BQU8sRUFDUCxZQUFZLEVBQ1osS0FBSyxFQUNMLE9BQU8sRUFDUCxLQUFLLEdBQUcsSUFBSSxFQUNaLEdBQUcsRUFDSCxHQUFHLEVBQ0gsV0FBVyxHQUFHLElBQUksRUFVbkI7UUFDQyxNQUFNLEVBQ0osS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQ2hCLE1BQU0sRUFDUCxHQUFHLE9BQU8sQ0FBQztRQUVaLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDekMsS0FBSztZQUNMLEtBQUs7WUFDTCxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsaUNBQU0sT0FBTyxDQUFDLEdBQUcsR0FBSyxHQUFHLEVBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHO1lBQ25ELEdBQUc7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVwRCxLQUFLLENBQUMsMEJBQTBCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0NBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo-stack",
3
- "version": "2.22.0",
3
+ "version": "2.23.1",
4
4
  "description": "CLI tool to initialize a React Native application with Expo",
5
5
  "repository": {
6
6
  "type": "git",