shopify_app 21.6.0 → 22.5.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 +23 -18
- data/.github/workflows/build.yml +2 -2
- data/.github/workflows/release.yml +1 -1
- data/.github/workflows/rubocop.yml +1 -2
- data/.nvmrc +1 -1
- data/.rubocop.yml +0 -1
- data/CHANGELOG.md +115 -0
- data/CODE_OF_CONDUCT.md +46 -0
- data/CONTRIBUTING.md +1 -6
- data/Gemfile.lock +99 -96
- data/README.md +47 -2
- data/app/assets/javascripts/shopify_app/redirect.js +3 -10
- data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +5 -1
- data/app/controllers/concerns/shopify_app/ensure_has_session.rb +11 -5
- data/app/controllers/concerns/shopify_app/ensure_installed.rb +10 -4
- data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +5 -1
- data/app/controllers/shopify_app/callback_controller.rb +39 -18
- data/app/controllers/shopify_app/sessions_controller.rb +25 -4
- data/app/views/shopify_app/layouts/app_bridge.html.erb +17 -0
- data/app/views/shopify_app/sessions/patch_shopify_id_token.html.erb +0 -0
- data/app/views/shopify_app/shared/redirect.html.erb +10 -1
- data/config/locales/cs.yml +0 -18
- data/config/locales/da.yml +0 -15
- data/config/locales/de.yml +0 -17
- data/config/locales/en.yml +0 -11
- data/config/locales/es.yml +0 -17
- data/config/locales/fi.yml +0 -15
- data/config/locales/fr.yml +0 -18
- data/config/locales/it.yml +0 -16
- data/config/locales/ja.yml +0 -12
- data/config/locales/ko.yml +0 -14
- data/config/locales/nb.yml +0 -16
- data/config/locales/nl.yml +0 -16
- data/config/locales/pl.yml +0 -16
- data/config/locales/pt-BR.yml +0 -16
- data/config/locales/pt-PT.yml +0 -17
- data/config/locales/sv.yml +0 -16
- data/config/locales/th.yml +0 -15
- data/config/locales/tr.yml +0 -17
- data/config/locales/vi.yml +0 -17
- data/config/locales/zh-CN.yml +0 -11
- data/config/locales/zh-TW.yml +0 -11
- data/config/routes.rb +2 -1
- data/docs/Quickstart.md +9 -2
- data/docs/Troubleshooting.md +0 -23
- data/docs/Upgrading.md +64 -1
- data/docs/shopify_app/authentication.md +179 -58
- data/docs/shopify_app/controller-concerns.md +53 -12
- data/docs/shopify_app/generators.md +2 -2
- data/docs/shopify_app/sessions.md +358 -0
- data/docs/shopify_app/webhooks.md +88 -11
- data/karma.conf.js +6 -4
- data/lib/generators/shopify_app/add_declarative_webhook/add_declarative_webhook_generator.rb +53 -0
- data/lib/generators/shopify_app/add_declarative_webhook/templates/webhook_controller.rb.tt +13 -0
- data/lib/generators/shopify_app/add_declarative_webhook/templates/webhook_job.rb.tt +15 -0
- data/lib/generators/shopify_app/{add_gdpr_jobs/add_gdpr_jobs_generator.rb → add_privacy_jobs/add_privacy_jobs_generator.rb} +1 -1
- data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +6 -1
- data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +1 -0
- data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +5 -2
- data/lib/generators/shopify_app/shopify_app_generator.rb +1 -1
- data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_expires_at_column.erb +5 -0
- data/lib/generators/shopify_app/user_model/user_model_generator.rb +20 -0
- data/lib/shopify_app/admin_api/with_token_refetch.rb +27 -0
- data/lib/shopify_app/auth/post_authenticate_tasks.rb +48 -0
- data/lib/shopify_app/auth/token_exchange.rb +73 -0
- data/lib/shopify_app/configuration.rb +69 -1
- data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +1 -1
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
- data/lib/shopify_app/controller_concerns/embedded_app.rb +42 -3
- data/lib/shopify_app/controller_concerns/ensure_billing.rb +14 -3
- data/lib/shopify_app/controller_concerns/frame_ancestors.rb +1 -1
- data/lib/shopify_app/controller_concerns/localization.rb +11 -8
- data/lib/shopify_app/controller_concerns/login_protection.rb +34 -38
- data/lib/shopify_app/controller_concerns/redirect_for_embedded.rb +5 -0
- data/lib/shopify_app/controller_concerns/sanitized_params.rb +4 -0
- data/lib/shopify_app/controller_concerns/token_exchange.rb +111 -0
- data/lib/shopify_app/controller_concerns/with_shopify_id_token.rb +48 -0
- data/lib/shopify_app/engine.rb +5 -11
- data/lib/shopify_app/managers/webhooks_manager.rb +6 -2
- data/lib/shopify_app/middleware/jwt_middleware.rb +13 -9
- data/lib/shopify_app/session/in_memory_user_session_store.rb +1 -1
- data/lib/shopify_app/session/jwt.rb +9 -0
- data/lib/shopify_app/session/session_repository.rb +49 -8
- data/lib/shopify_app/session/shop_session_storage.rb +4 -0
- data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +4 -0
- data/lib/shopify_app/session/user_session_storage.rb +4 -0
- data/lib/shopify_app/session/user_session_storage_with_scopes.rb +25 -0
- data/lib/shopify_app/test_helpers/shopify_session_helper.rb +1 -0
- data/lib/shopify_app/utils.rb +14 -1
- data/lib/shopify_app/version.rb +1 -1
- data/lib/shopify_app.rb +9 -3
- data/package.json +5 -6
- data/shopify_app.gemspec +4 -4
- data/yarn.lock +2134 -3905
- metadata +51 -60
- data/.github/workflows/stale.yml +0 -43
- data/app/assets/images/storage_access.svg +0 -1
- data/app/assets/javascripts/shopify_app/app_bridge_3.1.1.js +0 -10
- data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +0 -22
- data/app/assets/javascripts/shopify_app/app_bridge_utils_3.1.1.js +0 -1
- data/app/controllers/concerns/shopify_app/authenticated.rb +0 -17
- data/app/controllers/concerns/shopify_app/require_known_shop.rb +0 -16
- data/docs/shopify_app/script-tags.md +0 -28
- data/docs/shopify_app/session-repository.md +0 -79
- data/lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb +0 -42
- data/lib/generators/shopify_app/add_marketing_activity_extension/templates/marketing_activities_controller.rb +0 -63
- data/lib/shopify_app/controller_concerns/itp.rb +0 -50
- data/lib/shopify_app/jobs/scripttags_manager_job.rb +0 -16
- data/lib/shopify_app/managers/scripttags_manager.rb +0 -85
- /data/lib/generators/shopify_app/{add_gdpr_jobs → add_privacy_jobs}/templates/customers_data_request_job.rb.tt +0 -0
- /data/lib/generators/shopify_app/{add_gdpr_jobs → add_privacy_jobs}/templates/customers_redact_job.rb.tt +0 -0
- /data/lib/generators/shopify_app/{add_gdpr_jobs → add_privacy_jobs}/templates/shop_redact_job.rb.tt +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a8d6fb5b227bbe3070fba9050497eb007e4191a782bc89b12a84546470ed65
|
4
|
+
data.tar.gz: 5f8d8e4486585b07a93ad7f6abddaebde7a263568dc78e757627476aba37d38b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a0b7ad073c42b6fbe5033aa686fa365050d8d56305507746b15f938a1511e979eecd49dcaefbe2793114c6ca4c4ef4f986085b743651115dc816faab404da15
|
7
|
+
data.tar.gz: a8896ed834816ef8fd35f17db67aef3efcd401fa2a46900e2a2bce8d5b96f863db3eaa0335e73d63b6c48e6382d52d9103c46fce7a7252568e1abe7e503d2075
|
data/.github/CODEOWNERS
CHANGED
@@ -6,36 +6,41 @@ labels: "Type: Bug 🐛"
|
|
6
6
|
|
7
7
|
# Issue summary
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
Before opening this issue, I have:
|
10
|
+
|
11
|
+
- [ ] Upgraded to the latest version of the package
|
12
|
+
- `shopify_app` version:
|
13
|
+
- Ruby version:
|
14
|
+
- Operating system:
|
15
|
+
- [ ] Set `log_level: :debug` [in my configuration](https://github.com/Shopify/shopify-api-ruby#setup-shopify-context), if applicable
|
16
|
+
- [ ] Found a reliable way to reproduce the problem that indicates it's a problem with the package
|
17
|
+
- [ ] Looked for similar issues in this repository
|
18
|
+
- [ ] Checked that this isn't an issue with a Shopify API
|
19
|
+
- If it is, please create a post in the [Shopify community forums](https://community.shopify.com/c/partners-and-developers/ct-p/appdev) or report it to [Shopify Partner Support](https://help.shopify.com/en/support/partners/org-select)
|
13
20
|
|
14
|
-
|
15
|
-
|
16
|
-
Learn more: https://github.com/Shopify/shopify-api-ruby#setup-shopify-context
|
21
|
+
<!--
|
22
|
+
Write a short description of the issue here.
|
17
23
|
|
24
|
+
We can only fix issues for which there is a clear reproduction scenario.
|
25
|
+
The more context you can provide, the easier it becomes for us to investigate and fix the issue.
|
18
26
|
-->
|
19
27
|
|
20
|
-
- `shopify_api` version:
|
21
|
-
- `shopify_app` version:
|
22
|
-
- Ruby version:
|
23
|
-
- Operating system:
|
24
|
-
|
25
|
-
```
|
26
|
-
// Paste any relevant logs here
|
27
|
-
```
|
28
|
-
|
29
28
|
## Expected behavior
|
30
29
|
|
31
|
-
|
30
|
+
What do you think should happen?
|
32
31
|
|
33
32
|
## Actual behavior
|
34
33
|
|
35
|
-
|
34
|
+
What actually happens?
|
36
35
|
|
37
36
|
## Steps to reproduce the problem
|
38
37
|
|
39
38
|
1.
|
40
39
|
1.
|
41
40
|
1.
|
41
|
+
|
42
|
+
## Debug logs
|
43
|
+
|
44
|
+
```
|
45
|
+
// Paste any relevant logs here
|
46
|
+
```
|
data/.github/workflows/build.yml
CHANGED
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
name: Ruby ${{ matrix.version }}
|
13
13
|
strategy:
|
14
14
|
matrix:
|
15
|
-
version: ['
|
15
|
+
version: ['3.0', '3.1', '3.2', '3.3']
|
16
16
|
|
17
17
|
steps:
|
18
18
|
- uses: actions/checkout@v3
|
@@ -30,7 +30,7 @@ jobs:
|
|
30
30
|
- name: Set up Node
|
31
31
|
uses: actions/setup-node@v3
|
32
32
|
with:
|
33
|
-
node-version: '
|
33
|
+
node-version: '18'
|
34
34
|
- name: Install Yarn Dependencies
|
35
35
|
run: yarn
|
36
36
|
- name: Run Yarn Tests
|
data/.nvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
20.10.0
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,121 @@
|
|
1
1
|
Unreleased
|
2
2
|
----------
|
3
3
|
|
4
|
+
22.5.0 (November 28, 2024)
|
5
|
+
----------
|
6
|
+
- Add support for filters in webhook registration [1923](https://github.com/Shopify/shopify_app/pull/1923)
|
7
|
+
- Make `ShopifyApp.configuration.scope` default to empty list `[]` [1913](https://github.com/Shopify/shopify_app/pull/1913)
|
8
|
+
|
9
|
+
22.4.0 (August 22, 2024)
|
10
|
+
----------
|
11
|
+
- Add the `unified_admin_domain` configuration option for the unified admin domain.
|
12
|
+
- Add new generators for webhook subscriptions defined in the `shopify.app.toml` file [1882](https://github.com/Shopify/shopify_app/pull/1882)
|
13
|
+
- Fix test stubbing for Token Exchange auth [1897](https://github.com/Shopify/shopify_app/pull/1897)
|
14
|
+
|
15
|
+
22.3.1 (July 26, 2024)
|
16
|
+
----------
|
17
|
+
- Handle edge case where we attempted to redirect to login when already at the top level [#1887](https://github.com/Shopify/shopify_app/pull/1887)
|
18
|
+
|
19
|
+
22.3.0 (July 24, 2024)
|
20
|
+
----------
|
21
|
+
- Deprecate `ShopifyApp::JWTMiddleware`. And remove internal usage. Any existing app code relying on decoded JWT contents set from `request.env` should instead include the `WithShopifyIdToken` concern and call its respective methods. [#1861](https://github.com/Shopify/shopify_app/pull/1861) [Migration Guide](/docs/Upgrading.md#v2300---removed-shopifyappjwtmiddleware)
|
22
|
+
- Handle scenario when invalid URI is passed to `sanitize_shop_domain` [#1852](https://github.com/Shopify/shopify_app/pull/1852)
|
23
|
+
- Remove references to old JS files during asset precompile [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
24
|
+
- Remove old translation keys for `enable_cookies_*`, `top_level_interaction_*` and `request_storage_access_*` [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
25
|
+
- Add invalid id token handling for `current_shopify_domain` method [#1868](https://github.com/Shopify/shopify_app/pull/1868)
|
26
|
+
- Keep original path and params when redirecting deep links to embed [#1869](https://github.com/Shopify/shopify_app/pull/1869)
|
27
|
+
- Fix managed install path for SPIN environments [#1877](https://github.com/Shopify/shopify_app/pull/1877)
|
28
|
+
- Migrate fullpage redirect to App Bridge CDN [#1870](https://github.com/Shopify/shopify_app/pull/1870)
|
29
|
+
- Improve embedded requests detection with `Sec-Fetch-Dest` header [#1873](https://github.com/Shopify/shopify_app/pull/1873)
|
30
|
+
- Fix bug where locale is not read from session if locale param is not present in app request [#1878](https://github.com/Shopify/shopify_app/pull/1878)
|
31
|
+
|
32
|
+
22.2.1 (May 6,2024)
|
33
|
+
----------
|
34
|
+
* Patch - Don't delete session on 401 errors during retry in `with_token_refetch` [#1844](https://github.com/Shopify/shopify_app/pull/1844)
|
35
|
+
|
36
|
+
22.2.0 (May 2,2024)
|
37
|
+
----------
|
38
|
+
* Add new zero redirect authorization strategy - `Token Exchange`.
|
39
|
+
- This strategy replaces the existing OAuth flow for embedded apps and remove the redirects that were previously necessary to complete OAuth.
|
40
|
+
See ["New embedded app authorization strategy (Token Exchange)"](/README.md/#new-embedded-app-authorization-strategy-token-exchange) for how to enable this feature.
|
41
|
+
- Related PRs: [#1817](https://github.com/Shopify/shopify_app/pull/1817),
|
42
|
+
[#1818](https://github.com/Shopify/shopify_app/pull/1818),
|
43
|
+
[#1819](https://github.com/Shopify/shopify_app/pull/1819),
|
44
|
+
[#1821](https://github.com/Shopify/shopify_app/pull/1821),
|
45
|
+
[#1822](https://github.com/Shopify/shopify_app/pull/1822),
|
46
|
+
[#1823](https://github.com/Shopify/shopify_app/pull/1823),
|
47
|
+
[#1832](https://github.com/Shopify/shopify_app/pull/1832),
|
48
|
+
[#1833](https://github.com/Shopify/shopify_app/pull/1833),
|
49
|
+
[#1834](https://github.com/Shopify/shopify_app/pull/1834),
|
50
|
+
[#1836](https://github.com/Shopify/shopify_app/pull/1836),
|
51
|
+
* Bumps `shopify_api` to `14.3.0` [1832](https://github.com/Shopify/shopify_app/pull/1832)
|
52
|
+
* Support `id_token` from URL param [1832](https://github.com/Shopify/shopify_app/pull/1832)
|
53
|
+
* Extracted controller concern `WithShopifyIdToken`
|
54
|
+
* This concern provides a method `shopify_id_token` to retrieve the Shopify Id token from either the authorization header or the URL param `id_token`.
|
55
|
+
* `ShopifyApp::JWTMiddleware` supports retrieving session token from URL param `id_token`
|
56
|
+
* `ShopifyApp::JWTMiddleware` returns early if the app is not embedded to avoid unnecessary JWT verification
|
57
|
+
* `LoginProtection` now uses `WithShopifyIdToken` concern to retrieve the Shopify Id token, thus accepting the session token from the URL param `id_token`
|
58
|
+
* Marking `ShopifyApp::JWT` to be deprecated in version 23.0.0 [1832](https://github.com/Shopify/shopify_app/pull/1832), use `ShopifyAPI::Auth::JwtPayload` instead.
|
59
|
+
* Fix infinite redirect loop caused by handling errors from Billing API [1833](https://github.com/Shopify/shopify_app/pull/1833)
|
60
|
+
|
61
|
+
22.1.0 (April 9,2024)
|
62
|
+
----------
|
63
|
+
* Extracted class - `PostAuthenticateTasks` to handle post authenticate tasks. To learn more, see [post authenticate tasks](/docs/shopify_app/authentication.md#post-authenticate-tasks). [1819](https://github.com/Shopify/shopify_app/pull/1819)
|
64
|
+
* Bumps shopify_api dependency to 14.1.0 [1826](https://github.com/Shopify/shopify_app/pull/1826)
|
65
|
+
|
66
|
+
22.0.1 (March 12, 2024)
|
67
|
+
----------
|
68
|
+
* Bumps `shopify_api` to `14.0.1` [1813](https://github.com/Shopify/shopify_app/pull/1813)
|
69
|
+
|
70
|
+
22.00.0 (March 5, 2024)
|
71
|
+
----------
|
72
|
+
|
73
|
+
To migrate from a previous version, please see the [v22 migration guide](docs/Upgrading.md#upgrading-to-v2200).
|
74
|
+
|
75
|
+
* ⚠️ [Breaking] Bumps minimum supported Ruby version to 3.0. Bumps `shopify_api` to 14.0 [1801](https://github.com/Shopify/shopify_app/pull/1801)
|
76
|
+
* ⚠️ [Breaking] Removes deprecated controller concerns that were renamed in `v21.10.0`. [1805](https://github.com/Shopify/shopify_app/pull/1805)
|
77
|
+
* ⚠️ [Breaking] Removes deprecated `ScripttagManager`. We realize there was communication error in our logging where we logged future deprecation instead of our inteded removal. Since we have been logging that for 2 years we felt we'd move forward with the removal instead pushing this off until the next major release. [1806](https://github.com/Shopify/shopify_app/pull/1806)
|
78
|
+
* ⚠️ [Breaking] Removes ITP controller concern and `browser_sniffer` dependency.[1810](https://github.com/Shopify/shopify_app/pull/1810)
|
79
|
+
* ⚠️ [Breaking] Removes Marketing Extensions generator [1810](https://github.com/Shopify/shopify_app/pull/1810)
|
80
|
+
* ⚠️ [Breaking] Thows an error if a controller includes incompatible concerns (LoginProtection/EnsureInstalled) [1809](https://github.com/Shopify/shopify_app/pull/1809)
|
81
|
+
* ⚠️ [Breaking] No longer rescues non-shopify API errors during OAuth
|
82
|
+
callback [1807](https://github.com/Shopify/shopify_app/pull/1807)
|
83
|
+
* Make type param for webhooks route optional. This will fix a bug with CLI initiated webhooks.[1786](https://github.com/Shopify/shopify_app/pull/1786)
|
84
|
+
* Fix redirecting to login when we catch a 401 response from Shopify, so that it can also handle cases where the app is already embedded when that happens.[1787](https://github.com/Shopify/shopify_app/pull/1787)
|
85
|
+
* Always register webhooks with offline sessions.[1788](https://github.com/Shopify/shopify_app/pull/1788)
|
86
|
+
|
87
|
+
21.10.0 (January 24, 2024)
|
88
|
+
----------
|
89
|
+
* Fix session deletion for users with customized session storage[#1773](https://github.com/Shopify/shopify_app/pull/1773)
|
90
|
+
* Add configuration flag `check_session_expiry_date` to trigger a re-auth when the (user) session is expired. The session expiry date must be stored and retrieved for this flag to be effective. When the `UserSessionStorageWithScopes` concern is used, a DB migration can be generated with `rails generate shopify_app:user_model --skip` and should be applied before enabling that flag[#1757](https://github.com/Shopify/shopify_app/pull/1757)
|
91
|
+
|
92
|
+
21.9.0 (January 16, 2024)
|
93
|
+
----------
|
94
|
+
* Fix `add_webhook` generator to create the webhook jobs under the correct directory[#1748](https://github.com/Shopify/shopify_app/pull/1748)
|
95
|
+
* Add support for metafield_namespaces in webhook registration [#1745](https://github.com/Shopify/shopify_app/pull/1745)
|
96
|
+
* Bumps `shopify_api` to latest version (13.4.0), adds support for 2024-01 API version [#1776](https://github.com/Shopify/shopify_app/pull/1776)
|
97
|
+
|
98
|
+
21.8.1 (December 6, 2023)
|
99
|
+
----------
|
100
|
+
* Bump `shopify_api` to 13.3.1 [1763](https://github.com/Shopify/shopify-api-ruby/blob/main/CHANGELOG.md#1331)
|
101
|
+
|
102
|
+
21.8.0 (Dec 1, 2023)
|
103
|
+
----------
|
104
|
+
* Bump `shopify_api` to include bugfix with mandatory webhooks + fixes for CI failures that prevented earlier release
|
105
|
+
* Fixes bug with `WebhooksManager#recreate_webhooks!` where we failed to register topics in the registry[#1743](https://github.com/Shopify/shopify_app/pull/1704)
|
106
|
+
* Allow embedded apps to provide a full URL to get redirected to, rather than defaulting to Shopify Admin [#1746](https://github.com/Shopify/shopify_app/pull/1746)
|
107
|
+
|
108
|
+
21.7.0 (Oct 12, 2023)
|
109
|
+
----------
|
110
|
+
* Fixes typo in webhook generator [#1704](https://github.com/Shopify/shopify_app/pull/1704)
|
111
|
+
* Fix registration of event_bridge and pub_sub webhooks [#1635](https://github.com/Shopify/shopify_app/pull/1635)
|
112
|
+
* Adds support for adding any number of trial days within `EnsureBilling` by adding the `trial_days` field to `BillingConfiguration`
|
113
|
+
* Updated AppBridge to 3.7.8 [#1680](https://github.com/Shopify/shopify_app/pull/1680)
|
114
|
+
* Support falling back to 2 letter language code locales [#1711](https://github.com/Shopify/shopify_app/pull/1711)
|
115
|
+
* Fix locale leaks across requests [#1711](https://github.com/Shopify/shopify_app/pull/1711)
|
116
|
+
* Fix bug in `InMemoryUserSessionStore#store`, this can now be used out of box. [#1716](https://github.com/Shopify/shopify_app/pull/1716)
|
117
|
+
* Adds support for 2023-10 API version [#1734](https://github.com/Shopify/shopify_app/pull/1734)
|
118
|
+
|
4
119
|
21.6.0 (July 11, 2023)
|
5
120
|
----------
|
6
121
|
* Adds support for toggling test charges within `EnsureBilling` by adding `test` field to `BillingConfiguration` and pulling in environment variable [#1688](https://github.com/Shopify/shopify_app/pull/1688)
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, and in the interest of
|
4
|
+
fostering an open and welcoming community, we pledge to respect all
|
5
|
+
people who contribute through reporting issues, posting feature
|
6
|
+
requests, updating documentation, submitting pull requests or patches,
|
7
|
+
and other activities.
|
8
|
+
|
9
|
+
We are committed to making participation in this project a
|
10
|
+
harassment-free experience for everyone, regardless of level of
|
11
|
+
experience, gender, gender identity and expression, sexual orientation,
|
12
|
+
disability, personal appearance, body size, race, ethnicity, age,
|
13
|
+
religion, or nationality.
|
14
|
+
|
15
|
+
Examples of unacceptable behavior by participants include:
|
16
|
+
|
17
|
+
- The use of sexualized language or imagery
|
18
|
+
- Personal attacks
|
19
|
+
- Trolling or insulting/derogatory comments
|
20
|
+
- Public or private harassment
|
21
|
+
- Publishing other's private information, such as physical or electronic
|
22
|
+
addresses, without explicit permission
|
23
|
+
- Other unethical or unprofessional conduct
|
24
|
+
|
25
|
+
Project maintainers have the right and responsibility to remove, edit,
|
26
|
+
or reject comments, commits, code, wiki edits, issues, and other
|
27
|
+
contributions that are not aligned to this Code of Conduct, or to ban
|
28
|
+
temporarily or permanently any contributor for other behaviors that they
|
29
|
+
deem inappropriate, threatening, offensive, or harmful.
|
30
|
+
|
31
|
+
By adopting this Code of Conduct, project maintainers commit themselves
|
32
|
+
to fairly and consistently applying these principles to every aspect of
|
33
|
+
managing this project. Project maintainers who do not follow or enforce
|
34
|
+
the Code of Conduct may be permanently removed from the project team.
|
35
|
+
|
36
|
+
This Code of Conduct applies both within project spaces and in public
|
37
|
+
spaces when an individual is representing the project or its community.
|
38
|
+
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may
|
40
|
+
be reported by contacting a project maintainer at <opensource@shopify.com>.
|
41
|
+
All complaints will be reviewed and investigated and will result in a response
|
42
|
+
that is deemed necessary and appropriate to the circumstances. Maintainers are
|
43
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
44
|
+
|
45
|
+
This Code of Conduct is adapted from the Contributor Covenant, version
|
46
|
+
1.3.0, available from http://contributor-covenant.org/version/1/3/0/
|
data/CONTRIBUTING.md
CHANGED
@@ -23,7 +23,7 @@ Shopify has an official message board with dedicated forums to discuss all thing
|
|
23
23
|
* [Shopify Apps](https://community.shopify.com/c/Shopify-Apps/bd-p/shopify-apps)
|
24
24
|
* [Shopify APIs & SDKs](https://community.shopify.com/c/Shopify-APIs-SDKs/bd-p/shopify-apis-and-technology)
|
25
25
|
|
26
|
-
If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://
|
26
|
+
If you prefer to chat instead, join the [Shopify Partners Slack Community group](https://community.shopify.com/c/partners-and-developers/ct-p/appdev). This Slack group hosts an active community of thousands of app developers.
|
27
27
|
|
28
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
29
|
|
@@ -89,8 +89,3 @@ To run tests, you'll need to make sure that your development environment is setu
|
|
89
89
|
* To run all tests: `bundle exec rake test`
|
90
90
|
* To run a specific test file: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb`
|
91
91
|
* To run a single test: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb:50` where `50` is the line number on or inside the test case.
|
92
|
-
|
93
|
-
### App Bridge client
|
94
|
-
|
95
|
-
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.
|
96
|
-
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.lock
CHANGED
@@ -1,81 +1,80 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify_app (
|
4
|
+
shopify_app (22.5.0)
|
5
5
|
activeresource
|
6
6
|
addressable (~> 2.7)
|
7
|
-
browser_sniffer (~> 2.0)
|
8
7
|
jwt (>= 2.2.3)
|
9
8
|
rails (> 5.2.1)
|
10
9
|
redirect_safely (~> 1.0)
|
11
|
-
shopify_api (
|
10
|
+
shopify_api (>= 14.7.0, < 15.0)
|
12
11
|
sprockets-rails (>= 2.0.0)
|
13
12
|
|
14
13
|
GEM
|
15
14
|
remote: https://rubygems.org/
|
16
15
|
specs:
|
17
|
-
actioncable (6.1.7.
|
18
|
-
actionpack (= 6.1.7.
|
19
|
-
activesupport (= 6.1.7.
|
16
|
+
actioncable (6.1.7.9)
|
17
|
+
actionpack (= 6.1.7.9)
|
18
|
+
activesupport (= 6.1.7.9)
|
20
19
|
nio4r (~> 2.0)
|
21
20
|
websocket-driver (>= 0.6.1)
|
22
|
-
actionmailbox (6.1.7.
|
23
|
-
actionpack (= 6.1.7.
|
24
|
-
activejob (= 6.1.7.
|
25
|
-
activerecord (= 6.1.7.
|
26
|
-
activestorage (= 6.1.7.
|
27
|
-
activesupport (= 6.1.7.
|
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)
|
28
27
|
mail (>= 2.7.1)
|
29
|
-
actionmailer (6.1.7.
|
30
|
-
actionpack (= 6.1.7.
|
31
|
-
actionview (= 6.1.7.
|
32
|
-
activejob (= 6.1.7.
|
33
|
-
activesupport (= 6.1.7.
|
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)
|
34
33
|
mail (~> 2.5, >= 2.5.4)
|
35
34
|
rails-dom-testing (~> 2.0)
|
36
|
-
actionpack (6.1.7.
|
37
|
-
actionview (= 6.1.7.
|
38
|
-
activesupport (= 6.1.7.
|
35
|
+
actionpack (6.1.7.9)
|
36
|
+
actionview (= 6.1.7.9)
|
37
|
+
activesupport (= 6.1.7.9)
|
39
38
|
rack (~> 2.0, >= 2.0.9)
|
40
39
|
rack-test (>= 0.6.3)
|
41
40
|
rails-dom-testing (~> 2.0)
|
42
41
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
43
|
-
actiontext (6.1.7.
|
44
|
-
actionpack (= 6.1.7.
|
45
|
-
activerecord (= 6.1.7.
|
46
|
-
activestorage (= 6.1.7.
|
47
|
-
activesupport (= 6.1.7.
|
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)
|
48
47
|
nokogiri (>= 1.8.5)
|
49
|
-
actionview (6.1.7.
|
50
|
-
activesupport (= 6.1.7.
|
48
|
+
actionview (6.1.7.9)
|
49
|
+
activesupport (= 6.1.7.9)
|
51
50
|
builder (~> 3.1)
|
52
51
|
erubi (~> 1.4)
|
53
52
|
rails-dom-testing (~> 2.0)
|
54
53
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
55
|
-
activejob (6.1.7.
|
56
|
-
activesupport (= 6.1.7.
|
54
|
+
activejob (6.1.7.9)
|
55
|
+
activesupport (= 6.1.7.9)
|
57
56
|
globalid (>= 0.3.6)
|
58
|
-
activemodel (6.1.7.
|
59
|
-
activesupport (= 6.1.7.
|
57
|
+
activemodel (6.1.7.9)
|
58
|
+
activesupport (= 6.1.7.9)
|
60
59
|
activemodel-serializers-xml (1.0.2)
|
61
60
|
activemodel (> 5.x)
|
62
61
|
activesupport (> 5.x)
|
63
62
|
builder (~> 3.1)
|
64
|
-
activerecord (6.1.7.
|
65
|
-
activemodel (= 6.1.7.
|
66
|
-
activesupport (= 6.1.7.
|
67
|
-
activeresource (6.
|
63
|
+
activerecord (6.1.7.9)
|
64
|
+
activemodel (= 6.1.7.9)
|
65
|
+
activesupport (= 6.1.7.9)
|
66
|
+
activeresource (6.1.3)
|
68
67
|
activemodel (>= 6.0)
|
69
68
|
activemodel-serializers-xml (~> 1.0)
|
70
69
|
activesupport (>= 6.0)
|
71
|
-
activestorage (6.1.7.
|
72
|
-
actionpack (= 6.1.7.
|
73
|
-
activejob (= 6.1.7.
|
74
|
-
activerecord (= 6.1.7.
|
75
|
-
activesupport (= 6.1.7.
|
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)
|
76
75
|
marcel (~> 1.0)
|
77
76
|
mini_mime (>= 1.1.0)
|
78
|
-
activesupport (6.1.7.
|
77
|
+
activesupport (6.1.7.9)
|
79
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
80
79
|
i18n (>= 1.6, < 2)
|
81
80
|
minitest (>= 5.1)
|
@@ -86,30 +85,29 @@ GEM
|
|
86
85
|
ast (2.4.2)
|
87
86
|
binding_of_caller (1.0.0)
|
88
87
|
debug_inspector (>= 0.0.1)
|
89
|
-
|
90
|
-
builder (3.2.4)
|
88
|
+
builder (3.3.0)
|
91
89
|
byebug (11.1.3)
|
92
90
|
coderay (1.1.3)
|
93
|
-
concurrent-ruby (1.
|
91
|
+
concurrent-ruby (1.3.4)
|
94
92
|
crack (0.4.5)
|
95
93
|
rexml
|
96
94
|
crass (1.0.6)
|
97
|
-
date (3.3.
|
95
|
+
date (3.3.4)
|
98
96
|
debug_inspector (1.1.0)
|
99
|
-
erubi (1.
|
100
|
-
globalid (1.1
|
101
|
-
activesupport (>=
|
97
|
+
erubi (1.13.0)
|
98
|
+
globalid (1.2.1)
|
99
|
+
activesupport (>= 6.1)
|
102
100
|
hash_diff (1.1.1)
|
103
101
|
hashdiff (1.0.1)
|
104
102
|
httparty (0.21.0)
|
105
103
|
mini_mime (>= 1.0.0)
|
106
104
|
multi_xml (>= 0.5.2)
|
107
|
-
i18n (1.
|
105
|
+
i18n (1.14.6)
|
108
106
|
concurrent-ruby (~> 1.0)
|
109
|
-
json (2.
|
107
|
+
json (2.7.2)
|
110
108
|
jwt (2.7.0)
|
111
109
|
language_server-protocol (3.17.0.3)
|
112
|
-
loofah (2.
|
110
|
+
loofah (2.22.0)
|
113
111
|
crass (~> 1.0.2)
|
114
112
|
nokogiri (>= 1.12.0)
|
115
113
|
mail (2.8.1)
|
@@ -119,32 +117,33 @@ GEM
|
|
119
117
|
net-smtp
|
120
118
|
marcel (1.0.2)
|
121
119
|
method_source (1.0.0)
|
122
|
-
mini_mime (1.1.
|
120
|
+
mini_mime (1.1.5)
|
123
121
|
minitest (5.18.0)
|
124
122
|
mocha (2.0.2)
|
125
123
|
ruby2_keywords (>= 0.0.5)
|
126
124
|
multi_xml (0.6.0)
|
127
|
-
net-imap (0.
|
125
|
+
net-imap (0.4.17)
|
128
126
|
date
|
129
127
|
net-protocol
|
130
128
|
net-pop (0.1.2)
|
131
129
|
net-protocol
|
132
|
-
net-protocol (0.2.
|
130
|
+
net-protocol (0.2.2)
|
133
131
|
timeout
|
134
|
-
net-smtp (0.
|
132
|
+
net-smtp (0.5.0)
|
135
133
|
net-protocol
|
136
134
|
nio4r (2.5.9)
|
137
|
-
nokogiri (1.
|
135
|
+
nokogiri (1.16.7-arm64-darwin)
|
138
136
|
racc (~> 1.4)
|
139
|
-
nokogiri (1.
|
137
|
+
nokogiri (1.16.7-x86_64-darwin)
|
140
138
|
racc (~> 1.4)
|
141
|
-
nokogiri (1.
|
139
|
+
nokogiri (1.16.7-x86_64-linux)
|
142
140
|
racc (~> 1.4)
|
143
141
|
oj (3.14.3)
|
144
142
|
openssl (3.1.0)
|
145
|
-
parallel (1.
|
146
|
-
parser (3.
|
143
|
+
parallel (1.24.0)
|
144
|
+
parser (3.3.0.5)
|
147
145
|
ast (~> 2.4.1)
|
146
|
+
racc
|
148
147
|
prettier_print (1.2.1)
|
149
148
|
pry (0.14.2)
|
150
149
|
coderay (~> 1.1)
|
@@ -155,37 +154,39 @@ GEM
|
|
155
154
|
binding_of_caller (~> 1.0)
|
156
155
|
pry (~> 0.13)
|
157
156
|
public_suffix (5.0.1)
|
158
|
-
racc (1.
|
159
|
-
rack (2.2.
|
157
|
+
racc (1.8.1)
|
158
|
+
rack (2.2.10)
|
160
159
|
rack-test (2.1.0)
|
161
160
|
rack (>= 1.3)
|
162
|
-
rails (6.1.7.
|
163
|
-
actioncable (= 6.1.7.
|
164
|
-
actionmailbox (= 6.1.7.
|
165
|
-
actionmailer (= 6.1.7.
|
166
|
-
actionpack (= 6.1.7.
|
167
|
-
actiontext (= 6.1.7.
|
168
|
-
actionview (= 6.1.7.
|
169
|
-
activejob (= 6.1.7.
|
170
|
-
activemodel (= 6.1.7.
|
171
|
-
activerecord (= 6.1.7.
|
172
|
-
activestorage (= 6.1.7.
|
173
|
-
activesupport (= 6.1.7.
|
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)
|
174
173
|
bundler (>= 1.15.0)
|
175
|
-
railties (= 6.1.7.
|
174
|
+
railties (= 6.1.7.9)
|
176
175
|
sprockets-rails (>= 2.0.0)
|
177
176
|
rails-controller-testing (1.0.5)
|
178
177
|
actionpack (>= 5.0.1.rc1)
|
179
178
|
actionview (>= 5.0.1.rc1)
|
180
179
|
activesupport (>= 5.0.1.rc1)
|
181
|
-
rails-dom-testing (2.0
|
182
|
-
activesupport (>=
|
180
|
+
rails-dom-testing (2.2.0)
|
181
|
+
activesupport (>= 5.0.0)
|
182
|
+
minitest
|
183
183
|
nokogiri (>= 1.6)
|
184
|
-
rails-html-sanitizer (1.
|
185
|
-
loofah (~> 2.
|
186
|
-
|
187
|
-
|
188
|
-
|
184
|
+
rails-html-sanitizer (1.6.0)
|
185
|
+
loofah (~> 2.21)
|
186
|
+
nokogiri (~> 1.14)
|
187
|
+
railties (6.1.7.9)
|
188
|
+
actionpack (= 6.1.7.9)
|
189
|
+
activesupport (= 6.1.7.9)
|
189
190
|
method_source
|
190
191
|
rake (>= 12.2)
|
191
192
|
thor (~> 1.0)
|
@@ -194,20 +195,21 @@ GEM
|
|
194
195
|
rb-readline (0.5.5)
|
195
196
|
redirect_safely (1.0.0)
|
196
197
|
activemodel
|
197
|
-
regexp_parser (2.
|
198
|
-
rexml (3.
|
199
|
-
rubocop (1.
|
198
|
+
regexp_parser (2.9.0)
|
199
|
+
rexml (3.3.9)
|
200
|
+
rubocop (1.62.1)
|
200
201
|
json (~> 2.3)
|
202
|
+
language_server-protocol (>= 3.17.0)
|
201
203
|
parallel (~> 1.10)
|
202
|
-
parser (>= 3.
|
204
|
+
parser (>= 3.3.0.2)
|
203
205
|
rainbow (>= 2.2.2, < 4.0)
|
204
206
|
regexp_parser (>= 1.8, < 3.0)
|
205
207
|
rexml (>= 3.2.5, < 4.0)
|
206
|
-
rubocop-ast (>= 1.
|
208
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
207
209
|
ruby-progressbar (~> 1.7)
|
208
210
|
unicode-display_width (>= 2.4.0, < 3.0)
|
209
|
-
rubocop-ast (1.
|
210
|
-
parser (>= 3.
|
211
|
+
rubocop-ast (1.31.2)
|
212
|
+
parser (>= 3.3.0.4)
|
211
213
|
rubocop-shopify (2.13.0)
|
212
214
|
rubocop (~> 1.50)
|
213
215
|
ruby-lsp (0.5.1)
|
@@ -217,7 +219,7 @@ GEM
|
|
217
219
|
ruby-progressbar (1.13.0)
|
218
220
|
ruby2_keywords (0.0.5)
|
219
221
|
securerandom (0.2.2)
|
220
|
-
shopify_api (
|
222
|
+
shopify_api (14.7.0)
|
221
223
|
activesupport
|
222
224
|
concurrent-ruby
|
223
225
|
hash_diff
|
@@ -236,16 +238,16 @@ GEM
|
|
236
238
|
actionpack (>= 5.2)
|
237
239
|
activesupport (>= 5.2)
|
238
240
|
sprockets (>= 3.0.0)
|
239
|
-
sqlite3 (1.
|
240
|
-
sqlite3 (1.
|
241
|
-
sqlite3 (1.
|
241
|
+
sqlite3 (1.7.3-arm64-darwin)
|
242
|
+
sqlite3 (1.7.3-x86_64-darwin)
|
243
|
+
sqlite3 (1.7.3-x86_64-linux)
|
242
244
|
syntax_tree (6.1.1)
|
243
245
|
prettier_print (>= 1.2.0)
|
244
246
|
thor (1.2.2)
|
245
|
-
timeout (0.
|
247
|
+
timeout (0.4.1)
|
246
248
|
tzinfo (2.0.6)
|
247
249
|
concurrent-ruby (~> 1.0)
|
248
|
-
unicode-display_width (2.
|
250
|
+
unicode-display_width (2.5.0)
|
249
251
|
webmock (3.18.1)
|
250
252
|
addressable (>= 2.8.0)
|
251
253
|
crack (>= 0.3.2)
|
@@ -253,11 +255,12 @@ GEM
|
|
253
255
|
websocket-driver (0.7.5)
|
254
256
|
websocket-extensions (>= 0.1.0)
|
255
257
|
websocket-extensions (0.1.5)
|
256
|
-
zeitwerk (2.6.
|
258
|
+
zeitwerk (2.6.18)
|
257
259
|
|
258
260
|
PLATFORMS
|
259
261
|
arm64-darwin-21
|
260
262
|
arm64-darwin-22
|
263
|
+
arm64-darwin-23
|
261
264
|
x86_64-darwin-19
|
262
265
|
x86_64-darwin-20
|
263
266
|
x86_64-darwin-21
|