shopify-cli 1.5.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  3. data/.rubocop_todo.yml +15 -2
  4. data/.travis.yml +1 -0
  5. data/CHANGELOG.md +26 -0
  6. data/Gemfile +12 -12
  7. data/Gemfile.lock +14 -14
  8. data/README.md +39 -7
  9. data/Rakefile +32 -28
  10. data/bin/load_shopify.rb +6 -6
  11. data/bin/shopify +2 -2
  12. data/dev.yml +5 -2
  13. data/docs/_config.yml +1 -18
  14. data/docs/app/node/commands/index.md +2 -80
  15. data/docs/app/node/index.md +2 -33
  16. data/docs/app/rails/commands/index.md +2 -78
  17. data/docs/app/rails/index.md +2 -34
  18. data/docs/core/index.md +2 -84
  19. data/docs/getting-started/index.md +2 -25
  20. data/docs/getting-started/install/index.md +1 -118
  21. data/docs/getting-started/migrate/index.md +2 -94
  22. data/docs/getting-started/uninstall/index.md +2 -35
  23. data/docs/getting-started/upgrade/index.md +2 -39
  24. data/docs/help/start-app/index.md +2 -4
  25. data/docs/index.md +2 -24
  26. data/ext/shopify-cli/extconf.rb +7 -7
  27. data/install.sh +1 -1
  28. data/lib/docgen/markdown.rb +12 -12
  29. data/lib/graphql/extension_create.graphql +17 -2
  30. data/lib/graphql/fetch_specifications.graphql +14 -0
  31. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  32. data/lib/project_types/extension/cli.rb +56 -48
  33. data/lib/project_types/extension/commands/build.rb +3 -3
  34. data/lib/project_types/extension/commands/create.rb +17 -10
  35. data/lib/project_types/extension/commands/extension_command.rb +14 -7
  36. data/lib/project_types/extension/commands/push.rb +10 -10
  37. data/lib/project_types/extension/commands/register.rb +22 -32
  38. data/lib/project_types/extension/commands/serve.rb +1 -7
  39. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  40. data/lib/project_types/extension/extension_project.rb +22 -7
  41. data/lib/project_types/extension/extension_project_keys.rb +5 -4
  42. data/lib/project_types/extension/features/argo.rb +123 -0
  43. data/lib/project_types/extension/features/argo_config.rb +5 -5
  44. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  45. data/lib/project_types/extension/features/argo_renderer_package.rb +32 -0
  46. data/lib/project_types/extension/features/argo_serve.rb +69 -0
  47. data/lib/project_types/extension/features/argo_setup.rb +2 -2
  48. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  49. data/lib/project_types/extension/forms/create.rb +28 -34
  50. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  51. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  52. data/lib/project_types/extension/forms/questions/ask_type.rb +47 -0
  53. data/lib/project_types/extension/messages/message_loading.rb +3 -1
  54. data/lib/project_types/extension/messages/messages.rb +55 -52
  55. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  56. data/lib/project_types/extension/models/registration.rb +1 -0
  57. data/lib/project_types/extension/models/specification.rb +39 -0
  58. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +19 -0
  59. data/lib/project_types/extension/models/specification_handlers/default.rb +75 -0
  60. data/lib/project_types/extension/models/specifications.rb +88 -0
  61. data/lib/project_types/extension/tasks/configure_features.rb +54 -0
  62. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  63. data/lib/project_types/extension/tasks/converters/registration_converter.rb +8 -6
  64. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  65. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  66. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  67. data/lib/project_types/extension/tasks/fetch_specifications.rb +18 -0
  68. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  69. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  70. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  71. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  72. data/lib/project_types/node/cli.rb +19 -19
  73. data/lib/project_types/node/commands/connect.rb +3 -3
  74. data/lib/project_types/node/commands/create.rb +42 -38
  75. data/lib/project_types/node/commands/deploy.rb +4 -4
  76. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  77. data/lib/project_types/node/commands/generate.rb +3 -34
  78. data/lib/project_types/node/commands/open.rb +2 -2
  79. data/lib/project_types/node/commands/populate.rb +6 -6
  80. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  81. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  82. data/lib/project_types/node/commands/populate/product.rb +5 -5
  83. data/lib/project_types/node/commands/serve.rb +9 -9
  84. data/lib/project_types/node/commands/tunnel.rb +7 -7
  85. data/lib/project_types/node/forms/create.rb +17 -8
  86. data/lib/project_types/node/messages/messages.rb +13 -47
  87. data/lib/project_types/rails/cli.rb +21 -21
  88. data/lib/project_types/rails/commands/connect.rb +3 -3
  89. data/lib/project_types/rails/commands/create.rb +56 -54
  90. data/lib/project_types/rails/commands/deploy.rb +4 -4
  91. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  92. data/lib/project_types/rails/commands/generate.rb +7 -7
  93. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  94. data/lib/project_types/rails/commands/open.rb +2 -2
  95. data/lib/project_types/rails/commands/populate.rb +6 -6
  96. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  97. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  98. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  99. data/lib/project_types/rails/commands/serve.rb +11 -11
  100. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  101. data/lib/project_types/rails/forms/create.rb +35 -25
  102. data/lib/project_types/rails/gem.rb +24 -24
  103. data/lib/project_types/rails/messages/messages.rb +6 -5
  104. data/lib/project_types/rails/ruby.rb +2 -2
  105. data/lib/project_types/script/cli.rb +38 -39
  106. data/lib/project_types/script/commands/create.rb +12 -14
  107. data/lib/project_types/script/commands/push.rb +10 -17
  108. data/lib/project_types/script/config/extension_points.yml +29 -10
  109. data/lib/project_types/script/errors.rb +1 -2
  110. data/lib/project_types/script/forms/create.rb +18 -5
  111. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +9 -1
  112. data/lib/project_types/script/graphql/script_service_proxy.graphql +1 -2
  113. data/lib/project_types/script/layers/application/build_script.rb +10 -7
  114. data/lib/project_types/script/layers/application/create_script.rb +37 -25
  115. data/lib/project_types/script/layers/application/extension_points.rb +25 -0
  116. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  117. data/lib/project_types/script/layers/application/push_script.rb +13 -18
  118. data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
  119. data/lib/project_types/script/layers/domain/errors.rb +20 -0
  120. data/lib/project_types/script/layers/domain/extension_point.rb +82 -11
  121. data/lib/project_types/script/layers/domain/metadata.rb +48 -0
  122. data/lib/project_types/script/layers/domain/push_package.rb +25 -6
  123. data/lib/project_types/script/layers/domain/script_project.rb +34 -0
  124. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +42 -13
  125. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +24 -49
  126. data/lib/project_types/script/layers/infrastructure/errors.rb +32 -19
  127. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +12 -6
  128. data/lib/project_types/script/layers/infrastructure/project_creator.rb +2 -1
  129. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +22 -17
  130. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +72 -0
  131. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +59 -0
  132. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +145 -0
  133. data/lib/project_types/script/layers/infrastructure/script_service.rb +32 -75
  134. data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
  135. data/lib/project_types/script/messages/messages.rb +58 -59
  136. data/lib/project_types/script/ui/error_handler.rb +115 -72
  137. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  138. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  139. data/lib/project_types/theme/cli.rb +40 -0
  140. data/lib/project_types/theme/commands/connect.rb +54 -0
  141. data/lib/project_types/theme/commands/create.rb +48 -0
  142. data/lib/project_types/theme/commands/deploy.rb +38 -0
  143. data/lib/project_types/theme/commands/generate.rb +20 -0
  144. data/lib/project_types/theme/commands/generate/env.rb +79 -0
  145. data/lib/project_types/theme/commands/push.rb +55 -0
  146. data/lib/project_types/theme/commands/serve.rb +31 -0
  147. data/lib/project_types/theme/forms/connect.rb +34 -0
  148. data/lib/project_types/theme/forms/create.rb +22 -0
  149. data/lib/project_types/theme/messages/messages.rb +147 -0
  150. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +78 -0
  151. data/lib/project_types/theme/themekit.rb +113 -0
  152. data/lib/rubygems_plugin.rb +3 -3
  153. data/lib/shopify-cli/admin_api.rb +52 -12
  154. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  155. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  156. data/lib/shopify-cli/api.rb +34 -31
  157. data/lib/shopify-cli/command.rb +1 -1
  158. data/lib/shopify-cli/commands.rb +9 -9
  159. data/lib/shopify-cli/commands/config.rb +28 -52
  160. data/lib/shopify-cli/commands/connect.rb +10 -10
  161. data/lib/shopify-cli/commands/create.rb +5 -5
  162. data/lib/shopify-cli/commands/help.rb +6 -6
  163. data/lib/shopify-cli/commands/logout.rb +3 -3
  164. data/lib/shopify-cli/commands/system.rb +33 -33
  165. data/lib/shopify-cli/commands/version.rb +2 -2
  166. data/lib/shopify-cli/context.rb +71 -22
  167. data/lib/shopify-cli/core.rb +4 -4
  168. data/lib/shopify-cli/core/entry_point.rb +5 -5
  169. data/lib/shopify-cli/core/executor.rb +1 -1
  170. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  171. data/lib/shopify-cli/core/monorail.rb +16 -16
  172. data/lib/shopify-cli/db.rb +2 -2
  173. data/lib/shopify-cli/feature.rb +1 -3
  174. data/lib/shopify-cli/form.rb +1 -1
  175. data/lib/shopify-cli/git.rb +17 -17
  176. data/lib/shopify-cli/helpers.rb +1 -1
  177. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  178. data/lib/shopify-cli/heroku.rb +28 -28
  179. data/lib/shopify-cli/http_request.rb +21 -9
  180. data/lib/shopify-cli/js_deps.rb +12 -12
  181. data/lib/shopify-cli/js_system.rb +5 -5
  182. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  183. data/lib/shopify-cli/messages/messages.rb +9 -16
  184. data/lib/shopify-cli/method_object.rb +104 -0
  185. data/lib/shopify-cli/oauth.rb +25 -25
  186. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  187. data/lib/shopify-cli/options.rb +3 -3
  188. data/lib/shopify-cli/packager.rb +24 -24
  189. data/lib/shopify-cli/partners_api.rb +24 -18
  190. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  191. data/lib/shopify-cli/process_supervision.rb +7 -7
  192. data/lib/shopify-cli/project.rb +16 -16
  193. data/lib/shopify-cli/project_type.rb +4 -4
  194. data/lib/shopify-cli/resolve_constant.rb +25 -0
  195. data/lib/shopify-cli/resources.rb +1 -1
  196. data/lib/shopify-cli/resources/env_file.rb +9 -9
  197. data/lib/shopify-cli/result.rb +432 -0
  198. data/lib/shopify-cli/shopifolk.rb +6 -8
  199. data/lib/shopify-cli/sub_command.rb +1 -1
  200. data/lib/shopify-cli/task.rb +3 -3
  201. data/lib/shopify-cli/tasks.rb +7 -7
  202. data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
  203. data/lib/shopify-cli/tasks/ensure_dev_store.rb +12 -12
  204. data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
  205. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  206. data/lib/shopify-cli/tasks/select_org_and_shop.rb +25 -24
  207. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  208. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  209. data/lib/shopify-cli/tunnel.rb +36 -30
  210. data/lib/shopify-cli/version.rb +1 -1
  211. data/lib/shopify_cli.rb +57 -52
  212. data/shopify-cli.gemspec +6 -6
  213. data/shopify.fish +1 -1
  214. data/shopify.sh +1 -1
  215. data/vendor/deps/cli-kit/REVISION +1 -1
  216. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +2 -2
  217. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +3 -3
  218. data/vendor/deps/cli-ui/REVISION +1 -1
  219. data/vendor/deps/cli-ui/lib/cli/ui.rb +26 -22
  220. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +4 -6
  221. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +3 -3
  222. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +8 -9
  223. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +1 -1
  224. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +1 -0
  225. data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +15 -3
  226. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +4 -11
  227. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +3 -5
  228. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +10 -10
  229. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +1 -1
  230. data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +56 -0
  231. data/vendor/deps/webrick/.gitignore +9 -0
  232. data/vendor/deps/webrick/Gemfile +3 -0
  233. data/vendor/deps/webrick/LICENSE.txt +22 -0
  234. data/vendor/deps/webrick/README.md +61 -0
  235. data/vendor/deps/webrick/Rakefile +10 -0
  236. data/vendor/deps/webrick/lib/webrick.rb +232 -0
  237. data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
  238. data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
  239. data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
  240. data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
  241. data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
  242. data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
  243. data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
  244. data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
  245. data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
  246. data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
  247. data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
  248. data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
  249. data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
  250. data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
  251. data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
  252. data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
  253. data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
  254. data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
  255. data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
  256. data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
  257. data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
  258. data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  259. data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
  260. data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
  261. data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
  262. data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
  263. data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
  264. data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
  265. data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
  266. data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
  267. data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
  268. data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
  269. data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
  270. data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
  271. data/vendor/deps/webrick/webrick.gemspec +74 -0
  272. data/vendor/gen/template/bin/update-deps +9 -9
  273. metadata +83 -35
  274. data/docs/Gemfile +0 -5
  275. data/docs/Gemfile.lock +0 -258
  276. data/docs/_data/nav.yml +0 -35
  277. data/docs/_includes/footer.html +0 -15
  278. data/docs/_includes/head.html +0 -19
  279. data/docs/_includes/sidebar_nav.html +0 -22
  280. data/docs/_includes/toc.html +0 -112
  281. data/docs/_layouts/default.html +0 -79
  282. data/docs/css/docs.css +0 -157
  283. data/docs/images/header.png +0 -0
  284. data/docs/installing-ruby.md +0 -28
  285. data/lib/project_types/extension/features/argo/admin.rb +0 -20
  286. data/lib/project_types/extension/features/argo/base.rb +0 -129
  287. data/lib/project_types/extension/features/argo/checkout.rb +0 -20
  288. data/lib/project_types/extension/forms/register.rb +0 -47
  289. data/lib/project_types/extension/models/type.rb +0 -81
  290. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +0 -23
  291. data/lib/project_types/extension/models/types/product_subscription.rb +0 -24
  292. data/lib/project_types/node/commands/generate/billing.rb +0 -39
  293. data/lib/project_types/node/commands/generate/page.rb +0 -59
  294. data/lib/project_types/node/commands/generate/webhook.rb +0 -37
  295. data/lib/project_types/script/commands/disable.rb +0 -25
  296. data/lib/project_types/script/commands/enable.rb +0 -78
  297. data/lib/project_types/script/graphql/shop_script_delete.graphql +0 -14
  298. data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +0 -28
  299. data/lib/project_types/script/layers/application/disable_script.rb +0 -21
  300. data/lib/project_types/script/layers/application/enable_script.rb +0 -23
  301. data/lib/project_types/script/layers/domain/script.rb +0 -18
  302. data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -47
  303. data/lib/project_types/script/script_project.rb +0 -54
  304. data/lib/project_types/script/templates/ts/as-pect.config.js +0 -27
  305. data/lib/project_types/script/templates/ts/as-pect.d.ts +0 -1
