shopify_app 13.0.0 → 16.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +5 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +6 -0
- data/.github/workflows/build.yml +38 -0
- data/.github/workflows/rubocop.yml +22 -0
- data/.gitignore +0 -2
- data/.rubocop.yml +14 -6
- data/CHANGELOG.md +95 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +252 -0
- data/README.md +83 -45
- data/Rakefile +1 -0
- data/SECURITY.md +59 -0
- data/app/assets/images/storage_access.svg +1 -2
- data/app/assets/javascripts/shopify_app/storage_access.js +2 -1
- data/app/assets/javascripts/shopify_app/top_level_interaction.js +1 -1
- data/app/controllers/concerns/shopify_app/authenticated.rb +1 -0
- data/app/controllers/concerns/shopify_app/require_known_shop.rb +39 -0
- data/app/controllers/shopify_app/authenticated_controller.rb +1 -0
- data/app/controllers/shopify_app/callback_controller.rb +77 -15
- data/app/controllers/shopify_app/extension_verification_controller.rb +2 -7
- data/app/controllers/shopify_app/sessions_controller.rb +24 -7
- data/app/controllers/shopify_app/webhooks_controller.rb +6 -5
- 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 +1 -1
- data/app/views/shopify_app/sessions/top_level_interaction.html.erb +21 -22
- data/config/locales/fi.yml +1 -1
- data/config/locales/nl.yml +7 -7
- data/config/locales/th.yml +4 -4
- data/config/routes.rb +1 -0
- data/docs/Quickstart.md +7 -17
- data/docs/Releasing.md +16 -14
- data/karma.conf.js +1 -1
- data/lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb +5 -3
- 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 +2 -1
- data/lib/generators/shopify_app/add_marketing_activity_extension/templates/marketing_activities_controller.rb +4 -4
- data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +5 -4
- data/lib/generators/shopify_app/add_webhook/templates/{webhook_job.rb → webhook_job.rb.tt} +5 -0
- data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +4 -3
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb +3 -3
- data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb +10 -9
- data/lib/generators/shopify_app/authenticated_controller/authenticated_controller_generator.rb +1 -1
- data/lib/generators/shopify_app/controllers/controllers_generator.rb +2 -1
- data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +22 -3
- data/lib/generators/shopify_app/home_controller/templates/index.html.erb +67 -17
- data/lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb +10 -0
- data/lib/generators/shopify_app/install/install_generator.rb +11 -10
- data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +1 -1
- data/lib/generators/shopify_app/install/templates/flash_messages.js +0 -2
- data/lib/generators/shopify_app/install/templates/omniauth.rb +2 -1
- data/lib/generators/shopify_app/install/templates/{shopify_app.rb → shopify_app.rb.tt} +4 -3
- data/lib/generators/shopify_app/install/templates/user_agent.rb +2 -1
- 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/routes/routes_generator.rb +1 -0
- data/lib/generators/shopify_app/routes/templates/routes.rb +10 -9
- data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +12 -7
- 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 +12 -7
- data/lib/generators/shopify_app/views/views_generator.rb +2 -1
- data/lib/shopify_app/configuration.rb +15 -8
- data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +3 -3
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +15 -0
- data/lib/shopify_app/controller_concerns/embedded_app.rb +3 -2
- data/lib/shopify_app/controller_concerns/itp.rb +2 -0
- data/lib/shopify_app/controller_concerns/localization.rb +1 -0
- data/lib/shopify_app/controller_concerns/login_protection.rb +85 -17
- data/lib/shopify_app/controller_concerns/payload_verification.rb +24 -0
- data/lib/shopify_app/controller_concerns/webhook_verification.rb +3 -18
- data/lib/shopify_app/engine.rb +26 -0
- data/lib/shopify_app/jobs/scripttags_manager_job.rb +1 -1
- data/lib/shopify_app/jobs/webhooks_manager_job.rb +1 -1
- data/lib/shopify_app/managers/scripttags_manager.rb +4 -3
- data/lib/shopify_app/managers/webhooks_manager.rb +4 -3
- data/lib/shopify_app/middleware/jwt_middleware.rb +42 -0
- data/lib/shopify_app/middleware/same_site_cookie_middleware.rb +2 -1
- data/lib/shopify_app/session/in_memory_session_store.rb +7 -3
- data/lib/shopify_app/session/in_memory_shop_session_store.rb +10 -0
- data/lib/shopify_app/session/in_memory_user_session_store.rb +10 -0
- data/lib/shopify_app/session/jwt.rb +63 -0
- data/lib/shopify_app/session/null_user_session_store.rb +22 -0
- data/lib/shopify_app/session/session_repository.rb +13 -16
- data/lib/shopify_app/session/session_storage.rb +1 -0
- data/lib/shopify_app/session/shop_session_storage.rb +21 -9
- data/lib/shopify_app/session/user_session_storage.rb +19 -8
- data/lib/shopify_app/test_helpers/all.rb +2 -0
- data/lib/shopify_app/test_helpers/webhook_verification_helper.rb +17 -0
- data/lib/shopify_app/utils.rb +6 -5
- data/lib/shopify_app/version.rb +2 -1
- data/lib/shopify_app.rb +12 -5
- data/package.json +7 -8
- data/shopify_app.gemspec +12 -7
- data/yarn.lock +2098 -2115
- metadata +56 -12
- data/.travis.yml +0 -27
- data/package-lock.json +0 -7245
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb021068958e3d20cb00ac2e038b2b51b475a70fe586756b426b4fe9f36ee214
|
4
|
+
data.tar.gz: 1263b5be44c7a8db83e4620130e00e191d30e12f541edc93861cf2383c132be1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0105ac8d2e7efe5b523ed8ab9d3e968ab9613215b000fb99c6f9515b2379428da7b291c3a2c0b6e9640440d9f2754474a3c11a62b3de2f9dbbdd4d02003af12e
|
7
|
+
data.tar.gz: 320fd2f2cf36367bffc54edf546169cc13d9be9ee3b02a3fdd02e1df9333529cfe323378e303872284567ed7f6642399dfbbc5ad46ba29a15ebc012184d25035
|
data/.github/ISSUE_TEMPLATE.md
CHANGED
@@ -12,3 +12,8 @@ Authentication Issues
|
|
12
12
|
A great deal of the issues surrounding this repo are around authenticating (installing) the generated app with Shopify.
|
13
13
|
|
14
14
|
If you are experiencing issues with your app authenticating/installing the best way to get help fast is to create a repo with the minimal amount of code to demonstrate the issue and a clearly documented set of steps you took to arrive there. This will help us solve your problem quicker since we won't need to spend any time figuring out how to reproduce the bug. Please also include your operating system and browser.
|
15
|
+
|
16
|
+
Security
|
17
|
+
--------
|
18
|
+
|
19
|
+
Please be certain to redact any private information from your logs or code snippets such as Api Keys, Api Secrets, and any authentication tokens such as shop_tokens.
|
@@ -0,0 +1,6 @@
|
|
1
|
+
Before submitting the PR, please consider if any of the following are needed:
|
2
|
+
|
3
|
+
- [ ] Update `CHANGELOG.md` if the changes would impact users
|
4
|
+
- [ ] Update `README.md`, if appropriate.
|
5
|
+
- [ ] Update any relevant pages in `docs/`, if necessary
|
6
|
+
- [ ] For security fixes, the [Disclosure Policy](https://github.com/Shopify/shopify_app/blob/master/SECURITY.md#disclosure-policy) must be followed.
|
@@ -0,0 +1,38 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
runs-on: macos-latest # prevents intermittent Chrome Headless error unlike ubuntu
|
9
|
+
name: Ruby ${{ matrix.version }}
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
version: [2.5, 2.6, 2.7]
|
13
|
+
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v2
|
16
|
+
- name: Cache node modules
|
17
|
+
uses: actions/cache@v2
|
18
|
+
with:
|
19
|
+
# npm cache files are stored in `~/.npm` on Linux/macOS
|
20
|
+
path: ~/.npm
|
21
|
+
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
22
|
+
- name: Set up Ruby ${{ matrix.version }}
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.version }}
|
26
|
+
bundler-cache: true
|
27
|
+
- name: Set up Node
|
28
|
+
uses: actions/setup-node@v2-beta
|
29
|
+
with:
|
30
|
+
node-version: '12'
|
31
|
+
- name: Install Dependencies
|
32
|
+
run: |
|
33
|
+
yarn
|
34
|
+
- name: Run Tests
|
35
|
+
run: |
|
36
|
+
yarn test
|
37
|
+
bundle exec rake test
|
38
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: RuboCop
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
|
9
|
+
steps:
|
10
|
+
- uses: actions/checkout@v2
|
11
|
+
- name: Set up Ruby 2.7
|
12
|
+
uses: ruby/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
ruby-version: 2.7
|
15
|
+
bundler-cache: true
|
16
|
+
- name: Install gems
|
17
|
+
run: |
|
18
|
+
bundle config path vendor/bundle
|
19
|
+
bundle config set without 'default development test'
|
20
|
+
bundle install --jobs 4 --retry 3
|
21
|
+
- name: Run RuboCop
|
22
|
+
run: bundle exec rubocop --parallel
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,10 +1,18 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
inherit_gem:
|
2
|
+
rubocop-shopify: rubocop.yml
|
3
3
|
|
4
|
-
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.7
|
5
6
|
Exclude:
|
6
|
-
- test/**/*
|
7
|
+
- 'test/tmp/**/*'
|
8
|
+
- 'vendor/bundle/**/*'
|
7
9
|
|
8
|
-
|
10
|
+
Style/MethodCallWithArgsParentheses:
|
9
11
|
Exclude:
|
10
|
-
-
|
12
|
+
- '**/Gemfile'
|
13
|
+
- 'test/**/*'
|
14
|
+
|
15
|
+
Style/ClassAndModuleChildren:
|
16
|
+
Exclude:
|
17
|
+
- 'test/**/*'
|
18
|
+
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,98 @@
|
|
1
|
+
16.0.0
|
2
|
+
------
|
3
|
+
* Update all `html.erb` and `css` files to correspond with updated store admin design language [#1102](https://github.com/Shopify/shopify_app/pull/1102)
|
4
|
+
|
5
|
+
15.0.1
|
6
|
+
------
|
7
|
+
* Allow JWT session token `sub` field to be parsed as a string [#1103](https://github.com/Shopify/shopify_app/pull/1103)
|
8
|
+
|
9
|
+
15.0.0
|
10
|
+
------
|
11
|
+
* Change `X-Shopify-API-Request-Failure-Unauthorized` HTTP header value from boolean to string
|
12
|
+
|
13
|
+
14.4.4
|
14
|
+
------
|
15
|
+
* Patch to not log params in ShopifyApp jobs [#1086](https://github.com/Shopify/shopify_app/pull/1086)
|
16
|
+
|
17
|
+
14.4.3
|
18
|
+
------
|
19
|
+
* Fix to ensure post authenticate jobs are run after callback requests [#1079](https://github.com/Shopify/shopify_app/pull/1079)
|
20
|
+
|
21
|
+
14.4.2
|
22
|
+
------
|
23
|
+
* Add debug logs in sessions controller
|
24
|
+
|
25
|
+
14.4.1
|
26
|
+
------
|
27
|
+
* Add debug logs for investigating authentication issues
|
28
|
+
|
29
|
+
14.4.0
|
30
|
+
------
|
31
|
+
* Replace script tags for ITP screens with data attributes
|
32
|
+
|
33
|
+
14.3.0
|
34
|
+
------
|
35
|
+
* Create user session if one does not exist but was expected
|
36
|
+
|
37
|
+
14.2.0
|
38
|
+
------
|
39
|
+
* Revert "Replace redirect calls to use App Bridge redirect functionality"
|
40
|
+
|
41
|
+
14.1.0
|
42
|
+
------
|
43
|
+
* Replace redirect calls to use App Bridge redirect functionality
|
44
|
+
|
45
|
+
14.0.0
|
46
|
+
------
|
47
|
+
* Ruby 2.4 is no longer supported by this gem
|
48
|
+
* Bump gemspec ruby dependency to 2.5
|
49
|
+
* (Beta) Add `--with-session-token` flag to the Shopify App generator to create an app that is compatible with App Bridge Authentication
|
50
|
+
|
51
|
+
13.5.0
|
52
|
+
------
|
53
|
+
* Add `signal_access_token_required` helper method for apps to indicate access token has expired and that a new one is required
|
54
|
+
|
55
|
+
13.4.1
|
56
|
+
------
|
57
|
+
* Fix the version checks for the dependency on `shopify_api` to allow all of v9.X
|
58
|
+
|
59
|
+
13.4.0
|
60
|
+
------
|
61
|
+
* Skip CSRF protection if a valid signed JWT token is present as we trust Shopify to be the only source that can sign it securely. [#994](https://github.com/Shopify/shopify_app/pull/994)
|
62
|
+
|
63
|
+
13.3.0
|
64
|
+
------
|
65
|
+
* Added Payload Verification module [#992](https://github.com/Shopify/shopify_app/pull/992)
|
66
|
+
* Add concern to check for valid shop domains in the unauthenticated controller
|
67
|
+
|
68
|
+
13.2.0
|
69
|
+
------
|
70
|
+
* Get current shop domain from JWT header
|
71
|
+
* Validate that the omniauth data matches the JWT data
|
72
|
+
* Persist the token information to the session store
|
73
|
+
|
74
|
+
13.1.1
|
75
|
+
------
|
76
|
+
* Update browser_sniffer to 1.2.2
|
77
|
+
|
78
|
+
13.1.0
|
79
|
+
------
|
80
|
+
* Adds the shop URL as a parameter when redirecting after the callback
|
81
|
+
* Bump minimum Ruby version to 2.4
|
82
|
+
* Bug fixes
|
83
|
+
|
84
|
+
13.0.1
|
85
|
+
------
|
86
|
+
* Small addition to WebhookJob to return if the shop is nil #952
|
87
|
+
* Added Rubocop to the Repo #948
|
88
|
+
* Added a WebhookVerification test helper #950
|
89
|
+
* Fix for deprecation warning while loading session storage at startup
|
90
|
+
* Changes that will allow future JWT authentication
|
91
|
+
|
92
|
+
13.0.1
|
93
|
+
------
|
94
|
+
* fix for deprecation warning while loading session storage at startup
|
95
|
+
|
1
96
|
13.0.0
|
2
97
|
------
|
3
98
|
+ #887 Added concurrent user and shop session support (online/offline)
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,252 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
shopify_app (16.0.0)
|
5
|
+
browser_sniffer (~> 1.2.2)
|
6
|
+
jwt (~> 2.2.1)
|
7
|
+
omniauth-shopify-oauth2 (~> 2.2.2)
|
8
|
+
rails (> 5.2.1)
|
9
|
+
redirect_safely (~> 1.0)
|
10
|
+
shopify_api (~> 9.1)
|
11
|
+
|
12
|
+
GEM
|
13
|
+
remote: https://rubygems.org/
|
14
|
+
specs:
|
15
|
+
actioncable (6.0.3.3)
|
16
|
+
actionpack (= 6.0.3.3)
|
17
|
+
nio4r (~> 2.0)
|
18
|
+
websocket-driver (>= 0.6.1)
|
19
|
+
actionmailbox (6.0.3.3)
|
20
|
+
actionpack (= 6.0.3.3)
|
21
|
+
activejob (= 6.0.3.3)
|
22
|
+
activerecord (= 6.0.3.3)
|
23
|
+
activestorage (= 6.0.3.3)
|
24
|
+
activesupport (= 6.0.3.3)
|
25
|
+
mail (>= 2.7.1)
|
26
|
+
actionmailer (6.0.3.3)
|
27
|
+
actionpack (= 6.0.3.3)
|
28
|
+
actionview (= 6.0.3.3)
|
29
|
+
activejob (= 6.0.3.3)
|
30
|
+
mail (~> 2.5, >= 2.5.4)
|
31
|
+
rails-dom-testing (~> 2.0)
|
32
|
+
actionpack (6.0.3.3)
|
33
|
+
actionview (= 6.0.3.3)
|
34
|
+
activesupport (= 6.0.3.3)
|
35
|
+
rack (~> 2.0, >= 2.0.8)
|
36
|
+
rack-test (>= 0.6.3)
|
37
|
+
rails-dom-testing (~> 2.0)
|
38
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
39
|
+
actiontext (6.0.3.3)
|
40
|
+
actionpack (= 6.0.3.3)
|
41
|
+
activerecord (= 6.0.3.3)
|
42
|
+
activestorage (= 6.0.3.3)
|
43
|
+
activesupport (= 6.0.3.3)
|
44
|
+
nokogiri (>= 1.8.5)
|
45
|
+
actionview (6.0.3.3)
|
46
|
+
activesupport (= 6.0.3.3)
|
47
|
+
builder (~> 3.1)
|
48
|
+
erubi (~> 1.4)
|
49
|
+
rails-dom-testing (~> 2.0)
|
50
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
51
|
+
activejob (6.0.3.3)
|
52
|
+
activesupport (= 6.0.3.3)
|
53
|
+
globalid (>= 0.3.6)
|
54
|
+
activemodel (6.0.3.3)
|
55
|
+
activesupport (= 6.0.3.3)
|
56
|
+
activemodel-serializers-xml (1.0.2)
|
57
|
+
activemodel (> 5.x)
|
58
|
+
activesupport (> 5.x)
|
59
|
+
builder (~> 3.1)
|
60
|
+
activerecord (6.0.3.3)
|
61
|
+
activemodel (= 6.0.3.3)
|
62
|
+
activesupport (= 6.0.3.3)
|
63
|
+
activeresource (5.1.1)
|
64
|
+
activemodel (>= 5.0, < 7)
|
65
|
+
activemodel-serializers-xml (~> 1.0)
|
66
|
+
activesupport (>= 5.0, < 7)
|
67
|
+
activestorage (6.0.3.3)
|
68
|
+
actionpack (= 6.0.3.3)
|
69
|
+
activejob (= 6.0.3.3)
|
70
|
+
activerecord (= 6.0.3.3)
|
71
|
+
marcel (~> 0.3.1)
|
72
|
+
activesupport (6.0.3.3)
|
73
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
74
|
+
i18n (>= 0.7, < 2)
|
75
|
+
minitest (~> 5.1)
|
76
|
+
tzinfo (~> 1.1)
|
77
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
78
|
+
addressable (2.7.0)
|
79
|
+
public_suffix (>= 2.0.2, < 5.0)
|
80
|
+
ast (2.4.1)
|
81
|
+
binding_of_caller (0.8.0)
|
82
|
+
debug_inspector (>= 0.0.1)
|
83
|
+
browser_sniffer (1.2.2)
|
84
|
+
builder (3.2.4)
|
85
|
+
byebug (11.1.3)
|
86
|
+
coderay (1.1.3)
|
87
|
+
concurrent-ruby (1.1.7)
|
88
|
+
crack (0.4.4)
|
89
|
+
crass (1.0.6)
|
90
|
+
debug_inspector (0.0.3)
|
91
|
+
erubi (1.9.0)
|
92
|
+
faraday (1.1.0)
|
93
|
+
multipart-post (>= 1.2, < 3)
|
94
|
+
ruby2_keywords
|
95
|
+
globalid (0.4.2)
|
96
|
+
activesupport (>= 4.2.0)
|
97
|
+
graphql (1.11.6)
|
98
|
+
graphql-client (0.16.0)
|
99
|
+
activesupport (>= 3.0)
|
100
|
+
graphql (~> 1.8)
|
101
|
+
hashdiff (1.0.1)
|
102
|
+
hashie (4.1.0)
|
103
|
+
i18n (1.8.5)
|
104
|
+
concurrent-ruby (~> 1.0)
|
105
|
+
jwt (2.2.2)
|
106
|
+
loofah (2.7.0)
|
107
|
+
crass (~> 1.0.2)
|
108
|
+
nokogiri (>= 1.5.9)
|
109
|
+
mail (2.7.1)
|
110
|
+
mini_mime (>= 0.1.1)
|
111
|
+
marcel (0.3.3)
|
112
|
+
mimemagic (~> 0.3.2)
|
113
|
+
method_source (0.9.2)
|
114
|
+
mimemagic (0.3.5)
|
115
|
+
mini_mime (1.0.2)
|
116
|
+
mini_portile2 (2.4.0)
|
117
|
+
minitest (5.14.2)
|
118
|
+
mocha (1.11.2)
|
119
|
+
multi_json (1.15.0)
|
120
|
+
multi_xml (0.6.0)
|
121
|
+
multipart-post (2.1.1)
|
122
|
+
nio4r (2.5.4)
|
123
|
+
nokogiri (1.10.10)
|
124
|
+
mini_portile2 (~> 2.4.0)
|
125
|
+
oauth2 (1.4.4)
|
126
|
+
faraday (>= 0.8, < 2.0)
|
127
|
+
jwt (>= 1.0, < 3.0)
|
128
|
+
multi_json (~> 1.3)
|
129
|
+
multi_xml (~> 0.5)
|
130
|
+
rack (>= 1.2, < 3)
|
131
|
+
omniauth (1.9.1)
|
132
|
+
hashie (>= 3.4.6)
|
133
|
+
rack (>= 1.6.2, < 3)
|
134
|
+
omniauth-oauth2 (1.5.0)
|
135
|
+
oauth2 (~> 1.1)
|
136
|
+
omniauth (~> 1.2)
|
137
|
+
omniauth-shopify-oauth2 (2.2.3)
|
138
|
+
activesupport
|
139
|
+
omniauth-oauth2 (~> 1.5.0)
|
140
|
+
parallel (1.20.1)
|
141
|
+
parser (2.7.2.0)
|
142
|
+
ast (~> 2.4.1)
|
143
|
+
pry (0.12.2)
|
144
|
+
coderay (~> 1.1.0)
|
145
|
+
method_source (~> 0.9.0)
|
146
|
+
pry-nav (0.3.0)
|
147
|
+
pry (>= 0.9.10, < 0.13.0)
|
148
|
+
pry-stack_explorer (0.4.9.3)
|
149
|
+
binding_of_caller (>= 0.7)
|
150
|
+
pry (>= 0.9.11)
|
151
|
+
public_suffix (4.0.6)
|
152
|
+
rack (2.2.3)
|
153
|
+
rack-test (1.1.0)
|
154
|
+
rack (>= 1.0, < 3)
|
155
|
+
rails (6.0.3.3)
|
156
|
+
actioncable (= 6.0.3.3)
|
157
|
+
actionmailbox (= 6.0.3.3)
|
158
|
+
actionmailer (= 6.0.3.3)
|
159
|
+
actionpack (= 6.0.3.3)
|
160
|
+
actiontext (= 6.0.3.3)
|
161
|
+
actionview (= 6.0.3.3)
|
162
|
+
activejob (= 6.0.3.3)
|
163
|
+
activemodel (= 6.0.3.3)
|
164
|
+
activerecord (= 6.0.3.3)
|
165
|
+
activestorage (= 6.0.3.3)
|
166
|
+
activesupport (= 6.0.3.3)
|
167
|
+
bundler (>= 1.3.0)
|
168
|
+
railties (= 6.0.3.3)
|
169
|
+
sprockets-rails (>= 2.0.0)
|
170
|
+
rails-controller-testing (1.0.5)
|
171
|
+
actionpack (>= 5.0.1.rc1)
|
172
|
+
actionview (>= 5.0.1.rc1)
|
173
|
+
activesupport (>= 5.0.1.rc1)
|
174
|
+
rails-dom-testing (2.0.3)
|
175
|
+
activesupport (>= 4.2.0)
|
176
|
+
nokogiri (>= 1.6)
|
177
|
+
rails-html-sanitizer (1.3.0)
|
178
|
+
loofah (~> 2.3)
|
179
|
+
railties (6.0.3.3)
|
180
|
+
actionpack (= 6.0.3.3)
|
181
|
+
activesupport (= 6.0.3.3)
|
182
|
+
method_source
|
183
|
+
rake (>= 0.8.7)
|
184
|
+
thor (>= 0.20.3, < 2.0)
|
185
|
+
rainbow (3.0.0)
|
186
|
+
rake (13.0.1)
|
187
|
+
rb-readline (0.5.5)
|
188
|
+
redirect_safely (1.0.0)
|
189
|
+
activemodel
|
190
|
+
regexp_parser (2.0.0)
|
191
|
+
rexml (3.2.4)
|
192
|
+
rubocop (1.5.2)
|
193
|
+
parallel (~> 1.10)
|
194
|
+
parser (>= 2.7.1.5)
|
195
|
+
rainbow (>= 2.2.2, < 4.0)
|
196
|
+
regexp_parser (>= 1.8, < 3.0)
|
197
|
+
rexml
|
198
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
199
|
+
ruby-progressbar (~> 1.7)
|
200
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
201
|
+
rubocop-ast (1.3.0)
|
202
|
+
parser (>= 2.7.1.5)
|
203
|
+
rubocop-shopify (1.0.7)
|
204
|
+
rubocop (~> 1.4)
|
205
|
+
ruby-progressbar (1.10.1)
|
206
|
+
ruby2_keywords (0.0.2)
|
207
|
+
shopify_api (9.2.0)
|
208
|
+
activeresource (>= 4.1.0, < 6.0.0)
|
209
|
+
graphql-client
|
210
|
+
rack
|
211
|
+
sprockets (4.0.2)
|
212
|
+
concurrent-ruby (~> 1.0)
|
213
|
+
rack (> 1, < 3)
|
214
|
+
sprockets-rails (3.2.2)
|
215
|
+
actionpack (>= 4.0)
|
216
|
+
activesupport (>= 4.0)
|
217
|
+
sprockets (>= 3.0.0)
|
218
|
+
sqlite3 (1.4.2)
|
219
|
+
thor (1.0.1)
|
220
|
+
thread_safe (0.3.6)
|
221
|
+
tzinfo (1.2.7)
|
222
|
+
thread_safe (~> 0.1)
|
223
|
+
unicode-display_width (1.7.0)
|
224
|
+
webmock (3.9.1)
|
225
|
+
addressable (>= 2.3.6)
|
226
|
+
crack (>= 0.3.2)
|
227
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
228
|
+
websocket-driver (0.7.3)
|
229
|
+
websocket-extensions (>= 0.1.0)
|
230
|
+
websocket-extensions (0.1.5)
|
231
|
+
zeitwerk (2.4.0)
|
232
|
+
|
233
|
+
PLATFORMS
|
234
|
+
ruby
|
235
|
+
|
236
|
+
DEPENDENCIES
|
237
|
+
byebug
|
238
|
+
minitest
|
239
|
+
mocha
|
240
|
+
pry
|
241
|
+
pry-nav
|
242
|
+
pry-stack_explorer
|
243
|
+
rails-controller-testing
|
244
|
+
rake
|
245
|
+
rb-readline
|
246
|
+
rubocop-shopify
|
247
|
+
shopify_app!
|
248
|
+
sqlite3 (~> 1.4)
|
249
|
+
webmock
|
250
|
+
|
251
|
+
BUNDLED WITH
|
252
|
+
2.1.4
|