shopify-cli 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/shopify.yml +0 -2
  3. data/.rubocop.yml +14 -14
  4. data/.rubocop_todo.yml +3 -3
  5. data/CHANGELOG.md +5 -0
  6. data/Dockerfile +1 -1
  7. data/Gemfile.lock +1 -1
  8. data/RELEASING.md +1 -1
  9. data/Rakefile +18 -18
  10. data/bin/shopify +3 -3
  11. data/lib/project_types/extension/cli.rb +3 -3
  12. data/lib/project_types/extension/commands/build.rb +2 -2
  13. data/lib/project_types/extension/commands/check.rb +2 -2
  14. data/lib/project_types/extension/commands/connect.rb +1 -1
  15. data/lib/project_types/extension/commands/create.rb +41 -23
  16. data/lib/project_types/extension/commands/extension_command.rb +1 -1
  17. data/lib/project_types/extension/commands/info.rb +1 -1
  18. data/lib/project_types/extension/commands/push.rb +1 -1
  19. data/lib/project_types/extension/commands/register.rb +2 -2
  20. data/lib/project_types/extension/commands/serve.rb +5 -5
  21. data/lib/project_types/extension/commands/tunnel.rb +6 -6
  22. data/lib/project_types/extension/extension_project.rb +4 -4
  23. data/lib/project_types/extension/features/argo.rb +2 -2
  24. data/lib/project_types/extension/features/argo_config.rb +5 -5
  25. data/lib/project_types/extension/features/argo_serve.rb +20 -6
  26. data/lib/project_types/extension/features/argo_setup.rb +1 -1
  27. data/lib/project_types/extension/features/argo_setup_step.rb +1 -1
  28. data/lib/project_types/extension/features/argo_setup_steps.rb +2 -2
  29. data/lib/project_types/extension/forms/connect.rb +2 -2
  30. data/lib/project_types/extension/forms/create.rb +2 -2
  31. data/lib/project_types/extension/forms/questions/ask_app.rb +2 -2
  32. data/lib/project_types/extension/forms/questions/ask_name.rb +1 -1
  33. data/lib/project_types/extension/forms/questions/ask_registration.rb +2 -2
  34. data/lib/project_types/extension/forms/questions/ask_template.rb +2 -2
  35. data/lib/project_types/extension/forms/questions/ask_type.rb +2 -2
  36. data/lib/project_types/extension/messages/message_loading.rb +2 -2
  37. data/lib/project_types/extension/models/development_server.rb +45 -6
  38. data/lib/project_types/extension/models/development_server_requirements.rb +22 -3
  39. data/lib/project_types/extension/models/lazy_specification_handler.rb +1 -1
  40. data/lib/project_types/extension/models/specification.rb +1 -1
  41. data/lib/project_types/extension/models/specification_handlers/default.rb +10 -2
  42. data/lib/project_types/extension/models/specification_handlers/theme_app_extension.rb +1 -1
  43. data/lib/project_types/extension/models/specifications.rb +4 -4
  44. data/lib/project_types/extension/tasks/choose_next_available_port.rb +1 -1
  45. data/lib/project_types/extension/tasks/configure_features.rb +1 -1
  46. data/lib/project_types/extension/tasks/configure_options.rb +1 -1
  47. data/lib/project_types/extension/tasks/converters/product_converter.rb +1 -1
  48. data/lib/project_types/extension/tasks/create_extension.rb +2 -2
  49. data/lib/project_types/extension/tasks/fetch_specifications.rb +2 -2
  50. data/lib/project_types/extension/tasks/find_npm_packages.rb +3 -3
  51. data/lib/project_types/extension/tasks/get_app.rb +2 -2
  52. data/lib/project_types/extension/tasks/get_apps.rb +2 -2
  53. data/lib/project_types/extension/tasks/get_extensions.rb +2 -2
  54. data/lib/project_types/extension/tasks/get_product.rb +2 -2
  55. data/lib/project_types/extension/tasks/run_extension_command.rb +10 -3
  56. data/lib/project_types/extension/tasks/update_draft.rb +2 -2
  57. data/lib/project_types/node/cli.rb +3 -3
  58. data/lib/project_types/node/commands/connect.rb +4 -4
  59. data/lib/project_types/node/commands/create.rb +10 -10
  60. data/lib/project_types/node/commands/deploy/heroku.rb +4 -4
  61. data/lib/project_types/node/commands/deploy.rb +3 -3
  62. data/lib/project_types/node/commands/generate.rb +2 -2
  63. data/lib/project_types/node/commands/open.rb +3 -3
  64. data/lib/project_types/node/commands/serve.rb +7 -7
  65. data/lib/project_types/node/commands/tunnel.rb +6 -6
  66. data/lib/project_types/node/forms/create.rb +3 -3
  67. data/lib/project_types/php/cli.rb +27 -0
  68. data/lib/project_types/php/commands/connect.rb +19 -0
  69. data/lib/project_types/php/commands/create.rb +143 -0
  70. data/lib/project_types/php/commands/deploy/heroku.rb +129 -0
  71. data/lib/project_types/php/commands/deploy.rb +32 -0
  72. data/lib/project_types/php/commands/open.rb +16 -0
  73. data/lib/project_types/php/commands/serve.rb +51 -0
  74. data/lib/project_types/php/commands/tunnel.rb +37 -0
  75. data/lib/project_types/php/forms/create.rb +45 -0
  76. data/lib/project_types/php/messages/messages.rb +191 -0
  77. data/lib/project_types/rails/cli.rb +3 -3
  78. data/lib/project_types/rails/commands/connect.rb +4 -4
  79. data/lib/project_types/rails/commands/create.rb +12 -12
  80. data/lib/project_types/rails/commands/deploy/heroku.rb +4 -4
  81. data/lib/project_types/rails/commands/deploy.rb +3 -3
  82. data/lib/project_types/rails/commands/generate/webhook.rb +3 -3
  83. data/lib/project_types/rails/commands/generate.rb +3 -3
  84. data/lib/project_types/rails/commands/open.rb +3 -3
  85. data/lib/project_types/rails/commands/serve.rb +8 -8
  86. data/lib/project_types/rails/commands/tunnel.rb +6 -6
  87. data/lib/project_types/rails/forms/create.rb +3 -3
  88. data/lib/project_types/rails/gem.rb +1 -1
  89. data/lib/project_types/rails/ruby.rb +1 -1
  90. data/lib/project_types/script/cli.rb +11 -4
  91. data/lib/project_types/script/commands/create.rb +2 -2
  92. data/lib/project_types/script/commands/push.rb +2 -2
  93. data/lib/project_types/script/forms/create.rb +1 -1
  94. data/lib/project_types/script/layers/application/extension_points.rb +2 -2
  95. data/lib/project_types/script/layers/application/push_script.rb +4 -1
  96. data/lib/project_types/script/layers/domain/script_project.rb +2 -2
  97. data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +55 -0
  98. data/lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb +35 -0
  99. data/lib/project_types/script/layers/infrastructure/command_runner.rb +1 -1
  100. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +1 -1
  101. data/lib/project_types/script/layers/infrastructure/languages/rust_project_creator.rb +1 -1
  102. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +1 -1
  103. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +5 -5
  104. data/lib/project_types/script/layers/infrastructure/script_service.rb +4 -8
  105. data/lib/project_types/script/layers/infrastructure/service_locator.rb +20 -0
  106. data/lib/project_types/script/tasks/ensure_env.rb +6 -6
  107. data/lib/project_types/script/ui/error_handler.rb +75 -75
  108. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  109. data/lib/project_types/theme/cli.rb +3 -3
  110. data/lib/project_types/theme/commands/check.rb +3 -3
  111. data/lib/project_types/theme/commands/delete.rb +7 -7
  112. data/lib/project_types/theme/commands/init.rb +3 -3
  113. data/lib/project_types/theme/commands/language_server.rb +2 -2
  114. data/lib/project_types/theme/commands/package.rb +2 -2
  115. data/lib/project_types/theme/commands/publish.rb +5 -5
  116. data/lib/project_types/theme/commands/pull.rb +9 -9
  117. data/lib/project_types/theme/commands/push.rb +12 -12
  118. data/lib/project_types/theme/commands/serve.rb +4 -4
  119. data/lib/project_types/theme/forms/confirm_store.rb +1 -1
  120. data/lib/project_types/theme/forms/select.rb +2 -2
  121. data/lib/{shopify-cli → shopify_cli}/admin_api/populate_resource_command.rb +3 -3
  122. data/lib/{shopify-cli → shopify_cli}/admin_api/schema.rb +4 -4
  123. data/lib/{shopify-cli → shopify_cli}/admin_api.rb +27 -27
  124. data/lib/{shopify-cli → shopify_cli}/api.rb +8 -8
  125. data/lib/{shopify-cli → shopify_cli}/command.rb +3 -3
  126. data/lib/{shopify-cli → shopify_cli}/commands/config.rb +14 -14
  127. data/lib/{shopify-cli → shopify_cli}/commands/help.rb +4 -4
  128. data/lib/{shopify-cli → shopify_cli}/commands/login.rb +7 -7
  129. data/lib/shopify_cli/commands/logout.rb +39 -0
  130. data/lib/{shopify-cli → shopify_cli}/commands/populate/customer.rb +4 -4
  131. data/lib/{shopify-cli → shopify_cli}/commands/populate/draft_order.rb +4 -4
  132. data/lib/{shopify-cli → shopify_cli}/commands/populate/product.rb +4 -4
  133. data/lib/shopify_cli/commands/populate.rb +23 -0
  134. data/lib/shopify_cli/commands/store.rb +15 -0
  135. data/lib/{shopify-cli → shopify_cli}/commands/switch.rb +5 -5
  136. data/lib/{shopify-cli → shopify_cli}/commands/system.rb +10 -10
  137. data/lib/shopify_cli/commands/version.rb +15 -0
  138. data/lib/{shopify-cli → shopify_cli}/commands/whoami.rb +7 -7
  139. data/lib/shopify_cli/commands.rb +34 -0
  140. data/lib/{shopify-cli → shopify_cli}/connect.rb +3 -3
  141. data/lib/{shopify-cli → shopify_cli}/constants.rb +1 -1
  142. data/lib/{shopify-cli → shopify_cli}/context.rb +6 -6
  143. data/lib/{shopify-cli → shopify_cli}/core/entry_point.rb +7 -7
  144. data/lib/{shopify-cli → shopify_cli}/core/executor.rb +3 -3
  145. data/lib/{shopify-cli → shopify_cli}/core/finalize.rb +1 -1
  146. data/lib/{shopify-cli → shopify_cli}/core/help_resolver.rb +2 -2
  147. data/lib/{shopify-cli → shopify_cli}/core/monorail.rb +8 -8
  148. data/lib/shopify_cli/core.rb +8 -0
  149. data/lib/{shopify-cli → shopify_cli}/db.rb +8 -8
  150. data/lib/{shopify-cli → shopify_cli}/environment.rb +1 -1
  151. data/lib/{shopify-cli → shopify_cli}/feature.rb +8 -8
  152. data/lib/{shopify-cli → shopify_cli}/form.rb +2 -2
  153. data/lib/{shopify-cli → shopify_cli}/git.rb +6 -6
  154. data/lib/{shopify-cli → shopify_cli}/helpers/haikunator.rb +1 -1
  155. data/lib/shopify_cli/helpers.rb +5 -0
  156. data/lib/{shopify-cli → shopify_cli}/heroku.rb +38 -13
  157. data/lib/{shopify-cli → shopify_cli}/http_request.rb +1 -1
  158. data/lib/{shopify-cli → shopify_cli}/identity_auth/servlet.rb +1 -1
  159. data/lib/{shopify-cli → shopify_cli}/identity_auth.rb +8 -8
  160. data/lib/{shopify-cli → shopify_cli}/js_deps.rb +7 -7
  161. data/lib/{shopify-cli → shopify_cli}/js_system.rb +10 -10
  162. data/lib/{shopify-cli → shopify_cli}/lazy_delegator.rb +2 -2
  163. data/lib/{shopify-cli → shopify_cli}/messages/messages.rb +17 -1
  164. data/lib/{shopify-cli → shopify_cli}/method_object.rb +4 -4
  165. data/lib/{shopify-cli → shopify_cli}/options.rb +1 -1
  166. data/lib/{shopify-cli → shopify_cli}/packager.rb +8 -8
  167. data/lib/{shopify-cli → shopify_cli}/partners_api/organizations.rb +1 -1
  168. data/lib/{shopify-cli → shopify_cli}/partners_api.rb +13 -13
  169. data/lib/shopify_cli/php_deps.rb +102 -0
  170. data/lib/{shopify-cli → shopify_cli}/process_supervision.rb +10 -8
  171. data/lib/{shopify-cli → shopify_cli}/project.rb +15 -15
  172. data/lib/{shopify-cli → shopify_cli}/project_commands.rb +3 -3
  173. data/lib/{shopify-cli → shopify_cli}/project_type.rb +5 -5
  174. data/lib/{shopify-cli → shopify_cli}/resolve_constant.rb +5 -5
  175. data/lib/{shopify-cli → shopify_cli}/resources/env_file.rb +1 -1
  176. data/lib/shopify_cli/resources.rb +5 -0
  177. data/lib/{shopify-cli → shopify_cli}/result.rb +11 -11
  178. data/lib/{shopify-cli → shopify_cli}/shopifolk.rb +6 -6
  179. data/lib/{shopify-cli → shopify_cli}/sub_command.rb +1 -1
  180. data/lib/{shopify-cli → shopify_cli}/task.rb +1 -1
  181. data/lib/{shopify-cli → shopify_cli}/tasks/confirm_store.rb +3 -3
  182. data/lib/{shopify-cli → shopify_cli}/tasks/create_api_client.rb +4 -4
  183. data/lib/shopify_cli/tasks/ensure_authenticated.rb +13 -0
  184. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_dev_store.rb +5 -5
  185. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_env.rb +3 -3
  186. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_loopback_url.rb +4 -4
  187. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_project_type.rb +3 -3
  188. data/lib/{shopify-cli → shopify_cli}/tasks/select_org_and_shop.rb +8 -8
  189. data/lib/{shopify-cli → shopify_cli}/tasks/update_dashboard_urls.rb +6 -6
  190. data/lib/{shopify-cli → shopify_cli}/tasks.rb +10 -10
  191. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/certificate_manager.rb +5 -5
  192. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/header_hash.rb +1 -1
  193. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot-reload.js +0 -0
  194. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot_reload.rb +1 -1
  195. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/local_assets.rb +1 -1
  196. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/proxy.rb +2 -2
  197. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/sse.rb +1 -1
  198. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/watcher.rb +1 -1
  199. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/web_server.rb +1 -1
  200. data/lib/{shopify-cli → shopify_cli}/theme/dev_server.rb +3 -3
  201. data/lib/{shopify-cli → shopify_cli}/theme/development_theme.rb +9 -9
  202. data/lib/{shopify-cli → shopify_cli}/theme/file.rb +1 -1
  203. data/lib/{shopify-cli → shopify_cli}/theme/ignore_filter.rb +1 -1
  204. data/lib/{shopify-cli → shopify_cli}/theme/mime_type.rb +1 -1
  205. data/lib/{shopify-cli → shopify_cli}/theme/syncer.rb +6 -6
  206. data/lib/{shopify-cli → shopify_cli}/theme/theme.rb +4 -4
  207. data/lib/{shopify-cli → shopify_cli}/transform_data_structure.rb +4 -4
  208. data/lib/{shopify-cli → shopify_cli}/tunnel.rb +14 -14
  209. data/lib/shopify_cli/version.rb +3 -0
  210. data/lib/shopify_cli.rb +50 -49
  211. data/shopify-cli.gemspec +2 -2
  212. metadata +104 -91
  213. data/lib/project_types/script/layers/infrastructure/api_clients.rb +0 -89
  214. data/lib/shopify-cli/commands/logout.rb +0 -39
  215. data/lib/shopify-cli/commands/populate.rb +0 -23
  216. data/lib/shopify-cli/commands/store.rb +0 -15
  217. data/lib/shopify-cli/commands/version.rb +0 -15
  218. data/lib/shopify-cli/commands.rb +0 -34
  219. data/lib/shopify-cli/core.rb +0 -8
  220. data/lib/shopify-cli/helpers.rb +0 -5
  221. data/lib/shopify-cli/resources.rb +0 -5
  222. data/lib/shopify-cli/tasks/ensure_authenticated.rb +0 -13
  223. data/lib/shopify-cli/version.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5e31b928a8c3d1e98c383786f85be502045be59731cef6adcd2fde4f337c4d7
