@spree/cli 1.1.0 → 2.0.0-beta

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 (292) hide show
  1. package/README.md +167 -44
  2. package/dist/index.js +136 -6
  3. package/package.json +51 -77
  4. package/bin/dev +0 -17
  5. package/bin/dev.cmd +0 -3
  6. package/bin/run +0 -10
  7. package/bin/run.cmd +0 -3
  8. package/dist/commands/new/app.d.ts +0 -11
  9. package/dist/commands/new/app.d.ts.map +0 -1
  10. package/dist/commands/new/app.js +0 -164
  11. package/dist/commands/new/app.js.map +0 -1
  12. package/dist/commands/start/app.d.ts +0 -9
  13. package/dist/commands/start/app.d.ts.map +0 -1
  14. package/dist/commands/start/app.js +0 -42
  15. package/dist/commands/start/app.js.map +0 -1
  16. package/dist/domains/async/index.d.ts +0 -2
  17. package/dist/domains/async/index.d.ts.map +0 -1
  18. package/dist/domains/async/index.js +0 -9
  19. package/dist/domains/async/index.js.map +0 -1
  20. package/dist/domains/async/wait.d.ts +0 -7
  21. package/dist/domains/async/wait.d.ts.map +0 -1
  22. package/dist/domains/async/wait.js +0 -13
  23. package/dist/domains/async/wait.js.map +0 -1
  24. package/dist/domains/build/BuildScript.d.ts +0 -3
  25. package/dist/domains/build/BuildScript.d.ts.map +0 -1
  26. package/dist/domains/build/BuildScript.js +0 -3
  27. package/dist/domains/build/BuildScript.js.map +0 -1
  28. package/dist/domains/build/fetchBuildScript.d.ts +0 -4
  29. package/dist/domains/build/fetchBuildScript.d.ts.map +0 -1
  30. package/dist/domains/build/fetchBuildScript.js +0 -14
  31. package/dist/domains/build/fetchBuildScript.js.map +0 -1
  32. package/dist/domains/build/getBuildScript.d.ts +0 -4
  33. package/dist/domains/build/getBuildScript.d.ts.map +0 -1
  34. package/dist/domains/build/getBuildScript.js +0 -8
  35. package/dist/domains/build/getBuildScript.js.map +0 -1
  36. package/dist/domains/build/index.d.ts +0 -4
  37. package/dist/domains/build/index.d.ts.map +0 -1
  38. package/dist/domains/build/index.js +0 -12
  39. package/dist/domains/build/index.js.map +0 -1
  40. package/dist/domains/constants/api.d.ts +0 -2
  41. package/dist/domains/constants/api.d.ts.map +0 -1
  42. package/dist/domains/constants/api.js +0 -5
  43. package/dist/domains/constants/api.js.map +0 -1
  44. package/dist/domains/constants/index.d.ts +0 -2
  45. package/dist/domains/constants/index.d.ts.map +0 -1
  46. package/dist/domains/constants/index.js +0 -6
  47. package/dist/domains/constants/index.js.map +0 -1
  48. package/dist/domains/dependencies/ComparisonOperator.d.ts +0 -3
  49. package/dist/domains/dependencies/ComparisonOperator.d.ts.map +0 -1
  50. package/dist/domains/dependencies/ComparisonOperator.js +0 -3
  51. package/dist/domains/dependencies/ComparisonOperator.js.map +0 -1
  52. package/dist/domains/dependencies/ComparisonResult.d.ts +0 -3
  53. package/dist/domains/dependencies/ComparisonResult.d.ts.map +0 -1
  54. package/dist/domains/dependencies/ComparisonResult.js +0 -3
  55. package/dist/domains/dependencies/ComparisonResult.js.map +0 -1
  56. package/dist/domains/dependencies/VersionCheckResult.d.ts +0 -7
  57. package/dist/domains/dependencies/VersionCheckResult.d.ts.map +0 -1
  58. package/dist/domains/dependencies/VersionCheckResult.js +0 -3
  59. package/dist/domains/dependencies/VersionCheckResult.js.map +0 -1
  60. package/dist/domains/dependencies/VersionCondition.d.ts +0 -7
  61. package/dist/domains/dependencies/VersionCondition.d.ts.map +0 -1
  62. package/dist/domains/dependencies/VersionCondition.js +0 -3
  63. package/dist/domains/dependencies/VersionCondition.js.map +0 -1
  64. package/dist/domains/dependencies/checkDependencies.d.ts +0 -4
  65. package/dist/domains/dependencies/checkDependencies.d.ts.map +0 -1
  66. package/dist/domains/dependencies/checkDependencies.js +0 -25
  67. package/dist/domains/dependencies/checkDependencies.js.map +0 -1
  68. package/dist/domains/dependencies/checkVersionByShellCommand.d.ts +0 -4
  69. package/dist/domains/dependencies/checkVersionByShellCommand.d.ts.map +0 -1
  70. package/dist/domains/dependencies/checkVersionByShellCommand.js +0 -50
  71. package/dist/domains/dependencies/checkVersionByShellCommand.js.map +0 -1
  72. package/dist/domains/dependencies/compareVersions.d.ts +0 -4
  73. package/dist/domains/dependencies/compareVersions.d.ts.map +0 -1
  74. package/dist/domains/dependencies/compareVersions.js +0 -27
  75. package/dist/domains/dependencies/compareVersions.js.map +0 -1
  76. package/dist/domains/dependencies/extractVersion.d.ts +0 -3
  77. package/dist/domains/dependencies/extractVersion.d.ts.map +0 -1
  78. package/dist/domains/dependencies/extractVersion.js +0 -12
  79. package/dist/domains/dependencies/extractVersion.js.map +0 -1
  80. package/dist/domains/dependencies/parseVersionCondition.d.ts +0 -4
  81. package/dist/domains/dependencies/parseVersionCondition.d.ts.map +0 -1
  82. package/dist/domains/dependencies/parseVersionCondition.js +0 -47
  83. package/dist/domains/dependencies/parseVersionCondition.js.map +0 -1
  84. package/dist/domains/dependencies/validate/validateDependencies.d.ts +0 -4
  85. package/dist/domains/dependencies/validate/validateDependencies.d.ts.map +0 -1
  86. package/dist/domains/dependencies/validate/validateDependencies.js +0 -35
  87. package/dist/domains/dependencies/validate/validateDependencies.js.map +0 -1
  88. package/dist/domains/directory/createDirectory.d.ts +0 -3
  89. package/dist/domains/directory/createDirectory.d.ts.map +0 -1
  90. package/dist/domains/directory/createDirectory.js +0 -19
  91. package/dist/domains/directory/createDirectory.js.map +0 -1
  92. package/dist/domains/directory/existsDirectory.d.ts +0 -3
  93. package/dist/domains/directory/existsDirectory.d.ts.map +0 -1
  94. package/dist/domains/directory/existsDirectory.js +0 -16
  95. package/dist/domains/directory/existsDirectory.js.map +0 -1
  96. package/dist/domains/directory/getDirectory.d.ts +0 -4
  97. package/dist/domains/directory/getDirectory.d.ts.map +0 -1
  98. package/dist/domains/directory/getDirectory.js +0 -28
  99. package/dist/domains/directory/getDirectory.js.map +0 -1
  100. package/dist/domains/directory/index.d.ts +0 -5
  101. package/dist/domains/directory/index.d.ts.map +0 -1
  102. package/dist/domains/directory/index.js +0 -15
  103. package/dist/domains/directory/index.js.map +0 -1
  104. package/dist/domains/directory/removeFileOrDirectory.d.ts +0 -3
  105. package/dist/domains/directory/removeFileOrDirectory.d.ts.map +0 -1
  106. package/dist/domains/directory/removeFileOrDirectory.js +0 -8
  107. package/dist/domains/directory/removeFileOrDirectory.js.map +0 -1
  108. package/dist/domains/error/index.d.ts +0 -2
  109. package/dist/domains/error/index.d.ts.map +0 -1
  110. package/dist/domains/error/index.js +0 -9
  111. package/dist/domains/error/index.js.map +0 -1
  112. package/dist/domains/error/resolveToError.d.ts +0 -4
  113. package/dist/domains/error/resolveToError.d.ts.map +0 -1
  114. package/dist/domains/error/resolveToError.js +0 -16
  115. package/dist/domains/error/resolveToError.js.map +0 -1
  116. package/dist/domains/git-repository/cloneGitRepository.d.ts +0 -9
  117. package/dist/domains/git-repository/cloneGitRepository.d.ts.map +0 -1
  118. package/dist/domains/git-repository/cloneGitRepository.js +0 -35
  119. package/dist/domains/git-repository/cloneGitRepository.js.map +0 -1
  120. package/dist/domains/git-repository/index.d.ts +0 -3
  121. package/dist/domains/git-repository/index.d.ts.map +0 -1
  122. package/dist/domains/git-repository/index.js +0 -11
  123. package/dist/domains/git-repository/index.js.map +0 -1
  124. package/dist/domains/git-repository/terminateGitRepository.d.ts +0 -4
  125. package/dist/domains/git-repository/terminateGitRepository.d.ts.map +0 -1
  126. package/dist/domains/git-repository/terminateGitRepository.js +0 -11
  127. package/dist/domains/git-repository/terminateGitRepository.js.map +0 -1
  128. package/dist/domains/git-repository-url/extractSuggestionFromError.d.ts +0 -4
  129. package/dist/domains/git-repository-url/extractSuggestionFromError.d.ts.map +0 -1
  130. package/dist/domains/git-repository-url/extractSuggestionFromError.js +0 -18
  131. package/dist/domains/git-repository-url/extractSuggestionFromError.js.map +0 -1
  132. package/dist/domains/git-repository-url/getGitRepositoryURL.d.ts +0 -4
  133. package/dist/domains/git-repository-url/getGitRepositoryURL.d.ts.map +0 -1
  134. package/dist/domains/git-repository-url/getGitRepositoryURL.js +0 -42
  135. package/dist/domains/git-repository-url/getGitRepositoryURL.js.map +0 -1
  136. package/dist/domains/git-repository-url/index.d.ts +0 -4
  137. package/dist/domains/git-repository-url/index.d.ts.map +0 -1
  138. package/dist/domains/git-repository-url/index.js +0 -13
  139. package/dist/domains/git-repository-url/index.js.map +0 -1
  140. package/dist/domains/git-repository-url/validateGitRepositoryURL.d.ts +0 -5
  141. package/dist/domains/git-repository-url/validateGitRepositoryURL.d.ts.map +0 -1
  142. package/dist/domains/git-repository-url/validateGitRepositoryURL.js +0 -21
  143. package/dist/domains/git-repository-url/validateGitRepositoryURL.js.map +0 -1
  144. package/dist/domains/integration/Integration.d.ts +0 -6
  145. package/dist/domains/integration/Integration.d.ts.map +0 -1
  146. package/dist/domains/integration/Integration.js +0 -3
  147. package/dist/domains/integration/Integration.js.map +0 -1
  148. package/dist/domains/integration/fetchIntegrations.d.ts +0 -4
  149. package/dist/domains/integration/fetchIntegrations.d.ts.map +0 -1
  150. package/dist/domains/integration/fetchIntegrations.js +0 -17
  151. package/dist/domains/integration/fetchIntegrations.js.map +0 -1
  152. package/dist/domains/integration/getIntegration.d.ts +0 -9
  153. package/dist/domains/integration/getIntegration.d.ts.map +0 -1
  154. package/dist/domains/integration/getIntegration.js +0 -51
  155. package/dist/domains/integration/getIntegration.js.map +0 -1
  156. package/dist/domains/integration/index.d.ts +0 -4
  157. package/dist/domains/integration/index.d.ts.map +0 -1
  158. package/dist/domains/integration/index.js +0 -11
  159. package/dist/domains/integration/index.js.map +0 -1
  160. package/dist/domains/math/identity.d.ts +0 -8
  161. package/dist/domains/math/identity.d.ts.map +0 -1
  162. package/dist/domains/math/identity.js +0 -10
  163. package/dist/domains/math/identity.js.map +0 -1
  164. package/dist/domains/math/index.d.ts +0 -2
  165. package/dist/domains/math/index.d.ts.map +0 -1
  166. package/dist/domains/math/index.js +0 -9
  167. package/dist/domains/math/index.js.map +0 -1
  168. package/dist/domains/module/Module.d.ts +0 -10
  169. package/dist/domains/module/Module.d.ts.map +0 -1
  170. package/dist/domains/module/Module.js +0 -3
  171. package/dist/domains/module/Module.js.map +0 -1
  172. package/dist/domains/module/Runner.d.ts +0 -11
  173. package/dist/domains/module/Runner.d.ts.map +0 -1
  174. package/dist/domains/module/Runner.js +0 -3
  175. package/dist/domains/module/Runner.js.map +0 -1
  176. package/dist/domains/module/Template.d.ts +0 -18
  177. package/dist/domains/module/Template.d.ts.map +0 -1
  178. package/dist/domains/module/Template.js +0 -3
  179. package/dist/domains/module/Template.js.map +0 -1
  180. package/dist/domains/module/index.d.ts +0 -3
  181. package/dist/domains/module/index.d.ts.map +0 -1
  182. package/dist/domains/module/index.js +0 -5
  183. package/dist/domains/module/index.js.map +0 -1
  184. package/dist/domains/project-name/formatToProjectName.d.ts +0 -4
  185. package/dist/domains/project-name/formatToProjectName.d.ts.map +0 -1
  186. package/dist/domains/project-name/formatToProjectName.js +0 -8
  187. package/dist/domains/project-name/formatToProjectName.js.map +0 -1
  188. package/dist/domains/project-name/getProjectName.d.ts +0 -4
  189. package/dist/domains/project-name/getProjectName.d.ts.map +0 -1
  190. package/dist/domains/project-name/getProjectName.js +0 -33
  191. package/dist/domains/project-name/getProjectName.js.map +0 -1
  192. package/dist/domains/project-name/index.d.ts +0 -3
  193. package/dist/domains/project-name/index.d.ts.map +0 -1
  194. package/dist/domains/project-name/index.js +0 -11
  195. package/dist/domains/project-name/index.js.map +0 -1
  196. package/dist/domains/run/RunScript.d.ts +0 -3
  197. package/dist/domains/run/RunScript.d.ts.map +0 -1
  198. package/dist/domains/run/RunScript.js +0 -3
  199. package/dist/domains/run/RunScript.js.map +0 -1
  200. package/dist/domains/run/getRunScript.d.ts +0 -4
  201. package/dist/domains/run/getRunScript.d.ts.map +0 -1
  202. package/dist/domains/run/getRunScript.js +0 -14
  203. package/dist/domains/run/getRunScript.js.map +0 -1
  204. package/dist/domains/run/index.d.ts +0 -3
  205. package/dist/domains/run/index.d.ts.map +0 -1
  206. package/dist/domains/run/index.js +0 -10
  207. package/dist/domains/run/index.js.map +0 -1
  208. package/dist/domains/spree/Options.d.ts +0 -6
  209. package/dist/domains/spree/Options.d.ts.map +0 -1
  210. package/dist/domains/spree/Options.js +0 -3
  211. package/dist/domains/spree/Options.js.map +0 -1
  212. package/dist/domains/spree/Spree.d.ts +0 -6
  213. package/dist/domains/spree/Spree.d.ts.map +0 -1
  214. package/dist/domains/spree/Spree.js +0 -3
  215. package/dist/domains/spree/Spree.js.map +0 -1
  216. package/dist/domains/spree/SpreeChoice.d.ts +0 -7
  217. package/dist/domains/spree/SpreeChoice.d.ts.map +0 -1
  218. package/dist/domains/spree/SpreeChoice.js +0 -3
  219. package/dist/domains/spree/SpreeChoice.js.map +0 -1
  220. package/dist/domains/spree/UserOptions.d.ts +0 -6
  221. package/dist/domains/spree/UserOptions.d.ts.map +0 -1
  222. package/dist/domains/spree/UserOptions.js +0 -3
  223. package/dist/domains/spree/UserOptions.js.map +0 -1
  224. package/dist/domains/spree/buildSpreeChoices.d.ts +0 -7
  225. package/dist/domains/spree/buildSpreeChoices.d.ts.map +0 -1
  226. package/dist/domains/spree/buildSpreeChoices.js +0 -28
  227. package/dist/domains/spree/buildSpreeChoices.js.map +0 -1
  228. package/dist/domains/spree/fetchSpreeTemplates.d.ts +0 -4
  229. package/dist/domains/spree/fetchSpreeTemplates.d.ts.map +0 -1
  230. package/dist/domains/spree/fetchSpreeTemplates.js +0 -20
  231. package/dist/domains/spree/fetchSpreeTemplates.js.map +0 -1
  232. package/dist/domains/spree/getSpree.d.ts +0 -6
  233. package/dist/domains/spree/getSpree.d.ts.map +0 -1
  234. package/dist/domains/spree/getSpree.js +0 -24
  235. package/dist/domains/spree/getSpree.js.map +0 -1
  236. package/dist/domains/spree/index.d.ts +0 -8
  237. package/dist/domains/spree/index.d.ts.map +0 -1
  238. package/dist/domains/spree/index.js +0 -17
  239. package/dist/domains/spree/index.js.map +0 -1
  240. package/dist/domains/theme/index.d.ts +0 -2
  241. package/dist/domains/theme/index.d.ts.map +0 -1
  242. package/dist/domains/theme/index.js +0 -9
  243. package/dist/domains/theme/index.js.map +0 -1
  244. package/dist/domains/theme/inheritTheme.d.ts +0 -7
  245. package/dist/domains/theme/inheritTheme.d.ts.map +0 -1
  246. package/dist/domains/theme/inheritTheme.js +0 -38
  247. package/dist/domains/theme/inheritTheme.js.map +0 -1
  248. package/dist/domains/theme/processMagicComments.d.ts +0 -3
  249. package/dist/domains/theme/processMagicComments.d.ts.map +0 -1
  250. package/dist/domains/theme/processMagicComments.js +0 -14
  251. package/dist/domains/theme/processMagicComments.js.map +0 -1
  252. package/dist/domains/theme/removeDevCommentBlocks.d.ts +0 -3
  253. package/dist/domains/theme/removeDevCommentBlocks.d.ts.map +0 -1
  254. package/dist/domains/theme/removeDevCommentBlocks.js +0 -7
  255. package/dist/domains/theme/removeDevCommentBlocks.js.map +0 -1
  256. package/dist/domains/theme/uncommentProjectOnlyBlocks.d.ts +0 -3
  257. package/dist/domains/theme/uncommentProjectOnlyBlocks.d.ts.map +0 -1
  258. package/dist/domains/theme/uncommentProjectOnlyBlocks.js +0 -7
  259. package/dist/domains/theme/uncommentProjectOnlyBlocks.js.map +0 -1
  260. package/dist/domains/typescript/Diff.d.ts +0 -3
  261. package/dist/domains/typescript/Diff.d.ts.map +0 -1
  262. package/dist/domains/typescript/Diff.js +0 -3
  263. package/dist/domains/typescript/Diff.js.map +0 -1
  264. package/dist/domains/typescript/index.d.ts +0 -3
  265. package/dist/domains/typescript/index.d.ts.map +0 -1
  266. package/dist/domains/typescript/index.js +0 -10
  267. package/dist/domains/typescript/index.js.map +0 -1
  268. package/dist/domains/typescript/notEmpty.d.ts +0 -3
  269. package/dist/domains/typescript/notEmpty.d.ts.map +0 -1
  270. package/dist/domains/typescript/notEmpty.js +0 -7
  271. package/dist/domains/typescript/notEmpty.js.map +0 -1
  272. package/dist/domains/variables/Variables.d.ts +0 -9
  273. package/dist/domains/variables/Variables.d.ts.map +0 -1
  274. package/dist/domains/variables/Variables.js +0 -3
  275. package/dist/domains/variables/Variables.js.map +0 -1
  276. package/dist/domains/variables/index.d.ts +0 -3
  277. package/dist/domains/variables/index.d.ts.map +0 -1
  278. package/dist/domains/variables/index.js +0 -10
  279. package/dist/domains/variables/index.js.map +0 -1
  280. package/dist/domains/variables/useVariables.d.ts +0 -7
  281. package/dist/domains/variables/useVariables.d.ts.map +0 -1
  282. package/dist/domains/variables/useVariables.js +0 -19
  283. package/dist/domains/variables/useVariables.js.map +0 -1
  284. package/dist/index.d.ts +0 -2
  285. package/dist/index.d.ts.map +0 -1
  286. package/dist/index.js.map +0 -1
  287. package/dist/infrastructures/i18next.d.ts +0 -2
  288. package/dist/infrastructures/i18next.d.ts.map +0 -1
  289. package/dist/infrastructures/i18next.js +0 -23
  290. package/dist/infrastructures/i18next.js.map +0 -1
  291. package/locales/en-US/translation.json +0 -58
  292. package/oclif.manifest.json +0 -1
