shopify-cli 2.25.0 → 2.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/Gemfile.lock +1 -1
  4. data/dev.yml +0 -3
  5. data/lib/project_types/extension/models/specification_handlers/default.rb +6 -1
  6. data/lib/project_types/script/cli.rb +0 -79
  7. data/lib/project_types/script/commands/connect.rb +3 -8
  8. data/lib/project_types/script/commands/create.rb +4 -29
  9. data/lib/project_types/script/commands/javy.rb +3 -8
  10. data/lib/project_types/script/commands/push.rb +4 -41
  11. data/lib/project_types/script/messages/messages.rb +1 -258
  12. data/lib/project_types/theme/commands/common/shop_helper.rb +13 -0
  13. data/lib/project_types/theme/commands/delete.rb +4 -1
  14. data/lib/project_types/theme/commands/list.rb +3 -4
  15. data/lib/project_types/theme/commands/open.rb +4 -1
  16. data/lib/project_types/theme/commands/publish.rb +4 -1
  17. data/lib/project_types/theme/commands/pull.rb +3 -1
  18. data/lib/project_types/theme/commands/push.rb +3 -1
  19. data/lib/project_types/theme/commands/serve.rb +2 -1
  20. data/lib/project_types/theme/messages/messages.rb +5 -5
  21. data/lib/shopify_cli/messages/messages.rb +1 -1
  22. data/lib/shopify_cli/packager.rb +12 -3
  23. data/lib/shopify_cli/release.rb +4 -2
  24. data/lib/shopify_cli/version.rb +1 -1
  25. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +1 -1
  26. metadata +3 -48
  27. data/lib/project_types/script/config/extension_points.yml +0 -45
  28. data/lib/project_types/script/errors.rb +0 -10
  29. data/lib/project_types/script/forms/ask_app.rb +0 -27
  30. data/lib/project_types/script/forms/ask_org.rb +0 -30
  31. data/lib/project_types/script/forms/ask_script_uuid.rb +0 -22
  32. data/lib/project_types/script/forms/create.rb +0 -33
  33. data/lib/project_types/script/forms/run_against_shopify_org.rb +0 -14
  34. data/lib/project_types/script/graphql/app_script_set.graphql +0 -46
  35. data/lib/project_types/script/graphql/get_app_scripts.graphql +0 -6
  36. data/lib/project_types/script/graphql/module_upload_url_generate.graphql +0 -13
  37. data/lib/project_types/script/graphql/script_service_proxy.graphql +0 -7
  38. data/lib/project_types/script/layers/application/build_script.rb +0 -25
  39. data/lib/project_types/script/layers/application/connect_app.rb +0 -86
  40. data/lib/project_types/script/layers/application/create_script.rb +0 -90
  41. data/lib/project_types/script/layers/application/extension_points.rb +0 -66
  42. data/lib/project_types/script/layers/application/project_dependencies.rb +0 -26
  43. data/lib/project_types/script/layers/application/push_script.rb +0 -74
  44. data/lib/project_types/script/layers/domain/app_bridge.rb +0 -16
  45. data/lib/project_types/script/layers/domain/errors.rb +0 -47
  46. data/lib/project_types/script/layers/domain/extension_point.rb +0 -81
  47. data/lib/project_types/script/layers/domain/metadata.rb +0 -46
  48. data/lib/project_types/script/layers/domain/push_package.rb +0 -41
  49. data/lib/project_types/script/layers/domain/script_config.rb +0 -32
  50. data/lib/project_types/script/layers/domain/script_project.rb +0 -61
  51. data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +0 -53
  52. data/lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb +0 -35
  53. data/lib/project_types/script/layers/infrastructure/command_runner.rb +0 -19
  54. data/lib/project_types/script/layers/infrastructure/errors.rb +0 -211
  55. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +0 -37
  56. data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +0 -62
  57. data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +0 -47
  58. data/lib/project_types/script/layers/infrastructure/languages/tool_version_checker.rb +0 -26
  59. data/lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb +0 -45
  60. data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +0 -103
  61. data/lib/project_types/script/layers/infrastructure/languages/wasm_project_creator.rb +0 -12
  62. data/lib/project_types/script/layers/infrastructure/languages/wasm_task_runner.rb +0 -32
  63. data/lib/project_types/script/layers/infrastructure/metadata_repository.rb +0 -18
  64. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +0 -36
  65. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +0 -273
  66. data/lib/project_types/script/layers/infrastructure/script_service.rb +0 -135
  67. data/lib/project_types/script/layers/infrastructure/script_uploader.rb +0 -40
  68. data/lib/project_types/script/layers/infrastructure/service_locator.rb +0 -20
  69. data/lib/project_types/script/layers/infrastructure/sparse_checkout_details.rb +0 -35
  70. data/lib/project_types/script/ui/error_handler.rb +0 -331
  71. data/lib/project_types/script/ui/printing_spinner.rb +0 -75
  72. data/lib/project_types/script/ui/strict_spinner.rb +0 -20
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
  require "shopify_cli/theme/theme"