4
- data.tar.gz: c0f5fc0e586f2fef7a7e2a92d9357acf06547b53545bc1319e6bcf58f636fb1b
3
+ metadata.gz: 60163978b05868670c0b5535cc49060ba5f55c9e127d6f97232970751caeb4d8
4
+ data.tar.gz: b3993bcef0bd4d5488f4b4d7f3e8b6f219a0322279159a512a12cc3986f2e63a
5
5
  SHA512:
6
- metadata.gz: 9699459d8bf5a49683a00b8b166a7dc5b09be204b5d0bc0d73288508dc08eace03ddba62223f20001183931895434102f8d5cfd66f3494afc1f2fa5d1a4700c5
7
- data.tar.gz: e980565315b842028e05786f1acf63fae983d00ff28aa2db71d976d3b3b3615a530c47710727fe83c311a6bca8cec0995fc34cb5a288a7ff2d223510ddd0c79f
6
+ metadata.gz: cd65b86469afbc40117f58257840588dea0fd07141e899ac9273e0eee9da4bcaef119c4df14921777d3ae88932fd053771392154658704294b59afd9656b00f8
7
+ data.tar.gz: 2d199c2d96954b9d2c666fc4822f845f1a176115eb90a28078af42ceaf0cf691b3b2e21896485afe4c42b2ec43e7c5af576ba18a86188bf01a22f7ff32ffb8f0
@@ -25,7 +25,6 @@ jobs:
25
25
  - macos-11
