shopify_app 17.0.0 → 17.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4760b55b5a05f6879b992c7292f99c51a50b3c080215b74c789214ebc467b5c
4
- data.tar.gz: e67a45136ca74cbd6c3403f1e3a17577be621f0617a22c3f177f51e452dda369
3
+ metadata.gz: 41c18b0e92a08c6f1ddf4b172e6eacc71392222f7c50cf894f63a7e2d05a5420
4
+ data.tar.gz: 4110f9c21b060325cde47a9fac5cb60f4417b3279219a650585c719214b7dd7c
5
5
  SHA512:
6
- metadata.gz: 7f5978d3ee4bd6cb553b30b57a50233d0d983fb8715a0e6fb272dbe9d5fb91b8a90ca3d04d97221a45035bf7c66b6cadd6c897fee548c0998c6c9323d4a1ec92
7
- data.tar.gz: 62d60866c63e2b4ad3f70f1375fcfb3e7fda69edb4ef78a9e75cde872a909b5e8cc4ad764ec69225cbec3da42cd9a4556f6f473b863df3a403dfc7376e410af1
6
+ metadata.gz: 04ee583382594207dbe63962b72c31ff0ca973453d89840552425443758c767f501772c50c27d31436505b4e2891bdaca58fe3aca731bd9c56c3edda05d88e2f
7
+ data.tar.gz: beff89c7a9c01e3a9becedace07f2d22ef10182425693c1244b997e350f19916e74faa2873f2bef8d00b6ed32444f09fac75b6b14cfbbabe5239ed7baccb1752
@@ -0,0 +1,24 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ create-release:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Extract tag name
13
+ id: tag
14
+ run: echo "::set-output name=value::${GITHUB_REF##*/}"
15
+ - uses: actions/checkout@v2
16
+
17
+ - name: Create Release
18
+ id: create_release
19
+ uses: actions/create-release@v1
20
+ env:
21
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
+ with:
23
+ tag_name: ${{ steps.tag.outputs.value }}
24
+ release_name: ${{ steps.tag.outputs.value }}
@@ -1,6 +1,26 @@
1
1
  Unreleased
2
2
  ----------
3
3
 