package/README.md CHANGED
@@ -1,72 +1,195 @@
1
- # Spree CLI
1
+ # @spree/cli
2
2
 
3
- Spree CLI is a tool that makes it easy to bootstrap a new Spree project.
4
- It provides an interactive process for configuring Spree backend (running in Dockerized, Hybrid or Native mode) and a selection of available frontends.
3
+ CLI for managing [Spree Commerce](https://spreecommerce.org) projects.
5
4
 
6
- ## Dependencies
5
+ Automatically included in projects created with [`create-spree-app`](https://www.npmjs.com/package/create-spree-app). Can also be installed standalone.
7
6
 
8
- Node 14+ is required to run the CLI. Depending on the chosen Spree setup, you will have to install different dependencies first:
7
+ ## Installation
9
8
 
10
- ### Spree (dockerized)
11
- - docker >= 20.0
12
- - docker-compose
9
+ Already included when you scaffold a project with `create-spree-app`. To install separately:
13
10
 
14
- ### Spree (no docker)
15
- - ruby = 3.2.0
16
- - vips >= 8.6
17
- - gpg
18
- - psql
19
- - redis
11
+ ```bash
12
+ npm install @spree/cli
13
+ ```
14
+
15
+ Or run directly with npx:
16
+
17
+ ```bash
18
+ npx @spree/cli <command>
19
+ ```
20
+
21
+ Or install globally:
22
+
23
+ ```bash
24
+ npm install -g @spree/cli
25
+ spree <command>
26
+ ```
27
+
28
+ ## Commands
29
+
30
+ Run these from your Spree project directory.
31
+
32
+ ### `spree dev`
33
+
34
+ Start Docker services, print connection info, and stream web server logs.
35
+
36
+ ```bash
37
+ spree dev
38
+ ```
39
+
40
+ ```
41
+ ╭ Spree Commerce ─────────────────────╮
42
+ │ │
43
+ │ Admin Dashboard │
44
+ │ http://localhost:3000/admin │
45
+ │ Email: spree@example.com │
46
+ │ Password: spree123 │
47
+ │ │
48
+ │ Store API │
49
+ │ http://localhost:3000/api/v3/store│
50
+ │ │
51
+ ╰─────────────────────────────────────╯
52
+ ```
53
+
54
+ Press `Ctrl+C` to stop streaming logs (services keep running).
55
+
56
+ ### `spree stop`
57
+
58
+ Stop all running services.
59
+
60
+ ```bash
61
+ spree stop
62
+ ```
63
+
64
+ ### `spree update`
20
65
 
21
- ### Spree (hybrid)
22
- - docker >= 20.0
23
- - docker-compose
24
- - ruby = 3.2.0
25
- - vips >= 8.6
26
- - redis (only needed for running rspec tests)
66
+ Pull the latest Spree Docker image and recreate containers. Database migrations run automatically on startup via `db:prepare`.
27
67
 
28
- ### Vue Storefront
29
- - node >= 14.15 <= 14.19
30
- - yarn
68
+ ```bash
69
+ spree update
70
+ ```
71
+
72
+ To pin a specific version, edit `SPREE_VERSION_TAG` in your `.env` file:
31
73
 
32
- ### Next.js Commerce
33
- - node >= 13.0
34
- - yarn
74
+ ```
75
+ SPREE_VERSION_TAG=5.4
76
+ ```
35
77
 
36
- ## Usage
78
+ ### `spree logs [service]`
37
79
 
38
- To get started, simply run the following command in your terminal:
80
+ Stream logs from a service. Defaults to `web`.
39
81
 
40
82
  ```bash
41
- npx @spree/cli new app
83
+ spree logs # web server logs
84
+ spree logs worker # background job logs
42
85
  ```
43
86
 
44
- This will launch the interactive process that will guide you through the process of setting up a new Spree-based store.
87
+ ### `spree console`
88
+
89
+ Open an interactive Rails console inside the running container.
45
90
 
46
- In order to start the already generated app, navigate to your project's folder and run the following command:
47
91
  ```bash
48
- npx @spree/cli start app
92
+ spree console
49
93
  ```
50
- Happy hacking!
51
94
 
52
- ## Troubleshooting
95
+ ### `spree user create`
96
+
97
+ Create an admin user. Prompts interactively for email and password, or accepts flags for scripting.
53
98
 
54
- ### 1. NextJS storefront doesn't start properly
55
- If the Storefront doesn't start you need to relaunch server manually.
56
- To do so you should navigate to `/integration` folder inside created project and type `yarn dev` into console.
99
+ ```bash
100
+ # Interactive
101
+ spree user create
57
102
 
58
- ### 2. NextJS storefront stops during launch
103
+ # Non-interactive
104
+ spree user create --email admin@example.com --password secret123
105
+ ```
59
106
 
60
- In case if the server is randomly stopping during launch it is advised to stop it (for example with `ctrl + c`) and repeat steps mentioned above.
107
+ The user is automatically assigned the `admin` role on the default store.
61
108
 
109
+ ### `spree api-key create`
62
110
 
63
- If you have encountered any other problem with NextJS you can also refer to NextJs docs: https://github.com/vercel/commerce
111
+ Create a Store API (publishable) or Admin API (secret) key. Prompts interactively for name and type, or accepts flags.
64
112
 
113
+ ```bash
114
+ # Interactive
115
+ spree api-key create
116
+
117
+ # Non-interactive
118
+ spree api-key create --name "My Storefront" --type publishable
119
+ spree api-key create --name "Admin Integration" --type secret
120
+ ```
121
+
122
+ **Important:** Secret key tokens are displayed only once at creation time and cannot be retrieved later. Save them immediately.
123
+
124
+ ### `spree api-key list`
125
+
126
+ List all API keys for the default store with their name, type, token/prefix, creation date, and status.
127
+
128
+ ```bash
129
+ spree api-key list
130
+ ```
131
+
132
+ ```
133
+ Name Type Token Created Status
134
+ ────────────────────────────────────────────────────────────────────────────────────────────────
135
+ My Storefront publishable pk_abc123def456... 2025-01-15 10:30 active
136
+ Admin Integration secret sk_xyz789qwe... 2025-01-15 10:35 active
137
+ ```
138
+
139
+ ### `spree api-key revoke`
140
+
141
+ Revoke an API key by its token (publishable) or token prefix (secret).
142
+
143
+ ```bash
144
+ spree api-key revoke pk_abc123def456...
145
+ ```
146
+
147
+ ### `spree seed`
148
+
149
+ Run database seeds.
150
+
151
+ ```bash
152
+ spree seed
153
+ ```
154
+
155
+ ### `spree sample-data`
156
+
157
+ Load sample products, categories, customers, and images.
158
+
159
+ ```bash
160
+ spree sample-data
161
+ ```
162
+
163
+ ## How It Works
164
+
165
+ The CLI detects your project by looking for `docker-compose.yml` in the current directory. All commands execute via `docker compose` against the running Spree containers.
166
+
167
+ - **Port** is read from `SPREE_PORT` in your `.env` file (default: `3000`)
168
+ - **User and API key commands** run Ruby scripts via `docker compose exec web bin/rails runner`
169
+ - **Service commands** (`dev`, `stop`, `update`) are thin wrappers around `docker compose`
170
+
171
+ ## Using with npm scripts
172
+
173
+ Projects created with `create-spree-app` include convenience scripts in `package.json`:
174
+
175
+ ```bash
176
+ npm run dev # spree dev
177
+ npm run stop # spree stop
178
+ npm run update # spree update
179
+ npm run logs # spree logs
180
+ npm run logs:worker # spree logs worker
181
+ npm run console # spree console
182
+ npm run seed # spree seed
183
+ npm run load-sample-data # spree sample-data
184
+ ```
65
185
 
66
- ## Overview
186
+ ## Learn More
67
187
 
68
- This repository contains CLI to integrate Spree and storefront of your choice
188
+ - [Spree Documentation](https://docs.spreecommerce.org)
189
+ - [Store API Reference](https://docs.spreecommerce.org/api-reference/store)
190
+ - [create-spree-app](https://www.npmjs.com/package/create-spree-app)
191
+ - [Spree GitHub](https://github.com/spree/spree)
69
192
 
70
- This repository is being developed and maintained by [Upside](https://upsidelab.io)
193
+ ## License
71
194
 
72
- <a href="https://upsidelab.io"><img src="https://user-images.githubusercontent.com/6420475/141106487-333774a5-04b2-46a4-8367-7cb11e46906e.png" height="100px" /></a>
195
+ MIT