shopify-cli 2.2.2 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +0 -4
  4. data/.github/workflows/shopify.yml +104 -0
  5. data/.gitignore +3 -0
  6. data/.rubocop.yml +14 -14
  7. data/.rubocop_todo.yml +3 -3
  8. data/CHANGELOG.md +30 -0
  9. data/CONTRIBUTING.md +23 -0
  10. data/Dockerfile +17 -0
  11. data/Gemfile +1 -0
  12. data/Gemfile.lock +67 -24
  13. data/RELEASING.md +1 -1
  14. data/Rakefile +75 -18
  15. data/bin/console +11 -0
  16. data/bin/shopify +16 -4
  17. data/dev.yml +14 -1
  18. data/ext/shopify-cli/extconf.rb +2 -0
  19. data/ext/shopify-extensions/extconf.rb +21 -0
  20. data/ext/shopify-extensions/shopify_extensions.rb +152 -0
  21. data/ext/shopify-extensions/version +1 -0
  22. data/lib/project_types/extension/cli.rb +19 -3
  23. data/lib/project_types/extension/commands/build.rb +32 -3
  24. data/lib/project_types/extension/commands/check.rb +2 -2
  25. data/lib/project_types/extension/commands/connect.rb +1 -1
  26. data/lib/project_types/extension/commands/create.rb +59 -16
  27. data/lib/project_types/extension/commands/extension_command.rb +1 -1
  28. data/lib/project_types/extension/commands/info.rb +1 -1
  29. data/lib/project_types/extension/commands/push.rb +1 -1
  30. data/lib/project_types/extension/commands/register.rb +2 -2
  31. data/lib/project_types/extension/commands/serve.rb +5 -5
  32. data/lib/project_types/extension/commands/tunnel.rb +6 -6
  33. data/lib/project_types/extension/extension_project.rb +4 -4
  34. data/lib/project_types/extension/features/argo.rb +3 -3
  35. data/lib/project_types/extension/features/argo_config.rb +5 -5
  36. data/lib/project_types/extension/features/argo_serve.rb +21 -6
  37. data/lib/project_types/extension/features/argo_setup.rb +1 -1
  38. data/lib/project_types/extension/features/argo_setup_step.rb +1 -1
  39. data/lib/project_types/extension/features/argo_setup_steps.rb +2 -2
  40. data/lib/project_types/extension/forms/connect.rb +2 -2
  41. data/lib/project_types/extension/forms/create.rb +6 -3
  42. data/lib/project_types/extension/forms/questions/ask_app.rb +2 -2
  43. data/lib/project_types/extension/forms/questions/ask_name.rb +1 -1
  44. data/lib/project_types/extension/forms/questions/ask_registration.rb +2 -2
  45. data/lib/project_types/extension/forms/questions/ask_template.rb +44 -0
  46. data/lib/project_types/extension/forms/questions/ask_type.rb +2 -2
  47. data/lib/project_types/extension/messages/message_loading.rb +2 -2
  48. data/lib/project_types/extension/messages/messages.rb +3 -0
  49. data/lib/project_types/extension/models/development_server.rb +78 -0
  50. data/lib/project_types/extension/models/development_server_requirements.rb +35 -0
  51. data/lib/project_types/extension/models/lazy_specification_handler.rb +1 -1
  52. data/lib/project_types/extension/models/server_config/base.rb +31 -0
  53. data/lib/project_types/extension/models/server_config/development.rb +23 -0
  54. data/lib/project_types/extension/models/server_config/development_entries.rb +38 -0
  55. data/lib/project_types/extension/models/server_config/development_renderer.rb +30 -0
  56. data/lib/project_types/extension/models/server_config/extension.rb +35 -0
  57. data/lib/project_types/extension/models/server_config/root.rb +18 -0
  58. data/lib/project_types/extension/models/server_config/user.rb +10 -0
  59. data/lib/project_types/extension/models/specification.rb +1 -1
  60. data/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +1 -1
  61. data/lib/project_types/extension/models/specification_handlers/default.rb +14 -2
  62. data/lib/project_types/extension/models/specification_handlers/theme_app_extension.rb +1 -1
  63. data/lib/project_types/extension/models/specifications.rb +4 -4
  64. data/lib/project_types/extension/tasks/choose_next_available_port.rb +2 -2
  65. data/lib/project_types/extension/tasks/configure_features.rb +1 -1
  66. data/lib/project_types/extension/tasks/configure_options.rb +1 -1
  67. data/lib/project_types/extension/tasks/converters/product_converter.rb +1 -1
  68. data/lib/project_types/extension/tasks/converters/server_config_converter.rb +31 -0
  69. data/lib/project_types/extension/tasks/create_extension.rb +2 -2
  70. data/lib/project_types/extension/tasks/fetch_specifications.rb +2 -2
  71. data/lib/project_types/extension/tasks/find_npm_packages.rb +5 -5
  72. data/lib/project_types/extension/tasks/get_app.rb +2 -2
  73. data/lib/project_types/extension/tasks/get_apps.rb +2 -2
  74. data/lib/project_types/extension/tasks/get_extensions.rb +2 -2
  75. data/lib/project_types/extension/tasks/get_product.rb +2 -2
  76. data/lib/project_types/extension/tasks/load_server_config.rb +23 -0
  77. data/lib/project_types/extension/tasks/run_extension_command.rb +81 -0
  78. data/lib/project_types/extension/tasks/update_draft.rb +2 -2
  79. data/lib/project_types/node/cli.rb +3 -3
  80. data/lib/project_types/node/commands/connect.rb +4 -4
  81. data/lib/project_types/node/commands/create.rb +10 -14
  82. data/lib/project_types/node/commands/deploy/heroku.rb +4 -4
  83. data/lib/project_types/node/commands/deploy.rb +3 -3
  84. data/lib/project_types/node/commands/generate.rb +2 -2
  85. data/lib/project_types/node/commands/open.rb +3 -3
  86. data/lib/project_types/node/commands/serve.rb +15 -7
  87. data/lib/project_types/node/commands/tunnel.rb +6 -6
  88. data/lib/project_types/node/forms/create.rb +3 -3
  89. data/lib/project_types/node/messages/messages.rb +3 -0
  90. data/lib/project_types/php/cli.rb +27 -0
  91. data/lib/project_types/php/commands/connect.rb +19 -0
  92. data/lib/project_types/php/commands/create.rb +143 -0
  93. data/lib/project_types/php/commands/deploy/heroku.rb +129 -0
  94. data/lib/project_types/php/commands/deploy.rb +32 -0
  95. data/lib/project_types/php/commands/open.rb +16 -0
  96. data/lib/project_types/php/commands/serve.rb +51 -0
  97. data/lib/project_types/php/commands/tunnel.rb +37 -0
  98. data/lib/project_types/php/forms/create.rb +45 -0
  99. data/lib/project_types/php/messages/messages.rb +191 -0
  100. data/lib/project_types/rails/cli.rb +3 -3
  101. data/lib/project_types/rails/commands/connect.rb +4 -4
  102. data/lib/project_types/rails/commands/create.rb +12 -16
  103. data/lib/project_types/rails/commands/deploy/heroku.rb +4 -4
  104. data/lib/project_types/rails/commands/deploy.rb +3 -3
  105. data/lib/project_types/rails/commands/generate/webhook.rb +3 -3
  106. data/lib/project_types/rails/commands/generate.rb +3 -3
  107. data/lib/project_types/rails/commands/open.rb +3 -3
  108. data/lib/project_types/rails/commands/serve.rb +8 -8
  109. data/lib/project_types/rails/commands/tunnel.rb +6 -6
  110. data/lib/project_types/rails/forms/create.rb +3 -3
  111. data/lib/project_types/rails/gem.rb +1 -1
  112. data/lib/project_types/rails/ruby.rb +1 -1
  113. data/lib/project_types/script/cli.rb +16 -6
  114. data/lib/project_types/script/commands/create.rb +4 -2
  115. data/lib/project_types/script/commands/push.rb +2 -2
  116. data/lib/project_types/script/config/extension_points.yml +30 -29
  117. data/lib/project_types/script/forms/create.rb +1 -1
  118. data/lib/project_types/script/layers/application/create_script.rb +32 -12
  119. data/lib/project_types/script/layers/application/extension_points.rb +4 -4
  120. data/lib/project_types/script/layers/application/push_script.rb +13 -1
  121. data/lib/project_types/script/layers/domain/extension_point.rb +13 -45
  122. data/lib/project_types/script/layers/domain/push_package.rb +0 -12
  123. data/lib/project_types/script/layers/domain/script_project.rb +2 -2
  124. data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +57 -0
  125. data/lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb +35 -0
  126. data/lib/project_types/script/layers/infrastructure/command_runner.rb +1 -1
  127. data/lib/project_types/script/layers/infrastructure/errors.rb +5 -0
  128. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +10 -90
  129. data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +76 -11
  130. data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +1 -1
  131. data/lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb +33 -0
  132. data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +105 -0
  133. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +1 -1
  134. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +6 -6
  135. data/lib/project_types/script/layers/infrastructure/script_service.rb +25 -144
  136. data/lib/project_types/script/layers/infrastructure/script_uploader.rb +27 -0
  137. data/lib/project_types/script/layers/infrastructure/service_locator.rb +20 -0
  138. data/lib/project_types/script/messages/messages.rb +4 -0
  139. data/lib/project_types/script/tasks/ensure_env.rb +7 -7
  140. data/lib/project_types/script/ui/error_handler.rb +84 -76
  141. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  142. data/lib/project_types/theme/cli.rb +3 -3
  143. data/lib/project_types/theme/commands/check.rb +3 -3
  144. data/lib/project_types/theme/commands/delete.rb +7 -7
  145. data/lib/project_types/theme/commands/init.rb +3 -3
  146. data/lib/project_types/theme/commands/language_server.rb +2 -2
  147. data/lib/project_types/theme/commands/package.rb +2 -2
  148. data/lib/project_types/theme/commands/publish.rb +5 -5
  149. data/lib/project_types/theme/commands/pull.rb +15 -9
  150. data/lib/project_types/theme/commands/push.rb +18 -12
  151. data/lib/project_types/theme/commands/serve.rb +4 -4
  152. data/lib/project_types/theme/forms/confirm_store.rb +1 -1
  153. data/lib/project_types/theme/forms/select.rb +2 -2
  154. data/lib/{shopify-cli → shopify_cli}/admin_api/populate_resource_command.rb +3 -3
  155. data/lib/{shopify-cli → shopify_cli}/admin_api/schema.rb +4 -4
  156. data/lib/{shopify-cli → shopify_cli}/admin_api.rb +27 -27
  157. data/lib/{shopify-cli → shopify_cli}/api.rb +8 -8
  158. data/lib/shopify_cli/command/app_sub_command.rb +16 -0
  159. data/lib/{shopify-cli → shopify_cli}/command.rb +3 -3
  160. data/lib/{shopify-cli → shopify_cli}/commands/config.rb +14 -14
  161. data/lib/{shopify-cli → shopify_cli}/commands/help.rb +4 -4
  162. data/lib/{shopify-cli → shopify_cli}/commands/login.rb +7 -7
  163. data/lib/shopify_cli/commands/logout.rb +39 -0
  164. data/lib/{shopify-cli → shopify_cli}/commands/populate/customer.rb +4 -4
  165. data/lib/{shopify-cli → shopify_cli}/commands/populate/draft_order.rb +4 -4
  166. data/lib/{shopify-cli → shopify_cli}/commands/populate/product.rb +4 -4
  167. data/lib/shopify_cli/commands/populate.rb +23 -0
  168. data/lib/shopify_cli/commands/store.rb +15 -0
  169. data/lib/{shopify-cli → shopify_cli}/commands/switch.rb +5 -5
  170. data/lib/{shopify-cli → shopify_cli}/commands/system.rb +10 -10
  171. data/lib/shopify_cli/commands/version.rb +15 -0
  172. data/lib/{shopify-cli → shopify_cli}/commands/whoami.rb +7 -7
  173. data/lib/shopify_cli/commands.rb +34 -0
  174. data/lib/{shopify-cli → shopify_cli}/connect.rb +3 -3
  175. data/lib/shopify_cli/constants.rb +54 -0
  176. data/lib/{shopify-cli → shopify_cli}/context.rb +6 -6
  177. data/lib/{shopify-cli → shopify_cli}/core/entry_point.rb +7 -7
  178. data/lib/{shopify-cli → shopify_cli}/core/executor.rb +8 -4
  179. data/lib/{shopify-cli → shopify_cli}/core/finalize.rb +1 -1
  180. data/lib/{shopify-cli → shopify_cli}/core/help_resolver.rb +2 -2
  181. data/lib/{shopify-cli → shopify_cli}/core/monorail.rb +8 -8
  182. data/lib/shopify_cli/core.rb +8 -0
  183. data/lib/{shopify-cli → shopify_cli}/db.rb +8 -8
  184. data/lib/shopify_cli/environment.rb +91 -0
  185. data/lib/shopify_cli/exception_reporter/permission_controller.rb +54 -0
  186. data/lib/shopify_cli/exception_reporter.rb +55 -0
  187. data/lib/{shopify-cli → shopify_cli}/feature.rb +8 -8
  188. data/lib/{shopify-cli → shopify_cli}/form.rb +2 -2
  189. data/lib/{shopify-cli → shopify_cli}/git.rb +38 -8
  190. data/lib/{shopify-cli → shopify_cli}/helpers/haikunator.rb +1 -1
  191. data/lib/shopify_cli/helpers.rb +5 -0
  192. data/lib/{shopify-cli → shopify_cli}/heroku.rb +38 -13
  193. data/lib/{shopify-cli → shopify_cli}/http_request.rb +1 -1
  194. data/lib/{shopify-cli → shopify_cli}/identity_auth/servlet.rb +1 -1
  195. data/lib/{shopify-cli → shopify_cli}/identity_auth.rb +24 -31
  196. data/lib/{shopify-cli → shopify_cli}/js_deps.rb +7 -7
  197. data/lib/{shopify-cli → shopify_cli}/js_system.rb +10 -10
  198. data/lib/{shopify-cli → shopify_cli}/lazy_delegator.rb +2 -2
  199. data/lib/{shopify-cli → shopify_cli}/messages/messages.rb +44 -2
  200. data/lib/{shopify-cli → shopify_cli}/method_object.rb +15 -8
  201. data/lib/shopify_cli/migrator/migration.rb +27 -0
  202. data/lib/shopify_cli/migrator/migrations/1631709766_noop.rb +13 -0
  203. data/lib/shopify_cli/migrator.rb +48 -0
  204. data/lib/{shopify-cli → shopify_cli}/options.rb +1 -1
  205. data/lib/{shopify-cli → shopify_cli}/packager.rb +8 -8
  206. data/lib/{shopify-cli → shopify_cli}/partners_api/organizations.rb +1 -1
  207. data/lib/{shopify-cli → shopify_cli}/partners_api.rb +16 -40
  208. data/lib/shopify_cli/php_deps.rb +102 -0
  209. data/lib/{shopify-cli → shopify_cli}/process_supervision.rb +23 -21
  210. data/lib/{shopify-cli → shopify_cli}/project.rb +15 -15
  211. data/lib/{shopify-cli → shopify_cli}/project_commands.rb +3 -3
  212. data/lib/{shopify-cli → shopify_cli}/project_type.rb +5 -5
  213. data/lib/{shopify-cli → shopify_cli}/resolve_constant.rb +5 -5
  214. data/lib/{shopify-cli → shopify_cli}/resources/env_file.rb +1 -1
  215. data/lib/shopify_cli/resources.rb +5 -0
  216. data/lib/{shopify-cli → shopify_cli}/result.rb +11 -11
  217. data/lib/{shopify-cli → shopify_cli}/shopifolk.rb +6 -6
  218. data/lib/{shopify-cli → shopify_cli}/sub_command.rb +1 -1
  219. data/lib/{shopify-cli → shopify_cli}/task.rb +1 -1
  220. data/lib/{shopify-cli → shopify_cli}/tasks/confirm_store.rb +3 -3
  221. data/lib/{shopify-cli → shopify_cli}/tasks/create_api_client.rb +4 -4
  222. data/lib/shopify_cli/tasks/ensure_authenticated.rb +13 -0
  223. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_dev_store.rb +5 -5
  224. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_env.rb +3 -3
  225. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_loopback_url.rb +4 -4
  226. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_project_type.rb +3 -3
  227. data/lib/{shopify-cli → shopify_cli}/tasks/select_org_and_shop.rb +8 -8
  228. data/lib/{shopify-cli → shopify_cli}/tasks/update_dashboard_urls.rb +6 -6
  229. data/lib/{shopify-cli → shopify_cli}/tasks.rb +10 -10
  230. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/certificate_manager.rb +5 -5
  231. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/header_hash.rb +5 -1
  232. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot-reload.js +0 -0
  233. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot_reload.rb +5 -6
  234. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/local_assets.rb +1 -1
  235. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/proxy.rb +15 -3
  236. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/sse.rb +1 -1
  237. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/watcher.rb +1 -1
  238. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/web_server.rb +1 -1
  239. data/lib/{shopify-cli → shopify_cli}/theme/dev_server.rb +3 -3
  240. data/lib/shopify_cli/theme/development_theme.rb +83 -0
  241. data/lib/{shopify-cli → shopify_cli}/theme/file.rb +12 -4
  242. data/lib/{shopify-cli → shopify_cli}/theme/ignore_filter.rb +8 -1
  243. data/lib/{shopify-cli → shopify_cli}/theme/mime_type.rb +1 -1
  244. data/lib/{shopify-cli → shopify_cli}/theme/syncer.rb +7 -7
  245. data/lib/{shopify-cli → shopify_cli}/theme/theme.rb +4 -4
  246. data/lib/{shopify-cli → shopify_cli}/transform_data_structure.rb +4 -4
  247. data/lib/{shopify-cli → shopify_cli}/tunnel.rb +14 -14
  248. data/lib/shopify_cli/version.rb +3 -0
  249. data/lib/shopify_cli.rb +61 -50
  250. data/shopify-cli.gemspec +13 -5
  251. data/utilities/docker.rb +47 -0
  252. data/utilities/utilities.rb +5 -0
  253. metadata +155 -97
  254. data/.github/workflows/build.yml +0 -28
  255. data/lib/project_types/script/layers/infrastructure/languages/rust_project_creator.rb +0 -73
  256. data/lib/project_types/script/layers/infrastructure/languages/rust_task_runner.rb +0 -60
  257. data/lib/shopify-cli/commands/logout.rb +0 -39
  258. data/lib/shopify-cli/commands/populate.rb +0 -23
  259. data/lib/shopify-cli/commands/store.rb +0 -15
  260. data/lib/shopify-cli/commands/version.rb +0 -15
  261. data/lib/shopify-cli/commands.rb +0 -34
  262. data/lib/shopify-cli/core.rb +0 -8
  263. data/lib/shopify-cli/helpers.rb +0 -5
  264. data/lib/shopify-cli/resources.rb +0 -5
  265. data/lib/shopify-cli/tasks/ensure_authenticated.rb +0 -13
  266. data/lib/shopify-cli/theme/development_theme.rb +0 -69
  267. data/lib/shopify-cli/version.rb +0 -3