26
26
  - ubuntu-20.04
27
27
  - ubuntu-18.04
28
- - ubuntu-16.04
29
28
  steps:
30
29
  - uses: actions/checkout@v2
31
30
  - name: Set Git configuration
@@ -58,7 +57,6 @@ jobs:
58
57
  - macos-11
59
58
  - ubuntu-20.04
60
59
  - ubuntu-18.04
61
- - ubuntu-16.04
62
60
  steps:
63
61
  - uses: actions/checkout@v2
64
62
  - name: Set Git configuration
data/.rubocop.yml CHANGED
@@ -11,8 +11,8 @@ inherit_gem:
11
11
  Minitest:
12
12
  Enabled: true
13
13
  Include:
14
- - '**/test/**/*'
15
- - '**/*_test.rb'
14
+ - "**/test/**/*"
15
+ - "**/*_test.rb"
16
16
 
17
17
  Minitest/AssertInDelta: # (new in 0.10)
18
18
  Enabled: true
@@ -43,15 +43,15 @@ Minitest/UnspecifiedException: # (new in 0.10)
43
43
 
44
44
  AllCops:
45
45
  Exclude:
46
- - 'vendor/**/*'
47
- - 'docs/**/*'
48
- - 'packaging/**/*'
46
+ - "vendor/**/*"
47
+ - "docs/**/*"
48
+ - "packaging/**/*"
49
49
  TargetRubyVersion: 2.4
