shopify-cli 2.18.0 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.yaml +2 -1
  3. data/.github/ISSUE_TEMPLATE/config.yml +9 -0
  4. data/CHANGELOG.md +16 -2
  5. data/Gemfile.lock +4 -4
  6. data/README.md +7 -6
  7. data/dev.yml +0 -1
  8. data/docs/users/installation.md +1 -1
  9. data/lib/project_types/extension/forms/questions/ask_template.rb +3 -3
  10. data/lib/project_types/extension/messages/messages.rb +17 -1
  11. data/lib/project_types/extension/models/development_server_requirements.rb +2 -7
  12. data/lib/project_types/extension/models/server_config/development.rb +9 -0
  13. data/lib/project_types/extension/models/server_config/development_renderer.rb +1 -1
  14. data/lib/project_types/extension/models/specification_handlers/{beacon_extension.rb → web_pixel_extension.rb} +11 -10
  15. data/lib/project_types/extension/models/specification_handlers/{beacon_extension_utils → web_pixel_extension_utils}/script_config.rb +1 -1
  16. data/lib/project_types/extension/models/specification_handlers/{beacon_extension_utils → web_pixel_extension_utils}/script_config_repository.rb +2 -2
  17. data/lib/project_types/extension/tasks/configure_options.rb +1 -1
  18. data/lib/project_types/extension/tasks/execute_commands/outdated_extension_detection.rb +5 -1
  19. data/lib/project_types/extension/tasks/fetch_specifications.rb +4 -1
  20. data/lib/project_types/script/commands/create.rb +1 -1
  21. data/lib/project_types/script/config/extension_points.yml +15 -15
  22. data/lib/project_types/script/forms/ask_app.rb +0 -5
  23. data/lib/project_types/script/layers/domain/metadata.rb +3 -5
  24. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +5 -3
  25. data/lib/project_types/script/layers/infrastructure/script_service.rb +1 -1
  26. data/lib/project_types/script/messages/messages.rb +1 -1
  27. data/lib/project_types/theme/commands/push.rb +3 -1
  28. data/lib/project_types/theme/commands/serve.rb +1 -0
  29. data/lib/project_types/theme/messages/messages.rb +38 -1
  30. data/lib/shopify_cli/assets/post_auth_page/index.html.erb +34 -0
  31. data/lib/shopify_cli/assets/post_auth_page/style.css +58 -0
  32. data/lib/shopify_cli/git.rb +7 -2
  33. data/lib/shopify_cli/identity_auth/servlet.rb +4 -20
  34. data/lib/shopify_cli/messages/messages.rb +7 -9
  35. data/lib/shopify_cli/services/app/create/node_service.rb +1 -1
  36. data/lib/shopify_cli/services/app/create/php_service.rb +1 -1
  37. data/lib/shopify_cli/theme/dev_server/hot-reload-no-script.html +27 -0
  38. data/lib/shopify_cli/theme/dev_server/hot-reload.js +16 -4
  39. data/lib/shopify_cli/theme/dev_server/hot_reload.rb +2 -0
  40. data/lib/shopify_cli/theme/dev_server.rb +3 -2
  41. data/lib/shopify_cli/theme/file.rb +5 -0
  42. data/lib/shopify_cli/theme/syncer/json_update_handler.rb +16 -6
  43. data/lib/shopify_cli/theme/syncer/operation.rb +7 -6
  44. data/lib/shopify_cli/theme/syncer/unsupported_script_warning.rb +90 -0
  45. data/lib/shopify_cli/theme/syncer.rb +73 -29
  46. data/lib/shopify_cli/theme/theme_admin_api.rb +16 -11
  47. data/lib/shopify_cli/theme/theme_admin_api_throttler/bulk.rb +102 -0
  48. data/lib/shopify_cli/theme/theme_admin_api_throttler/bulk_job.rb +75 -0
  49. data/lib/shopify_cli/theme/theme_admin_api_throttler/errors.rb +7 -0
  50. data/lib/shopify_cli/theme/theme_admin_api_throttler/put_request.rb +52 -0
  51. data/lib/shopify_cli/theme/theme_admin_api_throttler/request_parser.rb +39 -0
  52. data/lib/shopify_cli/theme/theme_admin_api_throttler/response_parser.rb +21 -0
  53. data/lib/shopify_cli/theme/theme_admin_api_throttler.rb +62 -0
  54. data/lib/shopify_cli/version.rb +1 -1
  55. data/shopify-cli.gemspec +1 -1
  56. metadata +20 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dc113806552b27305be696850c04b292d7ba8feb0e5a60c0755bdb93b193535