3
+ require "project_types/theme/commands/common/shop_helper"
3
4
 
4
5
  module Theme
5
6
  class Command
6
7
  class Publish < ShopifyCLI::Command::SubCommand
8
+ include Common::ShopHelper
9
+
7
10
  recommend_default_ruby_range
8
11
 
9
12
  options do |parser, flags|
@@ -17,7 +20,7 @@ module Theme
17
20
  form = Forms::Select.ask(
18
21
  @ctx,
19
22
  [],
20
- title: @ctx.message("theme.publish.select"),
23
+ title: @ctx.message("theme.publish.select", shop),
21
24
  exclude_roles: ["live", "development", "demo"],
22
25
  cmd: :publish
23
26
  )
@@ -5,12 +5,14 @@ require "shopify_cli/theme/ignore_filter"
5
5
  require "shopify_cli/theme/include_filter"
6
6
  require "shopify_cli/theme/syncer"
7
7
  require "project_types/theme/commands/common/root_helper"
8
+ require "project_types/theme/commands/common/shop_helper"
8
9
  require "project_types/theme/conversions/include_glob"
9
10
  require "project_types/theme/conversions/ignore_glob"
10
11
 
11
12
  module Theme
12
13
  class Command
13
14
  class Pull < ShopifyCLI::Command::SubCommand
15
+ include Common::ShopHelper
14
16
  include Common::RootHelper
15
17
 
16
18
  recommend_default_ruby_range
@@ -97,7 +99,7 @@ module Theme
97
99
  form = Forms::Select.ask(
98
100
  @ctx,
99
101
  [],
100
- title: @ctx.message("theme.pull.select"),
102
+ title: @ctx.message("theme.pull.select", shop),
101
103
  root: root,
102
104
  )
103
105
  form&.theme
@@ -5,12 +5,14 @@ require "shopify_cli/theme/ignore_filter"
5
5
  require "shopify_cli/theme/include_filter"
6
6
  require "shopify_cli/theme/syncer"
7
7
  require "project_types/theme/commands/common/root_helper"
8
+ require "project_types/theme/commands/common/shop_helper"
8
9
  require "project_types/theme/conversions/include_glob"
9
10
  require "project_types/theme/conversions/ignore_glob"
10
11
 
11
12
  module Theme
12
13
  class Command
13
14
  class Push < ShopifyCLI::Command::SubCommand
15
+ include Common::ShopHelper
14
16
  include Common::RootHelper
15
17
 
16
18
  recommend_default_ruby_range
@@ -134,7 +136,7 @@ module Theme
134
136
  form = Forms::Select.ask(
135
137
  @ctx,
136
138
  [],
137
- title: @ctx.message("theme.push.select"),
139
+ title: @ctx.message("theme.push.select", shop),
138
140
  root: root,
139
141
  )
140
142
  form&.theme
@@ -77,7 +77,8 @@ module Theme
77
77
  end
78
78
 
79
79
  def storefront_renderer_token
80
- ShopifyCLI::DB.get(:storefront_renderer_production_exchange_token)
80
+ ShopifyCLI::Environment.storefront_renderer_auth_token ||
81
+ ShopifyCLI::DB.get(:storefront_renderer_production_exchange_token)
81
82
  end
82
83
  end
83
84
  end
@@ -47,7 +47,7 @@ module Theme
47
47
  not_found: "Theme #%s does not exist",
