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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +4 -5
  3. data/.gitignore +1 -0
  4. data/.nvmrc +1 -1
  5. data/.ruby-version +1 -1
  6. data/CHANGELOG.md +52 -2
  7. data/CONTRIBUTING.md +6 -1
  8. data/Gemfile +3 -2
  9. data/Gemfile.lock +144 -164
  10. data/README.md +1 -0
  11. data/Rakefile +4 -3
  12. data/app/assets/javascripts/shopify_app/app_bridge_2.0.12.js +10 -0
  13. data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +22 -0
  14. data/app/assets/javascripts/shopify_app/redirect.js +9 -11
  15. data/app/assets/javascripts/shopify_app/storage_access.js +4 -10
  16. data/app/controllers/concerns/shopify_app/authenticated.rb +3 -0
  17. data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +16 -3
  18. data/app/controllers/concerns/shopify_app/require_known_shop.rb +1 -0
  19. data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +1 -1
  20. data/app/controllers/shopify_app/authenticated_controller.rb +1 -0
  21. data/app/controllers/shopify_app/callback_controller.rb +49 -134
  22. data/app/controllers/shopify_app/sessions_controller.rb +26 -131
  23. data/app/controllers/shopify_app/webhooks_controller.rb +5 -24
  24. data/app/views/shopify_app/sessions/enable_cookies.html.erb +1 -1
  25. data/app/views/shopify_app/sessions/request_storage_access.html.erb +11 -11
  26. data/app/views/shopify_app/sessions/top_level_interaction.html.erb +1 -1
  27. data/app/views/shopify_app/shared/redirect.html.erb +2 -2
  28. data/config/locales/zh-CN.yml +1 -1
  29. data/config/routes.rb +20 -12
  30. data/docs/Troubleshooting.md +0 -3
  31. data/docs/Upgrading.md +116 -14
  32. data/docs/shopify_app/engine.md +2 -2
  33. data/docs/shopify_app/handling-access-scopes-changes.md +11 -1
  34. data/docs/shopify_app/script-tags.md +1 -1
  35. data/docs/shopify_app/webhooks.md +3 -3
  36. data/lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb +10 -9
  37. data/lib/generators/shopify_app/add_after_authenticate_job/templates/after_authenticate_job.rb +1 -0
  38. data/lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb +4 -3
  39. data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +13 -12
  40. data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +9 -1
  41. data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +7 -6
  42. data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb +2 -1
  43. data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb +1 -1
  44. data/lib/generators/shopify_app/authenticated_controller/authenticated_controller_generator.rb +3 -3
  45. data/lib/generators/shopify_app/controllers/controllers_generator.rb +4 -3
  46. data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +11 -15
  47. data/lib/generators/shopify_app/home_controller/templates/home_controller.rb +2 -2
  48. data/lib/generators/shopify_app/home_controller/templates/index.html.erb +7 -3
  49. data/lib/generators/shopify_app/install/install_generator.rb +27 -72
  50. data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +3 -1
  51. data/lib/generators/shopify_app/install/templates/session_store.rb +2 -1
  52. data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +33 -5
  53. data/lib/generators/shopify_app/install/templates/shopify_app_importmap.js +13 -0
  54. data/lib/generators/shopify_app/products_controller/products_controller_generator.rb +3 -3
  55. data/lib/generators/shopify_app/products_controller/templates/products_controller.rb +1 -1
  56. data/lib/generators/shopify_app/rotate_shopify_token_job/rotate_shopify_token_job_generator.rb +4 -4
  57. data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token.rake +1 -0
  58. data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token_job.rb +1 -1
  59. data/lib/generators/shopify_app/routes/routes_generator.rb +6 -5
  60. data/lib/generators/shopify_app/routes/templates/routes.rb +5 -5
  61. data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +11 -10
  62. data/lib/generators/shopify_app/shop_model/templates/shop.rb +1 -0
  63. data/lib/generators/shopify_app/shopify_app_generator.rb +4 -3
  64. data/lib/generators/shopify_app/user_model/templates/user.rb +1 -0
  65. data/lib/generators/shopify_app/user_model/user_model_generator.rb +11 -10
  66. data/lib/generators/shopify_app/views/views_generator.rb +4 -3
  67. data/lib/shopify_app/access_scopes/shop_strategy.rb +2 -2
  68. data/lib/shopify_app/access_scopes/user_strategy.rb +4 -4
  69. data/lib/shopify_app/configuration.rb +33 -14
  70. data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +4 -3
  71. data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
  72. data/lib/shopify_app/controller_concerns/embedded_app.rb +4 -3
  73. data/lib/shopify_app/controller_concerns/ensure_billing.rb +254 -0
  74. data/lib/shopify_app/controller_concerns/itp.rb +3 -3
  75. data/lib/shopify_app/controller_concerns/localization.rb +1 -0
  76. data/lib/shopify_app/controller_concerns/login_protection.rb +82 -68
  77. data/lib/shopify_app/controller_concerns/payload_verification.rb +3 -2
  78. data/lib/shopify_app/controller_concerns/webhook_verification.rb +2 -1
  79. data/lib/shopify_app/engine.rb +7 -15
  80. data/lib/shopify_app/jobs/scripttags_manager_job.rb +2 -2
  81. data/lib/shopify_app/jobs/webhooks_manager_job.rb +4 -5
  82. data/lib/shopify_app/managers/scripttags_manager.rb +11 -4
  83. data/lib/shopify_app/managers/webhooks_manager.rb +42 -44
  84. data/lib/shopify_app/middleware/jwt_middleware.rb +5 -3
  85. data/lib/shopify_app/session/in_memory_session_store.rb +1 -0
  86. data/lib/shopify_app/session/in_memory_shop_session_store.rb +2 -1
  87. data/lib/shopify_app/session/in_memory_user_session_store.rb +1 -0
  88. data/lib/shopify_app/session/jwt.rb +12 -7
  89. data/lib/shopify_app/session/null_user_session_store.rb +2 -1
  90. data/lib/shopify_app/session/session_repository.rb +37 -0
  91. data/lib/shopify_app/session/session_storage.rb +4 -6
  92. data/lib/shopify_app/session/shop_session_storage.rb +6 -6
  93. data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +7 -8
  94. data/lib/shopify_app/session/user_session_storage.rb +19 -6
  95. data/lib/shopify_app/session/user_session_storage_with_scopes.rb +22 -9
  96. data/lib/shopify_app/test_helpers/all.rb +2 -1
  97. data/lib/shopify_app/test_helpers/webhook_verification_helper.rb +4 -3
  98. data/lib/shopify_app/utils.rb +4 -10
  99. data/lib/shopify_app/version.rb +2 -1
  100. data/lib/shopify_app.rb +44 -40
  101. data/package.json +1 -1
  102. data/shopify_app.gemspec +22 -21
  103. data/translation.yml +1 -1
  104. data/yarn.lock +103 -88
  105. metadata +51 -60
  106. data/config/locales/hi.yml +0 -23
  107. data/config/locales/ms.yml +0 -22
  108. data/lib/generators/shopify_app/install/templates/omniauth.rb +0 -4
  109. data/lib/generators/shopify_app/install/templates/shopify_provider.rb.tt +0 -8
  110. data/lib/generators/shopify_app/install/templates/user_agent.rb +0 -6
  111. data/lib/shopify_app/middleware/same_site_cookie_middleware.rb +0 -34
  112. 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: 2fcfa987c56d06c327c1cff6e12350711473a1a265844b6f4f3c32b696c1495e