@@ -1,37 +1,4 @@
1
1
  ---
2
- title: Uninstall Shopify App CLI
3
- section: getting-started
4
- toc: false
5
- redirect_from: "/uninstall/"
2
+ title: Troubleshooting Shopify App CLI
3
+ redirect_to: https://shopify.dev/tools/cli/troubleshooting
6
4
  ---
7
-
8
- Shopify App CLI can be removed from your system using the same package manager you used to install it.
9
-
10
- ### Homebrew (macOS)
11
-
12
- ```console
13
- $ brew uninstall shopify-cli
14
- ```
15
-
16
- ### apt (Debian, Ubuntu)
17
-
18
- ```console
19
- $ sudo apt remove shopify-cli
20
- ```
21
-
22
- ### yum (CentOS 8+, Fedora, Red Hat, SUSE)
23
-
24
- ```console
25
- $ sudo yum remove shopify-cli
26
- ```
27
-
28
- ### RubyGems (macOS, Linux, Windows 10)
29
-
30
- ```console
31
- $ gem uninstall shopify-cli
32
- ```
33
-
34
- ## Uninstall a legacy version
35
-
36
- If you’re using a legacy version of the CLI (`<0.9.0`), you’ll need to [uninstall it manually]({{ site.baseurl }}/getting-started/migrate/#1-uninstall-the-old-cli).
37
-
@@ -1,41 +1,4 @@
1
1
  ---
2
- title: Upgrade Shopify App CLI
3
- section: getting-started
4
- toc: false
5
- redirect_from: "/upgrade/"
2
+ title: Troubleshooting Shopify App CLI
3
+ redirect_to: https://shopify.dev/tools/cli/troubleshooting
6
4
  ---
7
-
8
- You can manage upgrades to Shopify App CLI with the package manager for your platform. **Note** that it's important to use the same package manager to upgrade that you originally used to install Shopify App CLI.
9
-
10
- ### Homebrew (macOS)
11
-
12
- ```console
13
- $ brew update
14
- $ brew upgrade shopify-cli
15
- ```
16
-
17
- ### apt (Debian, Ubuntu)
18
-
19
- On Debian-based Linux distributions, download the latest `.deb` file for Shopify App CLI from the [releases page](https://github.com/Shopify/shopify-app-cli/releases) and install it to update.
20
-
21
- 1. Download the `.deb` file from the [releases page](https://github.com/Shopify/shopify-app-cli/releases)
22
- 1. Install the downloaded file
23
- ```console
24
- $ sudo apt install /path/to/downloaded/shopify-cli-x.y.z.deb
25
- ```
26
-
27
- ### yum (CentOS 8+, Fedora, Red Hat, SUSE)
28
-
29
- On Red Hat–based Linux distributions, download the latest `.rpm` file for Shopify App CLI from the [releases page](https://github.com/Shopify/shopify-app-cli/releases) and install it to update.
30
-
31
- 1. Download the `.rpm` file from the [releases page](https://github.com/Shopify/shopify-app-cli/releases)
32
- 1. Install the downloaded file
33
- ```console
34
- $ sudo yum install /path/to/downloaded/shopify-cli-x.y.x.rpm
35
- ```
36
-
37
- ### RubyGems (macOS, Linux, Windows 10)
38
-
39
- ```console
40
- $ gem update shopify-cli
41
- ```
@@ -1,6 +1,4 @@
1
1
  ---
2
- title: Start your app
3
- toc: false
2
+ title: Getting started with Shopify App CLI
3
+ redirect_to: https://shopify.dev/tools/cli/getting-started
4
4
  ---
5
-
6
- Your app is not running, and no app URL has been set. Try running `shopify serve` in your project to get started.
data/docs/index.md CHANGED
@@ -1,26 +1,4 @@
1
1
  ---
2
- title: Introduction
3
- section: intro
4
- toc: false
2
+ title: Shopify App CLI
3
+ redirect_to: https://shopify.dev/tools/cli
5
4
  ---
6
-
7
- Shopify App CLI helps you build Shopify apps faster. It quickly scaffolds Node.js and Ruby on Rails apps, and automates many common development tasks.
8
-
9
- **[Get started with Shopify App CLI]({{ site.baseurl }}{% link getting-started/index.md %})**
10
-
11
- ## Quick start
12
-
13
- 1. [Install Shopify App CLI]({{ site.baseurl }}{% link getting-started/install/index.md %}).
14
- 2. Create an app:
15
- ```console
16
- $ shopify create
17
- ```
18
- 3. Start and install your app on a Shopify development store:
19
- ```console
20
- $ shopify serve
21
- ```
22
- ```console
23
- $ shopify open
24
- ```
25
-
26
- **[Learn more in our Getting Started guide]({{ site.baseurl }}{% link getting-started/index.md %})**
@@ -1,8 +1,8 @@
1
- require 'rbconfig'
2
- require 'fileutils'
1
+ require "rbconfig"
2
+ require "fileutils"
3
3
 
4
- gem = File.expand_path('../../../', __FILE__)
5
- exe = File.join(gem, 'bin', 'shopify')
4
+ gem = File.expand_path("../../../", __FILE__)
5
+ exe = File.join(gem, "bin", "shopify")
6
6
 
7
7
  if RUBY_PLATFORM.match(/mingw32/)
8
8
  bat_path = File.dirname(RbConfig.ruby)
@@ -22,8 +22,8 @@ if RUBY_PLATFORM.match(/mingw32/)
22
22
  \t echo "#{script_content}">> "#{bat}"
23
23
  MAKEFILE
24
24
  else
25
- script = exe + '.sh'
26
- symlink = '/usr/local/bin/shopify'
25
+ script = exe + ".sh"
26
+ symlink = "/usr/local/bin/shopify"
27
27
 
28
28
  script_content = <<~SCRIPT
29
29
  #!/usr/bin/env bash
@@ -44,4 +44,4 @@ else
44
44
  MAKEFILE
45
45
  end
46
46
 
47
- File.write('Makefile', makefile_content)
47
+ File.write("Makefile", makefile_content)
data/install.sh CHANGED
@@ -3,5 +3,5 @@
3
3
  This install method for Shopify App CLI is no longer supported.
4
4
 
5
5
  Please visit this page for complete instructions:
6
- https://shopify.github.io/shopify-app-cli/migrate/
6
+ https://shopify.dev/tools/cli/troubleshooting#migrate-from-a-legacy-version
7
7
  EOF
@@ -1,5 +1,5 @@
1
- require 'rdoc/rdoc'
2
- require 'erb'
1
+ require "rdoc/rdoc"
2
+ require "erb"
3
3
 
4
4
  module RDoc
5
5
  module Generator
@@ -26,13 +26,13 @@ module RDoc
26
26
  private
27
27
 
28
28
  def render(data)
29
- class_template_path = File.join(File.dirname(__FILE__), 'class_template.md.erb')
30
- class_renderer = ERB.new(File.read(class_template_path), nil, '-')
29
+ class_template_path = File.join(File.dirname(__FILE__), "class_template.md.erb")
30
+ class_renderer = ERB.new(File.read(class_template_path), nil, "-")
31
31
  data.each do |cls|
32
32
  File.write("#{cls.filename}.md", class_renderer.result(cls.instance_eval { binding }))
33
33
  end
34
- index_template_path = File.join(File.dirname(__FILE__), 'index_template.md.erb')
35
- index_renderer = ERB.new(File.read(index_template_path), nil, '-')
34
+ index_template_path = File.join(File.dirname(__FILE__), "index_template.md.erb")
35
+ index_renderer = ERB.new(File.read(index_template_path), nil, "-")
36
36
  File.write("Core-APIs.md", index_renderer.result(OpenStruct.new(classes: data).instance_eval { binding }))
37
37
  end
38
38
 
@@ -46,8 +46,8 @@ module RDoc
46
46
  kind: kind,
47
47
  comment: @converter.convert(klass.comment.parse),
48
48
  constants: build_members(klass.constants),
49
- class_methods: build_members(klass.method_list.select { |m| m.type == 'class' }),
50
- instance_methods: build_members(klass.method_list.select { |m| m.type == 'instance' }),
49
+ class_methods: build_members(klass.method_list.select { |m| m.type == "class" }),
50
+ instance_methods: build_members(klass.method_list.select { |m| m.type == "instance" }),
51
51
  attributes: build_members(klass.attributes),
52
52
  extended: build_members(klass.extends),
53
53
  included: build_members(klass.includes),
@@ -68,7 +68,7 @@ module RDoc
68
68
  ClassMember.new(
69
69
  title: m.name,
70
70
  comment: @converter.convert(m.comment.parse),
71
- signature: m.respond_to?(:arglists) ? m.arglists : '',
71
+ signature: m.respond_to?(:arglists) ? m.arglists : "",
72
72
  source_code: source(m),
73
73
  )
74
74
  end
@@ -77,7 +77,7 @@ module RDoc
77
77
  # Just extracts sourcecode from html formatting/highlighting into a text
78
78
  # blob so that markdown can format it with a codeblock
79
79
  def source(m)
80
- return '' unless m.respond_to?(:token_stream)
80
+ return "" unless m.respond_to?(:token_stream)
81
81
  # each line, get the text
82
82
  src = (m.token_stream || []).map do |t|
83
83
  next unless t
@@ -89,11 +89,11 @@ module RDoc
89
89
  lines.shift if src =~ /\A.*#\ *File/i # remove '# File' comment
90
90
  lines.each do |line|
91
91
  next unless line =~ /^ *(?=\S)/
92
- n = $&.length
92
+ n = Regexp.last_match(0).length
93
93
  indent = n if n < indent
94
94
  break if n == 0
95
95
  end
96
- src.gsub!(/^#{' ' * indent}/, '') if indent > 0
96
+ src.gsub!(/^#{' ' * indent}/, "") if indent > 0
97
97
  src
98
98
  end
99
99
  end
@@ -1,7 +1,22 @@
1
- mutation ExtensionCreate($api_key: String!, $type: ExtensionType!, $title: String!, $config: JSON!, $extension_context: String) {
2
- extensionCreate(input: {apiKey: $api_key, type: $type, title: $title, config: $config, context: $extension_context}) {
1
+ mutation ExtensionCreate(
2
+ $api_key: String!
3
+ $type: ExtensionType!
4
+ $title: String!
5
+ $config: JSON!
6
+ $extension_context: String
7
+ ) {
8
+ extensionCreate(
9
+ input: {
10
+ apiKey: $api_key
11
+ type: $type
12
+ title: $title
13
+ config: $config
14
+ context: $extension_context
15
+ }
16
+ ) {
3
17
  extensionRegistration {
4
18
  id
19
+ uuid
5
20
  type
6
21
  title
7
22
  draftVersion {
@@ -0,0 +1,14 @@
1
+ query fetchSpecifications($api_key: String!) {
2
+ extensionSpecifications(apiKey: $api_key) {
3
+ name
4
+ identifier
5
+ options {
6
+ managementExperience
7
+ }
8
+ features {
9
+ argo {
10
+ surface
11
+ }
12
+ }
13
+ }
14
+ }
@@ -3,76 +3,84 @@
3
3
  module Extension
4
4
  class Project < ShopifyCli::ProjectType
5
5
  hidden_feature
6
- title('App Extension')
7
- creator('Extension::Commands::Create')
6
+ title("App Extension")
7
+ creator("Extension::Commands::Create")
8
8
 
9
- register_command('Extension::Commands::Build', "build")
10
- register_command('Extension::Commands::Register', "register")
11
- register_command('Extension::Commands::Push', "push")
12
- register_command('Extension::Commands::Serve', "serve")
13
- register_command('Extension::Commands::Tunnel', "tunnel")
9
+ register_command("Extension::Commands::Build", "build")
10
+ register_command("Extension::Commands::Register", "register")
11
+ register_command("Extension::Commands::Push", "push")
12
+ register_command("Extension::Commands::Serve", "serve")
13
+ register_command("Extension::Commands::Tunnel", "tunnel")
14
14
 
15
- require Project.project_filepath('messages/messages')
16
- require Project.project_filepath('messages/message_loading')
17
- require Project.project_filepath('extension_project_keys')
15
+ require Project.project_filepath("messages/messages")
16
+ require Project.project_filepath("messages/message_loading")
17
+ require Project.project_filepath("extension_project_keys")
18
18
  register_messages(Extension::Messages::MessageLoading.load)
19
19
  end
20
20
 
21
21
  module Commands
22
- autoload :ExtensionCommand, Project.project_filepath('commands/extension_command')
23
- autoload :Create, Project.project_filepath('commands/create')
24
- autoload :Register, Project.project_filepath('commands/register')
25
- autoload :Build, Project.project_filepath('commands/build')
26
- autoload :Serve, Project.project_filepath('commands/serve')
27
- autoload :Push, Project.project_filepath('commands/push')
28
- autoload :Tunnel, Project.project_filepath('commands/tunnel')
22
+ autoload :ExtensionCommand, Project.project_filepath("commands/extension_command")
23
+ autoload :Create, Project.project_filepath("commands/create")
24
+ autoload :Register, Project.project_filepath("commands/register")
25
+ autoload :Build, Project.project_filepath("commands/build")
26
+ autoload :Serve, Project.project_filepath("commands/serve")
27
+ autoload :Push, Project.project_filepath("commands/push")
28
+ autoload :Tunnel, Project.project_filepath("commands/tunnel")
29
29
  end
30
30
 
31
31
  module Tasks
32
- autoload :UserErrors, Project.project_filepath('tasks/user_errors')
33
- autoload :GetApps, Project.project_filepath('tasks/get_apps')
34
- autoload :GetApp, Project.project_filepath('tasks/get_app')
35
- autoload :CreateExtension, Project.project_filepath('tasks/create_extension')
36
- autoload :UpdateDraft, Project.project_filepath('tasks/update_draft')
32
+ autoload :UserErrors, Project.project_filepath("tasks/user_errors")
33
+ autoload :GetApps, Project.project_filepath("tasks/get_apps")
34
+ autoload :GetApp, Project.project_filepath("tasks/get_app")
35
+ autoload :CreateExtension, Project.project_filepath("tasks/create_extension")
36
+ autoload :UpdateDraft, Project.project_filepath("tasks/update_draft")
37
+ autoload :FetchSpecifications, Project.project_filepath("tasks/fetch_specifications")
38
+ autoload :ConfigureFeatures, Project.project_filepath("tasks/configure_features")
37
39
 
38
40
  module Converters
39
- autoload :RegistrationConverter, Project.project_filepath('tasks/converters/registration_converter')
40
- autoload :VersionConverter, Project.project_filepath('tasks/converters/version_converter')
41
- autoload :ValidationErrorConverter, Project.project_filepath('tasks/converters/validation_error_converter')
42
- autoload :AppConverter, Project.project_filepath('tasks/converters/app_converter')
41
+ autoload :RegistrationConverter, Project.project_filepath("tasks/converters/registration_converter")
42
+ autoload :VersionConverter, Project.project_filepath("tasks/converters/version_converter")
43
+ autoload :ValidationErrorConverter, Project.project_filepath("tasks/converters/validation_error_converter")
44
+ autoload :AppConverter, Project.project_filepath("tasks/converters/app_converter")
43
45
  end
44
46
  end
45
47
 
46
48
  module Forms
47
- autoload :Create, Project.project_filepath('forms/create')
48
- autoload :Register, Project.project_filepath('forms/register')
49
+ module Questions
50
+ autoload :AskApp, Project.project_filepath("forms/questions/ask_app")
51
+ autoload :AskName, Project.project_filepath("forms/questions/ask_name")
52
+ autoload :AskType, Project.project_filepath("forms/questions/ask_type")
53
+ end
54
+
55
+ autoload :Create, Project.project_filepath("forms/create")
56
+ autoload :Register, Project.project_filepath("forms/register")
49
57
  end
50
58
 
51
59
  module Features
52
- autoload :ArgoSetup, Project.project_filepath('features/argo_setup')
53
- autoload :ArgoSetupStep, Project.project_filepath('features/argo_setup_step')
54
- autoload :ArgoSetupSteps, Project.project_filepath('features/argo_setup_steps')
55
- autoload :ArgoDependencies, Project.project_filepath('features/argo_dependencies')
56
- autoload :ArgoConfig, Project.project_filepath('features/argo_config')
57
- module Argo
58
- autoload :Base, Project.project_filepath('features/argo/base')
59
- autoload :Admin, Project.project_filepath('features/argo/admin')
60
- autoload :Checkout, Project.project_filepath('features/argo/checkout')
61
- end
60
+ autoload :ArgoRendererPackage, Project.project_filepath("features/argo_renderer_package")
61
+ autoload :ArgoServe, Project.project_filepath("features/argo_serve")
62
+ autoload :ArgoSetup, Project.project_filepath("features/argo_setup")
63
+ autoload :ArgoSetupStep, Project.project_filepath("features/argo_setup_step")
64
+ autoload :ArgoSetupSteps, Project.project_filepath("features/argo_setup_steps")
65
+ autoload :ArgoDependencies, Project.project_filepath("features/argo_dependencies")
66
+ autoload :ArgoConfig, Project.project_filepath("features/argo_config")
67
+ autoload :Argo, Project.project_filepath("features/argo")
62
68
  end
63
69
 
64
70
  module Models
65
- autoload :App, Project.project_filepath('models/app')
66
- autoload :Registration, Project.project_filepath('models/registration')
67
- autoload :Version, Project.project_filepath('models/version')
68
- autoload :Type, Project.project_filepath('models/type')
69
- autoload :ValidationError, Project.project_filepath('models/validation_error')
70
-
71
- class << self
72
- Models::Type.load_all
71
+ module SpecificationHandlers
72
+ autoload :Default, Project.project_filepath("models/specification_handlers/default")
73
73
  end
74
+
75
+ autoload :App, Project.project_filepath("models/app")
76
+ autoload :Registration, Project.project_filepath("models/registration")
77
+ autoload :Version, Project.project_filepath("models/version")
78
+ autoload :ValidationError, Project.project_filepath("models/validation_error")
79
+ autoload :Specification, Project.project_filepath("models/specification")
80
+ autoload :Specifications, Project.project_filepath("models/specifications")
81
+ autoload :LazySpecificationHandler, Project.project_filepath("models/lazy_specification_handler")
74
82
  end
75
83
 
76
- autoload :ExtensionProjectKeys, Project.project_filepath('extension_project_keys')
77
- autoload :ExtensionProject, Project.project_filepath('extension_project')
84
+ autoload :ExtensionProjectKeys, Project.project_filepath("extension_project_keys")
85
+ autoload :ExtensionProject, Project.project_filepath("extension_project")
78
86
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  module Commands
@@ -12,9 +12,9 @@ module Extension
12
12
  def call(_args, _command_name)
13
13
  system = ShopifyCli::JsSystem.new(ctx: @ctx)
14
14
 
15
- CLI::UI::Frame.open(@ctx.message('build.frame_title', system.package_manager)) do
15
+ CLI::UI::Frame.open(@ctx.message("build.frame_title", system.package_manager)) do
16
16
  success = system.call(yarn: YARN_BUILD_COMMAND, npm: NPM_BUILD_COMMAND)
17
- @ctx.abort(@ctx.message('build.build_failure_message')) unless success
17
+ @ctx.abort(@ctx.message("build.build_failure_message")) unless success
18
18
  end
19
19
  end
20
20
 
@@ -4,24 +4,30 @@ module Extension
4
4
  module Commands
5
5
  class Create < ShopifyCli::SubCommand
6
6
  options do |parser, flags|
7
- parser.on('--name=NAME') { |name| flags[:name] = name }
8
- parser.on('--type=TYPE') { |type| flags[:type] = type.upcase }
7
+ parser.on("--name=NAME") { |name| flags[:name] = name }
8
+ parser.on("--type=TYPE") { |type| flags[:type] = type.upcase }
9
+ parser.on("--api-key=KEY") { |key| flags[:api_key] = key.downcase }
9
10
  end
10
11
 
11
12
  def call(args, _)
12
13
  with_create_form(args) do |form|
13
14
  if Dir.exist?(form.directory_name)
14
- @ctx.abort(@ctx.message('create.errors.directory_exists', form.directory_name))
15
+ @ctx.abort(@ctx.message("create.errors.directory_exists", form.directory_name))
15
16
  end
16
17
 
17
18
  if form.type.create(form.directory_name, @ctx)
18
19
  ExtensionProject.write_cli_file(context: @ctx, type: form.type.identifier)
19
- ExtensionProject.write_env_file(context: @ctx, title: form.name)
20
-
21
- @ctx.puts(@ctx.message('create.ready_to_start', form.directory_name, form.name))
22
- @ctx.puts(@ctx.message('create.learn_more', form.type.name))
20
+ ExtensionProject.write_env_file(
21
+ context: @ctx,
22
+ title: form.name,
23
+ api_key: form.app.api_key,
24
+ api_secret: form.app.secret
25
+ )
26
+
27
+ @ctx.puts(@ctx.message("create.ready_to_start", form.directory_name, form.name))
28
+ @ctx.puts(@ctx.message("create.learn_more", form.type.name))
23
29
  else
24
- @ctx.puts(@ctx.message('create.try_again'))
30
+ @ctx.puts(@ctx.message("create.try_again"))
25
31
  end
26
32
  end
27
33
  end
@@ -29,10 +35,11 @@ module Extension
29
35
  def self.help
30
36
  <<~HELP
31
37
  Create a new app extension.
32
- Usage: {{command:#{ShopifyCli::TOOL_NAME} create extension <name>}}
38
+ Usage: {{command:#{ShopifyCli::TOOL_NAME} create extension}}
33
39
  Options:
34
40
  {{command:--type=TYPE}} The type of extension you would like to create.
35
- {{command:--name=NAME}} The name of your extension (50 characters).”
41
+ {{command:--name=NAME}} The name of your extension (50 characters).
42
+ {{command:--api-key=KEY}} The API key of your app.
36
43
  HELP
37
44
  end
38
45