shopify_app 22.5.2 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yaml +6 -0
  3. data/.github/workflows/build.yml +5 -5
  4. data/.github/workflows/close-waiting-for-response-issues.yml +1 -1
  5. data/.github/workflows/release.yml +2 -2
  6. data/.github/workflows/remove-labels-on-activity.yml +2 -3
  7. data/.github/workflows/rubocop.yml +2 -2
  8. data/CHANGELOG.md +22 -0
  9. data/Gemfile +1 -1
  10. data/Gemfile.lock +181 -122
  11. data/README.md +105 -25
  12. data/Rakefile +13 -0
  13. data/app/controllers/shopify_app/callback_controller.rb +2 -40
  14. data/app/controllers/shopify_app/extension_verification_controller.rb +1 -1
  15. data/app/jobs/shopify_app/script_tags_manager_job.rb +16 -0
  16. data/docs/Releasing.md +113 -19
  17. data/docs/Upgrading.md +72 -0
  18. data/docs/shopify_app/content-security-policy.md +50 -3
  19. data/docs/shopify_app/controller-concerns.md +20 -0
  20. data/docs/shopify_app/script-tags.md +52 -0
  21. data/docs/shopify_app/sessions.md +149 -22
  22. data/lib/generators/shopify_app/add_app_uninstalled_job/templates/app_uninstalled_job.rb.tt +2 -2
  23. data/lib/generators/shopify_app/add_privacy_jobs/templates/customers_data_request_job.rb.tt +2 -2
  24. data/lib/generators/shopify_app/add_privacy_jobs/templates/customers_redact_job.rb.tt +2 -2
  25. data/lib/generators/shopify_app/add_privacy_jobs/templates/shop_redact_job.rb.tt +2 -2
  26. data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +2 -2
  27. data/lib/generators/shopify_app/install/install_generator.rb +1 -1
  28. data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +18 -0
  29. data/lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_token_expiry_columns.erb +7 -0
  30. data/lib/generators/shopify_app/shop_model/templates/shop.rb +1 -1
  31. data/lib/generators/shopify_app/user_model/templates/user.rb +1 -1
  32. data/lib/shopify_app/auth/post_authenticate_tasks.rb +8 -0
  33. data/lib/shopify_app/auth/token_exchange.rb +7 -0
  34. data/lib/shopify_app/configuration.rb +5 -5
  35. data/lib/shopify_app/controller_concerns/login_protection.rb +12 -8
  36. data/lib/shopify_app/engine.rb +2 -5
  37. data/lib/shopify_app/errors.rb +2 -0
  38. data/lib/shopify_app/managers/script_tags_manager.rb +348 -0
  39. data/lib/shopify_app/session/shop_session_storage.rb +84 -2
  40. data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +6 -0
  41. data/lib/shopify_app/session/user_session_storage.rb +21 -2
  42. data/lib/shopify_app/session/user_session_storage_with_scopes.rb +6 -0
  43. data/lib/shopify_app/utils.rb +1 -1
  44. data/lib/shopify_app/version.rb +1 -1
  45. data/lib/shopify_app.rb +12 -7
  46. data/package.json +1 -1
  47. data/shopify_app.gemspec +9 -10
  48. data/translation.yml +1 -0
  49. data/yarn.lock +7 -9
  50. metadata +63 -46
  51. data/lib/shopify_app/middleware/jwt_middleware.rb +0 -48
  52. data/lib/shopify_app/session/jwt.rb +0 -73
  53. /data/{lib/shopify_app/jobs → app/jobs/shopify_app}/webhooks_manager_job.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c84aa63ed726ea9f1881d8a1a37648a0ba3e4c2309adf65f51059af31152058
4
- data.tar.gz: ce95d7c56ebc3ca229035fd84164d391e3d8a6342fac3bba1b8db2a577705e51
3
+ metadata.gz: 2f830906ca35bcc5ca2d10b8b514f5523513a5e4220a30e3f771a6cfe0f724d4
4
+ data.tar.gz: f2643993a150c2e471a4c78bb2851c2652ac074185d7980bc11c767d846882db
5
5
  SHA512:
6
- metadata.gz: b6501b98d7aa0450d9db11d60722371f2e1b26ffc86a57e704d83f6e868b85ea5adc81db98b5e0522554511b15d6bc23f7ec8b5c250446274a91d898749537aa
7
- data.tar.gz: 80af1d530b03fb48f2fc74795122c5557ea7a04c736af1b1e8bed2c06d16624d6aee04dc7f2abf87b8944dee1619f05d567277fa2940a536d06d6a934d337556
6
+ metadata.gz: 119986dfffc2b5df6577cc113f0bdd11514609fca6e2b6278d68567d0c39217ed60b137c971783db6acb6788b14bb85cef47ae1d1c5b9281bb3b5f7db692fbf4
7
+ data.tar.gz: 787670d5a3870ac188cc4417350f40e13624f7d70705ea0cb0a74c5401cacc64e15f612261c5d8f0d2b42987d8b35b17b02e4114a1b664a5a200fa3a7ba5bce1
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
@@ -12,23 +12,23 @@ jobs:
12
12
  name: Ruby ${{ matrix.version }}
13
13
  strategy:
14
14
  matrix:
15
- version: ['3.0', '3.1', '3.2', '3.3']
15
+ version: ['3.2', '3.3', '3.4']
16
16
 
17
17
  steps:
18
- - uses: actions/checkout@v3
18
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
19
19
  - name: Cache node modules
20
- uses: actions/cache@v3
20
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
21
21
  with:
22
22
  # npm cache files are stored in `~/.npm` on Linux/macOS
23
23
  path: ~/.npm
24
24
  key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
25
25
  - name: Set up Ruby ${{ matrix.version }}
26
- uses: ruby/setup-ruby@v1
26
+ uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
27
27
  with:
28
28
  ruby-version: ${{ matrix.version }}
29
29
  bundler-cache: true
30
30
  - name: Set up Node
31
- uses: actions/setup-node@v3
31
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
32
32
  with:
33
33
  node-version: '18'
34
34
  - name: Install Yarn Dependencies
@@ -8,7 +8,7 @@ jobs:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
10
  - name: close-issues
11
- uses: actions-cool/issues-helper@v3
11
+ uses: actions-cool/issues-helper@50068f49b7b2b3857270ead65e2d02e4459b022c # v3.6.2
12
12
  with:
13
13
  actions: 'close-issues'
14
14
  token: ${{ secrets.GITHUB_TOKEN }}
@@ -12,11 +12,11 @@ jobs:
12
12
  - name: Extract tag name
13
13
  id: tag
14
14
  run: echo "value=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
15
- - uses: actions/checkout@v3
15
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
16
16
 
17
17
  - name: Create Release
18
18
  id: create_release
19
- uses: actions/create-release@v1
19
+ uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
20
20
  env:
21
21
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
22
  with:
@@ -7,10 +7,9 @@ jobs:
7
7
  remove-labels-on-activity:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: actions/checkout@v3
11
- - uses: actions-ecosystem/action-remove-labels@v1
10
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
11
+ - uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1.2.0
12
12
  if: contains(github.event.issue.labels.*.name, 'Waiting for Response')
13
13
  with:
14
14
  labels: |
15
15
  Waiting for Response
16
-
@@ -7,9 +7,9 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
 
9
9
  steps:
10
- - uses: actions/checkout@v3
10
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
11
11
  - name: Set up Ruby
12
- uses: ruby/setup-ruby@v1
12
+ uses: ruby/setup-ruby@efbf473cab83af4468e8606cc33eca9281bb213f # v1.256.0
13
13
  with:
14
14
  bundler-cache: true
15
15
  - name: Install gems
data/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  Unreleased
2
2
  ----------
3
3
 