4
+ 17.0.5 (January 27, 2021)
5
+ ----------
6
+ * Fix omniauth strategy not being set correctly for apps using session tokens [#1164](https://github.com/Shopify/shopify_app/pull/1164)
7
+
8
+ 17.0.4 (January 25, 2021)
9
+ ----------
10
+ * Redirect user to login page if shopify domain is not found in the `EnsureAuthenticatedLinks` concern [#1158](https://github.com/Shopify/shopify_app/pull/1158)
11
+
12
+ 17.0.3 (January 22, 2021)
13
+ ----------
14
+ * Amend fix for #1144 to raise on missing API keys only when running the server [#1155](https://github.com/Shopify/shopify_app/pull/1155)
15
+
16
+ 17.0.2 (January 20, 2021)
17
+ ------
18
+ * Fix failing script tags and webhooks installs after completing OAuth [#1151](https://github.com/Shopify/shopify_app/pull/1151)
19
+
20
+ 17.0.1 (January 18, 2021)
21
+ ------
22
+ * Don't attempt to read Shopify environment variables when the generators are running, since they may not be present yet [#1144](https://github.com/Shopify/shopify_app/pull/1144)
23
+
4
24
  17.0.0 (January 13, 2021)
5
25
  ------
6
26
  * Rails 6.1 is not yet supported [#1134](https://github.com/Shopify/shopify_app/pull/1134)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_app (17.0.0)
4
+ shopify_app (17.0.5)
5
5
  browser_sniffer (~> 1.2.2)
6
6
  jwt (~> 2.2.1)
7
7
  omniauth-shopify-oauth2 (~> 2.2.2)
@@ -96,7 +96,7 @@ GEM
96
96
  faraday-net_http (1.0.1)
97
97
  globalid (0.4.2)
98
98
  activesupport (>= 4.2.0)
99
- graphql (1.11.6)
99
+ graphql (1.12.3)
100
100
  graphql-client (0.16.0)
101
101
  activesupport (>= 3.0)
102
102
  graphql (~> 1.8)
@@ -207,8 +207,8 @@ GEM
207
207
  rubocop-shopify (1.0.7)
208
208
  rubocop (~> 1.4)
209
209
  ruby-progressbar (1.10.1)
210
- ruby2_keywords (0.0.2)
211
- shopify_api (9.2.0)
210
+ ruby2_keywords (0.0.4)
211
+ shopify_api (9.3.0)
212
212
  activeresource (>= 4.1.0, < 6.0.0)
213
213
  graphql-client
214
214
  rack
@@ -220,7 +220,7 @@ GEM
220
220
  activesupport (>= 4.0)
221
221
  sprockets (>= 3.0.0)
222
222
  sqlite3 (1.4.2)
223
- thor (1.0.1)
223
+ thor (1.1.0)
224
224
  thread_safe (0.3.6)
225
225
  tzinfo (1.2.7)
226
226
  thread_safe (~> 0.1)
data/README.md CHANGED
@@ -75,17 +75,19 @@ Generators
75
75
  ----------
76
76
 
77
77
  ### API Keys
78
+ <!-- This anchor name `#api-keys` is linked to from user output in `templates/shopify_app.rb.tt` so beware of changing -->
79
+ Before starting the app, you'll need to ensure it can read the Shopify environment variables `SHOPIFY_API_KEY` and `SHOPIFY_API_SECRET`.
78
80
 
79
- Before running the generators, you'll need to ensure your app can read the Shopify environment variables `SHOPIFY_API_KEY` and `SHOPIFY_API_SECRET`.
80
-
81
- A common approach is to use the [dotenv-rails](https://github.com/bkeepers/dotenv) gem, along with an `.env` file in the following format:
81
+ In a development environment, a common approach is to use the [dotenv-rails](https://github.com/bkeepers/dotenv) gem, along with an `.env` file in the following format:
82
82
 
83
83
  ```
84
84
  SHOPIFY_API_KEY=your api key
85
85
  SHOPIFY_API_SECRET=your api secret
86
86
  ```
87
87
 
88
- These values can be found on the "App Setup" page in the [Shopify Partners Dashboard][dashboard]. If you are checking your code into a code repository, ensure your `.gitignore` prevents your `.env` file from being checked into any publicly accessible code.
88
+ These values can be found on the "App Setup" page in the [Shopify Partners Dashboard][dashboard].
89
+ (If you are using [shopify-app-cli](https://github.com/Shopify/shopify-app-cli) this `.env` file will be created automatically).
90
+ If you are checking your code into a code repository, ensure your `.gitignore` prevents your `.env` file from being checked into any publicly accessible code.
89
91
 
90
92
  ### Default Generator
91
93
 
@@ -13,6 +13,10 @@ module ShopifyApp
13
13
  def redirect_to_splash_page
14
14
  splash_page_path = root_path(return_to: request.fullpath, shop: current_shopify_domain)
15
15
  redirect_to(splash_page_path)
16
+ rescue ShopifyApp::LoginProtection::ShopifyDomainNotFound => error
17
+ Rails.logger.warn("[ShopifyApp::EnsureAuthenticatedLinks] Redirecting to login: [#{error.class}] "\
18
+ "Could not determine current shop domain")
19
+ redirect_to(ShopifyApp.configuration.login_url)
16
20
  end
17
21
 
18
22
  def missing_expected_jwt?
@@ -65,6 +65,13 @@ module ShopifyApp
65
65
  end
66
66
  end
67
67
 
68
+ # Override user_session_by_cookie from LoginProtection to bypass allow_cookie_authentication
69
+ # setting check because session cookies are justified at top level
70
+ def user_session_by_cookie
71
+ return unless session[:user_id].present?
72
+ ShopifyApp::SessionRepository.retrieve_user_session(session[:user_id])
73
+ end
74
+
68
75
  def start_user_token_flow?
69
76
  if jwt_request?
70
77
  false
@@ -89,6 +96,14 @@ module ShopifyApp
89
96
  auth_hash.uid
90
97
  end
91
98
 
99
+ def offline_access_token
100
+ ShopifyApp::SessionRepository.retrieve_shop_session_by_shopify_domain(shop_name)&.token
101
+ end
102
+
103
+ def online_access_token
104
+ ShopifyApp::SessionRepository.retrieve_user_session_by_shopify_user_id(associated_user_id)&.token
105
+ end
106
+
92
107
  def associated_user
93
108
  return unless auth_hash.dig('extra', 'associated_user').present?
94
109
 
@@ -132,7 +147,7 @@ module ShopifyApp
132
147
 
133
148
  WebhooksManager.queue(
134
149
  shop_name,
135
- shop_session&.token || user_session.token,
150
+ offline_access_token || online_access_token,
136
151
  ShopifyApp.configuration.webhooks
137
152
  )
138
153
  end
@@ -142,7 +157,7 @@ module ShopifyApp
142
157
 
143
158
  ScripttagsManager.queue(
144
159
  shop_name,
145
- shop_session&.token || user_session.token,
160
+ offline_access_token || online_access_token,
146
161
  ShopifyApp.configuration.scripttags
147
162
  )
148
163
  end
@@ -92,9 +92,18 @@ module ShopifyApp
92
92
  end
93
93
  end
94
94
 
95
+ # Override shop_session_by_cookie from LoginProtection to bypass allow_cookie_authentication
96
+ # setting check because session cookies are justified at top level
97
+ def shop_session_by_cookie
98
+ return unless session[:shop_id].present?
99
+ ShopifyApp::SessionRepository.retrieve_shop_session(session[:shop_id])
100
+ end
101
+
95
102
  # rubocop:disable Lint/SuppressedException
96
103
  def set_user_tokens_option
97
- if shop_session.blank?
104
+ current_shop_session = shop_session
105
+
106
+ if current_shop_session.blank?
98
107
  session[:user_tokens] = false
99
108
  return
100
109
  end
@@ -102,9 +111,9 @@ module ShopifyApp
102
111
  session[:user_tokens] = ShopifyApp::SessionRepository.user_storage.present?
103
112
 
104
113
  ShopifyAPI::Session.temp(
105
- domain: shop_session.domain,
106
- token: shop_session.token,
107
- api_version: shop_session.api_version
114
+ domain: current_shop_session.domain,
115
+ token: current_shop_session.token,
116
+ api_version: current_shop_session.api_version
108
117
  ) do
109
118
  ShopifyAPI::Metafield.find(:token_validity_bogus_check)
110
119
  end
@@ -11,9 +11,10 @@
11
11
  1. Merge your pull request
12
12
  1. Checkout and pull from master so you have the latest version of the shopify_app
13
13
  1. Tag the HEAD with the version
14
- ```bash
15
- $ git tag -f vX.Y.Z && git push --tags --force
16
- ```
14
+ ```bash
15
+ $ git tag -f vX.Y.Z && git push --tags --force
16
+ ```
17
+ 1. Check that Create Release workflow successfully runs
17
18
  1. Use Shipit to build and push the gem
18
19
 
19
20
  If you see an error like 'You need to create the vX.Y.X tag first', clear git
@@ -1,16 +1,21 @@
1
1
  ShopifyApp.configure do |config|
2
2
  config.application_name = "<%= @application_name %>"
3
- config.api_key = ENV.fetch('SHOPIFY_API_KEY', '').presence || raise('Missing SHOPIFY_API_KEY')
4
- config.secret = ENV.fetch('SHOPIFY_API_SECRET', '').presence || raise('Missing SHOPIFY_API_SECRET')
5
3
  config.old_secret = "<%= @old_secret %>"
6
4
  config.scope = "<%= @scope %>" # Consult this page for more scope options:
7
- # https://help.shopify.com/en/api/getting-started/authentication/oauth/scopes
5
+ # https://help.shopify.com/en/api/getting-started/authentication/oauth/scopes
8
6
  config.embedded_app = <%= embedded_app? %>
9
7
  config.after_authenticate_job = false
10
8
  config.api_version = "<%= @api_version %>"
11
9
  config.shop_session_repository = 'Shop'
12
10
  config.allow_jwt_authentication = <%= !with_cookie_authentication? %>
13
11
  config.allow_cookie_authentication = <%= with_cookie_authentication? %>
12
+
13
+ config.api_key = ENV.fetch('SHOPIFY_API_KEY', '').presence
14
+ config.secret = ENV.fetch('SHOPIFY_API_SECRET', '').presence
15
+ if defined? Rails::Server
16
+ raise('Missing SHOPIFY_API_KEY. See https://github.com/Shopify/shopify_app#api-keys') unless config.api_key
17
+ raise('Missing SHOPIFY_API_SECRET. See https://github.com/Shopify/shopify_app#api-keys') unless config.secret
18
+ end
14
19
  end
15
20
 
16
21
  # ShopifyApp::Utils.fetch_known_api_versions # Uncomment to fetch known api versions from shopify servers on boot
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ShopifyApp
3
- VERSION = '17.0.0'
3
+ VERSION = '17.0.5'
4
4
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shopify_app",
3
- "version": "17.0.0",
3
+ "version": "17.0.5",
4
4
  "repository": "git@github.com:Shopify/shopify_app.git",
5
5
  "author": "Shopify",
6
6
  "license": "MIT",
data/yarn.lock CHANGED
@@ -1347,11 +1347,6 @@ async-each@^1.0.1:
1347
1347
  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
1348
1348
  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
1349
1349
 
1350
- async-limiter@~1.0.0:
1351
- version "1.0.1"
1352
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
1353
- integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
1354
-
1355
1350
  atob@^2.1.2:
1356
1351
  version "2.1.2"
1357
1352
  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -1419,10 +1414,10 @@ balanced-match@^1.0.0:
1419
1414
  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1420
1415
  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
1421
1416
 
1422
- base64-arraybuffer@0.1.5:
1423
- version "0.1.5"
1424
- resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
1425
- integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
1417
+ base64-arraybuffer@0.1.4:
1418
+ version "0.1.4"
1419
+ resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
1420
+ integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=
1426
1421
 
1427
1422
  base64-js@^1.0.2:
1428
1423
  version "1.3.1"
@@ -1447,13 +1442,6 @@ base@^0.11.1:
1447
1442
  mixin-deep "^1.2.0"
1448
1443
  pascalcase "^0.1.1"
1449
1444
 
1450
- better-assert@~1.0.0:
1451
- version "1.0.2"
1452
- resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
1453
- integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=
1454
- dependencies:
1455
- callsite "1.0.0"
1456
-
1457
1445
  big.js@^5.2.2:
1458
1446
  version "5.2.2"
1459
1447
  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -1689,11 +1677,6 @@ cache-base@^1.0.1:
1689
1677
  union-value "^1.0.0"
1690
1678
  unset-value "^1.0.0"
1691
1679
 
1692
- callsite@1.0.0:
1693
- version "1.0.0"
1694
- resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
1695
- integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
1696
-
1697
1680
  camelcase@^5.0.0, camelcase@^5.3.1:
1698
1681
  version "5.3.1"
1699
1682
  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -1954,10 +1937,10 @@ convert-source-map@^1.7.0:
1954
1937
  dependencies:
1955
1938
  safe-buffer "~5.1.1"
1956
1939
 
1957
- cookie@0.3.1:
1958
- version "0.3.1"
1959
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
1960
- integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
1940
+ cookie@~0.4.1:
1941
+ version "0.4.1"
1942
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
1943
+ integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
1961
1944
 
1962
1945
  copy-concurrently@^1.0.0:
1963
1946
  version "1.0.5"
@@ -2236,45 +2219,45 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
2236
2219
  dependencies:
2237
2220
  once "^1.4.0"
2238
2221
 
2239
- engine.io-client@~3.4.0:
2240
- version "3.4.3"
2241
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c"
2242
- integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==
2222
+ engine.io-client@~3.5.0:
2223
+ version "3.5.0"
2224
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7"
2225
+ integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==
2243
2226
  dependencies:
2244
2227
  component-emitter "~1.3.0"
2245
2228
  component-inherit "0.0.3"
2246
- debug "~4.1.0"
2229
+ debug "~3.1.0"
2247
2230
  engine.io-parser "~2.2.0"
2248
2231
  has-cors "1.1.0"
2249
2232
  indexof "0.0.1"
2250
- parseqs "0.0.5"
2251
- parseuri "0.0.5"
2252
- ws "~6.1.0"
2233
+ parseqs "0.0.6"
2234
+ parseuri "0.0.6"
2235
+ ws "~7.4.2"
2253
2236
  xmlhttprequest-ssl "~1.5.4"
2254
2237
  yeast "0.1.2"
2255
2238
 
2256
2239
  engine.io-parser@~2.2.0:
2257
- version "2.2.0"
2258
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed"
2259
- integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==
2240
+ version "2.2.1"
2241
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7"
2242
+ integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==
2260
2243
  dependencies:
2261
2244
  after "0.8.2"
2262
2245
  arraybuffer.slice "~0.0.7"
2263
- base64-arraybuffer "0.1.5"
2246
+ base64-arraybuffer "0.1.4"
2264
2247
  blob "0.0.5"
2265
2248
  has-binary2 "~1.0.2"
2266
2249
 
2267
- engine.io@~3.4.0:
2268
- version "3.4.2"
2269
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c"
2270
- integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==
2250
+ engine.io@~3.5.0:
2251
+ version "3.5.0"
2252
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b"
2253
+ integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==
2271
2254
  dependencies:
2272
2255
  accepts "~1.3.4"
2273
2256
  base64id "2.0.0"
2274
- cookie "0.3.1"
2257
+ cookie "~0.4.1"
2275
2258
  debug "~4.1.0"
2276
2259
  engine.io-parser "~2.2.0"
2277
- ws "^7.1.2"
2260
+ ws "~7.4.2"
2278
2261
 
2279
2262
  enhanced-resolve@^4.3.0:
2280
2263
  version "4.3.0"
@@ -3480,17 +3463,17 @@ miller-rabin@^4.0.0:
3480
3463
  bn.js "^4.0.0"
3481
3464
  brorand "^1.0.1"
3482
3465
 
3483
- mime-db@1.44.0:
3484
- version "1.44.0"
3485
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
3486
- integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
3466
+ mime-db@1.45.0:
3467
+ version "1.45.0"
3468
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
3469
+ integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
3487
3470
 
3488
3471
  mime-types@~2.1.24:
3489
- version "2.1.27"
3490
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
3491
- integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
3472
+ version "2.1.28"
3473
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
3474
+ integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
3492
3475
  dependencies:
3493
- mime-db "1.44.0"
3476
+ mime-db "1.45.0"
3494
3477
 
3495
3478
  mime@^2.4.4, mime@^2.4.5:
3496
3479
  version "2.4.6"
@@ -3610,11 +3593,16 @@ ms@2.0.0:
3610
3593
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
3611
3594
  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
3612
3595
 
3613
- ms@2.1.2, ms@^2.1.1:
3596
+ ms@2.1.2:
3614
3597
  version "2.1.2"
3615
3598
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
3616
3599
  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
3617
3600
 
3601
+ ms@^2.1.1:
3602
+ version "2.1.3"
3603
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
3604
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
3605
+
3618
3606
  nan@^2.12.1:
3619
3607
  version "2.14.1"
3620
3608
  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
@@ -3709,11 +3697,6 @@ object-assign@^4.1.1:
3709
3697
  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
3710
3698
  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
3711
3699
 
3712
- object-component@0.0.3:
3713
- version "0.0.3"
3714
- resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
3715
- integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=
3716
-
3717
3700
  object-copy@^0.1.0:
3718
3701
  version "0.1.0"
3719
3702
  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
@@ -3841,19 +3824,15 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
3841
3824
  pbkdf2 "^3.0.3"
3842
3825
  safe-buffer "^5.1.1"
3843
3826
 
3844
- parseqs@0.0.5:
3845
- version "0.0.5"
3846
- resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
3847
- integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=
3848
- dependencies:
3849
- better-assert "~1.0.0"
3827
+ parseqs@0.0.6:
3828
+ version "0.0.6"
3829
+ resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
3830
+ integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
3850
3831
 
3851
- parseuri@0.0.5:
3852
- version "0.0.5"
3853
- resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
3854
- integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=
3855
- dependencies:
3856
- better-assert "~1.0.0"
3832
+ parseuri@0.0.6:
3833
+ version "0.0.6"
3834
+ resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
3835
+ integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
3857
3836
 
3858
3837
  parseurl@~1.3.3:
3859
3838
  version "1.3.3"
@@ -4436,32 +4415,29 @@ socket.io-adapter@~1.1.0:
4436
4415
  resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
4437
4416
  integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
4438
4417
 
4439
- socket.io-client@2.3.0:
4440
- version "2.3.0"
4441
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4"
4442
- integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==
4418
+ socket.io-client@2.4.0:
4419
+ version "2.4.0"
4420
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35"
4421
+ integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==
4443
4422
  dependencies:
4444
4423
  backo2 "1.0.2"
4445
- base64-arraybuffer "0.1.5"
4446
4424
  component-bind "1.0.0"
4447
- component-emitter "1.2.1"
4448
- debug "~4.1.0"
4449
- engine.io-client "~3.4.0"
4425
+ component-emitter "~1.3.0"
4426
+ debug "~3.1.0"
4427
+ engine.io-client "~3.5.0"
4450
4428
  has-binary2 "~1.0.2"
4451
- has-cors "1.1.0"
4452
4429
  indexof "0.0.1"
4453
- object-component "0.0.3"
4454
- parseqs "0.0.5"
4455
- parseuri "0.0.5"
4430
+ parseqs "0.0.6"
4431
+ parseuri "0.0.6"
4456
4432
  socket.io-parser "~3.3.0"
4457
4433
  to-array "0.1.4"
4458
4434
 
4459
4435
  socket.io-parser@~3.3.0:
4460
- version "3.3.0"
4461
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f"
4462
- integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==
4436
+ version "3.3.2"
4437
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6"
4438
+ integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==
4463
4439
  dependencies:
4464
- component-emitter "1.2.1"
4440
+ component-emitter "~1.3.0"
4465
4441
  debug "~3.1.0"
4466
4442
  isarray "2.0.1"
4467
4443
 
@@ -4475,15 +4451,15 @@ socket.io-parser@~3.4.0:
4475
4451
  isarray "2.0.1"
4476
4452
 
4477
4453
  socket.io@^2.3.0:
4478
- version "2.3.0"
4479
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb"
4480
- integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==
4454
+ version "2.4.1"
4455
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2"
4456
+ integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==
4481
4457
  dependencies:
4482
4458
  debug "~4.1.0"
4483
- engine.io "~3.4.0"
4459
+ engine.io "~3.5.0"
4484
4460
  has-binary2 "~1.0.2"
4485
4461
  socket.io-adapter "~1.1.0"
4486
- socket.io-client "2.3.0"
4462
+ socket.io-client "2.4.0"
4487
4463
  socket.io-parser "~3.4.0"
4488
4464
 
4489
4465
  source-list-map@^2.0.0:
@@ -5123,17 +5099,10 @@ wrappy@1:
5123
5099
  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
5124
5100
  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
5125
5101
 
5126
- ws@^7.1.2:
5127
- version "7.3.1"
5128
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
5129
- integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
5130
-
5131
- ws@~6.1.0:
5132
- version "6.1.4"
5133
- resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"
5134
- integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==
5135
- dependencies:
5136
- async-limiter "~1.0.0"
5102
+ ws@~7.4.2:
5103
+ version "7.4.2"
5104
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd"
5105
+ integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==
5137
5106
 
5138
5107
  xmlhttprequest-ssl@~1.5.4:
5139
5108
  version "1.5.5"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 17.0.0
4
+ version: 17.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-14 00:00:00.000000000 Z
11
+ date: 2021-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: browser_sniffer
@@ -252,6 +252,7 @@ files:
252
252
  - ".github/PULL_REQUEST_TEMPLATE.md"
253
253
  - ".github/probots.yml"
254
254
  - ".github/workflows/build.yml"
255
+ - ".github/workflows/release.yml"
255
256
  - ".github/workflows/rubocop.yml"
256
257
  - ".gitignore"
257
258
  - ".nvmrc"