ruby_shopify_app 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.babelrc +5 -0
  3. data/.github/CODEOWNERS +2 -0
  4. data/.github/ISSUE_TEMPLATE/bug-report.md +63 -0
  5. data/.github/ISSUE_TEMPLATE/config.yml +1 -0
  6. data/.github/ISSUE_TEMPLATE/feature-request.md +33 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
  8. data/.github/probots.yml +2 -0
  9. data/.github/workflows/build.yml +40 -0
  10. data/.github/workflows/release.yml +24 -0
  11. data/.github/workflows/rubocop.yml +22 -0
  12. data/.gitignore +14 -0
  13. data/.nvmrc +1 -0
  14. data/.rubocop.yml +18 -0
  15. data/.ruby-version +1 -0
  16. data/CHANGELOG-OLD.md +643 -0
  17. data/CHANGELOG.md +6 -0
  18. data/CONTRIBUTING.md +81 -0
  19. data/Gemfile +11 -0
  20. data/Gemfile.lock +280 -0
  21. data/LICENSE +19 -0
  22. data/README.md +132 -0
  23. data/Rakefile +7 -0
  24. data/SECURITY.md +59 -0
  25. data/app/assets/images/storage_access.svg +1 -0
  26. data/app/assets/javascripts/shopify_app/app_bridge_2.0.12.js +10 -0
  27. data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +22 -0
  28. data/app/assets/javascripts/shopify_app/enable_cookies.js +3 -0
  29. data/app/assets/javascripts/shopify_app/itp_helper.js +40 -0
  30. data/app/assets/javascripts/shopify_app/partition_cookies.js +8 -0
  31. data/app/assets/javascripts/shopify_app/post_redirect.js +9 -0
  32. data/app/assets/javascripts/shopify_app/redirect.js +31 -0
  33. data/app/assets/javascripts/shopify_app/request_storage_access.js +3 -0
  34. data/app/assets/javascripts/shopify_app/storage_access.js +148 -0
  35. data/app/assets/javascripts/shopify_app/storage_access_redirect.js +17 -0
  36. data/app/assets/javascripts/shopify_app/top_level.js +2 -0
  37. data/app/assets/javascripts/shopify_app/top_level_interaction.js +11 -0
  38. data/app/controllers/concerns/shopify_app/authenticated.rb +16 -0
  39. data/app/controllers/concerns/shopify_app/ensure_authenticated_links.rb +39 -0
  40. data/app/controllers/concerns/shopify_app/require_known_shop.rb +40 -0
  41. data/app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb +32 -0
  42. data/app/controllers/shopify_app/authenticated_controller.rb +8 -0
  43. data/app/controllers/shopify_app/callback_controller.rb +195 -0
  44. data/app/controllers/shopify_app/extension_verification_controller.rb +15 -0
  45. data/app/controllers/shopify_app/sessions_controller.rb +202 -0
  46. data/app/controllers/shopify_app/webhooks_controller.rb +36 -0
  47. data/app/views/shopify_app/partials/_button_styles.html.erb +109 -0
  48. data/app/views/shopify_app/partials/_card_styles.html.erb +33 -0
  49. data/app/views/shopify_app/partials/_empty_state_styles.html.erb +98 -0
  50. data/app/views/shopify_app/partials/_form_styles.html.erb +56 -0
  51. data/app/views/shopify_app/partials/_layout_styles.html.erb +182 -0
  52. data/app/views/shopify_app/partials/_typography_styles.html.erb +35 -0
  53. data/app/views/shopify_app/sessions/enable_cookies.html.erb +70 -0
  54. data/app/views/shopify_app/sessions/new.html.erb +51 -0
  55. data/app/views/shopify_app/sessions/request_storage_access.html.erb +68 -0
  56. data/app/views/shopify_app/sessions/top_level_interaction.html.erb +63 -0
  57. data/app/views/shopify_app/shared/post_redirect_to_auth_shopify.html.erb +13 -0
  58. data/app/views/shopify_app/shared/redirect.html.erb +23 -0
  59. data/config/locales/cs.yml +23 -0
  60. data/config/locales/da.yml +20 -0
  61. data/config/locales/de.yml +22 -0
  62. data/config/locales/en.yml +15 -0
  63. data/config/locales/es.yml +22 -0
  64. data/config/locales/fi.yml +20 -0
  65. data/config/locales/fr.yml +23 -0
  66. data/config/locales/it.yml +21 -0
  67. data/config/locales/ja.yml +17 -0
  68. data/config/locales/ko.yml +19 -0
  69. data/config/locales/nb.yml +21 -0
  70. data/config/locales/nl.yml +21 -0
  71. data/config/locales/pl.yml +21 -0
  72. data/config/locales/pt-BR.yml +21 -0
  73. data/config/locales/pt-PT.yml +22 -0
  74. data/config/locales/sv.yml +21 -0
  75. data/config/locales/th.yml +20 -0
  76. data/config/locales/tr.yml +22 -0
  77. data/config/locales/vi.yml +22 -0
  78. data/config/locales/zh-CN.yml +16 -0
  79. data/config/locales/zh-TW.yml +16 -0
  80. data/config/routes.rb +23 -0
  81. data/docs/Quickstart.md +31 -0
  82. data/docs/Releasing.md +21 -0
  83. data/docs/Troubleshooting.md +159 -0
  84. data/docs/Upgrading.md +132 -0
  85. data/docs/shopify_app/authentication.md +124 -0
  86. data/docs/shopify_app/engine.md +82 -0
  87. data/docs/shopify_app/generators.md +127 -0
  88. data/docs/shopify_app/handling-access-scopes-changes.md +24 -0
  89. data/docs/shopify_app/script-tags.md +28 -0
  90. data/docs/shopify_app/session-repository.md +88 -0
  91. data/docs/shopify_app/testing.md +38 -0
  92. data/docs/shopify_app/webhooks.md +72 -0
  93. data/images/app-proxy-screenshot.png +0 -0
  94. data/karma.conf.js +44 -0
  95. data/lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb +47 -0
  96. data/lib/generators/shopify_app/add_after_authenticate_job/templates/after_authenticate_job.rb +11 -0
  97. data/lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb +40 -0
  98. data/lib/generators/shopify_app/add_marketing_activity_extension/templates/marketing_activities_controller.rb +62 -0
  99. data/lib/generators/shopify_app/add_webhook/add_webhook_generator.rb +69 -0
  100. data/lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt +13 -0
  101. data/lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb +26 -0
  102. data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb +8 -0
  103. data/lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb +11 -0
  104. data/lib/generators/shopify_app/app_proxy_controller/templates/index.html.erb +19 -0
  105. data/lib/generators/shopify_app/authenticated_controller/authenticated_controller_generator.rb +15 -0
  106. data/lib/generators/shopify_app/authenticated_controller/templates/authenticated_controller.rb +5 -0
  107. data/lib/generators/shopify_app/controllers/controllers_generator.rb +30 -0
  108. data/lib/generators/shopify_app/home_controller/home_controller_generator.rb +53 -0
  109. data/lib/generators/shopify_app/home_controller/templates/home_controller.rb +18 -0
  110. data/lib/generators/shopify_app/home_controller/templates/index.html.erb +75 -0
  111. data/lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb +12 -0
  112. data/lib/generators/shopify_app/install/install_generator.rb +121 -0
  113. data/lib/generators/shopify_app/install/templates/_flash_messages.html.erb +3 -0
  114. data/lib/generators/shopify_app/install/templates/embedded_app.html.erb +44 -0
  115. data/lib/generators/shopify_app/install/templates/flash_messages.js +24 -0
  116. data/lib/generators/shopify_app/install/templates/omniauth.rb +4 -0
  117. data/lib/generators/shopify_app/install/templates/session_store.rb +4 -0
  118. data/lib/generators/shopify_app/install/templates/shopify_app.js +15 -0
  119. data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +25 -0
  120. data/lib/generators/shopify_app/install/templates/shopify_app_importmap.js +13 -0
  121. data/lib/generators/shopify_app/install/templates/shopify_app_index.js +2 -0
  122. data/lib/generators/shopify_app/install/templates/shopify_provider.rb.tt +8 -0
  123. data/lib/generators/shopify_app/install/templates/user_agent.rb +6 -0
  124. data/lib/generators/shopify_app/products_controller/products_controller_generator.rb +19 -0
  125. data/lib/generators/shopify_app/products_controller/templates/products_controller.rb +8 -0
  126. data/lib/generators/shopify_app/rotate_shopify_token_job/rotate_shopify_token_job_generator.rb +16 -0
  127. data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token.rake +17 -0
  128. data/lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token_job.rb +42 -0
  129. data/lib/generators/shopify_app/routes/routes_generator.rb +32 -0
  130. data/lib/generators/shopify_app/routes/templates/routes.rb +12 -0
  131. data/lib/generators/shopify_app/shop_model/shop_model_generator.rb +70 -0
  132. data/lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_scopes_column.erb +5 -0
  133. data/lib/generators/shopify_app/shop_model/templates/db/migrate/create_shops.erb +15 -0
  134. data/lib/generators/shopify_app/shop_model/templates/shop.rb +8 -0
  135. data/lib/generators/shopify_app/shop_model/templates/shops.yml +3 -0
  136. data/lib/generators/shopify_app/shopify_app_generator.rb +18 -0
  137. data/lib/generators/shopify_app/user_model/templates/db/migrate/add_user_access_scopes_column.erb +5 -0
  138. data/lib/generators/shopify_app/user_model/templates/db/migrate/create_users.erb +16 -0
  139. data/lib/generators/shopify_app/user_model/templates/user.rb +8 -0
  140. data/lib/generators/shopify_app/user_model/templates/users.yml +4 -0
  141. data/lib/generators/shopify_app/user_model/user_model_generator.rb +70 -0
  142. data/lib/generators/shopify_app/views/views_generator.rb +30 -0
  143. data/lib/shopify_app/access_scopes/noop_strategy.rb +13 -0
  144. data/lib/shopify_app/access_scopes/shop_strategy.rb +24 -0
  145. data/lib/shopify_app/access_scopes/user_strategy.rb +41 -0
  146. data/lib/shopify_app/configuration.rb +119 -0
  147. data/lib/shopify_app/controller_concerns/app_proxy_verification.rb +38 -0
  148. data/lib/shopify_app/controller_concerns/csrf_protection.rb +15 -0
  149. data/lib/shopify_app/controller_concerns/embedded_app.rb +20 -0
  150. data/lib/shopify_app/controller_concerns/itp.rb +45 -0
  151. data/lib/shopify_app/controller_concerns/localization.rb +23 -0
  152. data/lib/shopify_app/controller_concerns/login_protection.rb +259 -0
  153. data/lib/shopify_app/controller_concerns/payload_verification.rb +24 -0
  154. data/lib/shopify_app/controller_concerns/webhook_verification.rb +23 -0
  155. data/lib/shopify_app/engine.rb +47 -0
  156. data/lib/shopify_app/jobs/scripttags_manager_job.rb +16 -0
  157. data/lib/shopify_app/jobs/webhooks_manager_job.rb +16 -0
  158. data/lib/shopify_app/managers/scripttags_manager.rb +78 -0
  159. data/lib/shopify_app/managers/webhooks_manager.rb +62 -0
  160. data/lib/shopify_app/middleware/jwt_middleware.rb +43 -0
  161. data/lib/shopify_app/middleware/same_site_cookie_middleware.rb +34 -0
  162. data/lib/shopify_app/omniauth/omniauth_configuration.rb +64 -0
  163. data/lib/shopify_app/session/in_memory_session_store.rb +31 -0
  164. data/lib/shopify_app/session/in_memory_shop_session_store.rb +16 -0
  165. data/lib/shopify_app/session/in_memory_user_session_store.rb +16 -0
  166. data/lib/shopify_app/session/jwt.rb +67 -0
  167. data/lib/shopify_app/session/null_user_session_store.rb +22 -0
  168. data/lib/shopify_app/session/session_repository.rb +56 -0
  169. data/lib/shopify_app/session/session_storage.rb +20 -0
  170. data/lib/shopify_app/session/shop_session_storage.rb +42 -0
  171. data/lib/shopify_app/session/shop_session_storage_with_scopes.rb +58 -0
  172. data/lib/shopify_app/session/user_session_storage.rb +42 -0
  173. data/lib/shopify_app/session/user_session_storage_with_scopes.rb +58 -0
  174. data/lib/shopify_app/test_helpers/all.rb +2 -0
  175. data/lib/shopify_app/test_helpers/webhook_verification_helper.rb +17 -0
  176. data/lib/shopify_app/utils.rb +37 -0
  177. data/lib/shopify_app/version.rb +4 -0
  178. data/lib/shopify_app.rb +80 -0
  179. data/package.json +27 -0
  180. data/service.yml +4 -0
  181. data/shipit.rubygems.yml +4 -0
  182. data/shopify_app.gemspec +39 -0
  183. data/translation.yml +7 -0
  184. data/webpack.config.js +24 -0
  185. data/yarn.lock +5230 -0
  186. metadata +465 -0