@@ -1,73 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Layers
5
- module Infrastructure
6
- module Languages
7
- class RustProjectCreator
8
- include SmartProperties
9
- property! :ctx, accepts: ShopifyCli::Context
10
- property! :extension_point, accepts: Domain::ExtensionPoint
11
- property! :script_name, accepts: String
12
- property! :path_to_project, accepts: String
13
-
14
- ORIGIN_BRANCH = "main"
15
- SAMPLE_PATH = "default"
16
-
17
- def setup_dependencies
18
- git_init
19
- setup_remote
20
- setup_sparse_checkout
21
- pull
22
- clean
23
- set_script_name
24
- end
25
-
26
- def bootstrap
27
- end
28
-
29
- private
30
-
31
- def command_runner
32
- @command_runner ||= CommandRunner.new(ctx: ctx)
33
- end
34
-
35
- def git_init
36
- command_runner.call("git init")
37
- end
38
-
39
- def setup_remote
40
- repo = extension_point.sdks.rust.package
41
- command_runner.call("git remote add -f origin #{repo}")
42
- end
43
-
44
- def setup_sparse_checkout
45
- type = extension_point.type
46
- command_runner.call("git config core.sparsecheckout true")
47
- command_runner.call("echo #{type}/#{SAMPLE_PATH} >> .git/info/sparse-checkout")
48
- end
49
-
50
- def pull
51
- command_runner.call("git pull origin #{ORIGIN_BRANCH}")
52
- end
53
-
54
- def clean
55
- type = extension_point.type
56
- ctx.rm_rf(".git")
57
- source = File.join(path_to_project, File.join(type, SAMPLE_PATH))
58
- FileUtils.copy_entry(source, path_to_project)
59
- ctx.rm_rf(type)
60
- end
61
-
62
- def set_script_name
63
- config_file = "Cargo.toml"
64
- upstream_name = "#{extension_point.type.gsub("_", "-")}-default"
65
- contents = File.read(config_file)
66
- new_contents = contents.sub(upstream_name, script_name)
67
- File.write(config_file, new_contents)
68
- end
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
- module Script
3
- module Layers
4
- module Infrastructure
5
- module Languages
6
- class RustTaskRunner
7
- attr_reader :ctx
8
-
9
- BUILD_TARGET = "wasm32-unknown-unknown"
10
- METADATA_FILE = "build/metadata.json"
11
- CARGO_BUILD_CMD = "cargo build --target=#{BUILD_TARGET} --release"
12
-
13
- def initialize(ctx, _)
14
- @ctx = ctx
15
- end
16
-
17
- def dependencies_installed?
18
- true
19
- end
20
-
21
- def install_dependencies
22
- end
23
-
24
- def build
25
- compile
26
- bytecode
27
- end
28
-
29
- def compiled_type
30
- "wasm"
31
- end
32
-
33
- def metadata
34
- unless @ctx.file_exist?(METADATA_FILE)
35
- msg = @ctx.message("script.error.metadata_not_found_cause", METADATA_FILE)
36
- raise Domain::Errors::MetadataNotFoundError, msg
37
- end
38
-
39
- raw_contents = File.read(METADATA_FILE)
40
- Domain::Metadata.create_from_json(@ctx, raw_contents)
41
- end
42
-
43
- private
44
-
45
- def compile
46
- CommandRunner.new(ctx: ctx).call(CARGO_BUILD_CMD)
47
- end
48
-
49
- def bytecode
50
- binary_name = "script.wasm"
51
- binary_path = "target/#{BUILD_TARGET}/release/#{binary_name}"
52
- raise Errors::WebAssemblyBinaryNotFoundError unless ctx.file_exist?(binary_path)
53
-
54
- ctx.binread(binary_path)
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
@@ -1,39 +0,0 @@
1
- require "shopify_cli"
2
- require "shopify-cli/theme/development_theme"
3
-
4
- module ShopifyCli
5
- module Commands
6
- class Logout < ShopifyCli::Command
7
- def call(*)
8
- try_delete_development_theme
9
- ShopifyCli::IdentityAuth.delete_tokens_and_keys
10
- ShopifyCli::DB.del(:shop) if has_shop?
11
- ShopifyCli::DB.del(:organization_id) if has_organization_id?
12
- ShopifyCli::Shopifolk.reset
13
- @ctx.puts(@ctx.message("core.logout.success"))
14
- end
15
-
16
- def self.help
17
- ShopifyCli::Context.message("core.logout.help", ShopifyCli::TOOL_NAME)
18
- end
19
-
20
- private
21
-
22
- def has_shop?
23
- ShopifyCli::DB.exists?(:shop)
24
- end
25
-
26
- def has_organization_id?
27
- ShopifyCli::DB.exists?(:organization_id)
28
- end
29
-
30
- def try_delete_development_theme
31
- return unless has_shop?
32
-
33
- ShopifyCli::Theme::DevelopmentTheme.delete(@ctx)
34
- rescue ShopifyCli::API::APIRequestError
35
- # Ignore since we can't delete it
36
- end
37
- end
38
- end
39
- end
@@ -1,23 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCli
4
- module Commands
5
- class Populate < ShopifyCli::Command
6
- subcommand :Customer, "customers", "shopify-cli/commands/populate/customer"
7
- subcommand :DraftOrder, "draftorders", "shopify-cli/commands/populate/draft_order"
8
- subcommand :Product, "products", "shopify-cli/commands/populate/product"
9
-
10
- def call(_args, _name)
11
- @ctx.puts(self.class.help)
12
- end
13
-
14
- def self.help
15
- ShopifyCli::Context.message("core.populate.help", ShopifyCli::TOOL_NAME)
16
- end
17
-
18
- def self.extended_help
19
- ShopifyCli::Context.message("core.populate.extended_help", ShopifyCli::TOOL_NAME)
20
- end
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCli
4
- module Commands
5
- class Store < ShopifyCli::Command
6
- def call(_args, _name)
7
- @ctx.puts(@ctx.message("core.store.shop", ShopifyCli::AdminAPI.get_shop_or_abort(@ctx)))
8
- end
9
-
10
- def self.help
11
- ShopifyCli::Context.message("core.store.help", ShopifyCli::TOOL_NAME)
12
- end
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCli
4
- module Commands
5
- class Version < ShopifyCli::Command
6
- def self.help
7
- ShopifyCli::Context.message("core.version.help", ShopifyCli::TOOL_NAME)
8
- end
9
-
10
- def call(_args, _name)
11
- @ctx.puts(ShopifyCli::VERSION.to_s)
12
- end
13
- end
14
- end
15
- end
@@ -1,34 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCli
4
- module Commands
5
- Registry = CLI::Kit::CommandRegistry.new(
6
- default: "help",
7
- contextual_resolver: nil,
8
- )
9
- @core_commands = []
10
-
11
- def self.register(const, cmd, path = nil, is_core = false)
12
- autoload(const, path) if path
13
- Registry.add(->() { const_get(const) }, cmd)
14
- @core_commands.push(cmd) if is_core
15
- end
16
-
17
- def self.core_command?(cmd)
18
- @core_commands.include?(cmd)
19
- end
20
-
21
- register :Config, "config", "shopify-cli/commands/config", true
22
- register :Help, "help", "shopify-cli/commands/help", true
23
- register :Login, "login", "shopify-cli/commands/login", true
24
- register :Logout, "logout", "shopify-cli/commands/logout", true
25
- register :Populate, "populate", "shopify-cli/commands/populate", true
26
- register :Store, "store", "shopify-cli/commands/store", true
27
- register :Switch, "switch", "shopify-cli/commands/switch", true
28
- register :System, "system", "shopify-cli/commands/system", true
29
- register :Version, "version", "shopify-cli/commands/version", true
30
- register :Whoami, "whoami", "shopify-cli/commands/whoami", true
31
-
32
- autoload :Connect, "shopify-cli/commands/connect"
33
- end
34
- end
@@ -1,8 +0,0 @@
1
- module ShopifyCli
2
- module Core
3
- autoload :EntryPoint, "shopify-cli/core/entry_point"
4
- autoload :Executor, "shopify-cli/core/executor"
5
- autoload :HelpResolver, "shopify-cli/core/help_resolver"
6
- autoload :Monorail, "shopify-cli/core/monorail"
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module ShopifyCli
2
- module Helpers
3
- autoload :Haikunator, "shopify-cli/helpers/haikunator"
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- module ShopifyCli
2
- module Resources
3
- autoload :EnvFile, "shopify-cli/resources/env_file"
4
- end
5
- end
@@ -1,13 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCli
4
- module Tasks
5
- class EnsureAuthenticated < ShopifyCli::Task
6
- def call(ctx)
7
- ctx.abort(
8
- ctx.message("core.identity_auth.login_prompt", ShopifyCli::TOOL_NAME)
9
- ) unless ShopifyCli::IdentityAuth::IDENTITY_ACCESS_TOKENS.all? { |key| ShopifyCli::DB.exists?(key) }
10
- end
11
- end
12
- end
13
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative "theme"
3
-
4
- require "socket"
5
- require "securerandom"
6
-
7
- module ShopifyCli
8
- module Theme
9
- class DevelopmentTheme < Theme
10
- def id
11
- ShopifyCli::DB.get(:development_theme_id)
12
- end
13
-
14
- def name
15
- ShopifyCli::DB.get(:development_theme_name) || generate_theme_name
16
- end
17
-
18
- def role
19
- "development"
20
- end
21
-
22
- def ensure_exists!
23
- if exists?
24
- @ctx.debug("Using temporary development theme: ##{id} #{name}")
25
- else
26
- create
27
- @ctx.debug("Created temporary development theme: #{@id}")
28
- ShopifyCli::DB.set(development_theme_id: @id)
29
- end
30
- end
31
-
32
- def exists?
33
- return false unless id
34
-
35
- ShopifyCli::AdminAPI.rest_request(
36
- @ctx,
37
- shop: shop,
38
- path: "themes/#{id}.json",
39
- api_version: "unstable",
40
- )
41
- rescue ShopifyCli::API::APIRequestNotFoundError
42
- false
43
- end
44
-
45
- def delete
46
- super if exists?
47
- ShopifyCli::DB.del(:development_theme_id) if ShopifyCli::DB.exists?(:development_theme_id)
48
- ShopifyCli::DB.del(:development_theme_name) if ShopifyCli::DB.exists?(:development_theme_name)
49
- end
50
-
51
- def self.delete(ctx)
52
- new(ctx).delete
53
- end
54
-
55
- private
56
-
57
- def generate_theme_name
58
- hostname = Socket.gethostname.split(".").shift
59
- hash = SecureRandom.hex(3)
60
-
61
- theme_name = "Development (#{hash}-#{hostname})"
62
-
63
- ShopifyCli::DB.set(development_theme_name: theme_name)
64
-
65
- theme_name
66
- end
67
- end
68
- end
69
- end
@@ -1,3 +0,0 @@
1
- module ShopifyCli
2
- VERSION = "2.2.2"
3
- end