4
- data.tar.gz: 57b44743afc3e0175fe408ccfa688bc0b8c28d7b99db6fae5e6c7ab1a843ec9a
3
+ metadata.gz: 0eed46621f78732a98d006f66631afbf2d5dcd17ed88af699ac20ff141df6ff6
4
+ data.tar.gz: 38180008e68e107e260eb0d629035ec65a8bd23915f361a4e9716ae4abca6604
5
5
  SHA512:
6
- metadata.gz: 583dbf51eaa3a3a600a410eca4d30fab58776709f6882908ed72af5da222163bbeaeba6805682ed95100abcce1217aceeba5851fa9cf00836b7a1f1201f30289
7
- data.tar.gz: 8dcb0f7bceb2f4ec7bcbe8eb5f5d5bb294767fa5ead28b1d329ef34a5119fd835f99669480514473a5e184b91f9e79f4abd9941399b269faf5522ce6f69e6eb7
6
+ metadata.gz: 3f0d7de43a22c940aa6e64ad343605b5ab4662d3cb9a9a4f21df3ba96f0fcee301f7430efed97dfcc55fe7b2b13dd7398c294895c08cbf777fb2b7b1fdce8fdf
7
+ data.tar.gz: 4671f6646686de7feb6c5b410ee435108fe98686bf35b6884e2305895d51038dbb7b24ac21d1da12b8e16dc71d831e6fbf769c5de510413b17d2c68cdfeb26ed
@@ -2,9 +2,9 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ branches: [ main ]
6
6
  pull_request:
