shopify-cli 2.15.0 → 2.15.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/stale.yml +7 -2
- data/.vscode/settings.json +1 -2
- data/CHANGELOG.md +70 -19
- data/Gemfile +1 -0
- data/Gemfile.lock +39 -7
- data/Rakefile +48 -0
- data/ext/javy/hashes/javy-arm-macos-v0.3.0.gz.sha256 +1 -0
- data/ext/javy/hashes/javy-x86_64-linux-v0.3.0.gz.sha256 +1 -0
- data/ext/javy/hashes/javy-x86_64-macos-v0.3.0.gz.sha256 +1 -0
- data/ext/javy/hashes/javy-x86_64-windows-v0.3.0.gz.sha256 +1 -0
- data/ext/javy/version +1 -1
- data/ext/shopify-extensions/version +1 -1
- data/lib/project_types/extension/commands/check.rb +6 -1
- data/lib/project_types/extension/forms/questions/ask_template.rb +5 -8
- data/lib/project_types/extension/messages/messages.rb +11 -3
- data/lib/project_types/extension/models/development_server_requirements.rb +14 -7
- data/lib/project_types/extension/models/server_config/root.rb +2 -0
- data/lib/project_types/extension/models/specification_handlers/beacon_extension.rb +57 -0
- data/lib/project_types/extension/models/specification_handlers/beacon_extension_utils/script_config.rb +33 -0
- data/lib/project_types/extension/models/specification_handlers/beacon_extension_utils/script_config_repository.rb +75 -0
- data/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +16 -1
- data/lib/project_types/extension/tasks/configure_options.rb +2 -1
- data/lib/project_types/extension/tasks/convert_server_config.rb +13 -2
- data/lib/project_types/extension/tasks/merge_server_config.rb +5 -2
- data/lib/project_types/script/cli.rb +1 -0
- data/lib/project_types/script/config/extension_points.yml +18 -0
- data/lib/project_types/script/layers/application/create_script.rb +14 -6
- data/lib/project_types/script/layers/infrastructure/errors.rb +17 -0
- data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +6 -21
- data/lib/project_types/script/layers/infrastructure/script_service.rb +2 -0
- data/lib/project_types/script/layers/infrastructure/sparse_checkout_details.rb +35 -0
- data/lib/project_types/script/messages/messages.rb +3 -0
- data/lib/project_types/script/ui/error_handler.rb +11 -0
- data/lib/project_types/theme/cli.rb +1 -0
- data/lib/project_types/theme/commands/check.rb +4 -1
- data/lib/project_types/theme/commands/open.rb +2 -2
- data/lib/project_types/theme/commands/push.rb +1 -3
- data/lib/project_types/theme/commands/serve.rb +1 -0
- data/lib/project_types/theme/commands/share.rb +56 -0
- data/lib/project_types/theme/messages/messages.rb +71 -11
- data/lib/shopify_cli/changelog.rb +148 -0
- data/lib/shopify_cli/command.rb +7 -0
- data/lib/shopify_cli/command_options/command_serve_options.rb +10 -0
- data/lib/shopify_cli/commands/app/serve.rb +7 -7
- data/lib/shopify_cli/commands/login.rb +5 -2
- data/lib/shopify_cli/context.rb +13 -0
- data/lib/shopify_cli/git.rb +36 -0
- data/lib/shopify_cli/identity_auth.rb +24 -4
- data/lib/shopify_cli/messages/messages.rb +26 -5
- data/lib/shopify_cli/release.rb +194 -0
- data/lib/shopify_cli/sed.rb +19 -0
- data/lib/shopify_cli/services/app/create/rails_service.rb +10 -2
- data/lib/shopify_cli/services/app/serve/node_service.rb +2 -25
- data/lib/shopify_cli/services/app/serve/php_service.rb +2 -25
- data/lib/shopify_cli/services/app/serve/rails_service.rb +8 -28
- data/lib/shopify_cli/services/app/serve/serve_service.rb +57 -0
- data/lib/shopify_cli/services.rb +1 -0
- data/lib/shopify_cli/tasks/update_dashboard_urls.rb +7 -9
- data/lib/shopify_cli/theme/dev_server/hot-reload.js +40 -13
- data/lib/shopify_cli/theme/dev_server/hot_reload/remote_file_reloader.rb +1 -1
- data/lib/shopify_cli/theme/dev_server/hot_reload/sections_index.rb +51 -0
- data/lib/shopify_cli/theme/dev_server/hot_reload.rb +6 -1
- data/lib/shopify_cli/theme/dev_server/local_assets.rb +1 -1
- data/lib/shopify_cli/theme/dev_server/remote_watcher/json_files_update_job.rb +35 -0
- data/lib/shopify_cli/theme/dev_server/remote_watcher.rb +44 -0
- data/lib/shopify_cli/theme/dev_server/watcher.rb +2 -8
- data/lib/shopify_cli/theme/dev_server.rb +18 -5
- data/lib/shopify_cli/theme/file.rb +15 -4
- data/lib/shopify_cli/theme/syncer/checksums.rb +60 -0
- data/lib/shopify_cli/theme/syncer/forms/apply_to_all.rb +39 -0
- data/lib/shopify_cli/theme/syncer/forms/apply_to_all_form.rb +35 -0
- data/lib/shopify_cli/theme/syncer/forms/base_strategy_form.rb +62 -0
- data/lib/shopify_cli/theme/syncer/forms/select_delete_strategy.rb +27 -0
- data/lib/shopify_cli/theme/syncer/forms/select_update_strategy.rb +28 -0
- data/lib/shopify_cli/theme/syncer/ignore_helper.rb +33 -0
- data/lib/shopify_cli/theme/syncer/json_delete_handler.rb +51 -0
- data/lib/shopify_cli/theme/syncer/json_update_handler.rb +82 -0
- data/lib/shopify_cli/theme/syncer/merger.rb +53 -0
- data/lib/shopify_cli/theme/syncer/operation.rb +1 -1
- data/lib/shopify_cli/theme/syncer.rb +79 -63
- data/lib/shopify_cli/theme/theme.rb +26 -4
- data/lib/shopify_cli/theme/theme_admin_api.rb +23 -8
- data/lib/shopify_cli/thread_pool/job.rb +10 -2
- data/lib/shopify_cli/thread_pool.rb +15 -3
- data/lib/shopify_cli/tunnel.rb +9 -0
- data/lib/shopify_cli/version.rb +1 -1
- data/shopify-cli.gemspec +3 -1
- data/vendor/deps/cli-ui/lib/cli/ui/os.rb +8 -0
- metadata +30 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f795330308fe8098043f9757452c62c5366eebcd724a90b3e81aafceb82a4f0
|
4
|
+
data.tar.gz: b5bac3e2def77bb94b993d39230a489d646bee5848cf4500e523da2b413e517f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05ffb12d03f75fd4bd1f5f8e0709445b51364cd8d8576407473c2f7ccc8ae1fa6d202181005041dd258ede96a1cd4a2382d9572cc427f936d62a9071229ce997
|
7
|
+
data.tar.gz: 2afbac5fe6fc03aa52858b00118661faac907cb23bb9c37368e46e4eb79feb3a309482d7ac59828b964c7a43d6de3c2446e750b6412344729e115f422b42bb84
|
data/.github/workflows/stale.yml
CHANGED
@@ -8,6 +8,7 @@ name: Mark stale issues and pull requests
|
|
8
8
|
on:
|
9
9
|
schedule:
|
10
10
|
- cron: '31 3 * * *' # randomly chosen time of day
|
11
|
+
workflow_dispatch:
|
11
12
|
|
12
13
|
jobs:
|
13
14
|
stale:
|
@@ -18,7 +19,7 @@ jobs:
|
|
18
19
|
pull-requests: write
|
19
20
|
|
20
21
|
steps:
|
21
|
-
- uses: actions/stale@
|
22
|
+
- uses: actions/stale@v4
|
22
23
|
with:
|
23
24
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
24
25
|
days-before-issue-stale: 90
|
@@ -38,4 +39,8 @@ jobs:
|
|
38
39
|
Thanks for helping to improve Shopify's dev tooling and experience.
|
39
40
|
stale-issue-label: 'no-issue-activity'
|
40
41
|
stale-pr-label: 'no-pr-activity'
|
41
|
-
|
42
|
+
ascending: true
|
43
|
+
# The math seems a bit fuzzy, but this should amount to a max of 50 issues daily.
|
44
|
+
# But then the same issues get checked first so we don't end up progressing too quickly until we can close what we started.
|
45
|
+
# Hopefully https://github.com/actions/stale/issues/692 will be closed and fix some of this mess.
|
46
|
+
operations-per-run: 200
|
data/.vscode/settings.json
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,44 @@ 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.15.
|
5
|
+
## Version 2.15.3 - 2022-04-07
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
* [#2188](https://github.com/Shopify/shopify-cli/pull/2188): Update URLs by default on serve and add --no-update flag to skip it
|
9
|
+
* [#2203](https://github.com/Shopify/shopify-cli/pull/2203): Use javy version 0.3.0
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
* [#2162](https://github.com/Shopify/shopify-cli/pull/2162): Improve encoding error handling for Checkout Extension localization
|
13
|
+
* [#2187](https://github.com/Shopify/shopify-cli/pull/2187): Fix app serve after rails update
|
14
|
+
* [#2191](https://github.com/Shopify/shopify-cli/pull/2191): Directories with the `.json` extension should not be handled as JSON files
|
15
|
+
* [#2018](https://github.com/Shopify/shopify-cli/pull/2018): Run theme-check as a code dependency, not a pseudo-CLI invocation
|
16
|
+
* [#2211](https://github.com/Shopify/shopify-cli/pull/2211): Fix the `theme open` command to open the theme in the browser
|
17
|
+
* [#2183](https://github.com/Shopify/shopify-cli/pull/2183): Improve error message when suspended users run `theme serve`
|
18
|
+
* [#2219](https://github.com/Shopify/shopify-cli/pull/2219): Fix issues when creating Rails apps after the release of `shopify_app` v19
|
19
|
+
|
20
|
+
### Added
|
21
|
+
* [#2190](https://github.com/Shopify/shopify-cli/pull/2190): Better login experience with spinner
|
22
|
+
* [#2200](https://github.com/Shopify/shopify-cli/pull/2200): Add `theme share` command
|
23
|
+
|
24
|
+
## Version 2.15.2 - 2022-03-28
|
25
|
+
|
26
|
+
### Fixed
|
27
|
+
* [#2121](https://github.com/Shopify/shopify-cli/pull/2121): Fix the hot-reload to work when the section name is not equal to the type
|
28
|
+
|
29
|
+
### Added
|
30
|
+
* [#2174](https://github.com/Shopify/shopify-cli/pull/2174): Add optional 2-way sync between the CLI (`theme serve`) and the Theme Editor
|
31
|
+
|
32
|
+
## Version 2.15.1 - 2022-03-24
|
33
|
+
|
34
|
+
### Added
|
35
|
+
* [#1934](https://github.com/Shopify/shopify-cli/pull/1934): Block directories in theme assets
|
36
|
+
* [#1880](https://github.com/Shopify/shopify-cli/pull/1880): Recognize attempts to pass a store name and suggest correction
|
37
|
+
|
38
|
+
### Fixed
|
39
|
+
* [#1874](https://github.com/Shopify/shopify-cli/pull/1874): Make ngrok errors more robust and helpful
|
40
|
+
* [#2172](https://github.com/Shopify/shopify-cli/pull/2172): Fix Ruby check for Rails app creation
|
41
|
+
|
42
|
+
## Version 2.15.0 - 2022-03-21
|
6
43
|
|
7
44
|
### Fixed
|
8
45
|
* [#2086](https://github.com/Shopify/shopify-cli/pull/2086): Improve check of dependency versions
|
@@ -10,7 +47,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
10
47
|
* [#2122](https://github.com/Shopify/shopify-cli/pull/2122): Fix `--only`/`--ignore` flags parser to support multiple occurrences without quotes
|
11
48
|
* [#2146](https://github.com/Shopify/shopify-cli/pull/2146): Prevent duplicate locales for Checkout extension localization
|
12
49
|
|
13
|
-
## Version 2.14.0
|
50
|
+
## Version 2.14.0 - 2022-03-15
|
14
51
|
|
15
52
|
### Changed
|
16
53
|
* [#2126](https://github.com/Shopify/shopify-cli/pull/2126): Use javy version 0.2.1
|
@@ -24,7 +61,7 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
24
61
|
* [#2130](https://github.com/Shopify/shopify-cli/pull/2130): Fix Homebrew installation.
|
25
62
|
* [#2133](https://github.com/Shopify/shopify-cli/pull/2133): Fix ignore file handling in DevServer::Watcher.
|
26
63
|
|
27
|
-
## Version 2.13.0
|
64
|
+
## Version 2.13.0 - 2022-03-02
|
28
65
|
|
29
66
|
### Added
|
30
67
|
* [#2087](https://github.com/Shopify/shopify-cli/pull/2087): Add new Theme CLI commands: `theme list` and `theme open`
|
@@ -38,7 +75,8 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
38
75
|
### Removed
|
39
76
|
* [#2102](https://github.com/Shopify/shopify-cli/pull/2102): Remove AssemblyScript as a supported script language.
|
40
77
|
|
41
|
-
## Version 2.12.0
|
78
|
+
## Version 2.12.0 - 2022-02-23
|
79
|
+
|
42
80
|
### Added
|
43
81
|
* [#1866](https://github.com/Shopify/shopify-cli/pull/1866): Enforce git dependency
|
44
82
|
* [#2009](https://github.com/Shopify/shopify-cli/pull/2009): Add localization support for Checkout Extensions
|
@@ -53,21 +91,24 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
53
91
|
* [#2066](https://github.com/Shopify/shopify-cli/pull/2066): Improve `--only`/`--ignore` parameters on Theme `pull`/`push` commands to work without quotes
|
54
92
|
* [#2078](https://github.com/Shopify/shopify-cli/pull/2078): Fix errors on section rendering caused by CORS issues
|
55
93
|
|
56
|
-
## Version 2.11.2
|
94
|
+
## Version 2.11.2 - 2022-02-14
|
95
|
+
|
57
96
|
### Fixed
|
58
97
|
* [#2047](https://github.com/Shopify/shopify-cli/pull/2047): Fix the Homebrew installation
|
59
98
|
* [#2019](https://github.com/Shopify/shopify-cli/pull/2019): Provide helpful link when nokogiri fails to load
|
60
99
|
* [#2055](https://github.com/Shopify/shopify-cli/pull/2055): Remove unneeded Node requirements
|
61
100
|
* [#2020](https://github.com/Shopify/shopify-cli/pull/2020): Fix `theme pull` so that correct dev theme is used with `-d` option
|
62
101
|
|
63
|
-
## Version 2.11.1
|
102
|
+
## Version 2.11.1 - 2022-02-09
|
103
|
+
|
64
104
|
### Fixed
|
65
105
|
* [#1973](https://github.com/Shopify/shopify-cli/pull/1973): Fix `theme serve` to preview generated files (`*.css.liquid`)
|
66
106
|
* [#2034](https://github.com/Shopify/shopify-cli/pull/2034): Fix `theme serve` to accept parameters with multiple values
|
67
107
|
* [#2033](https://github.com/Shopify/shopify-cli/pull/2033): Pin Homebrew Ruby to 3.0
|
68
108
|
* [#2032](https://github.com/Shopify/shopify-cli/pull/2032): Runtime error checking the Node version if Node is not present in the environment.
|
69
109
|
|
70
|
-
## Version 2.11.0
|
110
|
+
## Version 2.11.0 - 2022-02-07
|
111
|
+
|
71
112
|
### Fixed
|
72
113
|
* [#2005](https://github.com/Shopify/shopify-cli/pull/2005): Fix PHP app serve on Windows environments
|
73
114
|
|
@@ -82,17 +123,20 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
82
123
|
* [#2002](https://github.com/Shopify/shopify-cli/pull/2002): Update `-o`/`--only` parameter to allow multiple patterns on `theme push`/`theme pull` commands
|
83
124
|
* [#2022](https://github.com/Shopify/shopify-cli/pull/2022): Don't warn the user if the Ruby version is in the range 3.0.x.
|
84
125
|
|
85
|
-
## Version 2.10.2
|
126
|
+
## Version 2.10.2 - 2022-01-31
|
127
|
+
|
86
128
|
### Fixed
|
87
129
|
* [#1983](https://github.com/Shopify/shopify-cli/pull/1983): Improve Windows compatibility
|
88
130
|
* [#1928](https://github.com/Shopify/shopify-cli/pull/1928): Ensure script Wasm file sizes don't exceed the limit
|
89
131
|
* [#2006](https://github.com/Shopify/shopify-cli/pull/2006): Fix: More defensive URL generation
|
90
132
|
|
91
|
-
## Version 2.10.1
|
133
|
+
## Version 2.10.1 - 2022-01-28
|
134
|
+
|
92
135
|
### Fixed
|
93
136
|
* [#1985](https://github.com/Shopify/shopify-cli/pull/1985): Revert "Fix CORS (Cross-origin resource sharing) errors (#1952)"
|
94
137
|
|
95
|
-
## Version 2.10.0
|
138
|
+
## Version 2.10.0 - 2022-01-25
|
139
|
+
|
96
140
|
### Fixed
|
97
141
|
* [#1937](https://github.com/Shopify/shopify-cli/pull/1937): Fix `theme pull` to no longer add empty lines on Windows
|
98
142
|
* [#1952](https://github.com/Shopify/shopify-cli/pull/1952): Fix CORS (cross-origin resource sharing) errors
|
@@ -101,7 +145,8 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
101
145
|
### Added
|
102
146
|
* [#1892](https://github.com/Shopify/shopify-cli/pull/1892): Add `-o`/`--only` parameter to filter files on `theme push`/`theme pull` commands
|
103
147
|
|
104
|
-
## Version 2.9.0
|
148
|
+
## Version 2.9.0 - 2022-01-17
|
149
|
+
|
105
150
|
### Fixed
|
106
151
|
* [#1922](https://github.com/Shopify/shopify-cli/pull/1922): Respect RUBY_BINDIR from Homebrew for installing gem
|
107
152
|
* [#1906](https://github.com/Shopify/shopify-cli/pull/1906): Fix Ngrok incompatibility with some Apple ARM environments
|
@@ -115,13 +160,15 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
115
160
|
* [#1871](https://github.com/Shopify/shopify-cli/pull/1871): Add a new `--live-reload` parameter to the `theme serve` command
|
116
161
|
|
117
162
|
### Changed
|
118
|
-
|
163
|
+
* [#1929](https://github.com/Shopify/shopify-cli/pull/1929): Rename `--registration-id` to `--extension-id` in `shopify extension push`.
|
164
|
+
|
165
|
+
## Version 2.8.0 - 2022-01-06
|
119
166
|
|
120
|
-
## Version 2.8.0
|
121
167
|
### Fixed
|
122
168
|
* [#1879](https://github.com/Shopify/shopify-cli/pull/1879): Disambiguate -s as store option
|
123
169
|
|
124
|
-
## Version 2.7.4
|
170
|
+
## Version 2.7.4 - 2021-12-22
|
171
|
+
|
125
172
|
### Added
|
126
173
|
* [#1825](https://github.com/Shopify/shopify-cli/pull/1825): Support passing the connection information through arguments
|
127
174
|
|
@@ -132,10 +179,11 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
132
179
|
* [#1850](https://github.com/Shopify/shopify-cli/pull/1850): Fix `shopify extension` commands timeout when organization has too many apps
|
133
180
|
* [#1860](https://github.com/Shopify/shopify-cli/pull/1860): Fix `theme serve` hot reload when there are many tabs active
|
134
181
|
|
135
|
-
## Version 2.7.3
|
182
|
+
## Version 2.7.3 - 2021-12-13
|
183
|
+
|
136
184
|
### Added
|
137
185
|
* [#1826](https://github.com/Shopify/shopify-cli/pull/1826): Support using `script.config.yml` file for script configuration
|
138
|
-
* [#1843](https://github.com/Shopify/shopify-cli/pull/
|
186
|
+
* [#1843](https://github.com/Shopify/shopify-cli/pull/1843): Support using javy on Apple ARM processors
|
139
187
|
* [#1847](https://github.com/Shopify/shopify-cli/pull/1847): `shopify script connect` command.
|
140
188
|
|
141
189
|
### Fixed
|
@@ -148,7 +196,8 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
148
196
|
* [#1830](https://github.com/Shopify/shopify-cli/pull/1830): Fix hot reload when users update many files "simultaneously"
|
149
197
|
* [#1837](https://github.com/Shopify/shopify-cli/pull/1837): Fix `ShopifyCLI::Theme::DevServer::CdnFonts` class to support any font
|
150
198
|
|
151
|
-
## Version 2.7.2
|
199
|
+
## Version 2.7.2 - 2021-11-30
|
200
|
+
|
152
201
|
### Fixed
|
153
202
|
* [#1763](https://github.com/Shopify/shopify-cli/pull/1763): Fix: Tunnel --PORT parameter not working in Node.js app.
|
154
203
|
* [#1769](https://github.com/Shopify/shopify-cli/pull/1769): Fix `theme push --development --json` to output the proper exit code
|
@@ -159,14 +208,16 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
159
208
|
* [#1788](https://github.com/Shopify/shopify-cli/pull/1788): Improve `theme serve` errors and add logs for successful operations
|
160
209
|
* [#1794](https://github.com/Shopify/shopify-cli/pull/1794): Fix bug where hidden subcommands appear in the help menu.
|
161
210
|
|
162
|
-
## Version 2.7.1
|
211
|
+
## Version 2.7.1 - 2021-11-17
|
212
|
+
|
163
213
|
### Fixed
|
164
214
|
* [#1722](https://github.com/Shopify/shopify-cli/pull/1722): Fix `theme serve` failing when the port is already being used
|
165
215
|
* [#1751](https://github.com/Shopify/shopify-cli/pull/1751): A bug in the app creation flow that caused the CLI to abort when the form validation failed.
|
166
216
|
* [#1750](https://github.com/Shopify/shopify-cli/pull/1750): Runtime errors in Windows' environments when the `PATHEXT` environment variable is not defined.
|
167
217
|
* [#1758](https://github.com/Shopify/shopify-cli/pull/1758): Fix tunnel creation for expired anonymous tunnels
|
168
218
|
|
169
|
-
## Version 2.7.0
|
219
|
+
## Version 2.7.0 - 2021-11-15
|
220
|
+
|
170
221
|
### Changed
|
171
222
|
* [#1650](https://github.com/Shopify/shopify-cli/pull/1650): **Breaking** Move app commands under `shopify app`.
|
172
223
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify-cli (2.15.
|
4
|
+
shopify-cli (2.15.3)
|
5
5
|
bugsnag (~> 6.22)
|
6
6
|
listen (~> 3.7.0)
|
7
7
|
theme-check (~> 1.10.1)
|
@@ -13,13 +13,13 @@ GEM
|
|
13
13
|
public_suffix (>= 2.0.2, < 5.0)
|
14
14
|
ansi (1.5.0)
|
15
15
|
ast (2.4.2)
|
16
|
-
bugsnag (6.
|
16
|
+
bugsnag (6.24.2)
|
17
17
|
concurrent-ruby (~> 1.0)
|
18
18
|
builder (3.2.4)
|
19
19
|
byebug (11.1.3)
|
20
20
|
coderay (1.1.3)
|
21
21
|
colorize (0.8.1)
|
22
|
-
concurrent-ruby (1.1.
|
22
|
+
concurrent-ruby (1.1.10)
|
23
23
|
crack (0.4.5)
|
24
24
|
rexml
|
25
25
|
cucumber (7.0.0)
|
@@ -55,11 +55,34 @@ GEM
|
|
55
55
|
cucumber-messages (~> 17.0, >= 17.0.1)
|
56
56
|
diff-lcs (1.4.4)
|
57
57
|
fakefs (1.3.2)
|
58
|
+
faraday (1.10.0)
|
59
|
+
faraday-em_http (~> 1.0)
|
60
|
+
faraday-em_synchrony (~> 1.0)
|
61
|
+
faraday-excon (~> 1.1)
|
62
|
+
faraday-httpclient (~> 1.0)
|
63
|
+
faraday-multipart (~> 1.0)
|
64
|
+
faraday-net_http (~> 1.0)
|
65
|
+
faraday-net_http_persistent (~> 1.0)
|
66
|
+
faraday-patron (~> 1.0)
|
67
|
+
faraday-rack (~> 1.0)
|
68
|
+
faraday-retry (~> 1.0)
|
69
|
+
ruby2_keywords (>= 0.0.4)
|
70
|
+
faraday-em_http (1.0.0)
|
71
|
+
faraday-em_synchrony (1.0.0)
|
72
|
+
faraday-excon (1.1.0)
|
73
|
+
faraday-httpclient (1.0.1)
|
74
|
+
faraday-multipart (1.0.3)
|
75
|
+
multipart-post (>= 1.2, < 3)
|
76
|
+
faraday-net_http (1.0.1)
|
77
|
+
faraday-net_http_persistent (1.2.0)
|
78
|
+
faraday-patron (1.0.0)
|
79
|
+
faraday-rack (1.0.0)
|
80
|
+
faraday-retry (1.0.3)
|
58
81
|
ffi (1.15.4)
|
59
82
|
hashdiff (1.0.1)
|
60
83
|
iniparse (1.5.0)
|
61
|
-
liquid (5.
|
62
|
-
listen (3.7.
|
84
|
+
liquid (5.3.0)
|
85
|
+
listen (3.7.1)
|
63
86
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
64
87
|
rb-inotify (~> 0.9, >= 0.9.10)
|
65
88
|
method_source (1.0.0)
|
@@ -77,9 +100,13 @@ GEM
|
|
77
100
|
ruby-progressbar
|
78
101
|
mocha (1.13.0)
|
79
102
|
multi_test (0.1.2)
|
103
|
+
multipart-post (2.1.1)
|
80
104
|
nokogiri (1.13.3)
|
81
105
|
mini_portile2 (~> 2.8.0)
|
82
106
|
racc (~> 1.4)
|
107
|
+
octokit (4.22.0)
|
108
|
+
faraday (>= 0.9)
|
109
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
83
110
|
parallel (1.21.0)
|
84
111
|
parser (3.1.1.0)
|
85
112
|
ast (~> 2.4.1)
|
@@ -94,7 +121,7 @@ GEM
|
|
94
121
|
rack (2.2.3)
|
95
122
|
rainbow (3.1.1)
|
96
123
|
rake (13.0.6)
|
97
|
-
rb-fsevent (0.11.
|
124
|
+
rb-fsevent (0.11.1)
|
98
125
|
rb-inotify (0.10.1)
|
99
126
|
ffi (~> 1.0)
|
100
127
|
regexp_parser (2.2.0)
|
@@ -117,9 +144,13 @@ GEM
|
|
117
144
|
rubocop-shopify (2.0.1)
|
118
145
|
rubocop (~> 1.11)
|
119
146
|
ruby-progressbar (1.11.0)
|
147
|
+
ruby2_keywords (0.0.5)
|
148
|
+
sawyer (0.8.2)
|
149
|
+
addressable (>= 2.3.5)
|
150
|
+
faraday (> 0.8, < 2.0)
|
120
151
|
sys-uname (1.2.2)
|
121
152
|
ffi (~> 1.1)
|
122
|
-
theme-check (1.10.
|
153
|
+
theme-check (1.10.2)
|
123
154
|
liquid (>= 5.1.0)
|
124
155
|
nokogiri (>= 1.12)
|
125
156
|
parser (~> 3)
|
@@ -144,6 +175,7 @@ DEPENDENCIES
|
|
144
175
|
minitest-fail-fast
|
145
176
|
minitest-reporters
|
146
177
|
mocha
|
178
|
+
octokit (~> 4.0)
|
147
179
|
pry-byebug
|
148
180
|
rack
|
149
181
|
rake
|
data/Rakefile
CHANGED
@@ -129,6 +129,54 @@ end
|
|
129
129
|
desc("Builds all distribution packages of the CLI")
|
130
130
|
task(package: "package:all")
|
131
131
|
|
132
|
+
namespace :changelog do
|
133
|
+
require "shopify_cli/changelog"
|
134
|
+
|
135
|
+
task :update do
|
136
|
+
ShopifyCLI::Changelog.new.update!
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
namespace :release do
|
141
|
+
require "shopify_cli/release"
|
142
|
+
|
143
|
+
task :prepare, [:new_version] do |_t, args|
|
144
|
+
new_version = args[:new_version]
|
145
|
+
unless new_version
|
146
|
+
raise <<~NO_NEW_VERSION
|
147
|
+
New version must be provided, e.g.:
|
148
|
+
|
149
|
+
$ GITHUB_ACCESS_TOKEN=abcdef rake "release:prepare[1.2.3]"
|
150
|
+
|
151
|
+
NO_NEW_VERSION
|
152
|
+
end
|
153
|
+
github_access_token = ENV["GITHUB_ACCESS_TOKEN"]
|
154
|
+
unless github_access_token
|
155
|
+
raise <<~NO_GITHUB_ACCESS_TOKEN
|
156
|
+
GitHub access token must be provided, e.g.:
|
157
|
+
|
158
|
+
$ GITHUB_ACCESS_TOKEN=abcdef rake "release:prepare[1.2.3]"
|
159
|
+
NO_GITHUB_ACCESS_TOKEN
|
160
|
+
end
|
161
|
+
|
162
|
+
ShopifyCLI::Release.new(new_version, github_access_token).prepare!
|
163
|
+
puts "Completed!"
|
164
|
+
end
|
165
|
+
|
166
|
+
task :package do
|
167
|
+
github_access_token = ENV["GITHUB_ACCESS_TOKEN"]
|
168
|
+
unless github_access_token
|
169
|
+
raise <<~NO_GITHUB_ACCESS_TOKEN
|
170
|
+
GitHub access token must be provided, e.g.:
|
171
|
+
|
172
|
+
$ GITHUB_ACCESS_TOKEN=abcdef rake release:package
|
173
|
+
NO_GITHUB_ACCESS_TOKEN
|
174
|
+
end
|
175
|
+
ShopifyCLI::Release.new(ShopifyCLI::VERSION, github_access_token).package!
|
176
|
+
puts "Completed!"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
132
180
|
namespace :extensions do
|
133
181
|
task :update do
|
134
182
|
version = ENV.fetch("VERSION").strip
|
@@ -0,0 +1 @@
|
|
1
|
+
c7e97d166e46d96fa43a70046c80607035101b4a96e40edcf4643a6c92913692
|
@@ -0,0 +1 @@
|
|
1
|
+
877e6383b921de2b93ecaf5d1d902c7305d65bdab52758b9d5c02d9c5cea45ab
|
@@ -0,0 +1 @@
|
|
1
|
+
c8a40adf83cacae33f819fa78501355eee9077dce3818ab4a483b2473952941e
|
@@ -0,0 +1 @@
|
|
1
|
+
9ca1e65b0f7a2645f408cb65e683d243069f03828d4b3eeaf59f3012e5d41e73
|
data/ext/javy/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
v0.
|
1
|
+
v0.3.0
|
@@ -1 +1 @@
|
|
1
|
-
v0.
|
1
|
+
v0.2.0
|
@@ -32,7 +32,12 @@ module Extension
|
|
32
32
|
|
33
33
|
def call(*)
|
34
34
|
if project.specification_identifier == "THEME_APP_EXTENSION"
|
35
|
-
|
35
|
+
begin
|
36
|
+
@theme_check.run!
|
37
|
+
rescue ThemeCheck::Cli::Abort, ThemeCheck::ThemeCheckError => e
|
38
|
+
raise ShopifyCLI::Abort,
|
39
|
+
ShopifyCLI::Context.message("theme.check.error", e.full_message)
|
40
|
+
end
|
36
41
|
else
|
37
42
|
@ctx.abort(@ctx.message("check.unsupported", project.specification_identifier))
|
38
43
|
end
|
@@ -11,21 +11,18 @@ module Extension
|
|
11
11
|
default: -> { CLI::UI::Prompt.method(:ask) }
|
12
12
|
|
13
13
|
def call(project_details)
|
14
|
-
|
15
|
-
|
14
|
+
if template_required?(project_details)
|
15
|
+
project_details.template = template || choose_interactively
|
16
|
+
end
|
16
17
|
project_details
|
17
18
|
end
|
18
19
|
|
19
20
|
private
|
20
21
|
|
21
22
|
def template_required?(project_details)
|
22
|
-
return false unless extension_server_beta?
|
23
23
|
type = project_details&.type&.identifier
|
24
|
-
Models::DevelopmentServerRequirements
|
25
|
-
|
26
|
-
|
27
|
-
def extension_server_beta?
|
28
|
-
ShopifyCLI::Shopifolk.check && ShopifyCLI::Feature.enabled?(:extension_server_beta)
|
24
|
+
(Models::DevelopmentServerRequirements.beta_enabled? &&
|
25
|
+
Models::DevelopmentServerRequirements.type_supported?(type.downcase))
|
29
26
|
end
|
30
27
|
|
31
28
|
def choose_interactively
|
@@ -41,7 +41,7 @@ module Extension
|
|
41
41
|
invalid_api_key: "The API key %s does not match any of your apps.",
|
42
42
|
ask_app: "Which app would you like to register this extension with?",
|
43
43
|
no_apps: "{{x}} You don’t have any apps.",
|
44
|
-
learn_about_apps: "{{*}} Learn more about building apps at <https://shopify.dev/
|
44
|
+
learn_about_apps: "{{*}} Learn more about building apps at <https://shopify.dev/apps>, " \
|
45
45
|
"or try creating a new app using {{command:shopify [node|rails] create}}.",
|
46
46
|
loading_apps: "Loading your apps…",
|
47
47
|
no_available_extensions: "{{x}} There are no available extensions for this app.",
|
@@ -73,8 +73,6 @@ module Extension
|
|
73
73
|
help: <<~HELP,
|
74
74
|
Register your local extension to a Shopify app
|
75
75
|
Usage: {{command:%s extension register}}
|
76
|
-
Options:
|
77
|
-
{{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.
|
78
76
|
HELP
|
79
77
|
frame_title: "Registering Extension",
|
80
78
|
waiting_text: "Registering with Shopify…",
|
@@ -115,6 +113,16 @@ module Extension
|
|
115
113
|
tunnel_already_running: "A tunnel running on another port has been detected. Close the tunnel and try again.",
|
116
114
|
},
|
117
115
|
tunnel: {
|
116
|
+
duplicate_session: <<~MESSAGE,
|
117
|
+
Another ngrok tunnel is currently running with your auth token, possibly on another machine.
|
118
|
+
|
119
|
+
Terminate that tunnel before opening a new one.
|
120
|
+
MESSAGE
|
121
|
+
invalid_token: <<~MESSAGE,
|
122
|
+
The ngrok token currently configured is invalid.
|
123
|
+
|
124
|
+
After generating a new token, update your local ngrok configuration using {{command:shopify app tunnel auth <token>}}
|
125
|
+
MESSAGE
|
118
126
|
missing_token: "{{x}} {{red:auth requires a token argument}}. "\
|
119
127
|
"Find it on your ngrok dashboard: {{underline:https://dashboard.ngrok.com/auth/your-authtoken}}.",
|
120
128
|
invalid_port: "%s is not a valid port.",
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require "shopify_cli"
|
3
4
|
|
4
5
|
module Extension
|
@@ -8,25 +9,31 @@ module Extension
|
|
8
9
|
"checkout_ui_extension",
|
9
10
|
"checkout_post_purchase",
|
10
11
|
"product_subscription",
|
12
|
+
"beacon_extension",
|
11
13
|
]
|
12
14
|
|
13
15
|
class << self
|
14
16
|
def supported?(type)
|
15
|
-
binary_installed? && type_supported?(type) &&
|
17
|
+
binary_installed? && type_supported?(type) && type_enabled?(type)
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
def binary_installed?
|
21
|
-
Models::DevelopmentServer.new.executable_installed?
|
20
|
+
def beta_enabled?
|
21
|
+
ShopifyCLI::Feature.enabled?(:extension_server_beta)
|
22
22
|
end
|
23
23
|
|
24
24
|
def type_supported?(type)
|
25
25
|
SUPPORTED_EXTENSION_TYPES.include?(type.downcase)
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
private
|
29
|
+
|
30
|
+
def binary_installed?
|
31
|
+
Models::DevelopmentServer.new.executable_installed?
|
32
|
+
end
|
33
|
+
|
34
|
+
# Some types are enabled unconditionally; others require beta_enabled
|
35
|
+
def type_enabled?(type)
|
36
|
+
beta_enabled? || "checkout_ui_extension" == type.downcase
|
30
37
|
end
|
31
38
|
end
|
32
39
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "base64"
|
3
|
+
require "fileutils"
|
4
|
+
require "json"
|
5
|
+
require_relative "beacon_extension_utils/script_config"
|
6
|
+
require_relative "beacon_extension_utils/script_config_repository"
|
7
|
+
|
8
|
+
module Extension
|
9
|
+
module Models
|
10
|
+
module SpecificationHandlers
|
11
|
+
class BeaconExtension < Default
|
12
|
+
SCRIPT_FILE = "build/main.js"
|
13
|
+
|
14
|
+
def name
|
15
|
+
"Beacon Extension"
|
16
|
+
end
|
17
|
+
|
18
|
+
def read_configuration
|
19
|
+
end
|
20
|
+
|
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",
|
23
|
+
key)) unless ext_config.key?(key)
|
24
|
+
|
25
|
+
begin
|
26
|
+
process_value.nil? ? ext_config[key] : process_value.call(ext_config[key])
|
27
|
+
rescue StandardError
|
28
|
+
context.abort(context.message("core.extension.push.beacon_extension.error.invalid_config_value_error", key))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def config(context)
|
33
|
+
begin
|
34
|
+
ext_config = BeaconExtensionUtils::ScriptConfigYmlRepository.new(ctx: context).get!.content
|
35
|
+
rescue StandardError
|
36
|
+
context.abort(context.message("core.extension.push.beacon_extension.error.file_read_error",
|
37
|
+
BeaconExtensionUtils::ScriptConfigYmlRepository.filename))
|
38
|
+
end
|
39
|
+
|
40
|
+
begin
|
41
|
+
script_contents = File.read(File.join(context.root, SCRIPT_FILE)).chomp
|
42
|
+
rescue
|
43
|
+
context.abort(context.message("core.extension.push.beacon_extension.error.file_read_error", SCRIPT_FILE))
|
44
|
+
end
|
45
|
+
{
|
46
|
+
runtime_context: access_config_property(context, ext_config, "runtime_context"),
|
47
|
+
serialized_script: Base64.strict_encode64(script_contents),
|
48
|
+
runtime_configuration_definition: access_config_property(context, ext_config,
|
49
|
+
"configuration", &:to_json),
|
50
|
+
config_version: access_config_property(context, ext_config,
|
51
|
+
"version", &:to_s),
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Extension
|
4
|
+
module Models
|
5
|
+
module SpecificationHandlers
|
6
|
+
module BeaconExtensionUtils
|
7
|
+
class ScriptConfig
|
8
|
+
attr_reader :content, :version, :configuration, :filename
|
9
|
+
|
10
|
+
REQUIRED_FIELDS = %w(version)
|
11
|
+
|
12
|
+
def initialize(content:, filename:)
|
13
|
+
@filename = filename
|
14
|
+
validate_content!(content)
|
15
|
+
@content = content
|
16
|
+
@version = @content["version"].to_s
|
17
|
+
@configuration = @content["configuration"]
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def validate_content!(content)
|
23
|
+
REQUIRED_FIELDS.each do |field|
|
24
|
+
if content[field].nil?
|
25
|
+
raise "invalid field:#{field}, filename:#{filename}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|