4
+ 23.0.0 (December 11, 2025)
5
+ - ⚠️ [Breaking] Bumps minimum supported Rails version to 7.1 & Ruby version to 3.2; moves jobs from `lib` to `app` to fix loading issues with modern rails versions. [#2020](https://github.com/Shopify/shopify_app/pull/2020)
6
+ - ActiveJob classes moved from `lib/shopify_app/jobs/` to `app/jobs/shopify_app/` to follow Rails conventions and fix timing issues with ActiveJob initialization
7
+ - Jobs are now autoloaded by Rails instead of explicitly required during gem initialization
8
+ - **For most apps**: No changes needed. Jobs are internal to the gem and will be autoloaded correctly
9
+ - **If your app has custom ActiveJob serializers**: See [Upgrading guide](/docs/Upgrading.md#v2300-minimum-ruby-32-and-rails-71-required-jobs-moved-to-appjobs) for migration steps
10
+ - Additional dependency updates: sqlite3 (1.x → 2.x), added `csv` and `mutex_m` development dependencies for Ruby 3.4+ compatibility
11
+ - ⚠️ [Breaking] Removes `ShopifyApp::JWTMiddleware` and `ShopifyApp::JWT` See [Upgrading](/docs/Upgrading.md) for more migration. [1960](https://github.com/Shopify/shopify_app/pull/1960)
12
+ - ⚠️ [Breaking] Removed deprecated `CallbackController` methods. `perform_after_authenticate_job`, `install_webhooks`, and `perform_post_authenticate_jobs` have been removed. [#1961](https://github.com/Shopify/shopify_app/pull/1961)
13
+ - ⚠️ [Breaking] Bumps minimum supported Ruby version to 3.1 [#1959](https://github.com/Shopify/shopify_app/pull/1959)
14
+ - Adds support for expiring offline access tokens with automatic refresh for `ShopSessionStorage`. Apps can now opt-in to expiring offline tokens via `ShopifyAPI::Context.setup(offline_access_token_expires: true)`, and `ShopSessionStorage` will automatically refresh expired tokens when using `with_shopify_session`. **See [migration guide](/docs/shopify_app/sessions.md#migrating-to-expiring-offline-access-tokens) for setup instructions.** [#2027](https://github.com/Shopify/shopify_app/pull/2027)
15
+ - `ShopSessionStorage` now automatically stores `access_scopes`, `expires_at`, `refresh_token`, and `refresh_token_expires_at` from auth sessions
16
+ - `UserSessionStorage` now automatically stores `access_scopes` and `expires_at` from auth sessions (refresh tokens not applicable for online/user tokens)
17
+ - Adds `refresh_token_if_expired!` public method to `ShopSessionStorage` for manual token refresh
18
+ - Adds `RefreshTokenExpiredError` exception raised when refresh token itself is expired
19
+ - Mark deprecation for `ShopSessionStorageWithScopes` and `UserSessionStorageWithScopes` in favor of `ShopSessionStorage` and `UserSessionStorage`.
20
+ - Adds a `script_tag_manager` that will automatically create script tags when the app is installed. [1948](https://github.com/Shopify/shopify_app/pull/1948)
21
+ - Handle invalid token when adding redirection headers [#1945](https://github.com/Shopify/shopify_app/pull/1945)
22
+ - Handle invalid record error for concurrent token exchange calls [#1966](https://github.com/Shopify/shopify_app/pull/1966)
23
+ - Add opt-in `ShopifyApp.add_csp_directives(policy)` helper for apps with strict CSP that need to allow App Bridge script source [#2017](https://github.com/Shopify/shopify_app/pull/2017)
24
+ - Bumps shopify_api dependency to ~> 16.0
25
+
4
26
  22.5.2 (March 14, 2025)
5
27
  ----------
6
28
  - Add support for a new trusted Shopify domain [#1949](https://github.com/Shopify/shopify_app/pull/1949)
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rails-controller-testing", group: :test
9
- gem "rails", "< 7" # temporary: https://github.com/Shopify/shopify_app/pull/1561
9
+ gem "rails", "~> 7.1.0"
10
10
 
11
11
  group :rubocop do
12
12
  gem "rubocop-shopify", require: false
data/Gemfile.lock CHANGED
@@ -1,150 +1,185 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_app (22.5.2)
5
- activeresource
4
+ shopify_app (23.0.0)
6
5
  addressable (~> 2.7)
7
- jwt (>= 2.2.3)
8
- rails (> 5.2.1)
6
+ rails (>= 7.1, < 9)
9
7
  redirect_safely (~> 1.0)
10
- shopify_api (>= 14.7.0, < 15.0)
11
- sprockets-rails (>= 2.0.0)
8
+ shopify_api (~> 16.0)
9
+ sprockets-rails
12
10
 
13
11
  GEM
14
12
  remote: https://rubygems.org/
15
13
  specs:
16
- actioncable (6.1.7.9)
17
- actionpack (= 6.1.7.9)
18
- activesupport (= 6.1.7.9)
14
+ actioncable (7.1.6)
15
+ actionpack (= 7.1.6)
16
+ activesupport (= 7.1.6)
19
17
  nio4r (~> 2.0)
20
18
  websocket-driver (>= 0.6.1)
21
- actionmailbox (6.1.7.9)
22
- actionpack (= 6.1.7.9)
23
- activejob (= 6.1.7.9)
24
- activerecord (= 6.1.7.9)
25
- activestorage (= 6.1.7.9)
26
- activesupport (= 6.1.7.9)
19
+ zeitwerk (~> 2.6)
20
+ actionmailbox (7.1.6)
21
+ actionpack (= 7.1.6)
22
+ activejob (= 7.1.6)
23
+ activerecord (= 7.1.6)
24
+ activestorage (= 7.1.6)
25
+ activesupport (= 7.1.6)
27
26
  mail (>= 2.7.1)
28
- actionmailer (6.1.7.9)
29
- actionpack (= 6.1.7.9)
30
- actionview (= 6.1.7.9)
31
- activejob (= 6.1.7.9)
32
- activesupport (= 6.1.7.9)
27
+ net-imap
28
+ net-pop
29
+ net-smtp
30
+ actionmailer (7.1.6)
31
+ actionpack (= 7.1.6)
32
+ actionview (= 7.1.6)
33
+ activejob (= 7.1.6)
34
+ activesupport (= 7.1.6)
33
35
  mail (~> 2.5, >= 2.5.4)
34
- rails-dom-testing (~> 2.0)
35
- actionpack (6.1.7.9)
36
- actionview (= 6.1.7.9)
37
- activesupport (= 6.1.7.9)
38
- rack (~> 2.0, >= 2.0.9)
36
+ net-imap
37
+ net-pop
38
+ net-smtp
39
+ rails-dom-testing (~> 2.2)
40
+ actionpack (7.1.6)
41
+ actionview (= 7.1.6)
42
+ activesupport (= 7.1.6)
43
+ cgi
44
+ nokogiri (>= 1.8.5)
45
+ racc
46
+ rack (>= 2.2.4)
47
+ rack-session (>= 1.0.1)
39
48
  rack-test (>= 0.6.3)
40
- rails-dom-testing (~> 2.0)
41
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
42
- actiontext (6.1.7.9)
43
- actionpack (= 6.1.7.9)
44
- activerecord (= 6.1.7.9)
45
- activestorage (= 6.1.7.9)
46
- activesupport (= 6.1.7.9)
49
+ rails-dom-testing (~> 2.2)
50
+ rails-html-sanitizer (~> 1.6)
51
+ actiontext (7.1.6)
52
+ actionpack (= 7.1.6)
53
+ activerecord (= 7.1.6)
54
+ activestorage (= 7.1.6)
55
+ activesupport (= 7.1.6)
56
+ globalid (>= 0.6.0)
47
57
  nokogiri (>= 1.8.5)
48
- actionview (6.1.7.9)
49
- activesupport (= 6.1.7.9)
58
+ actionview (7.1.6)
59
+ activesupport (= 7.1.6)
50
60
  builder (~> 3.1)
51
- erubi (~> 1.4)
52
- rails-dom-testing (~> 2.0)
53
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
54
- activejob (6.1.7.9)
55
- activesupport (= 6.1.7.9)
61
+ cgi
62
+ erubi (~> 1.11)
63
+ rails-dom-testing (~> 2.2)
64
+ rails-html-sanitizer (~> 1.6)
65
+ activejob (7.1.6)
66
+ activesupport (= 7.1.6)
56
67
  globalid (>= 0.3.6)
57
- activemodel (6.1.7.9)
58
- activesupport (= 6.1.7.9)
59
- activemodel-serializers-xml (1.0.2)
60
- activemodel (> 5.x)
61
- activesupport (> 5.x)
62
- builder (~> 3.1)
63
- activerecord (6.1.7.9)
64
- activemodel (= 6.1.7.9)
65
- activesupport (= 6.1.7.9)
66
- activeresource (6.1.3)
67
- activemodel (>= 6.0)
68
- activemodel-serializers-xml (~> 1.0)
69
- activesupport (>= 6.0)
70
- activestorage (6.1.7.9)
71
- actionpack (= 6.1.7.9)
72
- activejob (= 6.1.7.9)
73
- activerecord (= 6.1.7.9)
74
- activesupport (= 6.1.7.9)
68
+ activemodel (7.1.6)
69
+ activesupport (= 7.1.6)
70
+ activerecord (7.1.6)
71
+ activemodel (= 7.1.6)
72
+ activesupport (= 7.1.6)
73
+ timeout (>= 0.4.0)
74
+ activestorage (7.1.6)
75
+ actionpack (= 7.1.6)
76
+ activejob (= 7.1.6)
77
+ activerecord (= 7.1.6)
78
+ activesupport (= 7.1.6)
75
79
  marcel (~> 1.0)
76
- mini_mime (>= 1.1.0)
77
- activesupport (6.1.7.9)
80
+ activesupport (7.1.6)
81
+ base64
82
+ benchmark (>= 0.3)
83
+ bigdecimal
78
84
  concurrent-ruby (~> 1.0, >= 1.0.2)
85
+ connection_pool (>= 2.2.5)
86
+ drb
79
87
  i18n (>= 1.6, < 2)
88
+ logger (>= 1.4.2)
80
89
  minitest (>= 5.1)
90
+ mutex_m
91
+ securerandom (>= 0.3)
81
92
  tzinfo (~> 2.0)
82
- zeitwerk (~> 2.3)
83
93
  addressable (2.8.4)
84
94
  public_suffix (>= 2.0.2, < 6.0)
85
95
  ast (2.4.2)
96
+ base64 (0.3.0)
97
+ benchmark (0.5.0)
98
+ bigdecimal (3.3.1)
86
99
  binding_of_caller (1.0.0)
87
100
  debug_inspector (>= 0.0.1)
88
101
  builder (3.3.0)
89
102
  byebug (11.1.3)
103
+ cgi (0.5.0)
90
104
  coderay (1.1.3)
91
- concurrent-ruby (1.3.4)
105
+ concurrent-ruby (1.3.5)
106
+ connection_pool (3.0.2)
92
107
  crack (0.4.5)
93
108
  rexml
94
109
  crass (1.0.6)
95
- date (3.3.4)
110
+ csv (3.3.5)
111
+ date (3.5.0)
96
112
  debug_inspector (1.1.0)
97
- erubi (1.13.0)
98
- globalid (1.2.1)
113
+ drb (2.2.3)
114
+ erb (6.0.0)
115
+ erubi (1.13.1)
116
+ globalid (1.3.0)
99
117
  activesupport (>= 6.1)
100
118
  hash_diff (1.1.1)
101
119
  hashdiff (1.0.1)
102
- httparty (0.21.0)
120
+ httparty (0.23.2)
121
+ csv
103
122
  mini_mime (>= 1.0.0)
104
123
  multi_xml (>= 0.5.2)
105
- i18n (1.14.6)
124
+ i18n (1.14.7)
106
125
  concurrent-ruby (~> 1.0)
126
+ io-console (0.8.1)
127
+ irb (1.15.3)
128
+ pp (>= 0.6.0)
129
+ rdoc (>= 4.0.0)
130
+ reline (>= 0.4.2)
107
131
  json (2.7.2)
108
- jwt (2.7.0)
132
+ jwt (3.1.2)
133
+ base64
109
134
  language_server-protocol (3.17.0.3)
110
- loofah (2.23.1)
135
+ logger (1.7.0)
136
+ loofah (2.24.1)
111
137
  crass (~> 1.0.2)
112
138
  nokogiri (>= 1.12.0)
113
- mail (2.8.1)
139
+ mail (2.9.0)
140
+ logger
114
141
  mini_mime (>= 0.1.1)
115
142
  net-imap
116
143
  net-pop
117
144
  net-smtp
118
- marcel (1.0.2)
145
+ marcel (1.1.0)
119
146
  method_source (1.0.0)
120
147
  mini_mime (1.1.5)
121
- minitest (5.18.0)
122
- mocha (2.0.2)
148
+ minitest (5.26.2)
149
+ mocha (2.8.0)
123
150
  ruby2_keywords (>= 0.0.5)
124
- multi_xml (0.6.0)
125
- net-imap (0.4.19)
151
+ multi_xml (0.7.2)
152
+ bigdecimal (~> 3.1)
153
+ mutex_m (0.3.0)
154
+ net-imap (0.5.12)
126
155
  date
127
156
  net-protocol
128
157
  net-pop (0.1.2)
129
158
  net-protocol
130
159
  net-protocol (0.2.2)
131
160
  timeout
132
- net-smtp (0.5.0)
161
+ net-smtp (0.5.1)
133
162
  net-protocol
134
- nio4r (2.5.9)
135
- nokogiri (1.17.1-arm64-darwin)
163
+ nio4r (2.7.5)
164
+ nokogiri (1.18.10-arm64-darwin)
136
165
  racc (~> 1.4)
137
- nokogiri (1.17.1-x86_64-darwin)
166
+ nokogiri (1.18.10-x86_64-darwin)
138
167
  racc (~> 1.4)
139
- nokogiri (1.17.1-x86_64-linux)
168
+ nokogiri (1.18.10-x86_64-linux-gnu)
140
169
  racc (~> 1.4)
141
- oj (3.14.3)
142
- openssl (3.1.0)
170
+ oj (3.16.13)
171
+ bigdecimal (>= 3.0)
172
+ ostruct (>= 0.2)
173
+ openssl (3.3.2)
174
+ ostruct (0.6.3)
143
175
  parallel (1.24.0)
144
176
  parser (3.3.0.5)
145
177
  ast (~> 2.4.1)
146
178
  racc
179
+ pp (0.6.3)
180
+ prettyprint
147
181
  prettier_print (1.2.1)
182
+ prettyprint (0.2.0)
148
183
  pry (0.14.2)
149
184
  coderay (~> 1.1)
150
185
  method_source (~> 1.0)
@@ -153,49 +188,66 @@ GEM
153
188
  pry-stack_explorer (0.6.1)
154
189
  binding_of_caller (~> 1.0)
155
190
  pry (~> 0.13)
191
+ psych (5.2.6)
192
+ date
193
+ stringio
156
194
  public_suffix (5.0.1)
157
195
  racc (1.8.1)
158
- rack (2.2.13)
159
- rack-test (2.1.0)
196
+ rack (3.2.4)
197
+ rack-session (2.1.1)
198
+ base64 (>= 0.1.0)
199
+ rack (>= 3.0.0)
200
+ rack-test (2.2.0)
160
201
  rack (>= 1.3)
161
- rails (6.1.7.9)
162
- actioncable (= 6.1.7.9)
163
- actionmailbox (= 6.1.7.9)
164
- actionmailer (= 6.1.7.9)
165
- actionpack (= 6.1.7.9)
166
- actiontext (= 6.1.7.9)
167
- actionview (= 6.1.7.9)
168
- activejob (= 6.1.7.9)
169
- activemodel (= 6.1.7.9)
170
- activerecord (= 6.1.7.9)
171
- activestorage (= 6.1.7.9)
172
- activesupport (= 6.1.7.9)
202
+ rackup (2.2.1)
203
+ rack (>= 3)
204
+ rails (7.1.6)
205
+ actioncable (= 7.1.6)
206
+ actionmailbox (= 7.1.6)
207
+ actionmailer (= 7.1.6)
208
+ actionpack (= 7.1.6)
209
+ actiontext (= 7.1.6)
210
+ actionview (= 7.1.6)
211
+ activejob (= 7.1.6)
212
+ activemodel (= 7.1.6)
213
+ activerecord (= 7.1.6)
214
+ activestorage (= 7.1.6)
215
+ activesupport (= 7.1.6)
173
216
  bundler (>= 1.15.0)
174
- railties (= 6.1.7.9)
175
- sprockets-rails (>= 2.0.0)
217
+ railties (= 7.1.6)
176
218
  rails-controller-testing (1.0.5)
177
219
  actionpack (>= 5.0.1.rc1)
178
220
  actionview (>= 5.0.1.rc1)
179
221
  activesupport (>= 5.0.1.rc1)
180
- rails-dom-testing (2.2.0)
222
+ rails-dom-testing (2.3.0)
181
223
  activesupport (>= 5.0.0)
182
224
  minitest
183
225
  nokogiri (>= 1.6)
184
- rails-html-sanitizer (1.6.1)
226
+ rails-html-sanitizer (1.6.2)
185
227
  loofah (~> 2.21)
186
228
  nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
187
- railties (6.1.7.9)
188
- actionpack (= 6.1.7.9)
189
- activesupport (= 6.1.7.9)
190
- method_source
229
+ railties (7.1.6)
230
+ actionpack (= 7.1.6)
231
+ activesupport (= 7.1.6)
232
+ cgi
233
+ irb
234
+ rackup (>= 1.0.0)
191
235
  rake (>= 12.2)
192
- thor (~> 1.0)
236
+ thor (~> 1.0, >= 1.2.2)
237
+ tsort (>= 0.2)
238
+ zeitwerk (~> 2.6)
193
239
  rainbow (3.1.1)
194
- rake (13.0.6)
240
+ rake (13.3.1)
195
241
  rb-readline (0.5.5)
242
+ rdoc (6.15.1)
243
+ erb
244
+ psych (>= 4.0.0)
245
+ tsort
196
246
  redirect_safely (1.0.0)
197
247
  activemodel
198
248
  regexp_parser (2.9.0)
249
+ reline (0.6.3)
250
+ io-console (~> 0.5)
199
251
  rexml (3.3.9)
200
252
  rubocop (1.62.1)
201
253
  json (~> 2.3)
@@ -218,8 +270,8 @@ GEM
218
270
  syntax_tree (>= 6.1.1, < 7)
219
271
  ruby-progressbar (1.13.0)
220
272
  ruby2_keywords (0.0.5)
221
- securerandom (0.2.2)
222
- shopify_api (14.7.0)
273
+ securerandom (0.4.1)
274
+ shopify_api (16.0.0)
223
275
  activesupport
224
276
  concurrent-ruby
225
277
  hash_diff
@@ -230,21 +282,24 @@ GEM
230
282
  securerandom
231
283
  sorbet-runtime
232
284
  zeitwerk (~> 2.5)
233
- sorbet-runtime (0.5.10835)
234
- sprockets (4.2.0)
285
+ sorbet-runtime (0.6.12838)
286
+ sprockets (4.2.2)
235
287
  concurrent-ruby (~> 1.0)
288
+ logger
236
289
  rack (>= 2.2.4, < 4)
237
- sprockets-rails (3.4.2)
238
- actionpack (>= 5.2)
239
- activesupport (>= 5.2)
290
+ sprockets-rails (3.5.2)
291
+ actionpack (>= 6.1)
292
+ activesupport (>= 6.1)
240
293
  sprockets (>= 3.0.0)
241
- sqlite3 (1.7.3-arm64-darwin)
242
- sqlite3 (1.7.3-x86_64-darwin)
243
- sqlite3 (1.7.3-x86_64-linux)
294
+ sqlite3 (2.7.4-arm64-darwin)
295
+ sqlite3 (2.7.4-x86_64-darwin)
296
+ sqlite3 (2.7.4-x86_64-linux-gnu)
297
+ stringio (3.1.8)
244
298
  syntax_tree (6.1.1)
245
299
  prettier_print (>= 1.2.0)
246
- thor (1.2.2)
247
- timeout (0.4.1)
300
+ thor (1.4.0)
301
+ timeout (0.4.4)
302
+ tsort (0.2.0)
248
303
  tzinfo (2.0.6)
249
304
  concurrent-ruby (~> 1.0)
250
305
  unicode-display_width (2.5.0)
@@ -252,10 +307,11 @@ GEM
252
307
  addressable (>= 2.8.0)
253
308
  crack (>= 0.3.2)
254
309
  hashdiff (>= 0.4.0, < 2.0.0)
255
- websocket-driver (0.7.5)
310
+ websocket-driver (0.8.0)
311
+ base64
256
312
  websocket-extensions (>= 0.1.0)
257
313
  websocket-extensions (0.1.5)
258
- zeitwerk (2.6.18)
314
+ zeitwerk (2.7.3)
259
315
 
260
316
  PLATFORMS
261
317
  arm64-darwin-21
@@ -268,19 +324,22 @@ PLATFORMS
268
324
 
269
325
  DEPENDENCIES
270
326
  byebug
327
+ csv
328
+ jwt (>= 2.2.3)
271
329
  minitest
272
- mocha
330
+ mocha (>= 2.1.0)
331
+ mutex_m
273
332
  pry
274
333
  pry-nav
275
334
  pry-stack_explorer
276
- rails (< 7)
335
+ rails (~> 7.1.0)
277
336
  rails-controller-testing
278
337
  rake
279
338
  rb-readline
280
339
  rubocop-shopify
281
340
  ruby-lsp
282
341
  shopify_app!
283
- sqlite3 (~> 1.4)
342
+ sqlite3
284
343
  webmock
285
344
 
286
345
  BUNDLED WITH