7
- branches: [ master ]
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.5, 2.6, 2.7]
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
@@ -7,6 +7,7 @@ doc/
7
7
  *.log
8
8
  *.sqlite3
9
9
  test/tmp/*
10
+ test/.generated/*
10
11
  .idea
11
12
  # ignore sprockets cache
12
13
  /test/dummy/tmp/*
data/.nvmrc CHANGED
@@ -1 +1 @@
1
- 8.10.0
1
+ 12.22.8
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.0
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 'rails-controller-testing', group: :test
8
+ gem "rails-controller-testing", group: :test
8
9
 
9
10
  group :rubocop do
10
- gem 'rubocop-shopify', require: false
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 (18.0.2)
5
- browser_sniffer (~> 1.2.2)
4
+ shopify_app (19.1.0)
5
+ activeresource
6
+ browser_sniffer (~> 2.0)
6
7
  jwt (>= 2.2.3)
7
- omniauth-rails_csrf_protection
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 (~> 9.4)
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.3.1)
17
- actionpack (= 6.1.3.1)
18
- activesupport (= 6.1.3.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.3.1)
22
- actionpack (= 6.1.3.1)
23
- activejob (= 6.1.3.1)
24
- activerecord (= 6.1.3.1)
25
- activestorage (= 6.1.3.1)
26
- activesupport (= 6.1.3.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.3.1)
29
- actionpack (= 6.1.3.1)
30
- actionview (= 6.1.3.1)
31
- activejob (= 6.1.3.1)
32
- activesupport (= 6.1.3.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.3.1)
36
- actionview (= 6.1.3.1)
37
- activesupport (= 6.1.3.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.3.1)
43
- actionpack (= 6.1.3.1)
44
- activerecord (= 6.1.3.1)
45
- activestorage (= 6.1.3.1)
46
- activesupport (= 6.1.3.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.3.1)
49
- activesupport (= 6.1.3.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.3.1)
55
- activesupport (= 6.1.3.1)
54
+ activejob (6.1.5)
55
+ activesupport (= 6.1.5)
56
56
  globalid (>= 0.3.6)
57
- activemodel (6.1.3.1)
58
- activesupport (= 6.1.3.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.3.1)
64
- activemodel (= 6.1.3.1)
65
- activesupport (= 6.1.3.1)
66
- activeresource (5.1.1)
67
- activemodel (>= 5.0, < 7)
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 (>= 5.0, < 7)
70
- activestorage (6.1.3.1)
71
- actionpack (= 6.1.3.1)
72
- activejob (= 6.1.3.1)
73
- activerecord (= 6.1.3.1)
74
- activesupport (= 6.1.3.1)
75
- marcel (~> 1.0.0)
76
- mini_mime (~> 1.0.2)
77
- activesupport (6.1.3.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.7.0)
83
+ addressable (2.8.0)
84
84
  public_suffix (>= 2.0.2, < 5.0)
85
- ast (2.4.1)
86
- binding_of_caller (0.8.0)
85
+ ast (2.4.2)
86
+ binding_of_caller (1.0.0)
87
87
  debug_inspector (>= 0.0.1)
88
- browser_sniffer (1.2.2)
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.8)
93
- crack (0.4.4)
92
+ concurrent-ruby (1.1.10)
93
+ crack (0.4.5)
94
+ rexml
94
95
  crass (1.0.6)
95
- debug_inspector (0.0.3)
96
+ debug_inspector (1.1.0)
96
97
  erubi (1.10.0)
97
- faraday (1.4.1)
98
- faraday-excon (~> 1.1)
99
- faraday-net_http (~> 1.0)
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
- hashie (4.1.0)
114
- i18n (1.8.9)
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.2.3)
117
- loofah (2.9.0)
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.1)
123
- method_source (0.9.2)
124
- mini_mime (1.0.3)
125
- mini_portile2 (2.5.0)
126
- minitest (5.14.4)
127
- mocha (1.11.2)
128
- multi_json (1.15.0)
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
- multipart-post (2.1.1)
131
- nio4r (2.5.7)
132
- nokogiri (1.11.2)
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
- oauth2 (1.4.7)
136
- faraday (>= 0.8, < 2.0)
137
- jwt (>= 1.0, < 3.0)
138
- multi_json (~> 1.3)
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.12.2)
158
- coderay (~> 1.1.0)
159
- method_source (~> 0.9.0)
160
- pry-nav (0.3.0)
161
- pry (>= 0.9.10, < 0.13.0)
162
- pry-stack_explorer (0.4.9.3)
163
- binding_of_caller (>= 0.7)
164
- pry (>= 0.9.11)
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.5.2)
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.3.1)
173
- actioncable (= 6.1.3.1)
174
- actionmailbox (= 6.1.3.1)
175
- actionmailer (= 6.1.3.1)
176
- actionpack (= 6.1.3.1)
177
- actiontext (= 6.1.3.1)
178
- actionview (= 6.1.3.1)
179
- activejob (= 6.1.3.1)
180
- activemodel (= 6.1.3.1)
181
- activerecord (= 6.1.3.1)
182
- activestorage (= 6.1.3.1)
183
- activesupport (= 6.1.3.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.3.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.3.0)
167
+ rails-html-sanitizer (1.4.2)
195
168
  loofah (~> 2.3)
196
- railties (6.1.3.1)
197
- actionpack (= 6.1.3.1)
198
- activesupport (= 6.1.3.1)
169
+ railties (6.1.5)
170
+ actionpack (= 6.1.5)
171
+ activesupport (= 6.1.5)
199
172
  method_source
200
- rake (>= 0.8.7)
173
+ rake (>= 12.2)
201
174
  thor (~> 1.0)
202
- rainbow (3.0.0)
203
- rake (13.0.3)
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.0.0)
208
- rexml (3.2.4)
209
- rubocop (1.5.2)
180
+ regexp_parser (2.2.0)
181
+ rexml (3.2.5)
182
+ rubocop (1.25.1)
210
183
  parallel (~> 1.10)
211
- parser (>= 2.7.1.5)
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.2.0, < 2.0)
188
+ rubocop-ast (>= 1.15.1, < 2.0)
216
189
  ruby-progressbar (~> 1.7)
217
- unicode-display_width (>= 1.4.0, < 2.0)
218
- rubocop-ast (1.3.0)
219
- parser (>= 2.7.1.5)
220
- rubocop-shopify (1.0.7)
221
- rubocop (~> 1.4)
222
- ruby-progressbar (1.10.1)
223
- ruby2_keywords (0.0.4)
224
- shopify_api (9.4.1)
225
- activeresource (>= 4.1.0, < 6.0.0)
226
- graphql-client
227
- rack
228
- sprockets (4.0.2)
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.2.2)
232
- actionpack (>= 4.0)
233
- activesupport (>= 4.0)
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.0)
216
+ thor (1.2.1)
237
217
  tzinfo (2.0.4)
238
218
  concurrent-ruby (~> 1.0)
239
- unicode-display_width (1.7.0)
240
- webmock (3.9.1)
241
- addressable (>= 2.3.6)
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.3)
224
+ websocket-driver (0.7.5)
245
225
  websocket-extensions (>= 0.1.0)
246
226
  websocket-extensions (0.1.5)
247
- zeitwerk (2.4.2)
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.1.4
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 File.expand_path('../test/dummy/config/application', __FILE__)
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