50
50
 
51
51
  Layout/EmptyLines:
52
52
  Exclude:
53
53
  # Need extra line so comment at top isnt registered to the Dev namespace
54
- - 'lib/dev/helpers/chruby_reset.rb'
54
+ - "lib/dev/helpers/chruby_reset.rb"
55
55
 
56
56
  Layout/EmptyLineBetweenDefs:
57
57
  AllowAdjacentOneLineDefs: true
@@ -59,10 +59,10 @@ Layout/EmptyLineBetweenDefs:
59
59
  # Changing this could effect the way the content is rendered.
60
60
  Layout/HeredocIndentation:
61
61
  Exclude:
62
- - 'lib/project_types/node/messages/messages.rb'
63
- - 'lib/project_types/rails/messages/messages.rb'
64
- - 'lib/project_types/script/messages/messages.rb'
65
- - 'lib/shopify-cli/messages/messages.rb'
62
+ - "lib/project_types/node/messages/messages.rb"
63
+ - "lib/project_types/rails/messages/messages.rb"
64
+ - "lib/project_types/script/messages/messages.rb"
65
+ - "lib/shopify_cli/messages/messages.rb"
66
66
 
67
67
  # allow String.new to create mutable strings
68
68
  Style/EmptyLiteral:
@@ -71,7 +71,7 @@ Style/EmptyLiteral:
71
71
  # allow String.new to create mutable strings
72
72
  Style/HashSyntax:
73
73
  Exclude:
74
- - 'Rakefile'
74
+ - "Rakefile"
75
75
 
76
76
  # allow using %r{} for regexes
77
77
  Style/RegexpLiteral:
@@ -97,6 +97,6 @@ Style/MethodCallWithArgsParentheses:
97
97
 
98
98
  Layout/TrailingWhitespace:
99
99
  Exclude:
100
- - 'ext/shopify-cli/extconf.rb' # unsure if safe to remove
101
- - 'lib/project_types/extension/messages/messages.rb' # unsure if safe to remove
102
- - 'test/project_types/extension/extension_test_helpers/stubs/argo_script.rb' # unsure if save to remove
100
+ - "ext/shopify-cli/extconf.rb" # unsure if safe to remove
101
+ - "lib/project_types/extension/messages/messages.rb" # unsure if safe to remove
102
+ - "test/project_types/extension/extension_test_helpers/stubs/argo_script.rb" # unsure if save to remove
data/.rubocop_todo.yml CHANGED
@@ -14,11 +14,11 @@ Minitest/MultipleAssertions:
14
14
  # Cop supports --auto-correct.
15
15
  Style/PerlBackrefs:
16
16
  Exclude:
