shopify-cli 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +12 -12
  4. data/Rakefile +32 -30
  5. data/bin/load_shopify.rb +6 -6
  6. data/bin/shopify +2 -2
  7. data/ext/shopify-cli/extconf.rb +7 -7
  8. data/lib/docgen/markdown.rb +11 -11
  9. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  10. data/lib/project_types/extension/cli.rb +52 -45
  11. data/lib/project_types/extension/commands/build.rb +3 -3
  12. data/lib/project_types/extension/commands/create.rb +16 -9
  13. data/lib/project_types/extension/commands/extension_command.rb +8 -5
  14. data/lib/project_types/extension/commands/push.rb +8 -8
  15. data/lib/project_types/extension/commands/register.rb +19 -30
  16. data/lib/project_types/extension/commands/serve.rb +2 -2
  17. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  18. data/lib/project_types/extension/extension_project.rb +4 -4
  19. data/lib/project_types/extension/extension_project_keys.rb +4 -4
  20. data/lib/project_types/extension/features/argo.rb +13 -13
  21. data/lib/project_types/extension/features/argo_config.rb +5 -5
  22. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  23. data/lib/project_types/extension/features/argo_setup.rb +2 -2
  24. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  25. data/lib/project_types/extension/forms/create.rb +28 -34
  26. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  27. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  28. data/lib/project_types/extension/forms/questions/ask_type.rb +36 -0
  29. data/lib/project_types/extension/messages/messages.rb +53 -52
  30. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  31. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +1 -1
  32. data/lib/project_types/extension/models/specification_handlers/default.rb +2 -2
  33. data/lib/project_types/extension/models/specifications.rb +3 -3
  34. data/lib/project_types/extension/tasks/configure_features.rb +4 -4
  35. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  36. data/lib/project_types/extension/tasks/converters/registration_converter.rb +6 -6
  37. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  38. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  39. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  40. data/lib/project_types/extension/tasks/fetch_specifications.rb +4 -4
  41. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  42. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  43. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  44. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  45. data/lib/project_types/node/cli.rb +19 -19
  46. data/lib/project_types/node/commands/connect.rb +3 -3
  47. data/lib/project_types/node/commands/create.rb +40 -38
  48. data/lib/project_types/node/commands/deploy.rb +4 -4
  49. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  50. data/lib/project_types/node/commands/generate.rb +8 -8
  51. data/lib/project_types/node/commands/open.rb +2 -2
  52. data/lib/project_types/node/commands/populate.rb +6 -6
  53. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  54. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  55. data/lib/project_types/node/commands/populate/product.rb +5 -5
  56. data/lib/project_types/node/commands/serve.rb +9 -9
  57. data/lib/project_types/node/commands/tunnel.rb +7 -7
  58. data/lib/project_types/node/forms/create.rb +7 -7
  59. data/lib/project_types/node/messages/messages.rb +3 -3
  60. data/lib/project_types/rails/cli.rb +21 -21
  61. data/lib/project_types/rails/commands/connect.rb +3 -3
  62. data/lib/project_types/rails/commands/create.rb +51 -48
  63. data/lib/project_types/rails/commands/deploy.rb +4 -4
  64. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  65. data/lib/project_types/rails/commands/generate.rb +7 -7
  66. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  67. data/lib/project_types/rails/commands/open.rb +2 -2
  68. data/lib/project_types/rails/commands/populate.rb +6 -6
  69. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  70. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  71. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  72. data/lib/project_types/rails/commands/serve.rb +11 -11
  73. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  74. data/lib/project_types/rails/forms/create.rb +23 -23
  75. data/lib/project_types/rails/gem.rb +23 -23
  76. data/lib/project_types/rails/messages/messages.rb +4 -4
  77. data/lib/project_types/rails/ruby.rb +2 -2
  78. data/lib/project_types/script/cli.rb +40 -40
  79. data/lib/project_types/script/commands/create.rb +9 -8
  80. data/lib/project_types/script/commands/disable.rb +3 -3
  81. data/lib/project_types/script/commands/enable.rb +9 -7
  82. data/lib/project_types/script/commands/push.rb +5 -4
  83. data/lib/project_types/script/errors.rb +17 -0
  84. data/lib/project_types/script/forms/create.rb +5 -5
  85. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +2 -0
  86. data/lib/project_types/script/layers/application/build_script.rb +6 -8
  87. data/lib/project_types/script/layers/application/create_script.rb +2 -2
  88. data/lib/project_types/script/layers/application/disable_script.rb +2 -2
  89. data/lib/project_types/script/layers/application/enable_script.rb +2 -2
  90. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  91. data/lib/project_types/script/layers/application/push_script.rb +4 -12
  92. data/lib/project_types/script/layers/domain/push_package.rb +5 -1
  93. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +3 -3
  94. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +10 -10
  95. data/lib/project_types/script/layers/infrastructure/errors.rb +1 -1
  96. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +2 -2
  97. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +12 -17
  98. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +4 -4
  99. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +1 -1
  100. data/lib/project_types/script/layers/infrastructure/script_service.rb +18 -16
  101. data/lib/project_types/script/messages/messages.rb +14 -8
  102. data/lib/project_types/script/script_project.rb +27 -5
  103. data/lib/project_types/script/ui/error_handler.rb +80 -68
  104. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  105. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  106. data/lib/project_types/theme/cli.rb +19 -19
  107. data/lib/project_types/theme/commands/connect.rb +12 -12
  108. data/lib/project_types/theme/commands/create.rb +11 -11
  109. data/lib/project_types/theme/commands/deploy.rb +8 -8
  110. data/lib/project_types/theme/commands/generate.rb +3 -3
  111. data/lib/project_types/theme/commands/generate/env.rb +15 -15
  112. data/lib/project_types/theme/commands/push.rb +15 -15
  113. data/lib/project_types/theme/commands/serve.rb +5 -5
  114. data/lib/project_types/theme/forms/connect.rb +4 -4
  115. data/lib/project_types/theme/forms/create.rb +5 -5
  116. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +22 -22
  117. data/lib/project_types/theme/themekit.rb +15 -15
  118. data/lib/rubygems_plugin.rb +3 -3
  119. data/lib/shopify-cli/admin_api.rb +11 -11
  120. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  121. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  122. data/lib/shopify-cli/api.rb +10 -10
  123. data/lib/shopify-cli/command.rb +1 -1
  124. data/lib/shopify-cli/commands.rb +9 -9
  125. data/lib/shopify-cli/commands/config.rb +28 -52
  126. data/lib/shopify-cli/commands/connect.rb +10 -10
  127. data/lib/shopify-cli/commands/create.rb +5 -5
  128. data/lib/shopify-cli/commands/help.rb +6 -6
  129. data/lib/shopify-cli/commands/logout.rb +3 -3
  130. data/lib/shopify-cli/commands/system.rb +32 -32
  131. data/lib/shopify-cli/commands/version.rb +2 -2
  132. data/lib/shopify-cli/context.rb +23 -23
  133. data/lib/shopify-cli/core.rb +4 -4
  134. data/lib/shopify-cli/core/entry_point.rb +5 -5
  135. data/lib/shopify-cli/core/executor.rb +1 -1
  136. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  137. data/lib/shopify-cli/core/monorail.rb +16 -16
  138. data/lib/shopify-cli/db.rb +2 -2
  139. data/lib/shopify-cli/feature.rb +1 -1
  140. data/lib/shopify-cli/form.rb +1 -1
  141. data/lib/shopify-cli/git.rb +17 -17
  142. data/lib/shopify-cli/helpers.rb +1 -1
  143. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  144. data/lib/shopify-cli/heroku.rb +28 -28
  145. data/lib/shopify-cli/http_request.rb +2 -2
  146. data/lib/shopify-cli/js_deps.rb +12 -12
  147. data/lib/shopify-cli/js_system.rb +5 -5
  148. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  149. data/lib/shopify-cli/messages/messages.rb +4 -14
  150. data/lib/shopify-cli/oauth.rb +25 -25
  151. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  152. data/lib/shopify-cli/options.rb +3 -3
  153. data/lib/shopify-cli/packager.rb +24 -24
  154. data/lib/shopify-cli/partners_api.rb +16 -16
  155. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  156. data/lib/shopify-cli/process_supervision.rb +7 -7
  157. data/lib/shopify-cli/project.rb +16 -16
  158. data/lib/shopify-cli/project_type.rb +3 -3
  159. data/lib/shopify-cli/resources.rb +1 -1
  160. data/lib/shopify-cli/resources/env_file.rb +9 -9
  161. data/lib/shopify-cli/result.rb +8 -8
  162. data/lib/shopify-cli/shopifolk.rb +6 -9
  163. data/lib/shopify-cli/sub_command.rb +1 -1
  164. data/lib/shopify-cli/task.rb +3 -3
  165. data/lib/shopify-cli/tasks.rb +7 -7
  166. data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
  167. data/lib/shopify-cli/tasks/ensure_dev_store.rb +11 -11
  168. data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
  169. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  170. data/lib/shopify-cli/tasks/select_org_and_shop.rb +19 -19
  171. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  172. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  173. data/lib/shopify-cli/tunnel.rb +30 -30
  174. data/lib/shopify-cli/version.rb +1 -1
  175. data/lib/shopify_cli.rb +56 -54
  176. data/shopify-cli.gemspec +6 -6
  177. data/vendor/gen/template/bin/update-deps +9 -9
  178. metadata +9 -4
  179. data/lib/project_types/extension/forms/register.rb +0 -47