4
- data.tar.gz: 7fd46f5612eda607b0e2b2f01ea8662ce1d6d4803475b4e7d3bde98155ed06db
3
+ metadata.gz: 9fb2bcf8db165a28ff5753227eb1aae9d2d83e65e8a2cee8a8a2ed4e7f8d7d4b
4
+ data.tar.gz: 5ab1e805308119941d84932997959926011281ea4a2b48d5517ca43c3794661c
5
5
  SHA512:
6
- metadata.gz: d1553e12053b6666755dde7c4381fce2018da1d73ab2f85cc456f6ad97fd58db89360a4fe02beb7b40d3a6d0010e2c8f15b68ff6246ff25426796f39f451aafc
7
- data.tar.gz: 5a9f020586bfaf2b828aed9bb1ae4040bc0deab133e71181fe49c5710fd9a5a3b3cc71faf653f0311054038b76d749303947e0af6d902b7096cf84c2c610a3bf
6
+ metadata.gz: a6c2ba75cadbc318cae8615890386c1c3aa8100405d12e070627470448d367daf96a65390e6afad6b6d70ae8bdbc7e27f8d7dbdccf5b69e4fde12f6bca681b94
7
+ data.tar.gz: 66699ed47aa46b23f3dfe4dba39a9e15c23e135db254a22db2e4800d0865be49b23bca70eb9733a497bd2a87a2e8aa6db00e887da53a4f83881f719983eda906
@@ -13,8 +13,9 @@ body:
13
13
  id: preflight_checks
14
14
  attributes:
15
15
  label: |-
16
- Please confirm that you have:
16
+ Please confirm that you:
17
17
  options:
