shopify-cli 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
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