stack-dev 0.1.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 (204) hide show
  1. package/.idea/modules.xml +8 -0
  2. package/.idea/prettier.xml +7 -0
  3. package/.idea/stack-dev.iml +12 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/apps/cli/eslint.config.mjs +3 -0
  6. package/apps/cli/node_modules/.bin/acorn +21 -0
  7. package/apps/cli/node_modules/.bin/esbuild +21 -0
  8. package/apps/cli/node_modules/.bin/eslint +21 -0
  9. package/apps/cli/node_modules/.bin/glob +21 -0
  10. package/apps/cli/node_modules/.bin/json5 +21 -0
  11. package/apps/cli/node_modules/.bin/prettier +21 -0
  12. package/apps/cli/node_modules/.bin/stack-prettier +21 -0
  13. package/apps/cli/node_modules/.bin/tsc +21 -0
  14. package/apps/cli/node_modules/.bin/tsserver +21 -0
  15. package/apps/cli/node_modules/.bin/tsup +21 -0
  16. package/apps/cli/node_modules/.bin/tsup-node +21 -0
  17. package/apps/cli/node_modules/.bin/yaml +21 -0
  18. package/apps/cli/package.json +35 -0
  19. package/apps/cli/prettier.config.mjs +3 -0
  20. package/apps/cli/src/file-generator/file-generator-imp.ts +20 -0
  21. package/apps/cli/src/file-generator/file-generator.ts +5 -0
  22. package/apps/cli/src/file-generator/index.ts +3 -0
  23. package/apps/cli/src/file-generator/package-json-generator.ts +23 -0
  24. package/apps/cli/src/index.ts +185 -0
  25. package/apps/cli/src/link-packages.ts +65 -0
  26. package/apps/cli/src/package-json/dependency.ts +28 -0
  27. package/apps/cli/src/package-json/index.ts +3 -0
  28. package/apps/cli/src/package-json/package-json.ts +269 -0
  29. package/apps/cli/src/packages/create-config-package.ts +29 -0
  30. package/apps/cli/src/packages/index.ts +4 -0
  31. package/apps/cli/src/packages/library-package/create-library-package.ts +85 -0
  32. package/apps/cli/src/packages/library-package/files/add-file-generator.ts +8 -0
  33. package/apps/cli/src/packages/library-package/files/add-spec-file-generator.ts +17 -0
  34. package/apps/cli/src/packages/library-package/files/eslint-config-file-generator.ts +11 -0
  35. package/apps/cli/src/packages/library-package/files/index-file-generator.ts +9 -0
  36. package/apps/cli/src/packages/library-package/files/prettier-config-file-generator.ts +11 -0
  37. package/apps/cli/src/packages/library-package/files/tsconfig-file-generator.ts +15 -0
  38. package/apps/cli/src/packages/library-package/files/tsup-config-file-generator.ts +23 -0
  39. package/apps/cli/src/packages/library-package/files/vitest-config-file-generator.ts +19 -0
  40. package/apps/cli/src/packages/library-package/index.ts +1 -0
  41. package/apps/cli/src/packages/react-package/create-react-package.ts +25 -0
  42. package/apps/cli/src/packages/react-package/create-tailwind-react-package.ts +30 -0
  43. package/apps/cli/src/packages/react-package/create-unstyled-react-package.ts +3 -0
  44. package/apps/cli/src/packages/react-package/css-react-package/create-css-react-package.ts +103 -0
  45. package/apps/cli/src/packages/react-package/css-react-package/files/button-css-module-file-generator.ts +16 -0
  46. package/apps/cli/src/packages/react-package/css-react-package/files/button-file-generator.ts +14 -0
  47. package/apps/cli/src/packages/react-package/css-react-package/files/button-spec-file-generator.ts +33 -0
  48. package/apps/cli/src/packages/react-package/css-react-package/files/eslint-config-file-generator.ts +18 -0
  49. package/apps/cli/src/packages/react-package/css-react-package/files/index-file-generator.ts +9 -0
  50. package/apps/cli/src/packages/react-package/css-react-package/files/prettier-config-file-generator.ts +11 -0
  51. package/apps/cli/src/packages/react-package/css-react-package/files/tsconfig-file-generator.ts +15 -0
  52. package/apps/cli/src/packages/react-package/css-react-package/files/tsup-config-file-generator.ts +24 -0
  53. package/apps/cli/src/packages/react-package/css-react-package/files/vitest-config-file-generator.ts +23 -0
  54. package/apps/cli/src/packages/react-package/index.ts +1 -0
  55. package/apps/cli/src/packages/react-package/styled-components-react-package/create-styled-components-react-package.ts +112 -0
  56. package/apps/cli/src/packages/react-package/styled-components-react-package/files/button-file-generator.ts +30 -0
  57. package/apps/cli/src/packages/react-package/styled-components-react-package/files/button-spec-file-generator.ts +33 -0
  58. package/apps/cli/src/packages/react-package/styled-components-react-package/files/eslint-config-file-generator.ts +18 -0
  59. package/apps/cli/src/packages/react-package/styled-components-react-package/files/index-file-generator.ts +9 -0
  60. package/apps/cli/src/packages/react-package/styled-components-react-package/files/prettier-config-file-generator.ts +11 -0
  61. package/apps/cli/src/packages/react-package/styled-components-react-package/files/tsconfig-file-generator.ts +15 -0
  62. package/apps/cli/src/packages/react-package/styled-components-react-package/files/tsup-config-file-generator.ts +21 -0
  63. package/apps/cli/src/packages/react-package/styled-components-react-package/files/vitest-config-file-generator.ts +23 -0
  64. package/apps/cli/src/packages/vite-react-app/create-vite-react-app.ts +79 -0
  65. package/apps/cli/src/packages/vite-react-app/files/app-file-generator.ts +28 -0
  66. package/apps/cli/src/packages/vite-react-app/files/eslint-config-file-generator.ts +11 -0
  67. package/apps/cli/src/packages/vite-react-app/files/index-html-file-generator.ts +20 -0
  68. package/apps/cli/src/packages/vite-react-app/files/main-file-generator.ts +14 -0
  69. package/apps/cli/src/packages/vite-react-app/files/prettier-config-file-generator.ts +11 -0
  70. package/apps/cli/src/packages/vite-react-app/files/tsconfig-file-generator.ts +15 -0
  71. package/apps/cli/src/packages/vite-react-app/files/vite-config-file-generator.ts +17 -0
  72. package/apps/cli/src/packages/vite-react-app/files/vitest-config-file-generator.ts +19 -0
  73. package/apps/cli/src/tsconfig/compiler-options.ts +83 -0
  74. package/apps/cli/src/tsconfig/index.ts +4 -0
  75. package/apps/cli/src/tsconfig/reference.ts +21 -0
  76. package/apps/cli/src/tsconfig/tsconfig.ts +137 -0
  77. package/apps/cli/src/unlink-packages.ts +47 -0
  78. package/apps/cli/src/utils/package-generator.ts +41 -0
  79. package/apps/cli/src/utils/package-type.ts +44 -0
  80. package/apps/cli/src/utils/package.ts +126 -0
  81. package/apps/cli/src/utils/style-type.ts +41 -0
  82. package/apps/cli/src/utils/utils.ts +28 -0
  83. package/apps/cli/src/utils/workspace.ts +78 -0
  84. package/apps/cli/src/workspace/create-workspace.ts +39 -0
  85. package/apps/cli/src/workspace/index.ts +1 -0
  86. package/apps/cli/src/workspace/root-package.ts +195 -0
  87. package/apps/cli/src/workspace/typescript-config.ts +84 -0
  88. package/apps/cli/tsconfig.json +14 -0
  89. package/apps/cli/tsup.config.ts +16 -0
  90. package/apps/demo/eslint.config.mjs +3 -0
  91. package/apps/demo/index.html +12 -0
  92. package/apps/demo/node_modules/.bin/browserslist +21 -0
  93. package/apps/demo/node_modules/.bin/eslint +21 -0
  94. package/apps/demo/node_modules/.bin/prettier +21 -0
  95. package/apps/demo/node_modules/.bin/tsc +21 -0
  96. package/apps/demo/node_modules/.bin/tsserver +21 -0
  97. package/apps/demo/node_modules/.bin/vite +21 -0
  98. package/apps/demo/node_modules/.vite/deps/_metadata.json +52 -0
  99. package/apps/demo/node_modules/.vite/deps/chunk-IGB2AZES.js +1930 -0
  100. package/apps/demo/node_modules/.vite/deps/chunk-IGB2AZES.js.map +7 -0
  101. package/apps/demo/node_modules/.vite/deps/chunk-NEPDRNXC.js +21626 -0
  102. package/apps/demo/node_modules/.vite/deps/chunk-NEPDRNXC.js.map +7 -0
  103. package/apps/demo/node_modules/.vite/deps/package.json +3 -0
  104. package/apps/demo/node_modules/.vite/deps/react-dom.js +6 -0
  105. package/apps/demo/node_modules/.vite/deps/react-dom.js.map +7 -0
  106. package/apps/demo/node_modules/.vite/deps/react-dom_client.js +38 -0
  107. package/apps/demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
  108. package/apps/demo/node_modules/.vite/deps/react.js +5 -0
  109. package/apps/demo/node_modules/.vite/deps/react.js.map +7 -0
  110. package/apps/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +911 -0
  111. package/apps/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
  112. package/apps/demo/node_modules/.vite/deps/react_jsx-runtime.js +923 -0
  113. package/apps/demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
  114. package/apps/demo/node_modules/.vite/deps/styled-components.js +1366 -0
  115. package/apps/demo/node_modules/.vite/deps/styled-components.js.map +7 -0
  116. package/apps/demo/package.json +32 -0
  117. package/apps/demo/prettier.config.mjs +3 -0
  118. package/apps/demo/src/App.tsx +50 -0
  119. package/apps/demo/src/main.tsx +9 -0
  120. package/apps/demo/tsconfig.json +17 -0
  121. package/apps/demo/vite.config.ts +9 -0
  122. package/apps/demo/vitest.config.ts +11 -0
  123. package/configs/eslint-config/base.mjs +15 -0
  124. package/configs/eslint-config/node_modules/.bin/acorn +21 -0
  125. package/configs/eslint-config/node_modules/.bin/eslint +21 -0
  126. package/configs/eslint-config/node_modules/.bin/tsc +21 -0
  127. package/configs/eslint-config/node_modules/.bin/tsserver +21 -0
  128. package/configs/eslint-config/package.json +12 -0
  129. package/configs/eslint-config/react.mjs +17 -0
  130. package/configs/prettier-config/base.mjs +11 -0
  131. package/configs/prettier-config/node_modules/.bin/prettier +21 -0
  132. package/configs/prettier-config/node_modules/.bin/tsc +21 -0
  133. package/configs/prettier-config/node_modules/.bin/tsserver +21 -0
  134. package/configs/prettier-config/package.json +9 -0
  135. package/configs/typescript-config/global.d.ts +12 -0
  136. package/configs/typescript-config/node_modules/.bin/tsc +21 -0
  137. package/configs/typescript-config/node_modules/.bin/tsserver +21 -0
  138. package/configs/typescript-config/package.json +7 -0
  139. package/configs/typescript-config/tsconfig.base.json +19 -0
  140. package/configs/typescript-config/tsconfig.node.json +6 -0
  141. package/configs/typescript-config/tsconfig.react.json +8 -0
  142. package/package.json +16 -0
  143. package/packages/core/eslint.config.mjs +3 -0
  144. package/packages/core/node_modules/.bin/eslint +21 -0
  145. package/packages/core/node_modules/.bin/prettier +21 -0
  146. package/packages/core/node_modules/.bin/tsc +21 -0
  147. package/packages/core/node_modules/.bin/tsserver +21 -0
  148. package/packages/core/node_modules/.bin/tsup +21 -0
  149. package/packages/core/node_modules/.bin/tsup-node +21 -0
  150. package/packages/core/node_modules/.bin/vite +21 -0
  151. package/packages/core/node_modules/.bin/vitest +21 -0
  152. package/packages/core/node_modules/.bin/yaml +21 -0
  153. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  154. package/packages/core/package.json +35 -0
  155. package/packages/core/prettier.config.mjs +3 -0
  156. package/packages/core/src/are-objects-equal.ts +26 -0
  157. package/packages/core/src/have-same-items.ts +84 -0
  158. package/packages/core/src/index.ts +6 -0
  159. package/packages/core/src/snapshot.ts +11 -0
  160. package/packages/core/src/sort-keys.ts +7 -0
  161. package/packages/core/src/spec/are-objects-equal.spec.ts +30 -0
  162. package/packages/core/src/spec/have-same-items.spec.ts +29 -0
  163. package/packages/core/src/spec/sort-keys.spec.ts +57 -0
  164. package/packages/core/tsconfig.json +7 -0
  165. package/packages/core/tsup.config.ts +15 -0
  166. package/packages/core/vitest.config.mts +11 -0
  167. package/packages/react-css/eslint.config.mjs +10 -0
  168. package/packages/react-css/node_modules/.bin/esbuild +21 -0
  169. package/packages/react-css/node_modules/.bin/eslint +21 -0
  170. package/packages/react-css/node_modules/.bin/prettier +21 -0
  171. package/packages/react-css/node_modules/.bin/tsc +21 -0
  172. package/packages/react-css/node_modules/.bin/tsserver +21 -0
  173. package/packages/react-css/node_modules/.bin/tsup +21 -0
  174. package/packages/react-css/node_modules/.bin/tsup-node +21 -0
  175. package/packages/react-css/node_modules/.bin/vitest +21 -0
  176. package/packages/react-css/node_modules/.bin/yaml +21 -0
  177. package/packages/react-css/package.json +50 -0
  178. package/packages/react-css/prettier.config.mjs +3 -0
  179. package/packages/react-css/src/button.module.css +8 -0
  180. package/packages/react-css/src/button.spec.tsx +25 -0
  181. package/packages/react-css/src/button.tsx +11 -0
  182. package/packages/react-css/src/index.ts +1 -0
  183. package/packages/react-css/tsconfig.json +7 -0
  184. package/packages/react-css/tsup.config.ts +17 -0
  185. package/packages/react-css/vitest.config.ts +15 -0
  186. package/packages/react-styled-components/eslint.config.mjs +10 -0
  187. package/packages/react-styled-components/node_modules/.bin/eslint +21 -0
  188. package/packages/react-styled-components/node_modules/.bin/prettier +21 -0
  189. package/packages/react-styled-components/node_modules/.bin/tsc +21 -0
  190. package/packages/react-styled-components/node_modules/.bin/tsserver +21 -0
  191. package/packages/react-styled-components/node_modules/.bin/tsup +21 -0
  192. package/packages/react-styled-components/node_modules/.bin/tsup-node +21 -0
  193. package/packages/react-styled-components/node_modules/.bin/vitest +21 -0
  194. package/packages/react-styled-components/node_modules/.bin/yaml +21 -0
  195. package/packages/react-styled-components/package.json +51 -0
  196. package/packages/react-styled-components/prettier.config.mjs +3 -0
  197. package/packages/react-styled-components/src/button.spec.tsx +27 -0
  198. package/packages/react-styled-components/src/button.tsx +21 -0
  199. package/packages/react-styled-components/src/index.ts +1 -0
  200. package/packages/react-styled-components/tsconfig.json +7 -0
  201. package/packages/react-styled-components/tsup.config.ts +16 -0
  202. package/packages/react-styled-components/vitest.config.ts +15 -0
  203. package/pnpm-workspace.yaml +4 -0
  204. package/turbo.json +13 -0
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/stack-dev.iml" filepath="$PROJECT_DIR$/.idea/stack-dev.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myConfigurationMode" value="AUTOMATIC" />
5
+ <option name="myRunOnSave" value="true" />
6
+ </component>
7
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,3 @@
1
+ import base from '@stack-dev/eslint-config/base.mjs';
2
+
3
+ export default [...base, { ignores: ['**/dist/**'] }];
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/acorn@8.15.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/esbuild@0.19.12/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/bin/esbuild" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/esbuild@0.19.12/node_modules/esbuild/bin/esbuild" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules/eslint/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules/eslint/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules/eslint/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules/eslint/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/eslint@9.32.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
19
+ else
20
+ exec node "$basedir/../eslint/bin/eslint.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/dist/esm/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/dist/esm/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules/glob/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/glob@11.0.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../glob/dist/esm/bin.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../glob/dist/esm/bin.mjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules/json5/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules/json5/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/json5@2.2.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
19
+ else
20
+ exec node "$basedir/../json5/lib/cli.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules/prettier/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules/prettier/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules/prettier/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules/prettier/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/prettier@3.6.2/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@"
19
+ else
20
+ exec node "$basedir/../prettier/bin/prettier.cjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/configs/prettier-config/bin/node_modules:/home/benmclean/projects/stack-dev/configs/prettier-config/node_modules:/home/benmclean/projects/stack-dev/configs/node_modules:/home/benmclean/projects/stack-dev/node_modules:/home/benmclean/projects/node_modules:/home/benmclean/node_modules:/home/node_modules:/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/configs/prettier-config/bin/node_modules:/home/benmclean/projects/stack-dev/configs/prettier-config/node_modules:/home/benmclean/projects/stack-dev/configs/node_modules:/home/benmclean/projects/stack-dev/node_modules:/home/benmclean/projects/node_modules:/home/benmclean/node_modules:/home/node_modules:/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../@stack-dev/prettier-config/bin/prettier.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../@stack-dev/prettier-config/bin/prettier.mjs" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-default.js" "$@"
19
+ else
20
+ exec node "$basedir/../tsup/dist/cli-default.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/dist/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules/tsup/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/tsup@7.3.0_postcss@8.5.6_typescript@5.8.3/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsup/dist/cli-node.js" "$@"
19
+ else
20
+ exec node "$basedir/../tsup/dist/cli-node.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/yaml@2.8.0/node_modules/yaml/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/yaml@2.8.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/benmclean/projects/stack-dev/node_modules/.pnpm/yaml@2.8.0/node_modules/yaml/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/yaml@2.8.0/node_modules:/home/benmclean/projects/stack-dev/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../yaml/bin.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../yaml/bin.mjs" "$@"
21
+ fi
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@stack-dev/cli",
3
+ "version": "0.1.0",
4
+ "bin": {
5
+ "stack": "./dist/index.js"
6
+ },
7
+ "scripts": {
8
+ "build": "tsup src/index.ts --dts --format esm,cjs",
9
+ "start": "node dist/index.js",
10
+ "check-types": "tsc --noEmit",
11
+ "lint": "eslint .",
12
+ "format": "prettier . --write"
13
+ },
14
+ "dependencies": {
15
+ "@stack-dev/core": "workspace:*",
16
+ "commander": "^11.1.0",
17
+ "enquirer": "^2.4.1",
18
+ "fast-glob": "^3.3.3",
19
+ "glob": "^11.0.3",
20
+ "json5": "^2.2.3",
21
+ "lodash": "^4.17.21",
22
+ "yaml": "^2.8.0"
23
+ },
24
+ "devDependencies": {
25
+ "@stack-dev/eslint-config": "workspace:*",
26
+ "@stack-dev/prettier-config": "workspace:*",
27
+ "@stack-dev/typescript-config": "workspace:*",
28
+ "@types/lodash": "^4.17.20",
29
+ "@types/node": "^24.0.15",
30
+ "eslint": "^9.32.0",
31
+ "prettier": "^3.6.2",
32
+ "prettier-plugin-organize-imports": "^4.2.0",
33
+ "tsup": "^7.3.0"
34
+ }
35
+ }
@@ -0,0 +1,3 @@
1
+ import base from '@stack-dev/prettier-config/base.mjs';
2
+
3
+ export default base;
@@ -0,0 +1,20 @@
1
+ import { FileGenerator } from './file-generator';
2
+
3
+ export class FileGeneratorImp implements FileGenerator {
4
+ private readonly _filepath: string;
5
+
6
+ private readonly _contents: string;
7
+
8
+ public constructor(filepath: string, contents: string) {
9
+ this._filepath = filepath;
10
+ this._contents = contents;
11
+ }
12
+
13
+ public get filepath(): string {
14
+ return this._filepath;
15
+ }
16
+
17
+ public async generate(): Promise<string> {
18
+ return this._contents;
19
+ }
20
+ }
@@ -0,0 +1,5 @@
1
+ export interface FileGenerator {
2
+ readonly filepath: string;
3
+
4
+ generate(): Promise<string>;
5
+ }
@@ -0,0 +1,3 @@
1
+ export * from './file-generator';
2
+
3
+ export * from './package-json-generator';
@@ -0,0 +1,23 @@
1
+ import { FileGenerator } from './file-generator';
2
+ import { PackageJSON } from '../package-json';
3
+
4
+ export class PackageJsonGenerator implements FileGenerator {
5
+ private readonly _packageJson: PackageJSON;
6
+ private readonly _namespace: string;
7
+
8
+ public constructor(
9
+ packageJson: PackageJSON,
10
+ namespace: string = ''
11
+ ) {
12
+ this._packageJson = packageJson;
13
+ this._namespace = namespace;
14
+ }
15
+
16
+ public get filepath(): string {
17
+ return 'package.json';
18
+ }
19
+
20
+ public async generate(): Promise<string> {
21
+ return this._packageJson.format(this._namespace);
22
+ }
23
+ }
@@ -0,0 +1,185 @@
1
+ import {
2
+ createConfigPackage,
3
+ createLibraryPackage,
4
+ createReactPackage,
5
+ } from './packages';
6
+ import {
7
+ comparePackages,
8
+ getAllPackages,
9
+ getCurrentPackage,
10
+ getPackageByName,
11
+ } from './utils/package';
12
+ import { packageTypes, pickPackageType } from './utils/package-type';
13
+ import { pickStyleType, styleTypes } from './utils/style-type';
14
+
15
+ import { Command } from 'commander';
16
+ import { prompt } from 'enquirer';
17
+ import { linkPackages } from './link-packages';
18
+ import { createViteReactApp } from './packages/vite-react-app/create-vite-react-app';
19
+ import { unlinkPackages } from './unlink-packages';
20
+ import { getDirectoryPackageJson } from './utils/utils';
21
+ import { getNamespace } from './utils/workspace';
22
+ import { createWorkspace } from './workspace';
23
+
24
+ const program = new Command();
25
+
26
+ program
27
+ .name('stack')
28
+ .description('Opinionated TypeScript workspace manager')
29
+ .version('0.1.0');
30
+
31
+ program
32
+ .command('create <name>')
33
+ .description('Create a new workspace')
34
+ .option(
35
+ '-o, --output <dir>',
36
+ 'Target directory to create the workspace in',
37
+ '.',
38
+ )
39
+ .action(async (name, options) => {
40
+ const output = options.output ?? process.cwd();
41
+
42
+ await createWorkspace(name, output);
43
+ });
44
+
45
+ program
46
+ .command('g <name>')
47
+ .description('Generate a new package or app')
48
+ .option(
49
+ '-t, --type <type>',
50
+ `Type of package to generate (${packageTypes.join(', ')})`,
51
+ )
52
+ .option('--style <style>', `Styling system to use (${styleTypes.join(', ')})`)
53
+ .action(async (name, options) => {
54
+ const type = await pickPackageType(options);
55
+
56
+ switch (type) {
57
+ case 'library':
58
+ await createLibraryPackage(name);
59
+ break;
60
+ case 'config':
61
+ await createConfigPackage(name);
62
+ break;
63
+ case 'react':
64
+ await createReactPackage(name, await pickStyleType(options));
65
+ break;
66
+ case 'vite':
67
+ await createViteReactApp(name);
68
+ break;
69
+ case 'cli':
70
+ // await createCliPackage(name)
71
+ break;
72
+ case 'fastify':
73
+ // await createFastifyApp(name)
74
+ break;
75
+ case 'next':
76
+ // await createNextPackage(name)
77
+ break;
78
+ }
79
+
80
+ console.log('');
81
+ console.log('Run pnpm install to finish linking.');
82
+ });
83
+
84
+ program
85
+ .command('link [name]')
86
+ .alias('l')
87
+ .option('-D, --dev', 'Whether to link as a devDependency.', false)
88
+ .description('Link to the specified package')
89
+ .action(async (name, options) => {
90
+ name = name ?? (await promptForPackageToLinkTo());
91
+
92
+ const development = options.dev ?? false;
93
+
94
+ if (!isValidPackageName(name)) {
95
+ throw new Error(`Package name "${name}" is not a valid option.`);
96
+ }
97
+
98
+ const current = await getCurrentPackage();
99
+ const target = await getPackageByName(name);
100
+
101
+ await linkPackages(current, target, development);
102
+
103
+ console.log('');
104
+ console.log('Run pnpm install to finish linking.');
105
+ });
106
+
107
+ program
108
+ .command('unlink [name]')
109
+ .alias('u')
110
+ .description('Unlink the specified package')
111
+ .action(async (name) => {
112
+ name = name ?? (await promptForPackageToUnlinkFrom());
113
+
114
+ if (!(await isValidPackageName(name))) {
115
+ throw new Error(`Package name "${name}" is not a valid option.`);
116
+ }
117
+
118
+ const current = await getCurrentPackage();
119
+ const target = await getPackageByName(name);
120
+
121
+ await unlinkPackages(current, target);
122
+ });
123
+
124
+ async function promptForPackageToLinkTo(): Promise<string> {
125
+ const options = await getAllPackages();
126
+ const currentPackage = await getCurrentPackage();
127
+
128
+ const linked = await getLinkedPackageNames();
129
+
130
+ const validOptions = options
131
+ .filter((o) => o.name !== currentPackage.name)
132
+ .filter((o) => !linked.has(o.name))
133
+ .toSorted(comparePackages);
134
+
135
+ const response = await prompt<{ packageName: string }>({
136
+ type: 'select',
137
+ name: 'packageName',
138
+ message: 'What package do you want to link to?',
139
+ choices: [...validOptions],
140
+ });
141
+
142
+ return response.packageName;
143
+ }
144
+
145
+ async function promptForPackageToUnlinkFrom(): Promise<string> {
146
+ const validOptions = await getLinkedPackageNames();
147
+
148
+ const response = await prompt<{ packageName: string }>({
149
+ type: 'select',
150
+ name: 'packageName',
151
+ message: 'What package do you want to unlink from?',
152
+ choices: [...validOptions],
153
+ });
154
+
155
+ return response.packageName;
156
+ }
157
+
158
+ async function getLinkedPackageNames(): Promise<Set<string>> {
159
+ const currentPackage = await getCurrentPackage();
160
+ const packageJSON = await getDirectoryPackageJson(currentPackage.directory);
161
+ const namespace = await getNamespace();
162
+
163
+ const names = [...packageJSON.dependencies, ...packageJSON.devDependencies]
164
+ .map((d) => d.name)
165
+ .filter((n) => n.startsWith(namespace));
166
+
167
+ return new Set(names);
168
+ }
169
+
170
+ program.parse();
171
+
172
+ async function isValidPackageName(packageName: string): Promise<boolean> {
173
+ const options = await getValidPackageNames();
174
+
175
+ return options.some((o) => o === packageName);
176
+ }
177
+
178
+ async function getValidPackageNames(): Promise<ReadonlyArray<string>> {
179
+ const options = await getAllPackages();
180
+ const currentPackage = await getCurrentPackage();
181
+
182
+ return options
183
+ .filter((o) => o.name !== currentPackage.name)
184
+ .map((o) => o.name);
185
+ }