shopify_app 18.0.2 → 19.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +4 -5
- data/.gitignore +1 -0
- data/.nvmrc +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +52 -2
- data/CONTRIBUTING.md +6 -1
- data/Gemfile +3 -2
- data/Gemfile.lock +144 -164
- data/README.md +1 -0
- data/Rakefile +4 -3
- data/app/assets/javascripts/shopify_app/app_bridge_2.0.12.js +10 -0
- data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +22 -0
- data/app/assets/javascripts/shopify_app/redirect.js +9 -11
- data/app/assets/javascripts/shopify_app/storage_access.js +4 -10
- data/app/controllers/concerns/shopify_app/authenticated.rb +3 -0
- data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +16 -3
- data/app/controllers/concerns/shopify_app/require_known_shop.rb +1 -0
- data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +1 -1
- data/app/controllers/shopify_app/authenticated_controller.rb +1 -0
- data/app/controllers/shopify_app/callback_controller.rb +49 -134
- data/app/controllers/shopify_app/sessions_controller.rb +26 -131
- data/app/controllers/shopify_app/webhooks_controller.rb +5 -24
- data/app/views/shopify_app/sessions/enable_cookies.html.erb +1 -1
- data/app/views/shopify_app/sessions/request_storage_access.html.erb +11 -11
- data/app/views/shopify_app/sessions/top_level_interaction.html.erb +1 -1
- data/app/views/shopify_app/shared/redirect.html.erb +2 -2
- data/config/locales/zh-CN.yml +1 -1
- data/config/routes.rb +20 -12
- data/docs/Troubleshooting.md +0 -3
- data/docs/Upgrading.md +116 -14
- data/docs/shopify_app/engine.md +2 -2
- data/docs/shopify_app/handling-access-scopes-changes.md +11 -1
- data/docs/shopify_app/script-tags.md +1 -1
- data/docs/shopify_app/webhooks.md +3 -3
- data/lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb +10 -9
- data/lib/generators/shopify_app/add_after_authenticate_job/templates/after_authenticate_job.rb +1 -0
- data/lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb +4 -3
- data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +13 -12
- data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +9 -1
- data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +7 -6
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb +2 -1
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb +1 -1
- data/lib/generators/shopify_app/authenticated_controller/authenticated_controller_generator.rb +3 -3
- data/lib/generators/shopify_app/controllers/controllers_generator.rb +4 -3
- data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +11 -15
- data/lib/generators/shopify_app/home_controller/templates/home_controller.rb +2 -2
- data/lib/generators/shopify_app/home_controller/templates/index.html.erb +7 -3
- data/lib/generators/shopify_app/install/install_generator.rb +27 -72
- data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +3 -1
- data/lib/generators/shopify_app/install/templates/session_store.rb +2 -1
- data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +33 -5
- data/lib/generators/shopify_app/install/templates/shopify_app_importmap.js +13 -0
- data/lib/generators/shopify_app/products_controller/products_controller_generator.rb +3 -3
- data/lib/generators/shopify_app/products_controller/templates/products_controller.rb +1 -1
- data/lib/generators/shopify_app/rotate_shopify_token_job/rotate_shopify_token_job_generator.rb +4 -4
- data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token.rake +1 -0
- data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token_job.rb +1 -1
- data/lib/generators/shopify_app/routes/routes_generator.rb +6 -5
- data/lib/generators/shopify_app/routes/templates/routes.rb +5 -5
- data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +11 -10
- data/lib/generators/shopify_app/shop_model/templates/shop.rb +1 -0
- data/lib/generators/shopify_app/shopify_app_generator.rb +4 -3
- data/lib/generators/shopify_app/user_model/templates/user.rb +1 -0
- data/lib/generators/shopify_app/user_model/user_model_generator.rb +11 -10
- data/lib/generators/shopify_app/views/views_generator.rb +4 -3
- data/lib/shopify_app/access_scopes/shop_strategy.rb +2 -2
- data/lib/shopify_app/access_scopes/user_strategy.rb +4 -4
- data/lib/shopify_app/configuration.rb +33 -14
- data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +4 -3
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
- data/lib/shopify_app/controller_concerns/embedded_app.rb +4 -3
- data/lib/shopify_app/controller_concerns/ensure_billing.rb +254 -0
- data/lib/shopify_app/controller_concerns/itp.rb +3 -3
- data/lib/shopify_app/controller_concerns/localization.rb +1 -0
- data/lib/shopify_app/controller_concerns/login_protection.rb +82 -68
- data/lib/shopify_app/controller_concerns/payload_verification.rb +3 -2
- data/lib/shopify_app/controller_concerns/webhook_verification.rb +2 -1
- data/lib/shopify_app/engine.rb +7 -15
- data/lib/shopify_app/jobs/scripttags_manager_job.rb +2 -2
- data/lib/shopify_app/jobs/webhooks_manager_job.rb +4 -5
- data/lib/shopify_app/managers/scripttags_manager.rb +11 -4
- data/lib/shopify_app/managers/webhooks_manager.rb +42 -44
- data/lib/shopify_app/middleware/jwt_middleware.rb +5 -3
- data/lib/shopify_app/session/in_memory_session_store.rb +1 -0
- data/lib/shopify_app/session/in_memory_shop_session_store.rb +2 -1
- data/lib/shopify_app/session/in_memory_user_session_store.rb +1 -0
- data/lib/shopify_app/session/jwt.rb +12 -7
- data/lib/shopify_app/session/null_user_session_store.rb +2 -1
- data/lib/shopify_app/session/session_repository.rb +37 -0
- data/lib/shopify_app/session/session_storage.rb +4 -6
- data/lib/shopify_app/session/shop_session_storage.rb +6 -6
- data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +7 -8
- data/lib/shopify_app/session/user_session_storage.rb +19 -6
- data/lib/shopify_app/session/user_session_storage_with_scopes.rb +22 -9
- data/lib/shopify_app/test_helpers/all.rb +2 -1
- data/lib/shopify_app/test_helpers/webhook_verification_helper.rb +4 -3
- data/lib/shopify_app/utils.rb +4 -10
- data/lib/shopify_app/version.rb +2 -1
- data/lib/shopify_app.rb +44 -40
- data/package.json +1 -1
- data/shopify_app.gemspec +22 -21
- data/translation.yml +1 -1
- data/yarn.lock +103 -88
- metadata +51 -60
- data/config/locales/hi.yml +0 -23
- data/config/locales/ms.yml +0 -22
- data/lib/generators/shopify_app/install/templates/omniauth.rb +0 -4
- data/lib/generators/shopify_app/install/templates/shopify_provider.rb.tt +0 -8
- data/lib/generators/shopify_app/install/templates/user_agent.rb +0 -6
- data/lib/shopify_app/middleware/same_site_cookie_middleware.rb +0 -34
- data/lib/shopify_app/omniauth/omniauth_configuration.rb +0 -64
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0eed46621f78732a98d006f66631afbf2d5dcd17ed88af699ac20ff141df6ff6
|
4
|
+
data.tar.gz: 38180008e68e107e260eb0d629035ec65a8bd23915f361a4e9716ae4abca6604
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f0d7de43a22c940aa6e64ad343605b5ab4662d3cb9a9a4f21df3ba96f0fcee301f7430efed97dfcc55fe7b2b13dd7398c294895c08cbf777fb2b7b1fdce8fdf
|
7
|
+
data.tar.gz: 4671f6646686de7feb6c5b410ee435108fe98686bf35b6884e2305895d51038dbb7b24ac21d1da12b8e16dc71d831e6fbf769c5de510413b17d2c68cdfeb26ed
|
data/.github/workflows/build.yml
CHANGED
@@ -2,9 +2,9 @@ name: CI
|
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [
|
5
|
+
branches: [ main ]
|
6
6
|
pull_request:
|
7
|
-
branches: [
|
7
|
+
branches: [ main ]
|
8
8
|
|
9
9
|
jobs:
|
10
10
|
build:
|
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
name: Ruby ${{ matrix.version }}
|
13
13
|
strategy:
|
14
14
|
matrix:
|
15
|
-
version: [2.
|
15
|
+
version: ['2.6', '2.7', '3.0']
|
16
16
|
|
17
17
|
steps:
|
18
18
|
- uses: actions/checkout@v2
|
@@ -24,7 +24,7 @@ jobs:
|
|
24
24
|
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
25
25
|
- name: Set up Ruby ${{ matrix.version }}
|
26
26
|
uses: ruby/setup-ruby@v1
|
27
|
-
with:
|
27
|
+
with:
|
28
28
|
ruby-version: ${{ matrix.version }}
|
29
29
|
bundler-cache: true
|
30
30
|
- name: Set up Node
|
@@ -38,4 +38,3 @@ jobs:
|
|
38
38
|
run: |
|
39
39
|
yarn test
|
40
40
|
bundle exec rake test
|
41
|
-
|
data/.gitignore
CHANGED
data/.nvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
12.22.8
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.3
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,53 @@
|
|
1
|
+
Unreleased
|
2
|
+
----------
|
3
|
+
|
4
|
+
19.1.0 (June 20, 2022)
|
5
|
+
----------
|
6
|
+
|
7
|
+
* Add the `login_callback_url` config to allow overwriting that route as well, and mount the engine routes based on the configurations. [#1445](https://github.com/Shopify/shopify_app/pull/1445)
|
8
|
+
* Add special headers when returning 401s from LoginProtection. [#1450](https://github.com/Shopify/shopify_app/pull/1450)
|
9
|
+
* Add a new `billing` configuration which takes in a `ShopifyApp::BillingConfiguration` object and checks for payment on controllers with `Authenticated`. [#1455](https://github.com/Shopify/shopify_app/pull/1455)
|
10
|
+
|
11
|
+
19.0.2 (April 27, 2022)
|
12
|
+
----------
|
13
|
+
|
14
|
+
* Fix regression in apps using online tokens. [#1413](https://github.com/Shopify/shopify_app/pull/1413)
|
15
|
+
* Bump [Shopify API](https://github.com/Shopify/shopify_api) to version 10.0.3. It includes [these fixes](https://github.com/Shopify/shopify_api/blob/main/CHANGELOG.md#version-1003).
|
16
|
+
|
17
|
+
19.0.1 (April 11, 2022)
|
18
|
+
----------
|
19
|
+
* Bump Shopify API (https://github.com/Shopify/shopify_api) to version 10.0.2. This update includes patch fixes since the initial v10 release.
|
20
|
+
|
21
|
+
19.0.0 (April 6, 2022)
|
22
|
+
----------
|
23
|
+
* Use v10 of the Shopify API (https://github.com/Shopify/shopify_api). This update requires changes to an app - please refer to the [migration guide](https://github.com/Shopify/shopify_app/blob/main/docs/Upgrading.md) for details.
|
24
|
+
BREAKING, please see migration notes.
|
25
|
+
|
26
|
+
18.1.2 (Mar 3, 2022)
|
27
|
+
----------
|
28
|
+
* Use the App Bridge 2.0 redirect when attempting to break out of an iframe. This happens when an app is installed, requires new access scopes, or re-authentication because the login session is expired. [#1376](https://github.com/Shopify/shopify_app/pull/1376)
|
29
|
+
|
30
|
+
18.1.1 (Feb 2, 2022)
|
31
|
+
----------
|
32
|
+
* Fix bug causing `unsafe-inline` CSP violation. [#1362](https://github.com/Shopify/shopify_app/pull/1362)
|
33
|
+
|
34
|
+
18.1.0 (Jan 28, 2022)
|
35
|
+
----------
|
36
|
+
* Support Rails 7 [#1354](https://github.com/Shopify/shopify_app/pull/1354)
|
37
|
+
* Fix webhooks handling in Ruby 3 [#1342](https://github.com/Shopify/shopify_app/pull/1342)
|
38
|
+
* Update to Ruby 3 and drop support to Ruby 2.5 [#1359](https://github.com/Shopify/shopify_app/pull/1359)
|
39
|
+
|
40
|
+
18.0.4 (Jan 27, 2022)
|
41
|
+
----------
|
42
|
+
* Use App Bridge client for redirect [#1247](https://github.com/Shopify/shopify_app/pull/1247)
|
43
|
+
* Replaces deprecated EASDK with App Bridge when redirecting out of an embedded iframe.
|
44
|
+
|
45
|
+
18.0.3 (Jan 7, 2022)
|
46
|
+
----------
|
47
|
+
* Change regexp to match standard ngrok URLs. [#1311](https://github.com/Shopify/shopify_app/pull/1311)
|
48
|
+
* Make `EnsureAuthenticatedLinks` compatible with AppBridge 2.0. [#1277](https://github.com/Shopify/shopify_app/pull/1277)
|
49
|
+
* Includes the `host` parameter when redirecting to the splash page in an unauthenticated state.
|
50
|
+
|
1
51
|
18.0.2 (Jun 15, 2021)
|
2
52
|
----------
|
3
53
|
* Added careers link to readme. [#1274](https://github.com/Shopify/shopify_app/pull/1274)
|
@@ -8,7 +58,7 @@
|
|
8
58
|
|
9
59
|
18.0.0 (May 3, 2021)
|
10
60
|
----------
|
11
|
-
* Support OmniAuth 2.x
|
61
|
+
* Support OmniAuth 2.x
|
12
62
|
* If your app has custom OmniAuth configuration, please refer to the [OmniAuth 2.0 upgrade guide](https://github.com/omniauth/omniauth/wiki/Upgrading-to-2.0).
|
13
63
|
* Support App Bridge version 2.x in the Embedded App layout. [#1241](https://github.com/Shopify/shopify_app/pull/1241)
|
14
64
|
|
@@ -38,7 +88,7 @@
|
|
38
88
|
|
39
89
|
17.0.4 (January 25, 2021)
|
40
90
|
----------
|
41
|
-
* Redirect user to login page if shopify domain is not found in the `EnsureAuthenticatedLinks` concern [#1158](https://github.com/Shopify/shopify_app/pull/1158)
|
91
|
+
* Redirect user to login page if shopify domain is not found in the `EnsureAuthenticatedLinks` concern [#1158](https://github.com/Shopify/shopify_app/pull/1158)
|
42
92
|
|
43
93
|
17.0.3 (January 22, 2021)
|
44
94
|
----------
|
data/CONTRIBUTING.md
CHANGED
@@ -73,4 +73,9 @@ Please follow these steps to have your contribution considered by the maintainer
|
|
73
73
|
<summary>What if the status checks are failing?</summary>
|
74
74
|
|
75
75
|
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
|
76
|
-
</details>
|
76
|
+
</details>
|
77
|
+
|
78
|
+
### App Bridge client
|
79
|
+
|
80
|
+
This gem ships with a UMD version of the App Bridge client. It lives inside the assets folder: `app/assets/javascripts/shopify_app/`. To update the client, simply download the UMD build from [unpkg.com](https://unpkg.com/@shopify/app-bridge) and save it into the folder.
|
81
|
+
Please follow the convention of including the client version number in the filename. Finally, change the reference to the new App Bridge client inside `app/assets/javascripts/shopify_app/app_bridge_redirect.js`.
|
data/Gemfile
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
source "https://rubygems.org"
|
3
4
|
|
4
5
|
# Specify your gem's dependencies in shopify_app.gemspec
|
5
6
|
gemspec
|
6
7
|
|
7
|
-
gem
|
8
|
+
gem "rails-controller-testing", group: :test
|
8
9
|
|
9
10
|
group :rubocop do
|
10
|
-
gem
|
11
|
+
gem "rubocop-shopify", require: false
|
11
12
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,188 +1,161 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify_app (
|
5
|
-
|
4
|
+
shopify_app (19.1.0)
|
5
|
+
activeresource
|
6
|
+
browser_sniffer (~> 2.0)
|
6
7
|
jwt (>= 2.2.3)
|
7
|
-
|
8
|
-
omniauth-shopify-oauth2 (~> 2.3)
|
9
|
-
rails (> 5.2.1, < 6.2)
|
8
|
+
rails (> 5.2.1)
|
10
9
|
redirect_safely (~> 1.0)
|
11
|
-
shopify_api (~>
|
10
|
+
shopify_api (~> 10.0)
|
11
|
+
sprockets-rails (>= 2.0.0)
|
12
12
|
|
13
13
|
GEM
|
14
14
|
remote: https://rubygems.org/
|
15
15
|
specs:
|
16
|
-
actioncable (6.1.
|
17
|
-
actionpack (= 6.1.
|
18
|
-
activesupport (= 6.1.
|
16
|
+
actioncable (6.1.5)
|
17
|
+
actionpack (= 6.1.5)
|
18
|
+
activesupport (= 6.1.5)
|
19
19
|
nio4r (~> 2.0)
|
20
20
|
websocket-driver (>= 0.6.1)
|
21
|
-
actionmailbox (6.1.
|
22
|
-
actionpack (= 6.1.
|
23
|
-
activejob (= 6.1.
|
24
|
-
activerecord (= 6.1.
|
25
|
-
activestorage (= 6.1.
|
26
|
-
activesupport (= 6.1.
|
21
|
+
actionmailbox (6.1.5)
|
22
|
+
actionpack (= 6.1.5)
|
23
|
+
activejob (= 6.1.5)
|
24
|
+
activerecord (= 6.1.5)
|
25
|
+
activestorage (= 6.1.5)
|
26
|
+
activesupport (= 6.1.5)
|
27
27
|
mail (>= 2.7.1)
|
28
|
-
actionmailer (6.1.
|
29
|
-
actionpack (= 6.1.
|
30
|
-
actionview (= 6.1.
|
31
|
-
activejob (= 6.1.
|
32
|
-
activesupport (= 6.1.
|
28
|
+
actionmailer (6.1.5)
|
29
|
+
actionpack (= 6.1.5)
|
30
|
+
actionview (= 6.1.5)
|
31
|
+
activejob (= 6.1.5)
|
32
|
+
activesupport (= 6.1.5)
|
33
33
|
mail (~> 2.5, >= 2.5.4)
|
34
34
|
rails-dom-testing (~> 2.0)
|
35
|
-
actionpack (6.1.
|
36
|
-
actionview (= 6.1.
|
37
|
-
activesupport (= 6.1.
|
35
|
+
actionpack (6.1.5)
|
36
|
+
actionview (= 6.1.5)
|
37
|
+
activesupport (= 6.1.5)
|
38
38
|
rack (~> 2.0, >= 2.0.9)
|
39
39
|
rack-test (>= 0.6.3)
|
40
40
|
rails-dom-testing (~> 2.0)
|
41
41
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
42
|
-
actiontext (6.1.
|
43
|
-
actionpack (= 6.1.
|
44
|
-
activerecord (= 6.1.
|
45
|
-
activestorage (= 6.1.
|
46
|
-
activesupport (= 6.1.
|
42
|
+
actiontext (6.1.5)
|
43
|
+
actionpack (= 6.1.5)
|
44
|
+
activerecord (= 6.1.5)
|
45
|
+
activestorage (= 6.1.5)
|
46
|
+
activesupport (= 6.1.5)
|
47
47
|
nokogiri (>= 1.8.5)
|
48
|
-
actionview (6.1.
|
49
|
-
activesupport (= 6.1.
|
48
|
+
actionview (6.1.5)
|
49
|
+
activesupport (= 6.1.5)
|
50
50
|
builder (~> 3.1)
|
51
51
|
erubi (~> 1.4)
|
52
52
|
rails-dom-testing (~> 2.0)
|
53
53
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
54
|
-
activejob (6.1.
|
55
|
-
activesupport (= 6.1.
|
54
|
+
activejob (6.1.5)
|
55
|
+
activesupport (= 6.1.5)
|
56
56
|
globalid (>= 0.3.6)
|
57
|
-
activemodel (6.1.
|
58
|
-
activesupport (= 6.1.
|
57
|
+
activemodel (6.1.5)
|
58
|
+
activesupport (= 6.1.5)
|
59
59
|
activemodel-serializers-xml (1.0.2)
|
60
60
|
activemodel (> 5.x)
|
61
61
|
activesupport (> 5.x)
|
62
62
|
builder (~> 3.1)
|
63
|
-
activerecord (6.1.
|
64
|
-
activemodel (= 6.1.
|
65
|
-
activesupport (= 6.1.
|
66
|
-
activeresource (
|
67
|
-
activemodel (>=
|
63
|
+
activerecord (6.1.5)
|
64
|
+
activemodel (= 6.1.5)
|
65
|
+
activesupport (= 6.1.5)
|
66
|
+
activeresource (6.0.0)
|
67
|
+
activemodel (>= 6.0)
|
68
68
|
activemodel-serializers-xml (~> 1.0)
|
69
|
-
activesupport (>=
|
70
|
-
activestorage (6.1.
|
71
|
-
actionpack (= 6.1.
|
72
|
-
activejob (= 6.1.
|
73
|
-
activerecord (= 6.1.
|
74
|
-
activesupport (= 6.1.
|
75
|
-
marcel (~> 1.0
|
76
|
-
mini_mime (
|
77
|
-
activesupport (6.1.
|
69
|
+
activesupport (>= 6.0)
|
70
|
+
activestorage (6.1.5)
|
71
|
+
actionpack (= 6.1.5)
|
72
|
+
activejob (= 6.1.5)
|
73
|
+
activerecord (= 6.1.5)
|
74
|
+
activesupport (= 6.1.5)
|
75
|
+
marcel (~> 1.0)
|
76
|
+
mini_mime (>= 1.1.0)
|
77
|
+
activesupport (6.1.5)
|
78
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
79
79
|
i18n (>= 1.6, < 2)
|
80
80
|
minitest (>= 5.1)
|
81
81
|
tzinfo (~> 2.0)
|
82
82
|
zeitwerk (~> 2.3)
|
83
|
-
addressable (2.
|
83
|
+
addressable (2.8.0)
|
84
84
|
public_suffix (>= 2.0.2, < 5.0)
|
85
|
-
ast (2.4.
|
86
|
-
binding_of_caller (0.
|
85
|
+
ast (2.4.2)
|
86
|
+
binding_of_caller (1.0.0)
|
87
87
|
debug_inspector (>= 0.0.1)
|
88
|
-
browser_sniffer (
|
88
|
+
browser_sniffer (2.0.0)
|
89
89
|
builder (3.2.4)
|
90
90
|
byebug (11.1.3)
|
91
91
|
coderay (1.1.3)
|
92
|
-
concurrent-ruby (1.1.
|
93
|
-
crack (0.4.
|
92
|
+
concurrent-ruby (1.1.10)
|
93
|
+
crack (0.4.5)
|
94
|
+
rexml
|
94
95
|
crass (1.0.6)
|
95
|
-
debug_inspector (
|
96
|
+
debug_inspector (1.1.0)
|
96
97
|
erubi (1.10.0)
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
faraday-net_http_persistent (~> 1.1)
|
101
|
-
multipart-post (>= 1.2, < 3)
|
102
|
-
ruby2_keywords (>= 0.0.4)
|
103
|
-
faraday-excon (1.1.0)
|
104
|
-
faraday-net_http (1.0.1)
|
105
|
-
faraday-net_http_persistent (1.1.0)
|
106
|
-
globalid (0.4.2)
|
107
|
-
activesupport (>= 4.2.0)
|
108
|
-
graphql (1.12.8)
|
109
|
-
graphql-client (0.16.0)
|
110
|
-
activesupport (>= 3.0)
|
111
|
-
graphql (~> 1.8)
|
98
|
+
globalid (1.0.0)
|
99
|
+
activesupport (>= 5.0)
|
100
|
+
hash_diff (1.0.0)
|
112
101
|
hashdiff (1.0.1)
|
113
|
-
|
114
|
-
|
102
|
+
httparty (0.20.0)
|
103
|
+
mime-types (~> 3.0)
|
104
|
+
multi_xml (>= 0.5.2)
|
105
|
+
i18n (1.10.0)
|
115
106
|
concurrent-ruby (~> 1.0)
|
116
|
-
jwt (2.
|
117
|
-
loofah (2.
|
107
|
+
jwt (2.4.1)
|
108
|
+
loofah (2.15.0)
|
118
109
|
crass (~> 1.0.2)
|
119
110
|
nokogiri (>= 1.5.9)
|
120
111
|
mail (2.7.1)
|
121
112
|
mini_mime (>= 0.1.1)
|
122
|
-
marcel (1.0.
|
123
|
-
method_source (0.
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
113
|
+
marcel (1.0.2)
|
114
|
+
method_source (1.0.0)
|
115
|
+
mime-types (3.4.1)
|
116
|
+
mime-types-data (~> 3.2015)
|
117
|
+
mime-types-data (3.2022.0105)
|
118
|
+
mini_mime (1.1.2)
|
119
|
+
mini_portile2 (2.8.0)
|
120
|
+
minitest (5.15.0)
|
121
|
+
mocha (1.13.0)
|
129
122
|
multi_xml (0.6.0)
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
mini_portile2 (~> 2.5.0)
|
123
|
+
nio4r (2.5.8)
|
124
|
+
nokogiri (1.13.4)
|
125
|
+
mini_portile2 (~> 2.8.0)
|
134
126
|
racc (~> 1.4)
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
multi_xml (~> 0.5)
|
140
|
-
rack (>= 1.2, < 3)
|
141
|
-
omniauth (2.0.4)
|
142
|
-
hashie (>= 3.4.6)
|
143
|
-
rack (>= 1.6.2, < 3)
|
144
|
-
rack-protection
|
145
|
-
omniauth-oauth2 (1.7.1)
|
146
|
-
oauth2 (~> 1.4)
|
147
|
-
omniauth (>= 1.9, < 3)
|
148
|
-
omniauth-rails_csrf_protection (1.0.0)
|
149
|
-
actionpack (>= 4.2)
|
150
|
-
omniauth (~> 2.0)
|
151
|
-
omniauth-shopify-oauth2 (2.3.2)
|
152
|
-
activesupport
|
153
|
-
omniauth-oauth2 (~> 1.5)
|
154
|
-
parallel (1.20.1)
|
155
|
-
parser (2.7.2.0)
|
127
|
+
oj (3.13.14)
|
128
|
+
openssl (3.0.0)
|
129
|
+
parallel (1.21.0)
|
130
|
+
parser (3.1.0.0)
|
156
131
|
ast (~> 2.4.1)
|
157
|
-
pry (0.
|
158
|
-
coderay (~> 1.1
|
159
|
-
method_source (~>
|
160
|
-
pry-nav (0.
|
161
|
-
pry (>= 0.9.10, < 0.
|
162
|
-
pry-stack_explorer (0.
|
163
|
-
binding_of_caller (
|
164
|
-
pry (
|
132
|
+
pry (0.14.1)
|
133
|
+
coderay (~> 1.1)
|
134
|
+
method_source (~> 1.0)
|
135
|
+
pry-nav (1.0.0)
|
136
|
+
pry (>= 0.9.10, < 0.15)
|
137
|
+
pry-stack_explorer (0.6.1)
|
138
|
+
binding_of_caller (~> 1.0)
|
139
|
+
pry (~> 0.13)
|
165
140
|
public_suffix (4.0.6)
|
166
|
-
racc (1.
|
141
|
+
racc (1.6.0)
|
167
142
|
rack (2.2.3)
|
168
|
-
rack-protection (2.1.0)
|
169
|
-
rack
|
170
143
|
rack-test (1.1.0)
|
171
144
|
rack (>= 1.0, < 3)
|
172
|
-
rails (6.1.
|
173
|
-
actioncable (= 6.1.
|
174
|
-
actionmailbox (= 6.1.
|
175
|
-
actionmailer (= 6.1.
|
176
|
-
actionpack (= 6.1.
|
177
|
-
actiontext (= 6.1.
|
178
|
-
actionview (= 6.1.
|
179
|
-
activejob (= 6.1.
|
180
|
-
activemodel (= 6.1.
|
181
|
-
activerecord (= 6.1.
|
182
|
-
activestorage (= 6.1.
|
183
|
-
activesupport (= 6.1.
|
145
|
+
rails (6.1.5)
|
146
|
+
actioncable (= 6.1.5)
|
147
|
+
actionmailbox (= 6.1.5)
|
148
|
+
actionmailer (= 6.1.5)
|
149
|
+
actionpack (= 6.1.5)
|
150
|
+
actiontext (= 6.1.5)
|
151
|
+
actionview (= 6.1.5)
|
152
|
+
activejob (= 6.1.5)
|
153
|
+
activemodel (= 6.1.5)
|
154
|
+
activerecord (= 6.1.5)
|
155
|
+
activestorage (= 6.1.5)
|
156
|
+
activesupport (= 6.1.5)
|
184
157
|
bundler (>= 1.15.0)
|
185
|
-
railties (= 6.1.
|
158
|
+
railties (= 6.1.5)
|
186
159
|
sprockets-rails (>= 2.0.0)
|
187
160
|
rails-controller-testing (1.0.5)
|
188
161
|
actionpack (>= 5.0.1.rc1)
|
@@ -191,60 +164,67 @@ GEM
|
|
191
164
|
rails-dom-testing (2.0.3)
|
192
165
|
activesupport (>= 4.2.0)
|
193
166
|
nokogiri (>= 1.6)
|
194
|
-
rails-html-sanitizer (1.
|
167
|
+
rails-html-sanitizer (1.4.2)
|
195
168
|
loofah (~> 2.3)
|
196
|
-
railties (6.1.
|
197
|
-
actionpack (= 6.1.
|
198
|
-
activesupport (= 6.1.
|
169
|
+
railties (6.1.5)
|
170
|
+
actionpack (= 6.1.5)
|
171
|
+
activesupport (= 6.1.5)
|
199
172
|
method_source
|
200
|
-
rake (>=
|
173
|
+
rake (>= 12.2)
|
201
174
|
thor (~> 1.0)
|
202
|
-
rainbow (3.
|
203
|
-
rake (13.0.
|
175
|
+
rainbow (3.1.1)
|
176
|
+
rake (13.0.6)
|
204
177
|
rb-readline (0.5.5)
|
205
178
|
redirect_safely (1.0.0)
|
206
179
|
activemodel
|
207
|
-
regexp_parser (2.
|
208
|
-
rexml (3.2.
|
209
|
-
rubocop (1.
|
180
|
+
regexp_parser (2.2.0)
|
181
|
+
rexml (3.2.5)
|
182
|
+
rubocop (1.25.1)
|
210
183
|
parallel (~> 1.10)
|
211
|
-
parser (>=
|
184
|
+
parser (>= 3.1.0.0)
|
212
185
|
rainbow (>= 2.2.2, < 4.0)
|
213
186
|
regexp_parser (>= 1.8, < 3.0)
|
214
187
|
rexml
|
215
|
-
rubocop-ast (>= 1.
|
188
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
216
189
|
ruby-progressbar (~> 1.7)
|
217
|
-
unicode-display_width (>= 1.4.0, <
|
218
|
-
rubocop-ast (1.
|
219
|
-
parser (>=
|
220
|
-
rubocop-shopify (
|
221
|
-
rubocop (~> 1.
|
222
|
-
ruby-progressbar (1.
|
223
|
-
|
224
|
-
shopify_api (
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
190
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
191
|
+
rubocop-ast (1.15.1)
|
192
|
+
parser (>= 3.0.1.1)
|
193
|
+
rubocop-shopify (2.4.0)
|
194
|
+
rubocop (~> 1.24)
|
195
|
+
ruby-progressbar (1.11.0)
|
196
|
+
securerandom (0.2.0)
|
197
|
+
shopify_api (10.1.0)
|
198
|
+
concurrent-ruby
|
199
|
+
hash_diff
|
200
|
+
httparty
|
201
|
+
jwt
|
202
|
+
oj
|
203
|
+
openssl
|
204
|
+
securerandom
|
205
|
+
sorbet-runtime
|
206
|
+
zeitwerk (~> 2.5)
|
207
|
+
sorbet-runtime (0.5.10101)
|
208
|
+
sprockets (4.0.3)
|
229
209
|
concurrent-ruby (~> 1.0)
|
230
210
|
rack (> 1, < 3)
|
231
|
-
sprockets-rails (3.
|
232
|
-
actionpack (>=
|
233
|
-
activesupport (>=
|
211
|
+
sprockets-rails (3.4.2)
|
212
|
+
actionpack (>= 5.2)
|
213
|
+
activesupport (>= 5.2)
|
234
214
|
sprockets (>= 3.0.0)
|
235
215
|
sqlite3 (1.4.2)
|
236
|
-
thor (1.1
|
216
|
+
thor (1.2.1)
|
237
217
|
tzinfo (2.0.4)
|
238
218
|
concurrent-ruby (~> 1.0)
|
239
|
-
unicode-display_width (1.
|
240
|
-
webmock (3.
|
241
|
-
addressable (>= 2.
|
219
|
+
unicode-display_width (2.1.0)
|
220
|
+
webmock (3.14.0)
|
221
|
+
addressable (>= 2.8.0)
|
242
222
|
crack (>= 0.3.2)
|
243
223
|
hashdiff (>= 0.4.0, < 2.0.0)
|
244
|
-
websocket-driver (0.7.
|
224
|
+
websocket-driver (0.7.5)
|
245
225
|
websocket-extensions (>= 0.1.0)
|
246
226
|
websocket-extensions (0.1.5)
|
247
|
-
zeitwerk (2.4
|
227
|
+
zeitwerk (2.5.4)
|
248
228
|
|
249
229
|
PLATFORMS
|
250
230
|
ruby
|
@@ -265,4 +245,4 @@ DEPENDENCIES
|
|
265
245
|
webmock
|
266
246
|
|
267
247
|
BUNDLED WITH
|
268
|
-
2.
|
248
|
+
2.3.5
|
data/README.md
CHANGED
@@ -17,6 +17,7 @@ This gem builds Rails applications that can be embedded in the Shopify Admin.
|
|
17
17
|
[Contributing](/CONTRIBUTING.md) |
|
18
18
|
[License](/LICENSE)
|
19
19
|
|
20
|
+
|
20
21
|
## Introduction
|
21
22
|
|
22
23
|
This gem includes a Rails engine, generators, modules, and mixins that help create Rails applications that work with Shopify APIs. The [Shopify App Rails engine](/docs/shopify_app/engine.md) provides all the code required to implement OAuth with Shopify. The [default Shopify App generator](/docs/shopify_app/generators.md#-environment-rails-generate-shopify_app) builds an app that can be embedded in the Shopify Admin and secures it with [session tokens](https://shopify.dev/concepts/apps/building-embedded-apps-using-session-tokens).
|
data/Rakefile
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'bundler/gem_tasks'
|
3
|
-
require 'rake/testtask'
|
4
2
|
|
5
|
-
require
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rake/testtask"
|
5
|
+
|
6
|
+
require File.expand_path("../test/dummy/config/application", __FILE__)
|
6
7
|
|
7
8
|
Rails.application.load_tasks
|