17
- - 'lib/docgen/markdown.rb'
17
+ - "lib/docgen/markdown.rb"
18
18
 
19
19
  # Offense count: 2
20
20
  # Cop supports --auto-correct.
21
21
  Style/RedundantBegin:
22
22
  Exclude:
23
- - 'lib/shopify-cli/shopifolk.rb'
24
- - 'test/shopify-cli/tunnel_test.rb'
23
+ - "lib/shopify_cli/shopifolk.rb"
24
+ - "test/shopify_cli/tunnel_test.rb"
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased
2
2
  ------
3
3
 
4
+ Version 2.5.0
5
+ ------
6
+
7
+ * [#1553](https://github.com/Shopify/shopify-cli/pull/1553): Add support for PHP app projects
8
+
4
9
  Version 2.4.0
5
10
  ------
6
11
 
data/Dockerfile CHANGED
@@ -13,7 +13,7 @@ WORKDIR /usr/src/app
13
13
 
14
14
  COPY Gemfile Gemfile.lock ./
15
15
  COPY shopify-cli.gemspec shopify-cli.gemspec
16
- COPY lib/shopify-cli/version.rb lib/shopify-cli/version.rb
16
+ COPY lib/shopify_cli/version.rb lib/shopify_cli/version.rb
17
17
  COPY . .
18
18
 
19
19
  RUN bundle install
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify-cli (2.4.0)
4
+ shopify-cli (2.5.0)
5
5
  listen (~> 3.7.0)
6
6
  theme-check (~> 1.4.0)
7
7
 
data/RELEASING.md CHANGED
@@ -13,7 +13,7 @@
13
13
  $ git checkout -b release_X_Y_Z
14
14
  ```
15
15
 
16
- 1. Update the version of Shopify CLI in `lib/shopify-cli/version.rb`
16
+ 1. Update the version of Shopify CLI in `lib/shopify_cli/version.rb`
17
17
 
18
18
  1. Update the version of Shopify CLI at the top of `Gemfile.lock` (failing to do so causes the CI build to fail)
19
19
 
data/Rakefile CHANGED
@@ -51,20 +51,20 @@ namespace :rdoc do
51
51
  repo = "https://github.com/Shopify/shopify-cli.wiki.git"
52
52
  intermediate = "markdown_intermediate"
53
53
  file_to_doc = [
54
- "lib/shopify-cli/admin_api.rb",
55
- "lib/shopify-cli/context.rb",
56
- "lib/shopify-cli/db.rb",
57
- "lib/shopify-cli/git.rb",
58
- "lib/shopify-cli/heroku.rb",
59
- "lib/shopify-cli/js_deps.rb",
60
- "lib/shopify-cli/lazy_delegator.rb",
61
- "lib/shopify-cli/method_object.rb",
62
- "lib/shopify-cli/partners_api.rb",
63
- "lib/shopify-cli/process_supervision.rb",
64
- "lib/shopify-cli/project.rb",
65
- "lib/shopify-cli/result.rb",
66
- "lib/shopify-cli/transform_data_structure.rb",
67
- "lib/shopify-cli/tunnel.rb",
54
+ "lib/shopify_cli/admin_api.rb",
55
+ "lib/shopify_cli/context.rb",
56
+ "lib/shopify_cli/db.rb",
57
+ "lib/shopify_cli/git.rb",
58
+ "lib/shopify_cli/heroku.rb",
59
+ "lib/shopify_cli/js_deps.rb",
60
+ "lib/shopify_cli/lazy_delegator.rb",
61
+ "lib/shopify_cli/method_object.rb",
62
+ "lib/shopify_cli/partners_api.rb",
63
+ "lib/shopify_cli/process_supervision.rb",
64
+ "lib/shopify_cli/project.rb",
65
+ "lib/shopify_cli/result.rb",
66
+ "lib/shopify_cli/transform_data_structure.rb",
67
+ "lib/shopify_cli/tunnel.rb",
68
68
  ]
69
69
 
70
70
  task all: [:markdown, :wiki, :cleanup]
@@ -104,23 +104,23 @@ desc("Generate markdown documentation and update the wiki")
104
104
  task(rdoc: "rdoc:all")
105
105
 
106
106
  namespace :package do
107
- require "shopify-cli/packager"
107
+ require "shopify_cli/packager"
108
108
 
109
109
  task all: [:debian, :rpm, :homebrew]
110
110
 
111
111
  desc("Builds a Debian package of the CLI")
112
112
  task :debian do
113
- ShopifyCli::Packager.new.build_debian
113
+ ShopifyCLI::Packager.new.build_debian
114
114
  end
115
115
 
116
116
  desc("Builds an RPM package of the CLI")
117
117
  task :rpm do
118
- ShopifyCli::Packager.new.build_rpm
118
+ ShopifyCLI::Packager.new.build_rpm
119
119
  end
120
120
 
121
121
  desc("Builds a Homebrew package of the CLI")
122
122
  task :homebrew do
123
- ShopifyCli::Packager.new.build_homebrew
123
+ ShopifyCLI::Packager.new.build_homebrew
124
124
  end
125
125
  end
126
126
 
data/bin/shopify CHANGED
@@ -9,7 +9,7 @@ module Kernel
9
9
  original_require(name)
10
10
  rescue LoadError => e
11
11
  # Special case for readline.so, which fails harmlessly on Windows
12
- raise if (name == "readline.so") && ShopifyCli::Context.new.windows?
12
+ raise if (name == "readline.so") && ShopifyCLI::Context.new.windows?
13
13
  # Special case for psych (yaml), which rescues this itself
14
14
  raise if name == "#{RUBY_VERSION[/\d+\.\d+/]}/psych.so"
15
15
  STDERR.puts "[Note] You cannot use gems with Shopify CLI."
@@ -29,6 +29,6 @@ end
29
29
 
30
30
  require_relative "./load_shopify"
31
31
 
32
- exit(ShopifyCli::ErrorHandler.call do
33
- ShopifyCli::Core::EntryPoint.call(ARGV.dup)
32
+ exit(ShopifyCLI::ErrorHandler.call do
33
+ ShopifyCLI::Core::EntryPoint.call(ARGV.dup)
34
34
  end)
@@ -3,7 +3,7 @@
3
3
  module Extension
4
4
  class PackageResolutionFailed < RuntimeError; end
5
5
 
6
- class Project < ShopifyCli::ProjectType
6
+ class Project < ShopifyCLI::ProjectType
7
7
  hidden_feature
8
8
 
9
9
  require Project.project_filepath("messages/messages")
@@ -12,7 +12,7 @@ module Extension
12
12
  register_messages(Extension::Messages::MessageLoading.load)
13
13
  end
14
14
 
15
- class Command < ShopifyCli::ProjectCommands
15
+ class Command < ShopifyCLI::ProjectCommands
16
16
  hidden_feature
17
17
  autoload :ExtensionCommand, Project.project_filepath("commands/extension_command")
18
18
 
@@ -26,7 +26,7 @@ module Extension
26
26
  subcommand :Tunnel, "tunnel", Project.project_filepath("commands/tunnel")
27
27
  subcommand :Check, "check", Project.project_filepath("commands/check")
28
28
  end
29
- ShopifyCli::Commands.register("Extension::Command", "extension")
29
+ ShopifyCLI::Commands.register("Extension::Command", "extension")
30
30
 
31
31
  module Tasks
32
32
  autoload :UserErrors, Project.project_filepath("tasks/user_errors")
@@ -18,7 +18,7 @@ module Extension
18
18
  end
19
19
 
20
20
  def self.help
21
- ShopifyCli::Context.new.message("build.help", ShopifyCli::TOOL_NAME)
21
+ ShopifyCLI::Context.new.message("build.help", ShopifyCLI::TOOL_NAME)
22
22
  end
23
23
 
24
24
  private
@@ -40,7 +40,7 @@ module Extension
40
40
  end
41
41
 
42
42
  def run_legacy_flow
43
- system = ShopifyCli::JsSystem.new(ctx: @ctx)
43
+ system = ShopifyCLI::JsSystem.new(ctx: @ctx)
44
44
 
45
45
  CLI::UI::Frame.open(@ctx.message("build.frame_title", system.package_manager)) do
46
46
  success = system.call(yarn: YARN_BUILD_COMMAND, npm: NPM_BUILD_COMMAND)
@@ -4,7 +4,7 @@ require "theme_check"
4
4
  module Extension
5
5
  class Command
6
6
  class Check < ExtensionCommand
7
- class CheckOptions < ShopifyCli::Options
7
+ class CheckOptions < ShopifyCLI::Options
8
8
  def initialize(ctx, theme_check)
9
9
  super()
10
10
  @theme_check = theme_check
@@ -37,7 +37,7 @@ module Extension
37
37
  end
38
38
 
39
39
  def self.help
40
- ShopifyCli::Context.message("check.help", ShopifyCli::TOOL_NAME)
40
+ ShopifyCLI::Context.message("check.help", ShopifyCLI::TOOL_NAME)
41
41
  end
42
42
  end
43
43
  end
@@ -19,7 +19,7 @@ module Extension
19
19
  end
20
20
 
21
21
  def self.help
22
- ShopifyCli::Context.new.message("connect.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
22
+ ShopifyCLI::Context.new.message("connect.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
23
23
  end
24
24
 
25
25
  private
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Extension
4
4
  class Command
5
- class Create < ShopifyCli::SubCommand
5
+ class Create < ShopifyCLI::SubCommand
6
6
  DEVELOPMENT_SERVER_SUPPORTED_TYPES = [
7
7
  "checkout_ui_extension",
8
8
  ]
@@ -22,27 +22,15 @@ module Extension
22
22
  @ctx.abort(message_for_extension["create.errors.directory_exists", form.directory_name])
23
23
  end
24
24
 
25
- return use_new_create_flow(form, message_for_extension) if supports_development_server?(form.type)
26
-
27
- if form.type.create(form.directory_name, @ctx, getting_started: options.flags[:getting_started])
28
- ExtensionProject.write_cli_file(context: @ctx, type: form.type.identifier)
29
- ExtensionProject.write_env_file(
30
- context: @ctx,
31
- title: form.name,
32
- api_key: form.app.api_key,
33
- api_secret: form.app.secret
34
- )
35
-
36
- @ctx.puts(message_for_extension["create.ready_to_start", form.directory_name, form.name])
37
- @ctx.puts(message_for_extension["create.learn_more", form.type.name])
38
- else
39
- @ctx.puts(message_for_extension["create.try_again"])
40
- end
25
+ ShopifyCLI::Result.success(supports_development_server?(form.type.identifier))
26
+ .then { |supported| create_extension(supported, form) }
27
+ .then { notify_success(form, message_for_extension) }
28
+ .unwrap { |err| @ctx.puts(message_for_extension["create.try_again"]) unless err.nil? }
41
29
  end
42
30
  end
43
31
 
44
32
  def self.help
45
- @ctx.message("create.help", ShopifyCli::TOOL_NAME)
33
+ @ctx.message("create.help", ShopifyCLI::TOOL_NAME)
46
34
  end
47
35
 
48
36
  private
@@ -55,22 +43,52 @@ module Extension
55
43
  end
56
44
 
57
45
  def supports_development_server?(type)
58
- Models::DevelopmentServerRequirements.supported?(type.identifier)
46
+ Models::DevelopmentServerRequirements.supported?(type)
59
47
  end
60
48
 
61
- def use_new_create_flow(form, msg)
49
+ def create_extension(supported, form)
50
+ if supported
51
+ use_new_create_flow(form)
52
+ else
53
+ use_legacy_flow(form)
54
+ end
55
+ ShopifyCLI::Result.success(nil)
56
+ end
57
+
58
+ def use_new_create_flow(form)
62
59
  Tasks::RunExtensionCommand.new(
63
60
  root_dir: form.directory_name,
64
61
  template: form.template,
65
62
  type: form.type.identifier.downcase,
66
63
  command: "create"
67
64
  ).call
65
+ @ctx.chdir(form.directory_name)
66
+ write_env_file(form)
67
+ rescue => error
68
+ raise error
69
+ end
70
+
71
+ def use_legacy_flow(form)
72
+ if form.type.create(form.directory_name, @ctx, getting_started: options.flags[:getting_started])
73
+ write_env_file(form)
74
+ else
75
+ raise StandardError
76
+ end
77
+ end
68
78
 
79
+ def write_env_file(form)
80
+ ExtensionProject.write_cli_file(context: @ctx, type: form.type.identifier)
81
+ ExtensionProject.write_env_file(
82
+ context: @ctx,
83
+ title: form.name,
84
+ api_key: form.app.api_key,
85
+ api_secret: form.app.secret
86
+ )
87
+ end
88
+
89
+ def notify_success(form, msg)
69
90
  @ctx.puts(msg["create.ready_to_start", form.directory_name, form.name])
70
91
  @ctx.puts(msg["create.learn_more", form.type.name])
71
- rescue => error
72
- @ctx.debug(error)
73
- @ctx.puts(msg["create.try_again"])
74
92
  end
75
93
  end
76
94
  end
@@ -3,7 +3,7 @@ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  class Command
6
- class ExtensionCommand < ShopifyCli::SubCommand
6
+ class ExtensionCommand < ShopifyCLI::SubCommand
7
7
  def project
8
8
  @project ||= ExtensionProject.current
9
9
  end
@@ -14,7 +14,7 @@ module Extension
14
14
  end
15
15
 
16
16
  def self.help
17
- ShopifyCli::Context.new.message("info.help", ShopifyCli::TOOL_NAME)
17
+ ShopifyCLI::Context.new.message("info.help", ShopifyCLI::TOOL_NAME)
18
18
  end
19
19
 
20
20
  private
@@ -18,7 +18,7 @@ module Extension
18
18
  end
19
19
 
20
20
  def self.help
21
- ShopifyCli::Context.new.message("push.help", ShopifyCli::TOOL_NAME)
21
+ ShopifyCLI::Context.new.message("push.help", ShopifyCLI::TOOL_NAME)
22
22
  end
23
23
 
24
24
  private
@@ -20,7 +20,7 @@ module Extension
20
20
  end
21
21
 
22
22
  def self.help
23
- ShopifyCli::Context.new.message("register.help", ShopifyCli::TOOL_NAME)
23
+ ShopifyCLI::Context.new.message("register.help", ShopifyCLI::TOOL_NAME)
24
24
  end
25
25
 
26
26
  private
@@ -60,7 +60,7 @@ module Extension
60
60
 
61
61
  def abort_not_registered
62
62
  @ctx.puts(@ctx.message("register.confirm_abort"))
63
- raise ShopifyCli::AbortSilent
63
+ raise ShopifyCLI::AbortSilent
64
64
  end
65
65
  end
66
66
  end
@@ -29,7 +29,7 @@ module Extension
29
29
  resource_url: options.flags[:resource_url]
30
30
  )
31
31
 
32
- ShopifyCli::Result
32
+ ShopifyCLI::Result
33
33
  .success(config)
34
34
  .then(&method(:find_available_port))
35
35
  .then(&method(:start_tunnel_if_required))
@@ -38,7 +38,7 @@ module Extension
38
38
  end
39
39
 
40
40
  def self.help
41
- ShopifyCli::Context.new.message("serve.help", ShopifyCli::TOOL_NAME)
41
+ ShopifyCLI::Context.new.message("serve.help", ShopifyCLI::TOOL_NAME)
42
42
  end
43
43
 
44
44
  private
@@ -66,12 +66,12 @@ module Extension
66
66
  end
67
67
 
68
68
  def can_start_tunnel?(runtime_configuration)
69
- return true if ShopifyCli::Tunnel.urls.empty?
70
- ShopifyCli::Tunnel.running_on?(runtime_configuration.port)
69
+ return true if ShopifyCLI::Tunnel.urls.empty?
70
+ ShopifyCLI::Tunnel.running_on?(runtime_configuration.port)
71
71
  end
72
72
 
73
73
  def start_tunnel(runtime_configuration)
74
- tunnel_url = ShopifyCli::Tunnel.start(@ctx, port: runtime_configuration.port)
74
+ tunnel_url = ShopifyCLI::Tunnel.start(@ctx, port: runtime_configuration.port)
75
75
  runtime_configuration.tap { |c| c.tunnel_url = tunnel_url }
76
76
  end
77
77
 
@@ -21,25 +21,25 @@ module Extension
21
21
 
22
22
  case subcommand
23
23
  when AUTH_SUBCOMMAND then authorize(args)
24
- when START_SUBCOMMAND then ShopifyCli::Tunnel.start(@ctx, port: port)
25
- when STOP_SUBCOMMAND then ShopifyCli::Tunnel.stop(@ctx)
24
+ when START_SUBCOMMAND then ShopifyCLI::Tunnel.start(@ctx, port: port)
25
+ when STOP_SUBCOMMAND then ShopifyCLI::Tunnel.stop(@ctx)
26
26
  when STATUS_SUBCOMMAND then status
27
27
  else @ctx.puts(self.class.help)
28
28
  end
29
29
  end
30
30
 
31
31
  def self.help
32
- ShopifyCli::Context.message("tunnel.help", ShopifyCli::TOOL_NAME)
32
+ ShopifyCLI::Context.message("tunnel.help", ShopifyCLI::TOOL_NAME)
33
33
  end
34
34
 
35
35
  def self.extended_help
36
- ShopifyCli::Context.message("tunnel.extended_help", ShopifyCli::TOOL_NAME, DEFAULT_PORT)
36
+ ShopifyCLI::Context.message("tunnel.extended_help", ShopifyCLI::TOOL_NAME, DEFAULT_PORT)
37
37
  end
38
38
 
39
39
  private
40
40
 
41
41
  def status
42
- tunnel_urls = ShopifyCli::Tunnel.urls
42
+ tunnel_urls = ShopifyCLI::Tunnel.urls
43
43
  tunnel_url = tunnel_urls.find { |url| url.start_with?("https://") }
44
44
  tunnel_url = tunnel_urls.first if tunnel_url.nil?
45
45
 
@@ -65,7 +65,7 @@ module Extension
65
65
  @ctx.puts(@ctx.message("tunnel.missing_token"))
66
66
  @ctx.puts("#{self.class.help}\n#{self.class.extended_help}")
67
67
  else
68
- ShopifyCli::Tunnel.auth(@ctx, token)
68
+ ShopifyCLI::Tunnel.auth(@ctx, token)
69
69
  end
70
70
  end
71
71
  end
@@ -3,10 +3,10 @@ require "shopify_cli"
3
3
  require "securerandom"
4
4
 
5
5
  module Extension
6
- class ExtensionProject < ShopifyCli::Project
6
+ class ExtensionProject < ShopifyCLI::Project
7
7
  class << self
8
8
  def write_cli_file(context:, type:)
9
- ShopifyCli::Project.write(
9
+ ShopifyCLI::Project.write(
10
10
  context,
11
11
  project_type: :extension,
12
12
  organization_id: nil,
@@ -42,7 +42,7 @@ module Extension
42
42
  resource_url: nil,
43
43
  shop: nil
44
44
  )
45
- ShopifyCli::Resources::EnvFile.new(
45
+ ShopifyCLI::Resources::EnvFile.new(
46
46
  api_key: api_key,
47
47
  secret: api_secret,
48
48
  shop: shop,
@@ -134,7 +134,7 @@ module Extension
134
134
 
135
135
  def validate_env_present
136
136
  return if env
137
- raise ShopifyCli::Abort, "Missing .env file. Run `shopify extension connect` to generate an .env file."
137
+ raise ShopifyCLI::Abort, "Missing .env file. Run `shopify extension connect` to generate an .env file."
138
138
  end
139
139
 
140
140
  def integer?(value)
@@ -24,7 +24,7 @@ module Extension
24
24
  end
25
25
 
26
26
  def config(context)
27
- js_system = ShopifyCli::JsSystem.new(ctx: context)
27
+ js_system = ShopifyCLI::JsSystem.new(ctx: context)
28
28
  if js_system.package_manager == "yarn"
29
29
  run_yarn_install(context, js_system)
30
30
  run_yarn_run_script(context, js_system)
@@ -42,7 +42,7 @@ module Extension
42
42
  end
43
43
 
44
44
  def renderer_package(context)
45
- js_system = ShopifyCli::JsSystem.new(ctx: context)
45
+ js_system = ShopifyCLI::JsSystem.new(ctx: context)
46
46
  Tasks::FindNpmPackages
47
47
  .exactly_one_of(renderer_package_name, js_system: js_system)
48
48
  .unwrap { |err| raise err }
@@ -21,7 +21,7 @@ module Extension
21
21
  return {} if config.nil?
22
22
 
23
23
  unless config.is_a?(Hash)
24
- raise ShopifyCli::Abort, ShopifyCli::Context.message("core.yaml.error.not_hash", CONFIG_FILE_NAME)
24
+ raise ShopifyCLI::Abort, ShopifyCLI::Context.message("core.yaml.error.not_hash", CONFIG_FILE_NAME)
25
25
  end
26
26
 
27
27
  config.transform_keys!(&:to_sym)
@@ -30,8 +30,8 @@ module Extension
30
30
  config
31
31
  rescue Psych::SyntaxError => e
32
32
  raise(
33
- ShopifyCli::Abort,
34
- ShopifyCli::Context.message("core.yaml.error.invalid", CONFIG_FILE_NAME, e.message)
33
+ ShopifyCLI::Abort,
34
+ ShopifyCLI::Context.message("core.yaml.error.invalid", CONFIG_FILE_NAME, e.message)
35
35
  )
36
36
  end
37
37
  end
@@ -45,8 +45,8 @@ module Extension
45
45
 
46
46
  unless unpermitted_keys.empty?
47
47
  raise(
48
- ShopifyCli::Abort,
49
- ShopifyCli::Context.message(
48
+ ShopifyCLI::Abort,
49
+ ShopifyCLI::Context.message(
50
50
  "features.argo.config.unpermitted_keys",
51
51
  CONFIG_FILE_NAME,
52
52
  unpermitted_keys.map { |k| "\n- #{k}" }.join