shopify-cli 2.18.1 → 2.20.1
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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.yaml +2 -1
- data/.github/ISSUE_TEMPLATE/config.yml +9 -0
- data/.github/workflows/cla.yml +22 -0
- data/CHANGELOG.md +23 -2
- data/Gemfile.lock +4 -4
- data/README.md +7 -6
- data/dev.yml +0 -1
- data/docs/users/installation.md +1 -1
- data/lib/project_types/extension/messages/messages.rb +1 -1
- data/lib/project_types/extension/models/development_server_requirements.rb +1 -6
- data/lib/project_types/extension/tasks/fetch_specifications.rb +4 -1
- data/lib/project_types/script/commands/create.rb +1 -1
- data/lib/project_types/script/config/extension_points.yml +15 -15
- data/lib/project_types/script/forms/ask_app.rb +0 -5
- data/lib/project_types/script/layers/domain/metadata.rb +3 -5
- data/lib/project_types/script/layers/infrastructure/script_service.rb +1 -1
- data/lib/project_types/theme/commands/push.rb +3 -1
- data/lib/project_types/theme/commands/serve.rb +1 -0
- data/lib/project_types/theme/messages/messages.rb +39 -2
- data/lib/shopify_cli/assets/post_auth_page/index.html.erb +34 -0
- data/lib/shopify_cli/assets/post_auth_page/style.css +58 -0
- data/lib/shopify_cli/identity_auth/servlet.rb +4 -20
- data/lib/shopify_cli/messages/messages.rb +6 -8
- data/lib/shopify_cli/theme/dev_server/hot-reload-no-script.html +27 -0
- data/lib/shopify_cli/theme/dev_server/hot-reload.js +16 -4
- data/lib/shopify_cli/theme/dev_server/hot_reload.rb +2 -0
- data/lib/shopify_cli/theme/dev_server.rb +3 -2
- data/lib/shopify_cli/theme/file.rb +5 -0
- data/lib/shopify_cli/theme/syncer/json_update_handler.rb +21 -7
- data/lib/shopify_cli/theme/syncer/operation.rb +7 -6
- data/lib/shopify_cli/theme/syncer/unsupported_script_warning.rb +90 -0
- data/lib/shopify_cli/theme/syncer.rb +81 -31
- data/lib/shopify_cli/theme/theme_admin_api.rb +16 -11
- data/lib/shopify_cli/theme/theme_admin_api_throttler/bulk.rb +102 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler/bulk_job.rb +75 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler/errors.rb +7 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler/put_request.rb +52 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler/request_parser.rb +39 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler/response_parser.rb +21 -0
- data/lib/shopify_cli/theme/theme_admin_api_throttler.rb +62 -0
- data/lib/shopify_cli/version.rb +1 -1
- data/shopify-cli.gemspec +1 -1
- metadata +18 -6
- data/.github/probots.yml +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bab2227e665dd4dec8e90ca261705072971a838f85d19bcbb85d18ed1a1d5b0
|
4
|
+
data.tar.gz: 90e22472586a681a26974882b79ac3fd326fdcf696db2aa29201ab5d9a37c2b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24701865a98be1b3062ff7644fff3d35b61532803e96c39d84c7fae636b8205531e57e41641d1222dbd09275288e4dee2f2f94c837d58846212a0f4ed1643b28
|
7
|
+
data.tar.gz: 6e5c53ef75f07879d338692ce9271749002c13f8174a19fe3857b3396ec1512a2368770ec50bd24de2a0c9dc325dddb5b3547564c79cc360a40d1b19b35d2c50
|
@@ -13,8 +13,9 @@ body:
|
|
13
13
|
id: preflight_checks
|
14
14
|
attributes:
|
15
15
|
label: |-
|
16
|
-
Please confirm that you
|
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.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: Contributor License Agreement (CLA)
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request_target:
|
5
|
+
types: [opened, synchronize]
|
6
|
+
issue_comment:
|
7
|
+
types: [created]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
cla:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
if: |
|
13
|
+
(github.event.issue.pull_request
|
14
|
+
&& !github.event.issue.pull_request.merged_at
|
15
|
+
&& contains(github.event.comment.body, 'signed')
|
16
|
+
)
|
17
|
+
|| (github.event.pull_request && !github.event.pull_request.merged)
|
18
|
+
steps:
|
19
|
+
- uses: Shopify/shopify-cla-action@v1
|
20
|
+
with:
|
21
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
22
|
+
cla-token: ${{ secrets.CLA_TOKEN }}
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,26 @@ 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.1 - 2022-07-18
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
* [#2458](https://github.com/Shopify/shopify-cli/pull/2458): Fix shop URL in unauthorized error message
|
9
|
+
* [#2459](https://github.com/Shopify/shopify-cli/pull/2459): Fix `.json` file ignore issues with `shopify theme push`
|
10
|
+
* [#2460](https://github.com/Shopify/shopify-cli/pull/2460): Fix job retries for .json theme file dependencies and support wider range of asset API errors
|
11
|
+
|
12
|
+
## Version 2.20.0 - 2022-07-11
|
13
|
+
|
14
|
+
### Added
|
15
|
+
* [#2368](https://github.com/Shopify/shopify-cli/pull/2368): Add performance enhancements to the `theme serve` and `theme push` commands
|
16
|
+
* [#2437](https://github.com/Shopify/shopify-cli/pull/2437): Add support to the `warnings` field in the assets API
|
17
|
+
* [#2446](https://github.com/Shopify/shopify-cli/pull/2446): Show a friendly message when developers use a browser without SSE support
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
* [#2418](https://github.com/Shopify/shopify-cli/pull/2418): Improve the help message of the `theme open -e/--editor` flag
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
* [#2444](https://github.com/Shopify/shopify-cli/pull/2444): Expose the `-s` option in the help text of `login`, `switch` etc.
|
24
|
+
|
5
25
|
## Version 2.18.0 - 2022-05-30
|
6
26
|
|
7
27
|
### Added
|
@@ -12,6 +32,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
12
32
|
### Fixed
|
13
33
|
* [#2352](https://github.com/Shopify/shopify-cli/pull/2352): Provide better DX when dealing with empty theme selection
|
14
34
|
* [#2347](https://github.com/Shopify/shopify-cli/pull/2347): Fix #2346 Heroku CLI installation for Apple silicon
|
35
|
+
* [#2422](https://github.com/Shopify/shopify-cli/pull/2422): Add Shopify branding and styling to post-authentication browser page
|
15
36
|
|
16
37
|
## Version 2.17.0 - 2022-05-12
|
17
38
|
|
@@ -42,7 +63,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
42
63
|
|
43
64
|
### Added
|
44
65
|
* [#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.
|
66
|
+
* [#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
67
|
|
47
68
|
### Changed
|
48
69
|
* [#2272](https://github.com/Shopify/shopify-cli/pull/2272): Changed interactive apps list scope for extension create|register|connect commands
|
@@ -50,7 +71,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
50
71
|
## Version 2.15.6 - 2022-04-12
|
51
72
|
|
52
73
|
### Fixed
|
53
|
-
* [#2246](https://github.com/Shopify/shopify-cli/pull/2246): Fix callback urls for app serve
|
74
|
+
* [#2246](https://github.com/Shopify/shopify-cli/pull/2246): Fix callback urls for app serve
|
54
75
|
|
55
76
|
## Version 2.15.5 - 2022-04-08
|
56
77
|
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify-cli (2.
|
4
|
+
shopify-cli (2.20.1)
|
5
5
|
bugsnag (~> 6.22)
|
6
6
|
listen (~> 3.7.0)
|
7
|
-
theme-check (~> 1.10.
|
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.
|
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.
|
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
|
-
|
2
|
-
|
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
|
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
data/docs/users/installation.md
CHANGED
@@ -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
|
-
"
|
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 " \
|
@@ -15,7 +15,7 @@ module Extension
|
|
15
15
|
|
16
16
|
class << self
|
17
17
|
def supported?(type)
|
18
|
-
if type_supported?(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?
|
@@ -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
|
-
|
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] || "
|
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/
|
7
|
+
repo: "https://github.com/Shopify/function-examples"
|
8
8
|
wasm:
|
9
|
-
repo: "https://github.com/Shopify/
|
9
|
+
repo: "https://github.com/Shopify/function-examples"
|
10
10
|
rust:
|
11
|
-
repo: "https://github.com/Shopify/
|
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/
|
17
|
+
repo: "https://github.com/Shopify/function-examples"
|
18
18
|
rust:
|
19
|
-
repo: "https://github.com/Shopify/
|
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/
|
26
|
+
repo: "https://github.com/Shopify/function-examples"
|
27
27
|
wasm:
|
28
|
-
repo: "https://github.com/Shopify/
|
28
|
+
repo: "https://github.com/Shopify/function-examples"
|
29
29
|
rust:
|
30
|
-
repo: "https://github.com/Shopify/
|
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/
|
36
|
+
repo: "https://github.com/Shopify/function-examples"
|
37
37
|
rust:
|
38
|
-
repo: "https://github.com/Shopify/
|
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/
|
44
|
+
repo: "https://github.com/Shopify/function-examples"
|
45
45
|
rust:
|
46
|
-
repo: "https://github.com/Shopify/
|
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/
|
52
|
+
repo: "https://github.com/Shopify/function-examples"
|
53
53
|
rust:
|
54
|
-
repo: "https://github.com/Shopify/
|
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/
|
60
|
+
repo: "https://github.com/Shopify/function-examples"
|
@@ -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
|
7
|
+
attr_reader :schema_major_version, :schema_minor_version
|
8
8
|
|
9
|
-
def initialize(schema_major_version, schema_minor_version
|
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
|
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
|
@@ -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(
|
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"
|
@@ -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
|
|
@@ -11,11 +11,13 @@ module Theme
|
|
11
11
|
unauthorized_error: <<~EOD,
|
12
12
|
You can't use Shopify CLI with development stores if you only have Partner staff member access. If you want to use Shopify CLI to work on a development store, then you should be the store owner or create a staff account on the store.
|
13
13
|
|
14
|
-
If you're the store owner, then you need to log in to the store directly using the store URL at least once (for example, using %s
|
14
|
+
If you're the store owner, then you need to log in to the store directly using the store URL at least once (for example, using %s/admin) before you log in using Shopify CLI. Logging in to the Shopify admin directly connects the development store with your Shopify login.
|
15
15
|
EOD
|
16
16
|
ensure_user_try_this: <<~ENSURE_USER,
|
17
17
|
Check if your user is activated, has permission to edit themes at the store, and try to re-login.
|
18
18
|
ENSURE_USER
|
19
|
+
stable_flag_suggestion: "If the current command isn't working as expected," \
|
20
|
+
" we suggest re-running the command with the {{command: --stable}} flag",
|
19
21
|
init: {
|
20
22
|
help: <<~HELP,
|
21
23
|
{{command:%s theme init}}: Clones a Git repository to use as a starting point for building a new theme.
|
@@ -179,6 +181,41 @@ module Theme
|
|
179
181
|
exit: "Exit",
|
180
182
|
},
|
181
183
|
},
|
184
|
+
warnings: {
|
185
|
+
unsupported_script: "unsupported script",
|
186
|
+
unsupported_script_text: <<~UNSUPPORTED_SCRIPT,
|
187
|
+
|
188
|
+
{{underline:Unsupported external checkout script}}
|
189
|
+
|
190
|
+
You have a code snippet on your storefront that violates
|
191
|
+
Shopify's Terms of Service. This script removes Shopify's
|
192
|
+
ability to protect your store against fraudulent orders,
|
193
|
+
could steal customer data and may cause customers to be
|
194
|
+
charged the wrong amount.
|
195
|
+
|
196
|
+
%s
|
197
|
+
By proceeding, you're acknowledging that you understand the
|
198
|
+
risks and will not hold Shopify liable for any problems that
|
199
|
+
occur due to the use of an external checkout, including:
|
200
|
+
|
201
|
+
- Discounts
|
202
|
+
- Shipping rules
|
203
|
+
- Multi-currency rules
|
204
|
+
- Variant selection
|
205
|
+
- Orders and fulfillment workflows
|
206
|
+
- Shopify Fraud Protection
|
207
|
+
- Payment settings
|
208
|
+
- Cart
|
209
|
+
|
210
|
+
You also acknowledge that you will not be able to reliably
|
211
|
+
get support for those features from Shopify because you are
|
212
|
+
violating Shopify's terms of service and that your account
|
213
|
+
may become suspended as a result.
|
214
|
+
UNSUPPORTED_SCRIPT
|
215
|
+
line_and_column: <<~LINE_AND_COLUMN,
|
216
|
+
- Line: %s Column: %s
|
217
|
+
LINE_AND_COLUMN
|
218
|
+
},
|
182
219
|
},
|
183
220
|
error: {
|
184
221
|
address_binding_error: "Couldn't bind to localhost."\
|
@@ -309,7 +346,7 @@ module Theme
|
|
309
346
|
{{command:-t, --theme=NAME_OR_ID}} Theme ID or name of your theme.
|
310
347
|
{{command:-l, --live}} Open your live theme.
|
311
348
|
{{command:-d, --development}} Open your development theme.
|
312
|
-
{{command:-e, --editor}} Open the editor
|
349
|
+
{{command:-e, --editor}} Open the theme editor for the specified theme in the browser.
|
313
350
|
HELP
|
314
351
|
},
|
315
352
|
list: {
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
<title>Shopify CLI</title>
|
8
|
+
<style><%= locals[:css] %></style>
|
9
|
+
<link rel="icon" href="data:image/svg+xml;charset=UTF-8,%3c?xml version='1.0' encoding='utf-8'?%3e%3c!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3e%3csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 109.5 124.5' style='enable-background:new 0 0 109.5 124.5;' xml:space='preserve'%3e%3cstyle type='text/css'%3e .st0%7bfill:%2395BF47;%7d .st1%7bfill:%235E8E3E;%7d .st2%7bfill:%23FFFFFF;%7d %3c/style%3e%3cg%3e%3cpath class='st0' d='M95.9,23.9c-0.1-0.6-0.6-1-1.1-1c-0.5,0-9.3-0.2-9.3-0.2s-7.4-7.2-8.1-7.9c-0.7-0.7-2.2-0.5-2.7-0.3 c0,0-1.4,0.4-3.7,1.1c-0.4-1.3-1-2.8-1.8-4.4c-2.6-5-6.5-7.7-11.1-7.7c0,0,0,0,0,0c-0.3,0-0.6,0-1,0.1c-0.1-0.2-0.3-0.3-0.4-0.5 c-2-2.2-4.6-3.2-7.7-3.1c-6,0.2-12,4.5-16.8,12.2c-3.4,5.4-6,12.2-6.8,17.5c-6.9,2.1-11.7,3.6-11.8,3.7c-3.5,1.1-3.6,1.2-4,4.5 c-0.3,2.5-9.5,73-9.5,73l76.4,13.2l33.1-8.2C109.5,115.8,96,24.5,95.9,23.9z M67.2,16.8c-1.8,0.5-3.8,1.2-5.9,1.8 c0-3-0.4-7.3-1.8-10.9C64,8.6,66.2,13.7,67.2,16.8z M57.2,19.9c-4,1.2-8.4,2.6-12.8,3.9c1.2-4.7,3.6-9.4,6.4-12.5 c1.1-1.1,2.6-2.4,4.3-3.2C56.9,11.6,57.3,16.5,57.2,19.9z M49.1,4c1.4,0,2.6,0.3,3.6,0.9C51.1,5.8,49.5,7,48,8.6 c-3.8,4.1-6.7,10.5-7.9,16.6c-3.6,1.1-7.2,2.2-10.5,3.2C31.7,18.8,39.8,4.3,49.1,4z'/%3e%3cg%3e%3cpath class='st1' d='M94.8,22.9c-0.5,0-9.3-0.2-9.3-0.2s-7.4-7.2-8.1-7.9c-0.3-0.3-0.6-0.4-1-0.5l0,109.7l33.1-8.2 c0,0-13.5-91.3-13.6-92C95.8,23.3,95.3,22.9,94.8,22.9z'/%3e%3cpath class='st2' d='M58,39.9l-3.8,14.4c0,0-4.3-2-9.4-1.6c-7.5,0.5-7.5,5.2-7.5,6.4c0.4,6.4,17.3,7.8,18.3,22.9 c0.7,11.9-6.3,20-16.4,20.6c-12.2,0.8-18.9-6.4-18.9-6.4l2.6-11c0,0,6.7,5.1,12.1,4.7c3.5-0.2,4.8-3.1,4.7-5.1 c-0.5-8.4-14.3-7.9-15.2-21.7c-0.7-11.6,6.9-23.4,23.7-24.4C54.7,38.2,58,39.9,58,39.9z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e" sizes="any" type="image/svg+xml">
|
10
|
+
</head>
|
11
|
+
|
12
|
+
<% if successful %>
|
13
|
+
<body class="body-success">
|
14
|
+
<div class="app-success">
|
15
|
+
<div class="container">
|
16
|
+
<h1><%= locals[:message] %></h1>
|
17
|
+
<p>You can close this tab and return to your terminal.</p>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</body>
|
21
|
+
<% else %>
|
22
|
+
<body class="body-error">
|
23
|
+
<div class="app-error">
|
24
|
+
<div class="container">
|
25
|
+
<h1>Something went wrong!</h1>
|
26
|
+
<p><%= locals[:message] %></p>
|
27
|
+
<br>
|
28
|
+
<br>
|
29
|
+
<p>Return to your terminal and try running the previous command again.</p>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
</body>
|
33
|
+
<% end %>
|
34
|
+
</html>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
html {
|
2
|
+
font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
|
3
|
+
text-size-adjust: 100%;
|
4
|
+
text-rendering: optimizeLegibility;
|
5
|
+
-webkit-font-smoothing: antialiased;
|
6
|
+
-moz-osx-font-smoothing: grayscale;
|
7
|
+
}
|
8
|
+
|
9
|
+
body {
|
10
|
+
font-size: 26px;
|
11
|
+
line-height: normal;
|
12
|
+
margin: 0;
|
13
|
+
padding: 0;
|
14
|
+
}
|
15
|
+
|
16
|
+
button, input, optgroup, select, textarea {
|
17
|
+
font-family: inherit;
|
18
|
+
}
|
19
|
+
|
20
|
+
h1 {
|
21
|
+
font-weight: 600;
|
22
|
+
font-size: 1em;
|
23
|
+
}
|
24
|
+
|
25
|
+
p {
|
26
|
+
font-weight: 400;
|
27
|
+
}
|
28
|
+
|
29
|
+
.body-success {
|
30
|
+
color: #F6F6F7;
|
31
|
+
}
|
32
|
+
|
33
|
+
.body-error {
|
34
|
+
color: #202223;
|
35
|
+
}
|
36
|
+
|
37
|
+
.app-success {
|
38
|
+
width: 100vw;
|
39
|
+
height: 100vh;
|
40
|
+
background-color: #054A49;
|
41
|
+
display: flex;
|
42
|
+
}
|
43
|
+
|
44
|
+
.app-error {
|
45
|
+
width: 100vw;
|
46
|
+
height: 100vh;
|
47
|
+
background-color: #F6F6F7;
|
48
|
+
display: flex;
|
49
|
+
}
|
50
|
+
|
51
|
+
.container {
|
52
|
+
display: flex;
|
53
|
+
flex-direction: column;
|
54
|
+
justify-content: center;
|
55
|
+
width: 100%;
|
56
|
+
height: 100%;
|
57
|
+
padding-left: 7.5em;
|
58
|
+
}
|
@@ -1,20 +1,8 @@
|
|
1
1
|
module ShopifyCLI
|
2
2
|
class IdentityAuth
|
3
3
|
class Servlet < WEBrick::HTTPServlet::AbstractServlet
|
4
|
-
|
5
|
-
|
6
|
-
<head>
|
7
|
-
<title>%{title}</title>
|
8
|
-
</head>
|
9
|
-
<body>
|
10
|
-
<h1 style="color: #%{color};">%{message}</h1>
|
11
|
-
%{autoclose}
|
12
|
-
</body>
|
13
|
-
</html>
|
14
|
-
}
|
15
|
-
AUTOCLOSE_TEMPLATE = %{
|
16
|
-
<script>window.close();</script>
|
17
|
-
}
|
4
|
+
ERB_FILENAME = File.join(ROOT, "lib/shopify_cli/assets/post_auth_page/index.html.erb")
|
5
|
+
CSS_FILENAME = File.join(ROOT, "lib/shopify_cli/assets/post_auth_page/style.css")
|
18
6
|
|
19
7
|
def initialize(server, identity_auth, token)
|
20
8
|
super
|
@@ -46,14 +34,10 @@ module ShopifyCLI
|
|
46
34
|
locals = {
|
47
35
|
status: status,
|
48
36
|
message: message,
|
49
|
-
|
50
|
-
title: Context.message(
|
51
|
-
successful ? "core.identity_auth.servlet.authenticated" : "core.identity_auth.servlet.not_authenticated"
|
52
|
-
),
|
53
|
-
autoclose: successful ? AUTOCLOSE_TEMPLATE : "",
|
37
|
+
css: File.read(CSS_FILENAME),
|
54
38
|
}
|
55
39
|
response.status = status
|
56
|
-
response.body =
|
40
|
+
response.body = ERB.new(File.read(ERB_FILENAME)).result(binding)
|
57
41
|
end
|
58
42
|
end
|
59
43
|
end
|
@@ -449,7 +449,7 @@ module ShopifyCLI
|
|
449
449
|
login: {
|
450
450
|
help: <<~HELP,
|
451
451
|
Log in to the Shopify CLI by authenticating with a store or partner organization
|
452
|
-
Usage: {{command:%s login [--store STORE]}}
|
452
|
+
Usage: {{command:%s login [--store/-s STORE]}}
|
453
453
|
HELP
|
454
454
|
invalid_shop: <<~MESSAGE,
|
455
455
|
Invalid store provided (%s). Please provide the store in the following format: my-store.myshopify.com
|
@@ -476,7 +476,7 @@ module ShopifyCLI
|
|
476
476
|
switch: {
|
477
477
|
help: <<~HELP,
|
478
478
|
Switch between development stores in your partner organization
|
479
|
-
Usage: {{command:%s switch [--store STORE]}}
|
479
|
+
Usage: {{command:%s switch [--store/-s STORE]}}
|
480
480
|
HELP
|
481
481
|
disabled_as_shopify_org: "Can't switch development stores logged in as {{green:Shopify partners org}}",
|
482
482
|
success: "Switched development store to {{green:%s}}",
|
@@ -498,11 +498,9 @@ module ShopifyCLI
|
|
498
498
|
"{{i}} Authentication required. Login to the URL below with your %s credentials to continue.",
|
499
499
|
|
500
500
|
servlet: {
|
501
|
-
success_response: "
|
501
|
+
success_response: "You've successfuly logged into the Shopify CLI!",
|
502
502
|
invalid_request_response: "Invalid request: %s",
|
503
|
-
invalid_state_response: "
|
504
|
-
authenticated: "Authenticated successfully",
|
505
|
-
not_authenticated: "Failed to authenticate",
|
503
|
+
invalid_state_response: "The anti-forgery state token does not match the initial request.",
|
506
504
|
},
|
507
505
|
login_prompt: "Please ensure you've logged in with {{command:%s login}} and try again",
|
508
506
|
token_authentication: "%s environment variable. We'll authenticate using its value as a token.",
|
@@ -589,7 +587,7 @@ module ShopifyCLI
|
|
589
587
|
HELP
|
590
588
|
|
591
589
|
error: {
|
592
|
-
no_shop: "No store found. Please run {{command:%s login --store STORE}} to login to a specific store",
|
590
|
+
no_shop: "No store found. Please run {{command:%s login --store/-s STORE}} to login to a specific store",
|
593
591
|
},
|
594
592
|
|
595
593
|
customer: {
|
@@ -820,7 +818,7 @@ module ShopifyCLI
|
|
820
818
|
not_logged_in: <<~MESSAGE,
|
821
819
|
It doesn't appear that you're logged in. You must log into a partner organization or a store staff account.
|
822
820
|
|
823
|
-
If trying to log into a store staff account, please use {{command:%s login --store STORE}} to log in.
|
821
|
+
If trying to log into a store staff account, please use {{command:%s login --store/-s STORE}} to log in.
|
824
822
|
MESSAGE
|
825
823
|
logged_in_shop_only: <<~MESSAGE,
|
826
824
|
Logged into store {{green:%s}} as staff (no partner organizations available for this login)
|