metadata ADDED
@@ -0,0 +1,465 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_shopify_app
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Hopper Gee
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: browser_sniffer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.4.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.4.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth-rails_csrf_protection
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.2.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.2.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: ruby_shopify_api
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: omniauth-shopify-oauth2
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: jwt
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.2.3
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.2.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: redirect_safely
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: byebug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-nav
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry-stack_explorer
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rb-readline
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: sqlite3
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '1.4'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.4'
209
+ - !ruby/object:Gem::Dependency
210
+ name: minitest
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: mocha
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: webmock
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ description:
252
+ email:
253
+ - hopper.gee@hey.com
254
+ executables: []
255
+ extensions: []
256
+ extra_rdoc_files: []
257
+ files:
258
+ - ".babelrc"
259
+ - ".github/CODEOWNERS"
260
+ - ".github/ISSUE_TEMPLATE/bug-report.md"
261
+ - ".github/ISSUE_TEMPLATE/config.yml"
262
+ - ".github/ISSUE_TEMPLATE/feature-request.md"
263
+ - ".github/PULL_REQUEST_TEMPLATE.md"
264
+ - ".github/probots.yml"
265
+ - ".github/workflows/build.yml"
266
+ - ".github/workflows/release.yml"
267
+ - ".github/workflows/rubocop.yml"
268
+ - ".gitignore"
269
+ - ".nvmrc"
270
+ - ".rubocop.yml"
271
+ - ".ruby-version"
272
+ - CHANGELOG-OLD.md
273
+ - CHANGELOG.md
274
+ - CONTRIBUTING.md
275
+ - Gemfile
276
+ - Gemfile.lock
277
+ - LICENSE
278
+ - README.md
279
+ - Rakefile
280
+ - SECURITY.md
281
+ - app/assets/images/storage_access.svg
282
+ - app/assets/javascripts/shopify_app/app_bridge_2.0.12.js
283
+ - app/assets/javascripts/shopify_app/app_bridge_redirect.js
284
+ - app/assets/javascripts/shopify_app/enable_cookies.js
285
+ - app/assets/javascripts/shopify_app/itp_helper.js
286
+ - app/assets/javascripts/shopify_app/partition_cookies.js
287
+ - app/assets/javascripts/shopify_app/post_redirect.js
288
+ - app/assets/javascripts/shopify_app/redirect.js
289
+ - app/assets/javascripts/shopify_app/request_storage_access.js
290
+ - app/assets/javascripts/shopify_app/storage_access.js
291
+ - app/assets/javascripts/shopify_app/storage_access_redirect.js
292
+ - app/assets/javascripts/shopify_app/top_level.js
293
+ - app/assets/javascripts/shopify_app/top_level_interaction.js
294
+ - app/controllers/concerns/shopify_app/authenticated.rb
295
+ - app/controllers/concerns/shopify_app/ensure_authenticated_links.rb
296
+ - app/controllers/concerns/shopify_app/require_known_shop.rb
297
+ - app/controllers/concerns/shopify_app/shop_access_scopes_verification.rb
298
+ - app/controllers/shopify_app/authenticated_controller.rb
299
+ - app/controllers/shopify_app/callback_controller.rb
300
+ - app/controllers/shopify_app/extension_verification_controller.rb
301
+ - app/controllers/shopify_app/sessions_controller.rb
302
+ - app/controllers/shopify_app/webhooks_controller.rb
303
+ - app/views/shopify_app/partials/_button_styles.html.erb
304
+ - app/views/shopify_app/partials/_card_styles.html.erb
305
+ - app/views/shopify_app/partials/_empty_state_styles.html.erb
306
+ - app/views/shopify_app/partials/_form_styles.html.erb
307
+ - app/views/shopify_app/partials/_layout_styles.html.erb
308
+ - app/views/shopify_app/partials/_typography_styles.html.erb
309
+ - app/views/shopify_app/sessions/enable_cookies.html.erb
310
+ - app/views/shopify_app/sessions/new.html.erb
311
+ - app/views/shopify_app/sessions/request_storage_access.html.erb
312
+ - app/views/shopify_app/sessions/top_level_interaction.html.erb
313
+ - app/views/shopify_app/shared/post_redirect_to_auth_shopify.html.erb
314
+ - app/views/shopify_app/shared/redirect.html.erb
315
+ - config/locales/cs.yml
316
+ - config/locales/da.yml
317
+ - config/locales/de.yml
318
+ - config/locales/en.yml
319
+ - config/locales/es.yml
320
+ - config/locales/fi.yml
321
+ - config/locales/fr.yml
322
+ - config/locales/it.yml
323
+ - config/locales/ja.yml
324
+ - config/locales/ko.yml
325
+ - config/locales/nb.yml
326
+ - config/locales/nl.yml
327
+ - config/locales/pl.yml
328
+ - config/locales/pt-BR.yml
329
+ - config/locales/pt-PT.yml
330
+ - config/locales/sv.yml
331
+ - config/locales/th.yml
332
+ - config/locales/tr.yml
333
+ - config/locales/vi.yml
334
+ - config/locales/zh-CN.yml
335
+ - config/locales/zh-TW.yml
336
+ - config/routes.rb
337
+ - docs/Quickstart.md
338
+ - docs/Releasing.md
339
+ - docs/Troubleshooting.md
340
+ - docs/Upgrading.md
341
+ - docs/shopify_app/authentication.md
342
+ - docs/shopify_app/engine.md
343
+ - docs/shopify_app/generators.md
344
+ - docs/shopify_app/handling-access-scopes-changes.md
345
+ - docs/shopify_app/script-tags.md
346
+ - docs/shopify_app/session-repository.md
347
+ - docs/shopify_app/testing.md
348
+ - docs/shopify_app/webhooks.md
349
+ - images/app-proxy-screenshot.png
350
+ - karma.conf.js
351
+ - lib/generators/shopify_app/add_after_authenticate_job/add_after_authenticate_job_generator.rb
352
+ - lib/generators/shopify_app/add_after_authenticate_job/templates/after_authenticate_job.rb
353
+ - lib/generators/shopify_app/add_marketing_activity_extension/add_marketing_activity_extension_generator.rb
354
+ - lib/generators/shopify_app/add_marketing_activity_extension/templates/marketing_activities_controller.rb
355
+ - lib/generators/shopify_app/add_webhook/add_webhook_generator.rb
356
+ - lib/generators/shopify_app/add_webhook/templates/webhook_job.rb.tt
357
+ - lib/generators/shopify_app/app_proxy_controller/app_proxy_controller_generator.rb
358
+ - lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_controller.rb
359
+ - lib/generators/shopify_app/app_proxy_controller/templates/app_proxy_route.rb
360
+ - lib/generators/shopify_app/app_proxy_controller/templates/index.html.erb
361
+ - lib/generators/shopify_app/authenticated_controller/authenticated_controller_generator.rb
362
+ - lib/generators/shopify_app/authenticated_controller/templates/authenticated_controller.rb
363
+ - lib/generators/shopify_app/controllers/controllers_generator.rb
364
+ - lib/generators/shopify_app/home_controller/home_controller_generator.rb
365
+ - lib/generators/shopify_app/home_controller/templates/home_controller.rb
366
+ - lib/generators/shopify_app/home_controller/templates/index.html.erb
367
+ - lib/generators/shopify_app/home_controller/templates/unauthenticated_home_controller.rb
368
+ - lib/generators/shopify_app/install/install_generator.rb
369
+ - lib/generators/shopify_app/install/templates/_flash_messages.html.erb
370
+ - lib/generators/shopify_app/install/templates/embedded_app.html.erb
371
+ - lib/generators/shopify_app/install/templates/flash_messages.js
372
+ - lib/generators/shopify_app/install/templates/omniauth.rb
373
+ - lib/generators/shopify_app/install/templates/session_store.rb
374
+ - lib/generators/shopify_app/install/templates/shopify_app.js
375
+ - lib/generators/shopify_app/install/templates/shopify_app.rb.tt
376
+ - lib/generators/shopify_app/install/templates/shopify_app_importmap.js
377
+ - lib/generators/shopify_app/install/templates/shopify_app_index.js
378
+ - lib/generators/shopify_app/install/templates/shopify_provider.rb.tt
379
+ - lib/generators/shopify_app/install/templates/user_agent.rb
380
+ - lib/generators/shopify_app/products_controller/products_controller_generator.rb
381
+ - lib/generators/shopify_app/products_controller/templates/products_controller.rb
382
+ - lib/generators/shopify_app/rotate_shopify_token_job/rotate_shopify_token_job_generator.rb
383
+ - lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token.rake
384
+ - lib/generators/shopify_app/rotate_shopify_token_job/templates/rotate_shopify_token_job.rb
385
+ - lib/generators/shopify_app/routes/routes_generator.rb
386
+ - lib/generators/shopify_app/routes/templates/routes.rb
387
+ - lib/generators/shopify_app/shop_model/shop_model_generator.rb
388
+ - lib/generators/shopify_app/shop_model/templates/db/migrate/add_shop_access_scopes_column.erb
389
+ - lib/generators/shopify_app/shop_model/templates/db/migrate/create_shops.erb
390
+ - lib/generators/shopify_app/shop_model/templates/shop.rb
391
+ - lib/generators/shopify_app/shop_model/templates/shops.yml
392
+ - lib/generators/shopify_app/shopify_app_generator.rb
393
+ - lib/generators/shopify_app/user_model/templates/db/migrate/add_user_access_scopes_column.erb
394
+ - lib/generators/shopify_app/user_model/templates/db/migrate/create_users.erb
395
+ - lib/generators/shopify_app/user_model/templates/user.rb
396
+ - lib/generators/shopify_app/user_model/templates/users.yml
397
+ - lib/generators/shopify_app/user_model/user_model_generator.rb
398
+ - lib/generators/shopify_app/views/views_generator.rb
399
+ - lib/shopify_app.rb
400
+ - lib/shopify_app/access_scopes/noop_strategy.rb
401
+ - lib/shopify_app/access_scopes/shop_strategy.rb
402
+ - lib/shopify_app/access_scopes/user_strategy.rb
403
+ - lib/shopify_app/configuration.rb
404
+ - lib/shopify_app/controller_concerns/app_proxy_verification.rb
405
+ - lib/shopify_app/controller_concerns/csrf_protection.rb
406
+ - lib/shopify_app/controller_concerns/embedded_app.rb
407
+ - lib/shopify_app/controller_concerns/itp.rb
408
+ - lib/shopify_app/controller_concerns/localization.rb
409
+ - lib/shopify_app/controller_concerns/login_protection.rb
410
+ - lib/shopify_app/controller_concerns/payload_verification.rb
411
+ - lib/shopify_app/controller_concerns/webhook_verification.rb
412
+ - lib/shopify_app/engine.rb
413
+ - lib/shopify_app/jobs/scripttags_manager_job.rb
414
+ - lib/shopify_app/jobs/webhooks_manager_job.rb
415
+ - lib/shopify_app/managers/scripttags_manager.rb
416
+ - lib/shopify_app/managers/webhooks_manager.rb
417
+ - lib/shopify_app/middleware/jwt_middleware.rb
418
+ - lib/shopify_app/middleware/same_site_cookie_middleware.rb
419
+ - lib/shopify_app/omniauth/omniauth_configuration.rb
420
+ - lib/shopify_app/session/in_memory_session_store.rb
421
+ - lib/shopify_app/session/in_memory_shop_session_store.rb
422
+ - lib/shopify_app/session/in_memory_user_session_store.rb
423
+ - lib/shopify_app/session/jwt.rb
424
+ - lib/shopify_app/session/null_user_session_store.rb
425
+ - lib/shopify_app/session/session_repository.rb
426
+ - lib/shopify_app/session/session_storage.rb
427
+ - lib/shopify_app/session/shop_session_storage.rb
428
+ - lib/shopify_app/session/shop_session_storage_with_scopes.rb
429
+ - lib/shopify_app/session/user_session_storage.rb
430
+ - lib/shopify_app/session/user_session_storage_with_scopes.rb
431
+ - lib/shopify_app/test_helpers/all.rb
432
+ - lib/shopify_app/test_helpers/webhook_verification_helper.rb
433
+ - lib/shopify_app/utils.rb
434
+ - lib/shopify_app/version.rb
435
+ - package.json
436
+ - service.yml
437
+ - shipit.rubygems.yml
438
+ - shopify_app.gemspec
439
+ - translation.yml
440
+ - webpack.config.js
441
+ - yarn.lock
442
+ homepage:
443
+ licenses: []
444
+ metadata:
445
+ allowed_push_host: https://rubygems.org
446
+ post_install_message:
447
+ rdoc_options: []
448
+ require_paths:
449
+ - lib
450
+ required_ruby_version: !ruby/object:Gem::Requirement
451
+ requirements:
452
+ - - ">="
453
+ - !ruby/object:Gem::Version
454
+ version: '2.6'
455
+ required_rubygems_version: !ruby/object:Gem::Requirement
456
+ requirements:
457
+ - - ">="
458
+ - !ruby/object:Gem::Version
459
+ version: '0'
460
+ requirements: []
461
+ rubygems_version: 3.2.32
462
+ signing_key:
463
+ specification_version: 4
464
+ summary: This gem is used to get quickly started with the Shopify API
465
+ test_files: []