@@ -4,24 +4,30 @@ module Extension
4
4
  module Commands
5
5
  class Create < ShopifyCli::SubCommand
6
6
  options do |parser, flags|
7
- parser.on('--name=NAME') { |name| flags[:name] = name }
8
- parser.on('--type=TYPE') { |type| flags[:type] = type.upcase }
7
+ parser.on("--name=NAME") { |name| flags[:name] = name }
8
+ parser.on("--type=TYPE") { |type| flags[:type] = type.upcase }
9
+ parser.on("--api-key=KEY") { |key| flags[:api_key] = key.downcase }
9
10
  end
10
11
 
11
12
  def call(args, _)
12
13
  with_create_form(args) do |form|
13
14
  if Dir.exist?(form.directory_name)
14
- @ctx.abort(@ctx.message('create.errors.directory_exists', form.directory_name))
15
+ @ctx.abort(@ctx.message("create.errors.directory_exists", form.directory_name))
15
16
  end
16
17
 
17
18
  if form.type.create(form.directory_name, @ctx)
18
19
  ExtensionProject.write_cli_file(context: @ctx, type: form.type.identifier)
19
- ExtensionProject.write_env_file(context: @ctx, title: form.name)
20
-
21
- @ctx.puts(@ctx.message('create.ready_to_start', form.directory_name, form.name))
22
- @ctx.puts(@ctx.message('create.learn_more', form.type.name))
20
+ ExtensionProject.write_env_file(
21
+ context: @ctx,
22
+ title: form.name,
23
+ api_key: form.app.api_key,
24
+ api_secret: form.app.secret
25
+ )
26
+
27
+ @ctx.puts(@ctx.message("create.ready_to_start", form.directory_name, form.name))
28
+ @ctx.puts(@ctx.message("create.learn_more", form.type.name))
23
29
  else