18
+ - label: Are working with Shopify CLI 2.0, not 3.0. (You can [open a 3.0 issue here](https://github.com/Shopify/cli/issues/new/choose).)
18
19
  - label: Searched [existing issues](https://github.com/Shopify/shopify-cli/issues) to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
19
20
  required: true
20
21
  - label: Reproduced the issue in [the latest CLI version](https://github.com/Shopify/shopify-cli/releases).
@@ -0,0 +1,9 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Shopify Partners Community 🙌
4
+ url: https://www.shopify.com/partners/community#conversation
5
+ about: Connect with Shopify and other Shopify Partners through our online communities!
6
+ - name: Shopify CLI 3.0 issues 📝
7
+ url: https://www.github.com/Shopify/cli/issues/new/choose
8
+ about: |-
9
+ You're about to open an issue about Shopify CLI 2.0. Are you actually using our new CLI? If so, please create an issue there instead.
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## Version 2.20.0 - 2022-07-11
6
+
7
+ ### Added
8
+ * [#2368](https://github.com/Shopify/shopify-cli/pull/2368): Add performance enhancements to the `theme serve` and `theme push` commands
9
+ * [#2437](https://github.com/Shopify/shopify-cli/pull/2437): Add support to the `warnings` field in the assets API
10
+ * [#2446](https://github.com/Shopify/shopify-cli/pull/2446): Show a friendly message when developers use a browser without SSE support
11
+
12
+ ### Fixed
13
+ * [#2418](https://github.com/Shopify/shopify-cli/pull/2418): Improve the help message of the `theme open -e/--editor` flag
14
+
15
+ ### Changed
16
+ * [#2444](https://github.com/Shopify/shopify-cli/pull/2444): Expose the `-s` option in the help text of `login`, `switch` etc.
17
+
5
18
  ## Version 2.18.0 - 2022-05-30
6
19
 
7
20
  ### Added
@@ -12,6 +25,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
12
25
  ### Fixed
13
26
  * [#2352](https://github.com/Shopify/shopify-cli/pull/2352): Provide better DX when dealing with empty theme selection
14
27
  * [#2347](https://github.com/Shopify/shopify-cli/pull/2347): Fix #2346 Heroku CLI installation for Apple silicon
28
+ * [#2422](https://github.com/Shopify/shopify-cli/pull/2422): Add Shopify branding and styling to post-authentication browser page
15
29
 
16
30
  ## Version 2.17.0 - 2022-05-12
17
31
 
@@ -42,7 +56,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
42
56
 
43
57
  ### Added
44
58
  * [#2189](https://github.com/Shopify/shopify-cli/pull/2189): Retrieve latest CLI version in the background
45
- * [#2263](https://github.com/Shopify/shopify-cli/pull/2263): Add `POS UI Extension` to support third party developers to extend POS smart grid functionality using native retail components.
59
+ * [#2263](https://github.com/Shopify/shopify-cli/pull/2263): Add `POS UI Extension` to support third party developers to extend POS smart grid functionality using native retail components.
46
60
 
47
61
  ### Changed
48
62
  * [#2272](https://github.com/Shopify/shopify-cli/pull/2272): Changed interactive apps list scope for extension create|register|connect commands
@@ -50,7 +64,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
50
64
  ## Version 2.15.6 - 2022-04-12
51
65
 
52
66
  ### Fixed
53
- * [#2246](https://github.com/Shopify/shopify-cli/pull/2246): Fix callback urls for app serve
67
+ * [#2246](https://github.com/Shopify/shopify-cli/pull/2246): Fix callback urls for app serve
54
68
 
55
69
  ## Version 2.15.5 - 2022-04-08
56
70
 
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify-cli (2.18.0)
4
+ shopify-cli (2.20.0)
5
5
  bugsnag (~> 6.22)
6
6
  listen (~> 3.7.0)
7
- theme-check (~> 1.10.1)
7
+ theme-check (~> 1.10.3)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -108,7 +108,7 @@ GEM
108
108
  faraday (>= 0.9)
109
109
  sawyer (~> 0.8.0, >= 0.5.3)
110
110
  parallel (1.21.0)
111
- parser (3.1.1.0)
111
+ parser (3.1.2.0)
112
112
  ast (~> 2.4.1)
113
113
  pry (0.13.1)
114
114
  coderay (~> 1.1)
@@ -150,7 +150,7 @@ GEM
150
150
  faraday (> 0.8, < 2.0)
151
151
  sys-uname (1.2.2)
152
152
  ffi (~> 1.1)
153
- theme-check (1.10.2)
153
+ theme-check (1.10.3)
154
154
  liquid (>= 5.1.0)
155
155
  nokogiri (>= 1.12)
156
156
  parser (~> 3)
data/README.md CHANGED
@@ -1,6 +1,5 @@
1
- <div align="center">
2
- <img src="assets/logo.png" width="150"/>
3
- <h1>Shopify CLI</h1>
1
+ # Shopify CLI 2.0
2
+
4
3
  <a href=""><img src="https://github.com/shopify/shopify-cli/workflows/CI/badge.svg" alt="Shopify"></a>
5
4
  <img src="https://img.shields.io/github/v/release/shopify/shopify-cli?include_prereleases&style=flat-square" alt="Latest Version">
6
5
  <img src="https://img.shields.io/github/forks/shopify/shopify-cli?style=flat-square" alt="GitHub forks">
@@ -11,12 +10,14 @@
11
10
  <a href="http://twitter.com/ShopifyDevs"><img src="https://img.shields.io/twitter/follow/ShopifyDevs?style=flat-square" alt="Twitter Followers"></a>
12
11
  <img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License">
13
12
  <img src="https://img.shields.io/badge/Powered%20by-Ruby-red" alt="Powered by Ruby">
14
- </div>
15
13
 
16
14
 
17
- Shopify CLI helps you build Shopify themes and apps. Use Shopify CLI to automate and enhance your local development workflow.
15
+ Shopify CLI 2.0 is a command line to help you build on Shopify. It's available as a Ruby gem and can be run and installed on Mac, Linux, and Windows systems.
16
+
17
+ ## Note on Shopify CLI 2.0 versus Shopify CLI 3.0 ##
18
+
19
+ Use 2.0 for developing themes. For developing apps and custom storefronts, we recommend using [Shopify CLI 3.0](https://github.com/Shopify/cli).
18
20
 
19
- Shopify CLI is available as a gem and can be run and installed on Mac, Linux and Windows systems.
20
21
 
21
22
  ## Installation
22
23
 
data/dev.yml CHANGED
@@ -13,7 +13,6 @@ up:
13
13
  - rpm:
14
14
  version: 4.17.0
15
15
  - bundler
16
- - docker
17
16
 
18
17
  test:
19
18
  desc: "Run tests."
@@ -1,3 +1,3 @@
1
1
  # Installation
2
2
 
3
- The installation guide can be found here: https://shopify.dev/apps/tools/cli/installation
3
+ The installation guide can be found here: https://shopify.dev/apps/tools/cli/cli-2#installing-shopify-cli-2-x
@@ -12,7 +12,7 @@ module Extension
12
12
 
13
13
  def call(project_details)
14
14
  if template_required?(project_details)
15
- project_details.template = template || choose_interactively
15
+ project_details.template = template || choose_interactively(project_details)
16
16
  end
17
17
  project_details
18
18
  end
@@ -24,9 +24,9 @@ module Extension
24
24
  Models::DevelopmentServerRequirements.supported?(type)
25
25
  end
26
26
 
27
- def choose_interactively
27
+ def choose_interactively(project_details)
28
28
  prompt.call(ctx.message("create.ask_template")) do |handler|
29
- Models::ServerConfig::Development::VALID_TEMPLATES.each do |template|
29
+ Models::ServerConfig::Development.find(project_details&.type&.identifier).each do |template|
30
30
  handler.option(template) { template }
31
31
  end
32
32
  end
@@ -183,7 +183,7 @@ module Extension
183
183
  },
184
184
  errors: {
185
185
  unknown_type: "Unknown extension type %s. Valid extension types include: CHECKOUT_POST_PURCHASE, " \
186
- "CHECKOUT_UI_EXTENSION, THEME_APP_EXTENSION, and PRODUCT_SUBSCRIPTION.",
186
+ "THEME_APP_EXTENSION, and PRODUCT_SUBSCRIPTION.",
187
187
  package_not_found: "`%s` package not found.",
188
188
  missing_push_options_ci: "The following are missing: %s. ",
189
189
  missing_push_options_ci_solution: "To add them to a CI environment:\n\t1. Run a connect command " \
@@ -216,6 +216,22 @@ module Extension
216
216
  * Add a develop script: shopify-cli-extensions develop
217
217
  * Change the build script to: shopify-cli-extensions build
218
218
  TEXT
219
+ product_subscription: <<~TEXT.strip,
220
+ Please update your package.json as follows:
221
+ * Replace the development dependency @shopify/admin-ui-extensions-run
222
+ with @shopify/shopify-cli-extensions
223
+ * Remove the start and server script
224
+ * Add a develop script: shopify-cli-extensions develop
225
+ * Change the build script to: shopify-cli-extensions build
226
+ TEXT
227
+ checkout_post_purchase: <<~TEXT.strip,
228
+ Please update your package.json as follows:
229
+ * Replace the development dependency @shopify/checkout-ui-extensions-run
230
+ with @shopify/shopify-cli-extensions
231
+ * Remove the start and server script
232
+ * Add a develop script: shopify-cli-extensions develop
233
+ * Change the build script to: shopify-cli-extensions build
234
+ TEXT
219
235
  },
220
236
  },
221
237
  warnings: {
@@ -9,13 +9,13 @@ module Extension
9
9
  "checkout_ui_extension",
10
10
  "checkout_post_purchase",
11
11
  "product_subscription",
12
- "beacon_extension",
12
+ "web_pixel_extension",
13
13
  "pos_ui_extension",
14
14
  ]
15
15
 
16
16
  class << self
17
17
  def supported?(type)
18
- if type_supported?(type) && type_enabled?(type)
18
+ if type_supported?(type) && beta_enabled?
19
19
  return true if binary_installed?
20
20
  warn_about_missing_binary
21
21
  end
@@ -31,11 +31,6 @@ module Extension
31
31
  SUPPORTED_EXTENSION_TYPES.include?(type.downcase)
32
32
  end
33
33
 
34
- # Some types are enabled unconditionally; others require beta_enabled
35
- def type_enabled?(type)
36
- beta_enabled? || "checkout_ui_extension" == type.downcase
37
- end
38
-
39
34
  private
40
35
 
41
36
  def binary_installed?
@@ -18,6 +18,15 @@ module Extension
18
18
  property :renderer, accepts: ServerConfig::DevelopmentRenderer
19
19
  property :entries, accepts: ServerConfig::DevelopmentEntries
20
20
  property :resource, accepts: ServerConfig::DevelopmentResource
21
+
22
+ def self.find(type)
23
+ case type.downcase
24
+ when "web_pixel_extension"
25
+ ["javascript"]
26
+ else
27
+ VALID_TEMPLATES
28
+ end
29
+ end
21
30
  end
22
31
  end
23
32
  end
@@ -26,7 +26,7 @@ module Extension
26
26
  new(name: "@shopify/post-purchase-ui-extensions", version: "^0.13.2")
27
27
  when "pos_ui_extension"
28
28
  new(name: "@shopify/retail-ui-extensions", version: "^0.1.0")
29
- when "beacon_extension"
29
+ when "web_pixel_extension"
30
30
  nil
31
31
  else
32
32
  raise ArgumentError, "Unknown extension type: #{type}"
@@ -2,45 +2,46 @@
2
2
  require "base64"
3
3
  require "fileutils"
4
4
  require "json"
5
- require_relative "beacon_extension_utils/script_config"
6
- require_relative "beacon_extension_utils/script_config_repository"
5
+ require_relative "web_pixel_extension_utils/script_config"
6
+ require_relative "web_pixel_extension_utils/script_config_repository"
7
7
 
8
8
  module Extension
9
9
  module Models
10
10
  module SpecificationHandlers
11
- class BeaconExtension < Default
11
+ class WebPixelExtension < Default
12
12
  SCRIPT_FILE = "build/main.js"
13
13
 
14
14
  def name
15
- "Beacon Extension"
15
+ "Web Pixel Extension"
16
16
  end
17
17
 
18
18
  def read_configuration
19
19
  end
20
20
 
21
21
  def access_config_property(context, ext_config, key, &process_value)
22
- context.abort(context.message("core.extension.push.beacon_extension.error.missing_config_key_error",
22
+ context.abort(context.message("core.extension.push.web_pixel_extension.error.missing_config_key_error",
23
23
  key)) unless ext_config.key?(key)
24
24
 
25
25
  begin
26
26
  process_value.nil? ? ext_config[key] : process_value.call(ext_config[key])
27
27
  rescue StandardError
28
- context.abort(context.message("core.extension.push.beacon_extension.error.invalid_config_value_error", key))
28
+ context.abort(context.message("core.extension.push.web_pixel_extension.error.invalid_config_value_error",
29
+ key))
29
30
  end
30
31
  end
31
32
 
32
33
  def config(context)
33
34
  begin
34
- ext_config = BeaconExtensionUtils::ScriptConfigYmlRepository.new(ctx: context).get!.content
35
+ ext_config = WebPixelExtensionUtils::ScriptConfigYmlRepository.new(ctx: context).get!.content
35
36
  rescue StandardError
36
- context.abort(context.message("core.extension.push.beacon_extension.error.file_read_error",
37
- BeaconExtensionUtils::ScriptConfigYmlRepository.filename))
37
+ context.abort(context.message("core.extension.push.web_pixel_extension.error.file_read_error",
38
+ WebPixelExtensionUtils::ScriptConfigYmlRepository.filename))
38
39
  end
39
40
 
40
41
  begin
41
42
  script_contents = File.read(File.join(context.root, SCRIPT_FILE)).chomp
42
43
  rescue
43
- context.abort(context.message("core.extension.push.beacon_extension.error.file_read_error", SCRIPT_FILE))
44
+ context.abort(context.message("core.extension.push.web_pixel_extension.error.file_read_error", SCRIPT_FILE))
44
45
  end
45
46
  {
46
47
  runtime_context: access_config_property(context, ext_config, "runtime_context"),
@@ -3,7 +3,7 @@
3
3
  module Extension
4
4
  module Models
5
5
  module SpecificationHandlers
6
- module BeaconExtensionUtils
6
+ module WebPixelExtensionUtils
7
7
  class ScriptConfig
8
8
  attr_reader :content, :version, :configuration, :filename
9
9
 
@@ -2,7 +2,7 @@ require_relative "script_config"
2
2
  module Extension
3
3
  module Models
4
4
  module SpecificationHandlers
5
- module BeaconExtensionUtils
5
+ module WebPixelExtensionUtils
6
6
  class ScriptConfigRepository
7
7
  include SmartProperties
8
8
  property! :ctx, accepts: ShopifyCLI::Context
@@ -27,7 +27,7 @@ module Extension
27
27
  private
28
28
 
29
29
  def from_h(hash)
30
- Extension::Models::SpecificationHandlers::BeaconExtensionUtils::ScriptConfig.new(content: hash,
30
+ Extension::Models::SpecificationHandlers::WebPixelExtensionUtils::ScriptConfig.new(content: hash,
31
31
  filename: filename)
32
32
  end
33
33
 
@@ -14,7 +14,7 @@ module Extension
14
14
 
15
15
  def configure_skip_build(attributes)
16
16
  attributes[:options].merge!(skip_build: attributes[:identifier] == "theme_app_extension" ||
17
- attributes[:identifier] == "beacon_extension")
17
+ attributes[:identifier] == "web_pixel_extension")
18
18
  end
19
19
  end
20
20
  end
@@ -20,6 +20,10 @@ module Extension
20
20
  case type
21
21
  when "checkout_ui_extension"
22
22
  context.message("errors.outdated_extensions.checkout_ui_extension")
23
+ when "product_subscription"
24
+ context.message("errors.outdated_extensions.product_subscription")
25
+ when "checkout_post_purchase"
26
+ context.message("errors.outdated_extensions.checkout_post_purchase")
23
27
  else
24
28
  context.message("errors.outdated_extensions.unknown")
25
29
  end
@@ -33,7 +37,7 @@ module Extension
33
37
 
34
38
  def valid?(package)
35
39
  case type
36
- when "checkout_ui_extension"
40
+ when "checkout_ui_extension", "product_subscription", "checkout_post_purchase"
37
41
  package.dev_dependency?("@shopify/shopify-cli-extensions") &&
38
42
  package.script?("build") &&
39
43
  package.script?("develop")
@@ -11,7 +11,10 @@ module Extension
11
11
  .query(context, "fetch_specifications", api_key: api_key)
12
12
  .dig("data", "extensionSpecifications")
13
13
  context.abort(context.message("tasks.errors.parse_error")) if response.nil?
14
- response
14
+
15
+ response.reject do |line|
16
+ ::Extension::Features::Runtimes::CheckoutUiExtension::IDENTIFIERS.include?(line["identifier"].upcase)
17
+ end
15
18
  end
16
19
  end
17
20
  end
@@ -25,7 +25,7 @@ module Script
25
25
  project = Layers::Application::CreateScript.call(
26
26
  ctx: @ctx,
27
27
  language: options.flags[:language]&.downcase || "wasm",
28
- sparse_checkout_branch: options.flags[:branch] || "master",
28
+ sparse_checkout_branch: options.flags[:branch] || "main",
29
29
  title: form.title,
30
30
  extension_point_type: form.extension_point,
31
31
  )
@@ -4,57 +4,57 @@ payment_methods:
4
4
  typescript:
5
5
  beta: true
6
6
  package: "@shopify/scripts-checkout-apis"
7
- repo: "https://github.com/Shopify/scripts-apis-examples"
7
+ repo: "https://github.com/Shopify/function-examples"
8
8
  wasm:
9
- repo: "https://github.com/Shopify/scripts-apis-examples"
9
+ repo: "https://github.com/Shopify/function-examples"
10
10
  rust:
11
- repo: "https://github.com/Shopify/scripts-apis-examples"
11
+ repo: "https://github.com/Shopify/function-examples"
12
12
  payment_customization:
13
13
  beta: true
14
14
  domain: 'checkout'
15
15
  libraries:
16
16
  wasm:
17
- repo: "https://github.com/Shopify/scripts-apis-examples"
17
+ repo: "https://github.com/Shopify/function-examples"
18
18
  rust:
19
- repo: "https://github.com/Shopify/scripts-apis-examples"
19
+ repo: "https://github.com/Shopify/function-examples"
20
20
  shipping_methods:
21
21
  domain: 'checkout'
22
22
  libraries:
23
23
  typescript:
24
24
  beta: true
25
25
  package: "@shopify/scripts-checkout-apis"
26
- repo: "https://github.com/Shopify/scripts-apis-examples"
26
+ repo: "https://github.com/Shopify/function-examples"
27
27
  wasm:
28
- repo: "https://github.com/Shopify/scripts-apis-examples"
28
+ repo: "https://github.com/Shopify/function-examples"
29
29
  rust:
30
- repo: "https://github.com/Shopify/scripts-apis-examples"
30
+ repo: "https://github.com/Shopify/function-examples"
31
31
  product_discounts:
32
32
  beta: true
33
33
  domain: 'discounts'
34
34
  libraries:
35
35
  wasm:
36
- repo: "https://github.com/Shopify/scripts-apis-examples"
36
+ repo: "https://github.com/Shopify/function-examples"
37
37
  rust:
38
- repo: "https://github.com/Shopify/scripts-apis-examples"
38
+ repo: "https://github.com/Shopify/function-examples"
39
39
  order_discounts:
40
40
  beta: true
41
41
  domain: 'discounts'
42
42
  libraries:
43
43
  wasm:
44
- repo: "https://github.com/Shopify/scripts-apis-examples"
44
+ repo: "https://github.com/Shopify/function-examples"
45
45
  rust:
46
- repo: "https://github.com/Shopify/scripts-apis-examples"
46
+ repo: "https://github.com/Shopify/function-examples"
47
47
  shipping_discounts:
48
48
  beta: true
49
49
  domain: 'discounts'
50
50
  libraries:
51
51
  wasm:
52
- repo: "https://github.com/Shopify/scripts-apis-examples"
52
+ repo: "https://github.com/Shopify/function-examples"
53
53
  rust:
54
- repo: "https://github.com/Shopify/scripts-apis-examples"
54
+ repo: "https://github.com/Shopify/function-examples"
55
55
  shipping_rates_consolidation:
56
56
  beta: true
57
57
  domain: 'checkout'
58
58
  libraries:
59
59
  wasm:
60
- repo: "https://github.com/Shopify/scripts-apis-examples"
60
+ repo: "https://github.com/Shopify/function-examples"
@@ -7,11 +7,6 @@ module Script
7
7
 
8
8
  def ask
9
9
  apps = @xargs.fetch(:apps)
10
-
11
- unless @xargs[:acting_as_shopify_organization]
12
- apps = apps.select { |app| app["appType"] == "custom" }
13
- end
14
-
15
10
  raise Errors::NoExistingAppsError if apps.empty?
16
11
 
17
12
  @app =
@@ -4,12 +4,11 @@ module Script
4
4
  module Layers
5
5
  module Domain
6
6
  class Metadata
7
- attr_reader :schema_major_version, :schema_minor_version, :use_msgpack
7
+ attr_reader :schema_major_version, :schema_minor_version
8
8
 
9
- def initialize(schema_major_version, schema_minor_version, use_msgpack)
9
+ def initialize(schema_major_version, schema_minor_version)
10
10
  @schema_major_version = schema_major_version
11
11
  @schema_minor_version = schema_minor_version
12
- @use_msgpack = use_msgpack
13
12
  end
14
13
 
15
14
  class << self
@@ -17,7 +16,6 @@ module Script
17
16
  err_tag = nil
18
17
  metadata_hash = JSON.parse(metadata_json)
19
18
 
20
- use_msgpack = !!metadata_hash.dig("flags", "use_msgpack")
21
19
  schema_versions = metadata_hash["schemaVersions"] || {}
22
20
 
23
21
  version = schema_versions.values.first || {}
@@ -35,7 +33,7 @@ module Script
35
33
  err_tag = "script.error.metadata_schema_versions_missing_minor"
36
34
  end
37
35
 
38
- Metadata.new(schema_major_version, schema_minor_version, use_msgpack)
36
+ Metadata.new(schema_major_version, schema_minor_version)
39
37
  rescue JSON::ParserError
40
38
  err_tag = "script.error.metadata_validation_cause"
41
39
  ensure
@@ -37,7 +37,9 @@ module Script
37
37
  extension_point_type: extension_point_type,
38
38
  title: title,
39
39
  description: nil,
40
- language: language
40
+ language: language,
41
+ app_bridge_create_path: "/",
42
+ app_bridge_details_path: "/",
41
43
  )
42
44
 
43
45
  build_script_project(script_config: nil)
@@ -124,8 +126,8 @@ module Script
124
126
  end
125
127
 
126
128
  def app_bridge
127
- create_path = project_config_value("app_bridge_create_path") || "/"
128
- details_path = project_config_value("app_bridge_details_path") || "/"
129
+ create_path = project_config_value!("app_bridge_create_path")
130
+ details_path = project_config_value!("app_bridge_details_path")
129
131
 
130
132
  Domain::AppBridge.new(
131
133
  create_path: create_path,
@@ -90,7 +90,7 @@ module Script
90
90
  )
91
91
  elsif (errors = user_errors.filter { |err| err["tag"] == "input_query_validation_error" }).any?
92
92
  raise Errors::InvalidInputQueryErrors, errors.map { |err| err["message"] }
93
- elsif user_errors.find { |err| %w(not_use_msgpack_error schema_version_argument_error).include?(err["tag"]) }
93
+ elsif user_errors.find { |err| %w(schema_version_argument_error).include?(err["tag"]) }
94
94
  raise Domain::Errors::MetadataValidationError
95
95
  elsif user_errors.find { |err| err["tag"] == "invalid_app_bridge_create_path" }
96
96
  raise Errors::InvalidAppBridgePathError, "create"
@@ -24,7 +24,7 @@ module Script
24
24
  oauth_help: "Wait a few minutes and try again.",
25
25
 
26
26
  invalid_context_cause: "Your .shopify-cli.yml is formatted incorrectly. It's missing values for "\
27
- "extension_point_type or title.",
27
+ "extension_point_type, title, app_bridge_create_path or app_bridge_details_path.",
28
28
  invalid_context_help: "Add these values.",
29
29
 
30
30
  invalid_script_title_cause: "Script title contains unsupported characters.",
@@ -28,6 +28,7 @@ module Theme
28
28
  parser.on("-j", "--json") { flags[:json] = true }
29
29
  parser.on("-a", "--allow-live") { flags[:allow_live] = true }
30
30
  parser.on("-p", "--publish") { flags[:publish] = true }
31
+ parser.on("-s", "--stable") { flags[:stable] = true }
31
32
  parser.on("-o", "--only=PATTERN", Conversions::IncludeGlob) do |pattern|
32
33
  flags[:includes] ||= []
33
34
  flags[:includes] |= pattern
@@ -56,7 +57,8 @@ module Theme
56
57
 
57
58
  syncer = ShopifyCLI::Theme::Syncer.new(@ctx, theme: theme,
58
59
  include_filter: include_filter,
59
- ignore_filter: ignore_filter)
60
+ ignore_filter: ignore_filter,
61
+ stable: options.flags[:stable])
60
62
  begin
61
63
  syncer.start_threads
62
64
  if options.flags[:json]
@@ -17,6 +17,7 @@ module Theme
17
17
  parser.on("--poll") { flags[:poll] = true }
18
18
  parser.on("--live-reload=MODE") { |mode| flags[:mode] = as_reload_mode(mode) }
19
19
  parser.on("--theme-editor-sync") { flags[:editor_sync] = true }
20
+ parser.on("--stable") { flags[:stable] = true }
20
21
  parser.on("-t", "--theme=NAME_OR_ID") { |theme| flags[:theme] = theme }
21
22
  end
22
23