48
48
  no_themes_error: "You don't have any theme to be published.",
49
49
  no_themes_resolution: "Try to create an unpublished theme with {{command:theme push -u -t <theme_name>}}.",
50
- select: "Select theme to push to",
50
+ select: "Select theme to push to %s",
51
51
  confirm: "Are you sure you want to make %s the new live theme on %s?",
52
52
  },
53
53
  forms: {
@@ -87,7 +87,7 @@ module Theme
87
87
  pushing: "Pushing theme files to %s (#%s) on %s",
88
88
  },
89
89
  push: "Pushing theme files to Shopify",
90
- select: "Select theme to push to",
90
+ select: "Select theme to push to %s",
91
91
  live: "Are you sure you want to push to your live theme?",
92
92
  theme: "\n Theme: {{blue:%s #%s}} {{green:[live]}}",
93
93
  deprecated_themeid: <<~WARN,
@@ -285,7 +285,7 @@ module Theme
285
285
 
286
286
  Run without options to select the theme to delete from a list.
287
287
  HELP
288
- select: "Select theme to delete",
288
+ select: "Select theme to delete from %s",
289
289
  done: "%s theme(s) deleted",
290
290
  no_themes_error: "You don't have any theme to be deleted.",
291
291
  no_themes_resolution: "Try to create an unpublished theme with {{command:theme push -u -t <theme_name>}}.",
@@ -330,7 +330,7 @@ module Theme
330
330
 
331
331
  Run without options to select theme from a list.
332
332
  HELP
333
- select: "Select a theme to pull from",
333
+ select: "Select a theme to pull from %s",
334
334
  pulling: "Pulling theme files from %s (#%s) on %s",
335
335
  done: "Theme pulled successfully.",
336
336
  done_with_errors: "{{warning:Your theme was pulled with errors.}}",
@@ -340,7 +340,7 @@ module Theme
340
340
  theme_not_found: "Theme \"%s\" doesn't exist",
341
341
  },