24
- @ctx.puts(@ctx.message('create.try_again'))
30
+ @ctx.puts(@ctx.message("create.try_again"))
25
31
  end
26
32
  end
27
33
  end
@@ -29,10 +35,11 @@ module Extension
29
35
  def self.help
30
36
  <<~HELP
31
37
  Create a new app extension.
32
- Usage: {{command:#{ShopifyCli::TOOL_NAME} create extension <name>}}
38
+ Usage: {{command:#{ShopifyCli::TOOL_NAME} create extension}}
33
39
  Options:
34
40
  {{command:--type=TYPE}} The type of extension you would like to create.
35
41
  {{command:--name=NAME}} The name of your extension (50 characters).”
42
+ {{command:--api-key=KEY}} The API key of your app.”
36
43
  HELP
37
44
  end
38
45
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  module Commands
@@ -10,11 +10,14 @@ module Extension
10
10
 
11
11
  def extension_type
12
12
  @extension_type ||= begin
13
- unless Extension.specifications.valid?(project.extension_type_identifier)
14
- @ctx.abort(@ctx.message('errors.unknown_type', project.extension_type_identifier))
15
- end
13
+ identifier = project.extension_type_identifier
14
+ Models::LazySpecificationHandler.new(identifier) do
15
+ unless Extension.specifications.valid?(identifier)
16
+ @ctx.abort(@ctx.message("errors.unknown_type", project.extension_type_identifier))
17
+ end
16
18
 
17
- Extension.specifications[project.extension_type_identifier]
19
+ Extension.specifications[identifier]
20
+ end
18
21
  end
19
22
  end
20
23
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  module Commands
@@ -10,7 +10,7 @@ module Extension
10
10
  Commands::Register.new(@ctx).call(args, name) unless project.registered?
11
11
  Commands::Build.new(@ctx).call(args, name)
12
12
 
13
- CLI::UI::Frame.open(@ctx.message('push.frame_title')) do
13
+ CLI::UI::Frame.open(@ctx.message("push.frame_title")) do
14
14
  updated_draft_version = update_draft
15
15
  show_message(updated_draft_version)
16
16
  end
@@ -30,18 +30,18 @@ module Extension
30
30
  end
31
31
 
32
32
  def output_success_messages(draft)
33
- @ctx.puts(@ctx.message('push.success_confirmation', project.title, format_time(draft.last_user_interaction_at)))
34
- @ctx.puts(@ctx.message('push.success_info', draft.location))
33
+ @ctx.puts(@ctx.message("push.success_confirmation", project.title, format_time(draft.last_user_interaction_at)))
34
+ @ctx.puts(@ctx.message("push.success_info", draft.location))
35
35
  end
36
36
 
37
37
  def output_validation_errors(draft)
38
- @ctx.puts(@ctx.message('push.pushed_with_errors', format_time(draft.last_user_interaction_at)))
38
+ @ctx.puts(@ctx.message("push.pushed_with_errors", format_time(draft.last_user_interaction_at)))
39
39
 
40
40
  draft.validation_errors.each do |error|
41
- @ctx.puts(format('{{x}} %s: %s', error.field.last, error.message))
41
+ @ctx.puts(format("{{x}} %s: %s", error.field.last, error.message))
42
42
  end
43
43
 
44
- @ctx.puts(@ctx.message('push.push_with_errors_info'))
44
+ @ctx.puts(@ctx.message("push.push_with_errors_info"))
45
45
  end
46
46
 
47
47
  def format_time(time)
@@ -49,7 +49,7 @@ module Extension
49
49
  end
50
50
 
51
51
  def with_waiting_text
52
- @ctx.puts(@ctx.message('push.waiting_text'))
52
+ @ctx.puts(@ctx.message("push.waiting_text"))
53
53
  yield
54
54
  end
55
55
 
@@ -3,23 +3,17 @@
3
3
  module Extension
4
4
  module Commands
5
5
  class Register < ExtensionCommand
6
- options do |parser, flags|
7
- parser.on('--api_key=KEY') { |key| flags[:api_key] = key.downcase }
8
- end
9
-
10
- def call(args, _command_name)
11
- CLI::UI::Frame.open(@ctx.message('register.frame_title')) do
12
- @ctx.abort(@ctx.message('register.already_registered')) if project.registered?
6
+ def call(_args, _command_name)
7
+ CLI::UI::Frame.open(@ctx.message("register.frame_title")) do
8
+ @ctx.abort(@ctx.message("register.already_registered")) if project.registered?
13
9
 
14
- with_register_form(args) do |form|
15
- should_continue = confirm_registration(form.app)
16
- registration = should_continue ? register_extension(form.app) : abort_not_registered
10
+ should_continue = confirm_registration
11
+ registration = should_continue ? register_extension : abort_not_registered
17
12
 
18
- update_project_files(form.app, registration)
13
+ update_project_files(registration)
19
14
 
20
- @ctx.puts(@ctx.message('register.success', project.title, form.app.title))
21
- @ctx.puts(@ctx.message('register.success_info'))
22
- end
15
+ @ctx.puts(@ctx.message("register.success", project.title, app.title))
16
+ @ctx.puts(@ctx.message("register.success_info"))
23
17
  end
24
18
  end
25
19
 
@@ -27,27 +21,18 @@ module Extension
27
21
  <<~HELP
28
22
  Register your local extension to a Shopify app
29
23
  Usage: {{command:#{ShopifyCli::TOOL_NAME} register}}
30
- Options:
31
- {{command:--api_key=API_KEY}} The API key used to register an app with the extension. This can be found on the app page on Partners Dashboard.
32
24
  HELP
33
25
  end
34
26
 
35
27
  private
36
28
 
37
- def with_register_form(args)
38
- form = Forms::Register.ask(@ctx, args, options.flags)
39
- return @ctx.puts(self.class.help) if form.nil?
40
-
41
- yield form
29
+ def confirm_registration
30
+ @ctx.puts(@ctx.message("register.confirm_info", extension_type.name))
31
+ CLI::UI::Prompt.confirm(@ctx.message("register.confirm_question", app.title))
42
32
  end
43
33
 
44
- def confirm_registration(app)
45
- @ctx.puts(@ctx.message('register.confirm_info', extension_type.name))
46
- CLI::UI::Prompt.confirm(@ctx.message('register.confirm_question', app.title))
47
- end
48
-
49
- def register_extension(app)
50
- @ctx.puts(@ctx.message('register.waiting_text'))
34
+ def register_extension
35
+ @ctx.puts(@ctx.message("register.waiting_text"))
51
36
 
52
37
  Tasks::CreateExtension.call(
53
38
  context: @ctx,
@@ -59,7 +44,7 @@ module Extension
59
44
  )
60
45
  end
61
46
 
62
- def update_project_files(app, registration)
47
+ def update_project_files(registration)
63
48
  ExtensionProject.write_env_file(
64
49
  context: @ctx,
65
50
  api_key: app.api_key,
@@ -69,8 +54,12 @@ module Extension
69
54
  )
70
55
  end
71
56
 
57
+ def app
58
+ @app ||= project.app
59
+ end
60
+
72
61
  def abort_not_registered
73
- @ctx.puts(@ctx.message('register.confirm_abort'))
62
+ @ctx.puts(@ctx.message("register.confirm_abort"))
74
63
  raise ShopifyCli::AbortSilent
75
64
  end
76
65
  end
@@ -7,9 +7,9 @@ module Extension
7
7
  NPM_SERVE_COMMAND = %w(run-script server)
8
8
 
9
9
  def call(_args, _command_name)
10
- CLI::UI::Frame.open(@ctx.message('serve.frame_title')) do
10
+ CLI::UI::Frame.open(@ctx.message("serve.frame_title")) do
11
11
  success = ShopifyCli::JsSystem.call(@ctx, yarn: YARN_SERVE_COMMAND, npm: NPM_SERVE_COMMAND)
12
- @ctx.abort(@ctx.message('serve.serve_failure_message')) unless success
12
+ @ctx.abort(@ctx.message("serve.serve_failure_message")) unless success
13
13
  end
14
14
  end
15
15
 
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  module Commands
6
6
  class Tunnel < ExtensionCommand
7
7
  options do |parser, flags|
8
- parser.on('--port=PORT') { |port| flags[:port] = port }
8
+ parser.on("--port=PORT") { |port| flags[:port] = port }
9
9
  end
10
10
 
11
- AUTH_SUBCOMMAND = 'auth'
12
- START_SUBCOMMAND = 'start'
13
- STOP_SUBCOMMAND = 'stop'
14
- STATUS_SUBCOMMAND = 'status'
11
+ AUTH_SUBCOMMAND = "auth"
12
+ START_SUBCOMMAND = "start"
13
+ STOP_SUBCOMMAND = "stop"
14
+ STATUS_SUBCOMMAND = "status"
15
15
  DEFAULT_PORT = 39351
16
16
 
17
17
  def call(args, _name)
@@ -27,11 +27,11 @@ module Extension
27
27
  end
28
28
 
29
29
  def self.help
30
- ShopifyCli::Context.message('tunnel.help', ShopifyCli::TOOL_NAME)
30
+ ShopifyCli::Context.message("tunnel.help", ShopifyCli::TOOL_NAME)
31
31
  end
32
32
 
33
33
  def self.extended_help
34
- ShopifyCli::Context.message('tunnel.extended_help', ShopifyCli::TOOL_NAME, DEFAULT_PORT)
34
+ ShopifyCli::Context.message("tunnel.extended_help", ShopifyCli::TOOL_NAME, DEFAULT_PORT)
35
35
  end
36
36
 
37
37
  private
@@ -40,9 +40,9 @@ module Extension
40
40
  tunnel_url = ShopifyCli::Tunnel.urls.first
41
41
 
42
42
  if tunnel_url.nil?
43
- @ctx.puts(@ctx.message('tunnel.no_tunnel_running'))
43
+ @ctx.puts(@ctx.message("tunnel.no_tunnel_running"))
44
44
  else
45
- @ctx.puts(@ctx.message('tunnel.tunnel_running_at', tunnel_url))
45
+ @ctx.puts(@ctx.message("tunnel.tunnel_running_at", tunnel_url))
46
46
  end
47
47
  end
48
48
 
@@ -50,7 +50,7 @@ module Extension
50
50
  return DEFAULT_PORT unless options.flags.key?(:port)
51
51
 
52
52
  port = options.flags[:port].to_i
53
- @ctx.abort(@ctx.message('tunnel.invalid_port', options.flags[:port])) unless port > 0
53
+ @ctx.abort(@ctx.message("tunnel.invalid_port", options.flags[:port])) unless port > 0
54
54
  port
55
55
  end
56
56
 
@@ -58,7 +58,7 @@ module Extension
58
58
  token = args.shift
59
59
 
60
60
  if token.nil?
61
- @ctx.puts(@ctx.message('tunnel.missing_token'))
61
+ @ctx.puts(@ctx.message("tunnel.missing_token"))
62
62
  @ctx.puts("#{self.class.help}\n#{self.class.extended_help}")
63
63
  else
64
64
  ShopifyCli::Tunnel.auth(@ctx, token)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  class ExtensionProject < ShopifyCli::Project
@@ -13,7 +13,7 @@ module Extension
13
13
  )
14
14
  end
15
15
 
16
- def write_env_file(context:, title:, api_key: '', api_secret: '', registration_id: nil)
16
+ def write_env_file(context:, title:, api_key: "", api_secret: "", registration_id: nil)
17
17
  ShopifyCli::Resources::EnvFile.new(
18
18
  api_key: api_key,
19
19
  secret: api_secret,
@@ -34,11 +34,11 @@ module Extension
34
34
  end
35
35
 
36
36
  def app
37
- Models::App.new(api_key: env['api_key'], secret: env['secret'])
37
+ Models::App.new(api_key: env["api_key"], secret: env["secret"])
38
38
  end
39
39
 
40
40
  def registered?
41
- property_present?('api_key') && property_present?('secret') && registration_id?
41
+ property_present?("api_key") && property_present?("secret") && registration_id?
42
42
  end
43
43
 
44
44
  def title
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Extension
5
5
  module ExtensionProjectKeys
6
- REGISTRATION_ID_KEY = 'EXTENSION_ID'
7
- EXTENSION_TYPE_KEY = 'EXTENSION_TYPE'
8
- TITLE_KEY = 'EXTENSION_TITLE'
6
+ REGISTRATION_ID_KEY = "EXTENSION_ID"
7
+ EXTENSION_TYPE_KEY = "EXTENSION_TYPE"
8
+ TITLE_KEY = "EXTENSION_TITLE"
9
9
  end
10
10
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'base64'
3
- require 'shopify_cli'
4
- require 'semantic/semantic'
2
+ require "base64"
3
+ require "shopify_cli"
4
+ require "semantic/semantic"
5
5
 
6
6
  module Extension
7
7
  module Features
@@ -31,19 +31,19 @@ module Extension
31
31
 
32
32
  def config(context)
33
33
  js_system = ShopifyCli::JsSystem.new(ctx: context)
34
- if js_system.package_manager == 'yarn'
34
+ if js_system.package_manager == "yarn"
35
35
  run_yarn_install(context, js_system)
36
36
  run_yarn_run_script(context, js_system)
37
37
  end
38
38
  filepath = File.join(context.root, SCRIPT_PATH)
39
- context.abort(context.message('features.argo.missing_file_error')) unless File.exist?(filepath)
39
+ context.abort(context.message("features.argo.missing_file_error")) unless File.exist?(filepath)
40
40
  begin
41
41
  {
42
42
  renderer_version: extract_argo_renderer_version(context),
43
43
  serialized_script: Base64.strict_encode64(File.read(filepath).chomp),
44
44
  }
45
45
  rescue StandardError
46
- context.abort(context.message('features.argo.script_prepare_error'))
46
+ context.abort(context.message("features.argo.script_prepare_error"))
47
47
  end
48
48
  end
49
49
 
@@ -53,12 +53,12 @@ module Extension
53
53
  result = run_list_command(context)
54
54
  found_version = find_version_number(context, result)
55
55
  context.abort(
56
- context.message('features.argo.dependencies.argo_renderer_package_invalid_version_error')
56
+ context.message("features.argo.dependencies.argo_renderer_package_invalid_version_error")
57
57
  ) if found_version.nil?
58
58
  ::Semantic::Version.new(found_version).to_s
59
59
  rescue ArgumentError
60
60
  context.abort(
61
- context.message('features.argo.dependencies.argo_renderer_package_invalid_version_error')
61
+ context.message("features.argo.dependencies.argo_renderer_package_invalid_version_error")
62
62
  )
63
63
  end
64
64
 
@@ -70,10 +70,10 @@ module Extension
70
70
  if found_package.nil?
71
71
  error = "'#{renderer_package_name}' not found."
72
72
  context.abort(
73
- context.message('features.argo.dependencies.argo_missing_renderer_package_error', error)
73
+ context.message("features.argo.dependencies.argo_missing_renderer_package_error", error)
74
74
  )
75
75
  end
76
- found_package.split('@')[2]&.strip
76
+ found_package.split("@")[2]&.strip
77
77
  end
78
78
 
79
79
  def run_list_command(context)
@@ -84,7 +84,7 @@ module Extension
84
84
  capture_response: true
85
85
  )
86
86
  context.abort(
87
- context.message('features.argo.dependencies.argo_missing_renderer_package_error', error)
87
+ context.message("features.argo.dependencies.argo_missing_renderer_package_error", error)
88
88
  ) unless status.success?
89
89
  result
90
90
  end
@@ -97,7 +97,7 @@ module Extension
97
97
  )
98
98
 
99
99
  context.abort(
100
- context.message('features.argo.dependencies.yarn_install_error', error)
100
+ context.message("features.argo.dependencies.yarn_install_error", error)
101
101
  ) unless status.success?
102
102
  end
103
103
 
@@ -109,7 +109,7 @@ module Extension
109
109
  )
110
110
 
111
111
  context.abort(
112
- context.message('features.argo.dependencies.yarn_run_script_error', error)
112
+ context.message("features.argo.dependencies.yarn_run_script_error", error)
113
113
  ) unless status.success?
114
114
  end
115
115
  end
@@ -3,7 +3,7 @@
3
3
  module Extension
4
4
  module Features
5
5
  class ArgoConfig
6
- CONFIG_FILE_NAME = 'extension.config.yml'
6
+ CONFIG_FILE_NAME = "extension.config.yml"
7
7
 
8
8
  class << self
9
9
  def parse_yaml(context, permitted_keys = [])
@@ -11,7 +11,7 @@ module Extension
11
11
 
12
12
  return {} unless File.size?(file_name)
13
13
 
14
- require 'yaml' # takes 20ms, so deferred as late as possible.
14
+ require "yaml" # takes 20ms, so deferred as late as possible.
15
15
  begin
16
16
  config = YAML.load_file(file_name)
17
17
 
@@ -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)
@@ -31,7 +31,7 @@ module Extension
31
31
  rescue Psych::SyntaxError => e
32
32
  raise(
33
33
  ShopifyCli::Abort,
34
- ShopifyCli::Context.message('core.yaml.error.invalid', CONFIG_FILE_NAME, e.message)
34
+ ShopifyCli::Context.message("core.yaml.error.invalid", CONFIG_FILE_NAME, e.message)
35
35
  )
36
36
  end
37
37
  end
@@ -47,7 +47,7 @@ module Extension
47
47
  raise(
48
48
  ShopifyCli::Abort,
49
49
  ShopifyCli::Context.message(
50
- 'features.argo.config.unpermitted_keys',
50
+ "features.argo.config.unpermitted_keys",
51
51
  CONFIG_FILE_NAME,
52
52
  unpermitted_keys.map { |k| "\n- #{k}" }.join
53
53
  )