shopify_app 13.2.0 → 20.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +63 -0
- data/.github/ISSUE_TEMPLATE/config.yml +1 -0
- data/.github/ISSUE_TEMPLATE/feature-request.md +33 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- data/.github/workflows/build.yml +40 -0
- data/.github/workflows/cla.yml +22 -0
- data/.github/workflows/close-waiting-for-response-issues.yml +20 -0
- data/.github/workflows/release.yml +24 -0
- data/.github/workflows/remove-labels-on-activity.yml +16 -0
- data/.github/workflows/rubocop.yml +22 -0
- data/.github/workflows/stale.yml +31 -0
- data/.gitignore +1 -2
- data/.nvmrc +1 -1
- data/.rubocop.yml +2 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +221 -0
- data/CONTRIBUTING.md +81 -0
- data/Gemfile +5 -2
- data/Gemfile.lock +248 -0
- data/README.md +74 -563
- data/Rakefile +4 -3
- data/SECURITY.md +59 -0
- data/app/assets/images/storage_access.svg +1 -2
- data/app/assets/javascripts/shopify_app/app_bridge_3.1.1.js +10 -0
- data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +22 -0
- data/app/assets/javascripts/shopify_app/app_bridge_utils_3.1.1.js +1 -0
- data/app/assets/javascripts/shopify_app/post_redirect.js +9 -0
- data/app/assets/javascripts/shopify_app/redirect.js +10 -14
- data/app/assets/javascripts/shopify_app/storage_access.js +5 -10
- data/app/assets/javascripts/shopify_app/top_level_interaction.js +1 -1
- data/app/controllers/concerns/shopify_app/authenticated.rb +4 -0
- data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +39 -0
- data/app/controllers/concerns/shopify_app/require_known_shop.rb +48 -0
- data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +40 -0
- data/app/controllers/shopify_app/authenticated_controller.rb +1 -0
- data/app/controllers/shopify_app/callback_controller.rb +56 -77
- data/app/controllers/shopify_app/extension_verification_controller.rb +2 -7
- data/app/controllers/shopify_app/sessions_controller.rb +33 -117
- data/app/controllers/shopify_app/webhooks_controller.rb +5 -26
- data/app/views/shopify_app/partials/_button_styles.html.erb +41 -36
- data/app/views/shopify_app/partials/_card_styles.html.erb +3 -3
- data/app/views/shopify_app/partials/_empty_state_styles.html.erb +28 -59
- data/app/views/shopify_app/partials/_form_styles.html.erb +56 -0
- data/app/views/shopify_app/partials/_layout_styles.html.erb +16 -1
- data/app/views/shopify_app/partials/_typography_styles.html.erb +6 -6
- data/app/views/shopify_app/sessions/enable_cookies.html.erb +2 -7
- data/app/views/shopify_app/sessions/new.html.erb +38 -110
- data/app/views/shopify_app/sessions/request_storage_access.html.erb +12 -12
- data/app/views/shopify_app/sessions/top_level_interaction.html.erb +21 -22
- data/app/views/shopify_app/shared/post_redirect_to_auth_shopify.html.erb +13 -0
- data/app/views/shopify_app/shared/redirect.html.erb +2 -2
- data/config/locales/de.yml +11 -11
- data/config/locales/ja.yml +4 -4
- data/config/locales/nl.yml +2 -2
- data/config/locales/th.yml +4 -4
- data/config/locales/vi.yml +22 -0
- data/config/locales/zh-CN.yml +2 -2
- data/config/routes.rb +20 -12
- data/docs/Quickstart.md +19 -83
- data/docs/Releasing.md +18 -15
- data/docs/Troubleshooting.md +140 -5
- data/docs/Upgrading.md +247 -0
- data/docs/shopify_app/authentication.md +128 -0
- data/docs/shopify_app/content-security-policy.md +10 -0
- data/docs/shopify_app/engine.md +82 -0
- data/docs/shopify_app/generators.md +127 -0
- data/docs/shopify_app/handling-access-scopes-changes.md +24 -0
- data/docs/shopify_app/script-tags.md +28 -0
- data/docs/shopify_app/session-repository.md +88 -0
- data/docs/shopify_app/testing.md +38 -0
- data/docs/shopify_app/webhooks.md +72 -0
- data/karma.conf.js +1 -1
- 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 +15 -14
- 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 +4 -4
- data/lib/generators/shopify_app/controllers/controllers_generator.rb +5 -4
- data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +27 -4
- data/lib/generators/shopify_app/home_controller/templates/home_controller.rb +12 -2
- data/lib/generators/shopify_app/home_controller/templates/index.html.erb +74 -16
- data/lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb +16 -0
- data/lib/generators/shopify_app/install/install_generator.rb +52 -40
- data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +5 -2
- data/lib/generators/shopify_app/install/templates/flash_messages.js +0 -2
- data/lib/generators/shopify_app/install/templates/session_store.rb +2 -1
- data/lib/generators/shopify_app/install/templates/shopify_app.js +1 -1
- data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +43 -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 +19 -0
- data/lib/generators/shopify_app/products_controller/templates/products_controller.rb +8 -0
- 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 +35 -7
- data/lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_scopes_column.erb +5 -0
- data/lib/generators/shopify_app/shop_model/templates/shop.rb +2 -1
- data/lib/generators/shopify_app/shopify_app_generator.rb +4 -3
- data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_access_scopes_column.erb +5 -0
- data/lib/generators/shopify_app/user_model/templates/user.rb +2 -1
- data/lib/generators/shopify_app/user_model/user_model_generator.rb +35 -7
- data/lib/generators/shopify_app/views/views_generator.rb +5 -4
- data/lib/shopify_app/access_scopes/noop_strategy.rb +13 -0
- data/lib/shopify_app/access_scopes/shop_strategy.rb +24 -0
- data/lib/shopify_app/access_scopes/user_strategy.rb +41 -0
- data/lib/shopify_app/configuration.rb +58 -11
- data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +4 -4
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +16 -0
- data/lib/shopify_app/controller_concerns/embedded_app.rb +6 -3
- data/lib/shopify_app/controller_concerns/ensure_billing.rb +243 -0
- data/lib/shopify_app/controller_concerns/frame_ancestors.rb +16 -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 +105 -90
- data/lib/shopify_app/controller_concerns/payload_verification.rb +25 -0
- data/lib/shopify_app/controller_concerns/redirect_for_embedded.rb +36 -0
- data/lib/shopify_app/controller_concerns/sanitized_params.rb +36 -0
- data/lib/shopify_app/controller_concerns/webhook_verification.rb +3 -18
- data/lib/shopify_app/engine.rb +26 -11
- data/lib/shopify_app/errors.rb +34 -0
- 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 +12 -6
- data/lib/shopify_app/managers/webhooks_manager.rb +62 -42
- data/lib/shopify_app/middleware/jwt_middleware.rb +6 -3
- data/lib/shopify_app/session/in_memory_session_store.rb +2 -3
- data/lib/shopify_app/session/in_memory_shop_session_store.rb +10 -7
- data/lib/shopify_app/session/in_memory_user_session_store.rb +10 -7
- data/lib/shopify_app/session/jwt.rb +19 -16
- data/lib/shopify_app/session/null_user_session_store.rb +2 -1
- data/lib/shopify_app/session/session_repository.rb +40 -2
- 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 +57 -0
- data/lib/shopify_app/session/user_session_storage.rb +20 -7
- data/lib/shopify_app/session/user_session_storage_with_scopes.rb +71 -0
- 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 +14 -7
- data/lib/shopify_app/version.rb +2 -1
- data/lib/shopify_app.rb +52 -29
- data/package.json +7 -8
- data/service.yml +1 -5
- data/shopify_app.gemspec +22 -20
- data/translation.yml +1 -1
- data/yarn.lock +2173 -2206
- metadata +110 -56
- data/.github/ISSUE_TEMPLATE.md +0 -14
- data/.github/probots.yml +0 -2
- data/.travis.yml +0 -28
- data/config/locales/hi.yml +0 -23
- data/config/locales/ms.yml +0 -22
- data/docs/install-on-dev-shop.png +0 -0
- data/docs/test-your-app.png +0 -0
- data/lib/generators/shopify_app/install/templates/omniauth.rb +0 -3
- data/lib/generators/shopify_app/install/templates/shopify_provider.rb +0 -20
- 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/package-lock.json +0 -7245
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
# Contributing to the Shopify App gem
|
2
|
+
|
3
|
+
The following is a set of guidelines for contributing to the Shopify App gem. These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a pull request.
|
4
|
+
|
5
|
+
#### Table of contents
|
6
|
+
|
7
|
+
[I just have a question!](#i-just-have-a-question)
|
8
|
+
|
9
|
+
[How can I contribute?](#how-can-i-contribute)
|
10
|
+
* [Reporting bugs](#reporting-bugs)
|
11
|
+
* [Suggesting or requesting improvements](#suggesting-or-requesting-improvements)
|
12
|
+
* [Pull requests](#pull-requests)
|
13
|
+
|
14
|
+
## I just have a question!
|
15
|
+
|
16
|
+
> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below.
|
17
|
+
|
18
|
+
Shopify has an official message board with dedicated forums to discuss all things apps, APIs, SDKs and more.
|
19
|
+
|
20
|
+
#### Shopify Community forum links
|
21
|
+
|
22
|
+
* [Shopify Community](https://community.shopify.com)
|
23
|
+
* [Shopify Apps](https://community.shopify.com/c/Shopify-Apps/bd-p/shopify-apps)
|
24
|
+
* [Shopify APIs & SDKs](https://community.shopify.com/c/Shopify-APIs-SDKs/bd-p/shopify-apis-and-technology)
|
25
|
+
|
26
|
+
If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://www.shopify.com/partners/community#conversation). This Slack group hosts an active community of thousands of app developers.
|
27
|
+
|
28
|
+
By participating in the Community forum or Slack group, you agree to adhere to the forum [Code of Conduct](https://community.shopify.com/c/Announcements/Code-of-Conduct/m-p/491969#M23) outlined.
|
29
|
+
|
30
|
+
## How can I contribute?
|
31
|
+
|
32
|
+
### Reporting bugs
|
33
|
+
|
34
|
+
This section guides you through submitting a bug report for the Shopify App gem. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
|
35
|
+
|
36
|
+
#### Before submitting a bug report
|
37
|
+
|
38
|
+
* **Check the [troubleshooting guide](/docs/Troubleshooting.md).** You may be able to troubleshoot the issue you're facing.
|
39
|
+
* **Check the [Shopify Community links](#shopify-community-forum-links) to search for your issue.** This problem may have been reported before and solved on the Shopify forum.
|
40
|
+
* **Perform a cursory search for similar issues.** You may find that the same problem (or a similar one) has been filed already as an issue.
|
41
|
+
|
42
|
+
#### How do I submit a good bug report?
|
43
|
+
|
44
|
+
Bugs are tracked as GitHub issues. Create an issue and provide the following information by filling in the [bug-report template](/.github/ISSUE_TEMPLATE/bug-report.md).
|
45
|
+
|
46
|
+
Explain the problem and include additional details to help maintainers reproduce the problem:
|
47
|
+
|
48
|
+
* **Use a clear and descriptive title** for the issue to identify the problem.
|
49
|
+
* **Describe the exact steps which reproduce the problem** in as many details as possible.
|
50
|
+
* **Provide specific examples to demonstrate the steps.** Include links to files, or copy/pasteable snippets. If you're providing snippets in the issue, use Markdown code blocks.
|
51
|
+
* **Describe the behavior you observed** after following the steps and point out what exactly is the problem with that behavior.
|
52
|
+
* **Explain which behavior you expected to see** instead and why.
|
53
|
+
* **Include screenshots and animated GIFs** where possible.
|
54
|
+
* **Redact any private information** from your logs and issue description. This includes things like API keys, API secrets, and any access tokens.
|
55
|
+
|
56
|
+
### Suggesting or requesting improvements
|
57
|
+
|
58
|
+
If you have a suggestion for the Shopify App gem or a feature request, provide the appropriate information by filling out the [feature-request template](/.github/ISSUE_TEMPLATE/feature-request.md).
|
59
|
+
|
60
|
+
### Pull requests
|
61
|
+
|
62
|
+
The process described here has several goals:
|
63
|
+
|
64
|
+
* Maintain the Shopify App gem's quality
|
65
|
+
* Fix problems that are important to app developers
|
66
|
+
* Enable a sustainable system for the Shopify App gem's maintainers to review contributions
|
67
|
+
|
68
|
+
Please follow these steps to have your contribution considered by the maintainers:
|
69
|
+
|
70
|
+
* Follow all instructions in the [pull request template](/.github/PULL_REQUEST_TEMPLATE.md)
|
71
|
+
* After you submit your pull request, verify that all status checks are passing
|
72
|
+
* <details>
|
73
|
+
<summary>What if the status checks are failing?</summary>
|
74
|
+
|
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>
|
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,9 +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
|
11
|
+
gem "rubocop-shopify", require: false
|
12
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,248 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
shopify_app (20.2.0)
|
5
|
+
activeresource
|
6
|
+
browser_sniffer (~> 2.0)
|
7
|
+
jwt (>= 2.2.3)
|
8
|
+
rails (> 5.2.1)
|
9
|
+
redirect_safely (~> 1.0)
|
10
|
+
shopify_api (~> 11.1)
|
11
|
+
sprockets-rails (>= 2.0.0)
|
12
|
+
|
13
|
+
GEM
|
14
|
+
remote: https://rubygems.org/
|
15
|
+
specs:
|
16
|
+
actioncable (6.1.5)
|
17
|
+
actionpack (= 6.1.5)
|
18
|
+
activesupport (= 6.1.5)
|
19
|
+
nio4r (~> 2.0)
|
20
|
+
websocket-driver (>= 0.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
|
+
mail (>= 2.7.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
|
+
mail (~> 2.5, >= 2.5.4)
|
34
|
+
rails-dom-testing (~> 2.0)
|
35
|
+
actionpack (6.1.5)
|
36
|
+
actionview (= 6.1.5)
|
37
|
+
activesupport (= 6.1.5)
|
38
|
+
rack (~> 2.0, >= 2.0.9)
|
39
|
+
rack-test (>= 0.6.3)
|
40
|
+
rails-dom-testing (~> 2.0)
|
41
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
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
|
+
nokogiri (>= 1.8.5)
|
48
|
+
actionview (6.1.5)
|
49
|
+
activesupport (= 6.1.5)
|
50
|
+
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.5)
|
55
|
+
activesupport (= 6.1.5)
|
56
|
+
globalid (>= 0.3.6)
|
57
|
+
activemodel (6.1.5)
|
58
|
+
activesupport (= 6.1.5)
|
59
|
+
activemodel-serializers-xml (1.0.2)
|
60
|
+
activemodel (> 5.x)
|
61
|
+
activesupport (> 5.x)
|
62
|
+
builder (~> 3.1)
|
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
|
+
activemodel-serializers-xml (~> 1.0)
|
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
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
79
|
+
i18n (>= 1.6, < 2)
|
80
|
+
minitest (>= 5.1)
|
81
|
+
tzinfo (~> 2.0)
|
82
|
+
zeitwerk (~> 2.3)
|
83
|
+
addressable (2.8.0)
|
84
|
+
public_suffix (>= 2.0.2, < 5.0)
|
85
|
+
ast (2.4.2)
|
86
|
+
binding_of_caller (1.0.0)
|
87
|
+
debug_inspector (>= 0.0.1)
|
88
|
+
browser_sniffer (2.1.0)
|
89
|
+
builder (3.2.4)
|
90
|
+
byebug (11.1.3)
|
91
|
+
coderay (1.1.3)
|
92
|
+
concurrent-ruby (1.1.10)
|
93
|
+
crack (0.4.5)
|
94
|
+
rexml
|
95
|
+
crass (1.0.6)
|
96
|
+
debug_inspector (1.1.0)
|
97
|
+
erubi (1.10.0)
|
98
|
+
globalid (1.0.0)
|
99
|
+
activesupport (>= 5.0)
|
100
|
+
hash_diff (1.1.1)
|
101
|
+
hashdiff (1.0.1)
|
102
|
+
httparty (0.20.0)
|
103
|
+
mime-types (~> 3.0)
|
104
|
+
multi_xml (>= 0.5.2)
|
105
|
+
i18n (1.10.0)
|
106
|
+
concurrent-ruby (~> 1.0)
|
107
|
+
jwt (2.5.0)
|
108
|
+
loofah (2.15.0)
|
109
|
+
crass (~> 1.0.2)
|
110
|
+
nokogiri (>= 1.5.9)
|
111
|
+
mail (2.7.1)
|
112
|
+
mini_mime (>= 0.1.1)
|
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)
|
122
|
+
multi_xml (0.6.0)
|
123
|
+
nio4r (2.5.8)
|
124
|
+
nokogiri (1.13.4)
|
125
|
+
mini_portile2 (~> 2.8.0)
|
126
|
+
racc (~> 1.4)
|
127
|
+
oj (3.13.21)
|
128
|
+
openssl (3.0.1)
|
129
|
+
parallel (1.21.0)
|
130
|
+
parser (3.1.0.0)
|
131
|
+
ast (~> 2.4.1)
|
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)
|
140
|
+
public_suffix (4.0.6)
|
141
|
+
racc (1.6.0)
|
142
|
+
rack (2.2.3)
|
143
|
+
rack-test (1.1.0)
|
144
|
+
rack (>= 1.0, < 3)
|
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)
|
157
|
+
bundler (>= 1.15.0)
|
158
|
+
railties (= 6.1.5)
|
159
|
+
sprockets-rails (>= 2.0.0)
|
160
|
+
rails-controller-testing (1.0.5)
|
161
|
+
actionpack (>= 5.0.1.rc1)
|
162
|
+
actionview (>= 5.0.1.rc1)
|
163
|
+
activesupport (>= 5.0.1.rc1)
|
164
|
+
rails-dom-testing (2.0.3)
|
165
|
+
activesupport (>= 4.2.0)
|
166
|
+
nokogiri (>= 1.6)
|
167
|
+
rails-html-sanitizer (1.4.2)
|
168
|
+
loofah (~> 2.3)
|
169
|
+
railties (6.1.5)
|
170
|
+
actionpack (= 6.1.5)
|
171
|
+
activesupport (= 6.1.5)
|
172
|
+
method_source
|
173
|
+
rake (>= 12.2)
|
174
|
+
thor (~> 1.0)
|
175
|
+
rainbow (3.1.1)
|
176
|
+
rake (13.0.6)
|
177
|
+
rb-readline (0.5.5)
|
178
|
+
redirect_safely (1.0.0)
|
179
|
+
activemodel
|
180
|
+
regexp_parser (2.2.0)
|
181
|
+
rexml (3.2.5)
|
182
|
+
rubocop (1.25.1)
|
183
|
+
parallel (~> 1.10)
|
184
|
+
parser (>= 3.1.0.0)
|
185
|
+
rainbow (>= 2.2.2, < 4.0)
|
186
|
+
regexp_parser (>= 1.8, < 3.0)
|
187
|
+
rexml
|
188
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
189
|
+
ruby-progressbar (~> 1.7)
|
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 (11.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.10470)
|
208
|
+
sprockets (4.1.1)
|
209
|
+
concurrent-ruby (~> 1.0)
|
210
|
+
rack (> 1, < 3)
|
211
|
+
sprockets-rails (3.4.2)
|
212
|
+
actionpack (>= 5.2)
|
213
|
+
activesupport (>= 5.2)
|
214
|
+
sprockets (>= 3.0.0)
|
215
|
+
sqlite3 (1.4.2)
|
216
|
+
thor (1.2.1)
|
217
|
+
tzinfo (2.0.4)
|
218
|
+
concurrent-ruby (~> 1.0)
|
219
|
+
unicode-display_width (2.1.0)
|
220
|
+
webmock (3.14.0)
|
221
|
+
addressable (>= 2.8.0)
|
222
|
+
crack (>= 0.3.2)
|
223
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
224
|
+
websocket-driver (0.7.5)
|
225
|
+
websocket-extensions (>= 0.1.0)
|
226
|
+
websocket-extensions (0.1.5)
|
227
|
+
zeitwerk (2.6.0)
|
228
|
+
|
229
|
+
PLATFORMS
|
230
|
+
ruby
|
231
|
+
|
232
|
+
DEPENDENCIES
|
233
|
+
byebug
|
234
|
+
minitest
|
235
|
+
mocha
|
236
|
+
pry
|
237
|
+
pry-nav
|
238
|
+
pry-stack_explorer
|
239
|
+
rails-controller-testing
|
240
|
+
rake
|
241
|
+
rb-readline
|
242
|
+
rubocop-shopify
|
243
|
+
shopify_app!
|
244
|
+
sqlite3 (~> 1.4)
|
245
|
+
webmock
|
246
|
+
|
247
|
+
BUNDLED WITH
|
248
|
+
2.3.5
|