342
342
  open: {
343
- select: "Select a theme to open",
343
+ select: "Select a theme to open in %s",
344
344
  theme_not_found: "Theme \"%s\" doesn't exist",
345
345
  details: <<~DETAILS,
346
346
  {{*}} {{bold:%s}}
@@ -788,7 +788,7 @@ module ShopifyCLI
788
788
  {{*}} {{yellow:A new version of Shopify CLI is available! You have version %s and the latest version is %s.
789
789
 
790
790
  To upgrade, follow the instructions for the package manager you’re using:
791
- {{underline:https://shopify.dev/tools/cli/troubleshooting#upgrade-shopify-cli}}}}
791
+ {{underline:https://shopify.dev/themes/tools/cli/upgrade-uninstall}}}}
792
792
 
793
793
  MESSAGE
794
794
 
@@ -70,9 +70,10 @@ module ShopifyCLI
70
70
  root_dir = File.join(PACKAGING_DIR, "homebrew")
71
71
 
72
72
  build_path = File.join(BUILDS_DIR, "shopify-cli.rb")
73
- puts "\nBuilding Homebrew package"
73
+ build_path_2 = File.join(BUILDS_DIR, "shopify-cli@2.rb")
74
+ puts "\nBuilding Homebrew packages"
74
75
 
75
- puts "Generating formula…"
76
+ puts "Generating formulae…"
76
77
  File.delete(build_path) if File.exist?(build_path)
77
78
 
78
79
  spec_contents = File.read(File.join(root_dir, "shopify-cli.base.rb"))
@@ -89,7 +90,15 @@ module ShopifyCLI
89
90
  spec_contents = spec_contents.gsub("SHOPIFY_CLI_GEM_CHECKSUM", gem_checksum)
90
91
 
91
92
  puts "Writing generated formula\n To: #{build_path}\n\n"
92
- File.write(build_path, spec_contents)
93
+ File.write(build_path, spec_contents.gsub("SHOPIFY_CLI_BINSTUB_SUFFIX", ""))
94
+
95
+ puts "Writing generated formula\n To: #{build_path_2}\n\n"
96
+ File.write(
97
+ build_path_2,
98
+ spec_contents
99
+ .sub("class ShopifyCli < Formula", "class ShopifyCliAT2 < Formula")
100
+ .sub("SHOPIFY_CLI_BINSTUB_SUFFIX", "2")
101
+ )
93
102
  end
94
103
 
95
104
  private
@@ -120,8 +120,10 @@ module ShopifyCLI
120
120
  end
121
121
 
122
122
  def update_homebrew_repo
123
- source_file = File.join(package_dir, "shopify-cli.rb")
124
- FileUtils.copy(source_file, homebrew_path)
123
+ %w(shopify-cli.rb shopify-cli@2.rb).each do |source_filename|
124
+ source_file = File.join(package_dir, source_filename)
125
+ FileUtils.copy(source_file, homebrew_path)
126
+ end
125
127
  Dir.chdir(homebrew_path) do
126
128
  system_or_fail("git commit -am '#{homebrew_update_message}'", "commit homebrew update")
127
129
  system_or_fail("git push -u origin #{homebrew_release_branch}", "push homebrew branch")
@@ -1,3 +1,3 @@
1
1
  module ShopifyCLI
2
- VERSION = "2.25.0"
2
+ VERSION = "2.27.0"
3
3
  end
@@ -339,7 +339,7 @@ module CLI
339
339
  else
340
340
  $stdin.getc
341
341
  end
342
- rescue IOError
342
+ rescue Errno::EIO, Errno::EPIPE, IOError
343
343
  "\e"
344
344
  end
345
345
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.25.0
4
+ version: 2.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-15 00:00:00.000000000 Z
11
+ date: 2022-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -304,58 +304,13 @@ files:
304
304
  - lib/project_types/script/commands/create.rb
305
305
  - lib/project_types/script/commands/javy.rb
306
306
  - lib/project_types/script/commands/push.rb
307
- - lib/project_types/script/config/extension_points.yml
308
- - lib/project_types/script/errors.rb
309
- - lib/project_types/script/forms/ask_app.rb
310
- - lib/project_types/script/forms/ask_org.rb
311
- - lib/project_types/script/forms/ask_script_uuid.rb
312
- - lib/project_types/script/forms/create.rb
313
- - lib/project_types/script/forms/run_against_shopify_org.rb
314
- - lib/project_types/script/graphql/app_script_set.graphql
315
- - lib/project_types/script/graphql/get_app_scripts.graphql
316
- - lib/project_types/script/graphql/module_upload_url_generate.graphql
317
- - lib/project_types/script/graphql/script_service_proxy.graphql
318
- - lib/project_types/script/layers/application/build_script.rb
319
- - lib/project_types/script/layers/application/connect_app.rb
320
- - lib/project_types/script/layers/application/create_script.rb
321
- - lib/project_types/script/layers/application/extension_points.rb
322
- - lib/project_types/script/layers/application/project_dependencies.rb
323
- - lib/project_types/script/layers/application/push_script.rb
324
- - lib/project_types/script/layers/domain/app_bridge.rb
325
- - lib/project_types/script/layers/domain/errors.rb
326
- - lib/project_types/script/layers/domain/extension_point.rb
327
- - lib/project_types/script/layers/domain/metadata.rb
328
- - lib/project_types/script/layers/domain/push_package.rb
329
- - lib/project_types/script/layers/domain/script_config.rb
330
- - lib/project_types/script/layers/domain/script_project.rb
331
- - lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb
332
- - lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb
333
- - lib/project_types/script/layers/infrastructure/command_runner.rb
334
- - lib/project_types/script/layers/infrastructure/errors.rb
335
- - lib/project_types/script/layers/infrastructure/extension_point_repository.rb
336
- - lib/project_types/script/layers/infrastructure/languages/project_creator.rb
337
- - lib/project_types/script/layers/infrastructure/languages/task_runner.rb
338
- - lib/project_types/script/layers/infrastructure/languages/tool_version_checker.rb
339
- - lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb
340
- - lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb
341
- - lib/project_types/script/layers/infrastructure/languages/wasm_project_creator.rb
342
- - lib/project_types/script/layers/infrastructure/languages/wasm_task_runner.rb
343
- - lib/project_types/script/layers/infrastructure/metadata_repository.rb
344
- - lib/project_types/script/layers/infrastructure/push_package_repository.rb
345
- - lib/project_types/script/layers/infrastructure/script_project_repository.rb
346
- - lib/project_types/script/layers/infrastructure/script_service.rb
347
- - lib/project_types/script/layers/infrastructure/script_uploader.rb
348
- - lib/project_types/script/layers/infrastructure/service_locator.rb
349
- - lib/project_types/script/layers/infrastructure/sparse_checkout_details.rb
350
307
  - lib/project_types/script/loaders/project.rb
351
308
  - lib/project_types/script/loaders/specification_handler.rb
352
309
  - lib/project_types/script/messages/messages.rb
353
- - lib/project_types/script/ui/error_handler.rb
354
- - lib/project_types/script/ui/printing_spinner.rb
355
- - lib/project_types/script/ui/strict_spinner.rb
356
310
  - lib/project_types/theme/cli.rb
357
311
  - lib/project_types/theme/commands/check.rb
358
312
  - lib/project_types/theme/commands/common/root_helper.rb
313
+ - lib/project_types/theme/commands/common/shop_helper.rb
359
314
  - lib/project_types/theme/commands/delete.rb
360
315
  - lib/project_types/theme/commands/init.rb
361
316
  - lib/project_types/theme/commands/language_server.rb
@@ -1,45 +0,0 @@
1
- payment_customization:
2
- beta: true
3
- domain: 'checkout'
4
- libraries:
5
- wasm:
6
- repo: "https://github.com/Shopify/function-examples"
7
- rust:
8
- repo: "https://github.com/Shopify/function-examples"
9
- shipping_methods:
10
- domain: 'checkout'
11
- libraries:
12
- wasm:
13
- repo: "https://github.com/Shopify/function-examples"
14
- rust:
15
- repo: "https://github.com/Shopify/function-examples"
16
- product_discounts:
17
- beta: true
18
- domain: 'discounts'
19
- libraries:
20
- wasm:
21
- repo: "https://github.com/Shopify/function-examples"
22
- rust:
23
- repo: "https://github.com/Shopify/function-examples"
24
- order_discounts:
25
- beta: true
26
- domain: 'discounts'
27
- libraries:
28
- wasm:
29
- repo: "https://github.com/Shopify/function-examples"
30
- rust:
31
- repo: "https://github.com/Shopify/function-examples"
32
- shipping_discounts:
33
- beta: true
34
- domain: 'discounts'
35
- libraries:
36
- wasm:
37
- repo: "https://github.com/Shopify/function-examples"
38
- rust:
39
- repo: "https://github.com/Shopify/function-examples"
40
- shipping_rates_consolidation:
41
- beta: true
42
- domain: 'checkout'
43
- libraries:
44
- wasm:
45
- repo: "https://github.com/Shopify/function-examples"
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Errors
5
- class InvalidScriptTitleError < ScriptProjectError; end
6
-
7
- class NoExistingAppsError < ScriptProjectError; end
8
- class NoExistingOrganizationsError < ScriptProjectError; end
9
- end
10
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Forms
5
- class AskApp < ShopifyCLI::Form
6
- attr_reader :app
7
-
8
- def ask
9
- apps = @xargs.fetch(:apps)
10
- raise Errors::NoExistingAppsError if apps.empty?
11
-
12
- @app =
13
- if apps.count > 1
14
- CLI::UI::Prompt.ask(ctx.message("script.application.ensure_env.app_select")) do |handler|
15
- apps.each do |app|
16
- handler.option(app["title"]) { app }
17
- end
18
- end
19
- else
20
- apps.first.tap do |app|
21
- ctx.puts(ctx.message("script.application.ensure_env.app", app["title"]))
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Forms
5
- class AskOrg < ShopifyCLI::Form
6
- attr_reader :org
7
-
8
- BUSINESS_NAME = "businessName"
9
- ID = "id"
10
-
11
- def ask
12
- orgs = @xargs
13
- @org =
14
- if orgs.count == 1
15
- orgs.first.tap do |org|
16
- ctx.puts(ctx.message("script.application.ensure_env.organization", org[BUSINESS_NAME], org[ID]))
17
- end
18
- elsif orgs.count > 0
19
- CLI::UI::Prompt.ask(ctx.message("script.application.ensure_env.organization_select")) do |handler|
20
- orgs.each do |org|
21
- handler.option("#{org[BUSINESS_NAME]} (#{org[ID]})") { org }
22
- end
23
- end
24
- else
25
- raise Errors::NoExistingOrganizationsError
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Forms
5
- class AskScriptUuid < ShopifyCLI::Form
6
- attr_reader :uuid
7
- def ask
8
- scripts = @xargs
9
-
10
- return if scripts.empty? ||
11
- !CLI::UI::Prompt.confirm(ctx.message("script.application.ensure_env.ask_connect_to_existing_script"))
12
-
13
- @uuid =
14
- CLI::UI::Prompt.ask(ctx.message("script.application.ensure_env.ask_which_script_to_connect_to")) do |handler|
15
- scripts.each do |script|
16
- handler.option("#{script["title"]} (#{script["uuid"]})") { script["uuid"] }
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Forms
5
- class Create < ShopifyCLI::Form
6
- flag_arguments :extension_point, :title
7
-
8
- def ask
9
- self.title = valid_name
10
- self.extension_point ||= ask_extension_point
11
- end
12
-
13
- private
14
-
15
- def ask_extension_point
16
- CLI::UI::Prompt.ask(
17
- @ctx.message("script.forms.create.select_extension_point"),
18
- options: Layers::Application::ExtensionPoints.available_types
19
- )
20
- end
21
-
22
- def ask_title
23
- CLI::UI::Prompt.ask(@ctx.message("script.forms.create.script_title"))
24
- end
25
-
26
- def valid_name
27
- normalized_title = (title || ask_title).downcase.gsub(" ", "_")
28
- return normalized_title if normalized_title.match?(/^[0-9A-Za-z_-]*$/)
29
- raise Errors::InvalidScriptTitleError
30
- end
31
- end
32
- end
33
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Forms
5
- class RunAgainstShopifyOrg < ShopifyCLI::Form
6
- attr_reader :response
7
- def ask
8
- @ctx.puts(@ctx.message("core.tasks.select_org_and_shop.identified_as_shopify"))
9
- message = @ctx.message("core.tasks.select_org_and_shop.first_party")
10
- @response = CLI::UI::Prompt.confirm(message, default: false)
11
- end
12
- end
13
- end
14
- end
@@ -1,46 +0,0 @@
1
- mutation AppScriptSet(
2
- $uuid: String
3
- $extensionPointName: ExtensionPointName!,
4
- $title: String!,
5
- $description: String,
6
- $force: Boolean,
7
- $schemaMajorVersion: String,
8
- $schemaMinorVersion: String,
9
- $scriptConfigVersion: String!,
10
- $configurationUi: Boolean!,
11
- $configurationDefinition: String!,
12
- $moduleUploadUrl: String!,
13
- $library: LibraryInput,
14
- $inputQuery: String,
15
- $appBridge: AppBridgeInput!,
16
- ) {
17
- appScriptSet(
18
- uuid: $uuid
19
- extensionPointName: $extensionPointName
20
- title: $title
21
- description: $description
22
- force: $force
23
- schemaMajorVersion: $schemaMajorVersion
24
- schemaMinorVersion: $schemaMinorVersion,
25
- scriptConfigVersion: $scriptConfigVersion,
26
- configurationUi: $configurationUi,
27
- configurationDefinition: $configurationDefinition,
28
- moduleUploadUrl: $moduleUploadUrl,
29
- library: $library,
30
- inputQuery: $inputQuery,
31
- appBridge: $appBridge
32
- ) {
33
- userErrors {
34
- field
35
- message
36
- tag
37
- }
38
- appScript {
39
- uuid
40
- appKey
41
- configSchema
42
- extensionPointName
43
- title
44
- }
45
- }
46
- }
@@ -1,6 +0,0 @@
1
- query GetAppScripts($appKey: String!, $extensionPointName: ExtensionPointName!) {
2
- appScripts(appKeys: [$appKey], extensionPointName: $extensionPointName) {
3
- uuid
4
- title
5
- }
6
- }
@@ -1,13 +0,0 @@
1
- mutation moduleUploadUrlGenerate {
2
- moduleUploadUrlGenerate {
3
- details {
4
- url
5
- headers
6
- humanizedMaxSize
7
- }
8
- userErrors {
9
- field
10
- message
11
- }
12
- }
13
- }
@@ -1,7 +0,0 @@
1
- query ProxyRequest($api_key: String, $query: String!, $variables: String) {
2
- scriptServiceProxy(
3
- apiKey: $api_key
4
- query: $query
5
- variables: $variables
6
- )
7
- }
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Layers
5
- module Application
6
- class BuildScript
7
- class << self
8
- def call(ctx:, task_runner:)
9
- CLI::UI::Frame.open(ctx.message("script.application.building")) do
10
- UI::StrictSpinner.spin(ctx.message("script.application.building_script")) do |spinner|
11
- task_runner.build
12
- spinner.update_title(ctx.message("script.application.built"))
13
- end
14
- rescue Infrastructure::Errors::BuildError => e
15
- CLI::UI::Frame.with_frame_color_override(:red) do
16
- ctx.puts("\n{{red:#{e.message}}}")
17
- end
18
- raise
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "shopify_cli"
4
-
5
- module Script
6
- module Layers
7
- module Application
8
- class ConnectApp
9
- class << self
10
- def call(ctx:, force: false)
11
- script_project_repo = Layers::Infrastructure::ScriptProjectRepository.new(ctx: ctx)
12
- script_project = script_project_repo.get
13
-
14
- return false if script_project.env_valid? && !force
15
-
16
- if ShopifyCLI::Shopifolk.check && Forms::RunAgainstShopifyOrg.ask(ctx, nil, nil).response
17
- ShopifyCLI::Shopifolk.act_as_shopify_organization
18
- end
19
-
20
- org =
21
- if partner_proxy_bypass
22
- stubbed_org
23
- else
24
- orgs = ShopifyCLI::PartnersAPI::Organizations.fetch_all_with_apps(ctx)
25
- Forms::AskOrg.ask(ctx, orgs, nil).org
26
- end
27
-
28
- app = Forms::AskApp.ask(
29
- ctx,
30
- {
31
- apps: org["apps"],
32
- acting_as_shopify_organization: ShopifyCLI::Shopifolk.acting_as_shopify_organization?,
33
- },
34
- nil
35
- ).app
36
-
37
- script_service = Layers::Infrastructure::ServiceLocator.script_service(ctx: ctx, api_key: app["apiKey"])
38
- extension_point_type = script_project.extension_point_type
39
- scripts = script_service.get_app_scripts(extension_point_type: extension_point_type)
40
-
41
- uuid = Forms::AskScriptUuid.ask(ctx, scripts, nil)&.uuid
42
-
43
- script_project_repo.create_env(
44
- api_key: app["apiKey"],
45
- secret: app["apiSecretKeys"].first["secret"],
46
- uuid: uuid
47
- )
48
- ctx.done(ctx.message("script.connect.connected", app["title"]))
49
-
50
- true
51
- rescue SmartProperties::InitializationError, SmartProperties::InvalidValueError => error
52
- handle_error(error, context: ctx)
53
- end
54
-
55
- def handle_error(error, context:)
56
- properties_hash = { api_key: "SHOPIFY_API_KEY", secret: "SHOPIFY_API_SECRET" }
57
- missing_env_variables = error.properties.map { |p| properties_hash[p.name] }.compact.join(", ")
58
- message = context.message("script.error.missing_env_file_variables", missing_env_variables)
59
- message += context.message("script.error.missing_env_file_variables_solution", ShopifyCLI::TOOL_NAME)
60
- raise ShopifyCLI::Abort,
61
- message
62
- end
63
-
64
- private
65
-
66
- def partner_proxy_bypass
67
- !ENV["BYPASS_PARTNERS_PROXY"].nil?
68
- end
69
-
70
- def stubbed_org
71
- {
72
- "apps" => [
73
- {
74
- "appType" => "custom",
75
- "apiKey" => "stubbed-api-key",
76
- "apiSecretKeys" => [{ "secret" => "stubbed-api-secret" }],
77
- "title" => "Fake App (Not connected to Partners)",
78
- },
79
- ],
80
- }
81
- end
82
- end
83
- end
84
- end
85
- end
86
- end