disco_app 0.12.7.pre.puma.pre.3 → 0.18.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +1 -5
  3. data/app/assets/components/disco_app/forms/model-form.es6.jsx +2 -7
  4. data/app/assets/images/disco_app/.keep +0 -0
  5. data/app/assets/images/disco_app/logo.png +0 -0
  6. data/app/assets/javascripts/disco_app/components/custom/shop_row.js.jsx +2 -1
  7. data/app/assets/javascripts/disco_app/components/ui-kit/forms/base_form.es6.jsx +16 -44
  8. data/app/assets/javascripts/disco_app/components/ui-kit/forms/input-checkbox.es6.jsx +10 -5
  9. data/app/clients/disco_app/api_client.rb +25 -19
  10. data/app/clients/disco_app/graphql_client.rb +85 -0
  11. data/app/controllers/disco_app/admin/app_settings_controller.rb +2 -0
  12. data/app/controllers/disco_app/admin/application_controller.rb +3 -1
  13. data/app/controllers/disco_app/admin/concerns/app_settings_controller.rb +2 -1
  14. data/app/controllers/disco_app/admin/concerns/authenticated_controller.rb +5 -3
  15. data/app/controllers/disco_app/admin/concerns/plans_controller.rb +3 -2
  16. data/app/controllers/disco_app/admin/concerns/shops_controller.rb +1 -0
  17. data/app/controllers/disco_app/admin/concerns/sources_controller.rb +52 -0
  18. data/app/controllers/disco_app/admin/concerns/subscriptions_controller.rb +3 -2
  19. data/app/controllers/disco_app/admin/plans_controller.rb +2 -0
  20. data/app/controllers/disco_app/admin/resources/shops_controller.rb +2 -0
  21. data/app/controllers/disco_app/admin/shops_controller.rb +2 -0
  22. data/app/controllers/disco_app/admin/sources_controller.rb +5 -0
  23. data/app/controllers/disco_app/admin/subscriptions_controller.rb +2 -0
  24. data/app/controllers/disco_app/charges_controller.rb +12 -8
  25. data/app/controllers/disco_app/concerns/app_proxy_controller.rb +6 -6
  26. data/app/controllers/disco_app/concerns/authenticated_controller.rb +31 -23
  27. data/app/controllers/disco_app/concerns/carrier_request_controller.rb +22 -11
  28. data/app/controllers/disco_app/concerns/user_authenticated_controller.rb +18 -0
  29. data/app/controllers/disco_app/concerns/webhooks_controller.rb +49 -0
  30. data/app/controllers/disco_app/flow/actions_controller.rb +9 -0
  31. data/app/controllers/disco_app/flow/concerns/actions_controller.rb +23 -0
  32. data/app/controllers/disco_app/flow/concerns/trigger_usage_controller.rb +29 -0
  33. data/app/controllers/disco_app/flow/concerns/verifies_flow_payload.rb +39 -0
  34. data/app/controllers/disco_app/flow/trigger_usage_controller.rb +9 -0
  35. data/app/controllers/disco_app/frame_controller.rb +0 -1
  36. data/app/controllers/disco_app/install_controller.rb +3 -6
  37. data/app/controllers/disco_app/subscriptions_controller.rb +12 -4
  38. data/app/controllers/disco_app/user_sessions_controller.rb +58 -0
  39. data/app/controllers/disco_app/webhooks_controller.rb +2 -43
  40. data/app/controllers/sessions_controller.rb +5 -6
  41. data/app/helpers/disco_app/application_helper.rb +7 -7
  42. data/app/jobs/application_job.rb +2 -0
  43. data/app/jobs/disco_app/app_installed_job.rb +2 -0
  44. data/app/jobs/disco_app/app_uninstalled_job.rb +2 -0
  45. data/app/jobs/disco_app/concerns/app_installed_job.rb +3 -4
  46. data/app/jobs/disco_app/concerns/app_uninstalled_job.rb +2 -1
  47. data/app/jobs/disco_app/concerns/customers_data_request_job.rb +13 -0
  48. data/app/jobs/disco_app/concerns/customers_redact_job.rb +13 -0
  49. data/app/jobs/disco_app/concerns/render_asset_group_job.rb +2 -1
  50. data/app/jobs/disco_app/concerns/shop_redact_job.rb +13 -0
  51. data/app/jobs/disco_app/concerns/shop_update_job.rb +10 -3
  52. data/app/jobs/disco_app/concerns/subscription_changed_job.rb +2 -1
  53. data/app/jobs/disco_app/concerns/synchronise_carrier_service_job.rb +9 -8
  54. data/app/jobs/disco_app/concerns/synchronise_resources_job.rb +3 -6
  55. data/app/jobs/disco_app/concerns/synchronise_users_job.rb +18 -0
  56. data/app/jobs/disco_app/concerns/synchronise_webhooks_job.rb +48 -18
  57. data/app/jobs/disco_app/customers_data_request_job.rb +5 -0
  58. data/app/jobs/disco_app/customers_redact_job.rb +5 -0
  59. data/app/jobs/disco_app/flow/process_action_job.rb +11 -0
  60. data/app/jobs/disco_app/flow/process_trigger_job.rb +11 -0
  61. data/app/jobs/disco_app/render_asset_group_job.rb +2 -0
  62. data/app/jobs/disco_app/send_subscription_job.rb +1 -1
  63. data/app/jobs/disco_app/shop_job.rb +12 -5
  64. data/app/jobs/disco_app/shop_redact_job.rb +5 -0
  65. data/app/jobs/disco_app/shop_update_job.rb +2 -0
  66. data/app/jobs/disco_app/subscription_changed_job.rb +2 -0
  67. data/app/jobs/disco_app/synchronise_carrier_service_job.rb +2 -0
  68. data/app/jobs/disco_app/synchronise_resources_job.rb +2 -0
  69. data/app/jobs/disco_app/synchronise_users_job.rb +5 -0
  70. data/app/jobs/disco_app/synchronise_webhooks_job.rb +2 -0
  71. data/app/models/application_record.rb +5 -0
  72. data/app/models/disco_app/app_settings.rb +3 -1
  73. data/app/models/disco_app/application_charge.rb +8 -2
  74. data/app/models/disco_app/concerns/app_settings.rb +2 -0
  75. data/app/models/disco_app/concerns/can_be_liquified.rb +34 -18
  76. data/app/models/disco_app/concerns/has_metafields.rb +100 -44
  77. data/app/models/disco_app/concerns/plan.rb +15 -7
  78. data/app/models/disco_app/concerns/plan_code.rb +5 -3
  79. data/app/models/disco_app/concerns/renders_assets.rb +15 -21
  80. data/app/models/disco_app/concerns/shop.rb +39 -16
  81. data/app/models/disco_app/concerns/source.rb +13 -0
  82. data/app/models/disco_app/concerns/subscription.rb +14 -7
  83. data/app/models/disco_app/concerns/synchronises.rb +16 -16
  84. data/app/models/disco_app/concerns/taggable.rb +8 -3
  85. data/app/models/disco_app/concerns/user.rb +21 -0
  86. data/app/models/disco_app/flow/action.rb +9 -0
  87. data/app/models/disco_app/flow/concerns/action.rb +27 -0
  88. data/app/models/disco_app/flow/concerns/trigger.rb +28 -0
  89. data/app/models/disco_app/flow/concerns/trigger_usage.rb +17 -0
  90. data/app/models/disco_app/flow/trigger.rb +9 -0
  91. data/app/models/disco_app/flow/trigger_usage.rb +9 -0
  92. data/app/models/disco_app/plan.rb +3 -1
  93. data/app/models/disco_app/plan_code.rb +3 -1
  94. data/app/models/disco_app/recurring_application_charge.rb +9 -2
  95. data/app/models/disco_app/session_storage.rb +5 -2
  96. data/app/models/disco_app/shop.rb +3 -1
  97. data/app/models/disco_app/source.rb +5 -0
  98. data/app/models/disco_app/subscription.rb +3 -1
  99. data/app/models/disco_app/user.rb +5 -0
  100. data/app/resources/disco_app/admin/resources/concerns/shop_resource.rb +16 -19
  101. data/app/resources/disco_app/admin/resources/shop_resource.rb +1 -0
  102. data/app/services/disco_app/carrier_request_service.rb +3 -3
  103. data/app/services/disco_app/charges_service.rb +28 -38
  104. data/app/services/disco_app/flow/create_action.rb +35 -0
  105. data/app/services/disco_app/flow/create_trigger.rb +34 -0
  106. data/app/services/disco_app/flow/process_action.rb +50 -0
  107. data/app/services/disco_app/flow/process_trigger.rb +72 -0
  108. data/app/services/disco_app/flow/update_trigger_usage.rb +42 -0
  109. data/app/services/disco_app/partner_app_service.rb +151 -0
  110. data/app/services/disco_app/proxy_service.rb +2 -2
  111. data/app/services/disco_app/request_validation_service.rb +2 -2
  112. data/app/services/disco_app/subscription_service.rb +62 -28
  113. data/app/services/disco_app/synchronise_resources_service.rb +54 -0
  114. data/app/services/disco_app/webhook_service.rb +9 -11
  115. data/app/views/disco_app/admin/sources/_form.html.erb +34 -0
  116. data/app/views/disco_app/admin/sources/edit.html.erb +7 -0
  117. data/app/views/disco_app/admin/sources/index.html.erb +32 -0
  118. data/app/views/disco_app/admin/sources/new.html.erb +7 -0
  119. data/app/views/disco_app/user_sessions/new.html.erb +12 -0
  120. data/app/views/layouts/admin/_nav_items.erb +7 -0
  121. data/app/views/layouts/admin.html.erb +1 -2
  122. data/app/views/layouts/application.html.erb +1 -2
  123. data/app/views/layouts/embedded_app.html.erb +2 -4
  124. data/app/views/layouts/embedded_app_modal.html.erb +2 -3
  125. data/app/views/shopify_app/sessions/new.html.erb +2 -4
  126. data/config/routes.rb +15 -3
  127. data/db/migrate/20150525000000_create_shops_if_not_existent.rb +81 -81
  128. data/db/migrate/20170315062548_create_disco_app_sources.rb +12 -0
  129. data/db/migrate/20170315062629_add_sources_to_shop_subscriptions.rb +16 -0
  130. data/db/migrate/20170327214540_create_disco_app_users.rb +14 -0
  131. data/db/migrate/20170606160751_fix_disco_app_users_index.rb +8 -0
  132. data/db/migrate/20181229100327_create_flow_actions_and_triggers.rb +32 -0
  133. data/db/migrate/20200405000000_create_flow_trigger_usages.rb +16 -0
  134. data/lib/disco_app/configuration.rb +12 -5
  135. data/lib/disco_app/constants.rb +4 -2
  136. data/lib/disco_app/engine.rb +1 -1
  137. data/lib/disco_app/session.rb +1 -0
  138. data/lib/disco_app/support/file_fixtures.rb +2 -1
  139. data/lib/disco_app/version.rb +3 -1
  140. data/lib/generators/disco_app/install/USAGE +5 -0
  141. data/lib/generators/disco_app/install/install_generator.rb +297 -0
  142. data/lib/generators/disco_app/{templates → install/templates}/assets/javascripts/application.js +0 -0
  143. data/lib/generators/disco_app/{templates → install/templates}/assets/javascripts/components.js +0 -0
  144. data/lib/generators/disco_app/{templates → install/templates}/assets/stylesheets/application.scss +0 -0
  145. data/lib/generators/disco_app/install/templates/config/appsignal.yml +12 -0
  146. data/lib/generators/disco_app/install/templates/config/cable.yml.tt +11 -0
  147. data/lib/generators/disco_app/{templates → install/templates}/config/database.yml.tt +7 -3
  148. data/lib/generators/disco_app/install/templates/config/environments/staging.rb +108 -0
  149. data/lib/generators/disco_app/{templates → install/templates}/config/puma.rb +0 -0
  150. data/lib/generators/disco_app/{templates → install/templates}/controllers/home_controller.rb +1 -0
  151. data/lib/generators/disco_app/{templates → install/templates}/initializers/disco_app.rb +5 -0
  152. data/lib/generators/disco_app/install/templates/initializers/session_store.rb +2 -0
  153. data/lib/generators/disco_app/install/templates/initializers/shopify_app.rb +11 -0
  154. data/lib/generators/disco_app/{templates → install/templates}/initializers/shopify_session_repository.rb +2 -1
  155. data/lib/generators/disco_app/install/templates/initializers/timber.rb +4 -0
  156. data/lib/generators/disco_app/install/templates/root/.editorconfig +9 -0
  157. data/lib/generators/disco_app/install/templates/root/.env +27 -0
  158. data/lib/generators/disco_app/install/templates/root/.env.local +29 -0
  159. data/lib/generators/disco_app/install/templates/root/.github/PULL_REQUEST_TEMPLATE.md +18 -0
  160. data/lib/generators/disco_app/install/templates/root/.gitignore +65 -0
  161. data/lib/generators/disco_app/install/templates/root/.rspec +1 -0
  162. data/lib/generators/disco_app/install/templates/root/.rubocop.yml +758 -0
  163. data/lib/generators/disco_app/install/templates/root/.tool-versions +2 -0
  164. data/lib/generators/disco_app/{templates → install/templates}/root/CHECKS +0 -0
  165. data/lib/generators/disco_app/{templates → install/templates}/root/Procfile +0 -0
  166. data/lib/generators/disco_app/install/templates/root/README.md +26 -0
  167. data/lib/generators/disco_app/install/templates/root/package.json.tt +17 -0
  168. data/lib/generators/disco_app/install/templates/spec/rails_helper.rb +40 -0
  169. data/lib/generators/disco_app/install/templates/spec/spec_helper.rb +24 -0
  170. data/lib/generators/disco_app/install/templates/spec/support/active_job.rb +13 -0
  171. data/lib/generators/disco_app/install/templates/spec/support/coveralls.rb +3 -0
  172. data/lib/generators/disco_app/install/templates/spec/support/database_cleaner.rb +17 -0
  173. data/lib/generators/disco_app/install/templates/spec/support/factory_bot.rb +3 -0
  174. data/lib/generators/disco_app/install/templates/spec/support/helpers/json_helper.rb +13 -0
  175. data/lib/generators/disco_app/install/templates/spec/support/shared_examples/a_synchronise_job.rb +12 -0
  176. data/lib/generators/disco_app/install/templates/spec/support/shoulda.rb +6 -0
  177. data/lib/generators/disco_app/install/templates/spec/support/vcr.rb +14 -0
  178. data/lib/generators/disco_app/install/templates/spec/support/webmock.rb +8 -0
  179. data/lib/generators/disco_app/{templates → install/templates}/views/home/index.html.erb +0 -0
  180. data/lib/generators/disco_app/react/USAGE +5 -0
  181. data/lib/generators/disco_app/react/react_generator.rb +108 -0
  182. data/lib/generators/disco_app/react/templates/app/controllers/embedded/api/base_controller.rb +18 -0
  183. data/lib/generators/disco_app/react/templates/app/controllers/embedded/api/home_controller.rb +10 -0
  184. data/lib/generators/disco_app/react/templates/app/controllers/embedded/api/shops_controller.rb +11 -0
  185. data/lib/generators/disco_app/react/templates/app/controllers/embedded/api/users_controller.rb +11 -0
  186. data/lib/generators/disco_app/react/templates/app/controllers/embedded/home_controller.rb +13 -0
  187. data/lib/generators/disco_app/react/templates/app/models/api_response.rb +107 -0
  188. data/lib/generators/disco_app/react/templates/app/serializers/disco_app/shop_serializer.rb +13 -0
  189. data/lib/generators/disco_app/react/templates/app/serializers/disco_app/user_serializer.rb +13 -0
  190. data/lib/generators/disco_app/react/templates/app/serializers/empty_serializer.rb +5 -0
  191. data/lib/generators/disco_app/react/templates/app/serializers/error_serializer.rb +76 -0
  192. data/lib/generators/disco_app/react/templates/app/views/embedded/home/index.html.erb +12 -0
  193. data/lib/generators/disco_app/react/templates/app/views/layouts/embedded.html.erb +10 -0
  194. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/App.jsx +77 -0
  195. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/HomePage.jsx +34 -0
  196. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/EmbeddedPage.jsx +70 -0
  197. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/ErrorBanner.jsx +58 -0
  198. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/PaginationWrapper.jsx +10 -0
  199. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/ScrollToTop.jsx +23 -0
  200. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/withApi.jsx +125 -0
  201. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/index.jsx +39 -0
  202. data/lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/utils.js +19 -0
  203. data/lib/generators/disco_app/react/templates/app/webpack/packs/embedded.js +2 -0
  204. data/lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/banners.scss +7 -0
  205. data/lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/busy.scss +3 -0
  206. data/lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/index.scss +3 -0
  207. data/lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/pagination.scss +5 -0
  208. data/lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded.scss +2 -0
  209. data/lib/generators/disco_app/react/templates/config/initializers/mime_types.rb +13 -0
  210. data/lib/generators/disco_app/react/templates/config/initializers/omniauth.rb +27 -0
  211. data/lib/generators/disco_app/react/templates/config/initializers/version.rb.tt +7 -0
  212. data/lib/generators/disco_app/react/templates/config/webpack/staging.js +5 -0
  213. data/lib/generators/disco_app/react/templates/config/webpack/test.js +5 -0
  214. data/lib/generators/disco_app/react/templates/config/webpacker.yml +96 -0
  215. data/lib/generators/disco_app/react/templates/root/.eslintignore +5 -0
  216. data/lib/generators/disco_app/react/templates/root/.eslintrc +69 -0
  217. data/lib/generators/disco_app/react/templates/root/.prettierrc +3 -0
  218. data/lib/generators/disco_app/react/templates/root/VERSION +1 -0
  219. data/lib/generators/disco_app/react/templates/root/babel.config.js +72 -0
  220. data/lib/generators/disco_app/react/templates/root/package.json.tt +84 -0
  221. data/lib/generators/disco_app/react/templates/root/postcss.config.js +14 -0
  222. data/lib/tasks/api.rake +0 -2
  223. data/lib/tasks/carrier_service.rake +0 -2
  224. data/lib/tasks/database.rake +1 -1
  225. data/lib/tasks/partner_app.rake +26 -0
  226. data/lib/tasks/sessions.rake +0 -2
  227. data/lib/tasks/shops.rake +0 -2
  228. data/lib/tasks/users.rake +8 -0
  229. data/lib/tasks/webhooks.rake +0 -2
  230. data/test/clients/disco_app/api_client_test.rb +3 -3
  231. data/test/controllers/disco_app/admin/shops_controller_test.rb +1 -0
  232. data/test/controllers/disco_app/charges_controller_test.rb +19 -21
  233. data/test/controllers/disco_app/flow/trigger_usage_controller_test.rb +41 -0
  234. data/test/controllers/disco_app/install_controller_test.rb +2 -1
  235. data/test/controllers/disco_app/subscriptions_controller_test.rb +6 -5
  236. data/test/controllers/disco_app/webhooks_controller_test.rb +6 -5
  237. data/test/controllers/home_controller_test.rb +2 -2
  238. data/test/controllers/proxy_controller_test.rb +3 -3
  239. data/test/disco_app_test.rb +3 -1
  240. data/test/dummy/Rakefile +1 -1
  241. data/test/dummy/app/assets/config/manifest.js +2 -0
  242. data/test/dummy/app/controllers/application_controller.rb +2 -0
  243. data/test/dummy/app/controllers/carrier_request_controller.rb +1 -0
  244. data/test/dummy/app/controllers/disco_app/admin/shops_controller.rb +2 -1
  245. data/test/dummy/app/controllers/home_controller.rb +1 -0
  246. data/test/dummy/app/controllers/proxy_controller.rb +2 -1
  247. data/test/dummy/app/javascript/packs/application.js +18 -0
  248. data/test/dummy/app/jobs/application_job.rb +2 -0
  249. data/test/dummy/app/jobs/carts_update_job.rb +1 -1
  250. data/test/dummy/app/jobs/disco_app/app_installed_job.rb +2 -3
  251. data/test/dummy/app/jobs/disco_app/app_uninstalled_job.rb +3 -2
  252. data/test/dummy/app/jobs/products_create_job.rb +1 -1
  253. data/test/dummy/app/jobs/products_delete_job.rb +1 -1
  254. data/test/dummy/app/jobs/products_update_job.rb +1 -1
  255. data/test/dummy/app/models/application_record.rb +5 -0
  256. data/test/dummy/app/models/cart.rb +8 -7
  257. data/test/dummy/app/models/disco_app/shop.rb +8 -6
  258. data/test/dummy/app/models/js_configuration.rb +2 -1
  259. data/test/dummy/app/models/product.rb +4 -3
  260. data/test/dummy/app/models/widget_configuration.rb +2 -1
  261. data/test/dummy/babel.config.js +72 -0
  262. data/test/dummy/bin/bundle +1 -1
  263. data/test/dummy/bin/rails +1 -1
  264. data/test/dummy/bin/setup +8 -8
  265. data/test/dummy/bin/webpack +19 -0
  266. data/test/dummy/bin/webpack-dev-server +19 -0
  267. data/test/dummy/config/application.rb +3 -5
  268. data/test/dummy/config/boot.rb +2 -2
  269. data/test/dummy/config/database.yml +4 -0
  270. data/test/dummy/config/environment.rb +1 -1
  271. data/test/dummy/config/environments/staging.rb +85 -0
  272. data/test/dummy/config/environments/test.rb +2 -2
  273. data/test/dummy/config/initializers/disco_app.rb +8 -1
  274. data/test/dummy/config/initializers/omniauth.rb +3 -4
  275. data/test/dummy/config/initializers/session_store.rb +1 -1
  276. data/test/dummy/config/initializers/shopify_app.rb +1 -0
  277. data/test/dummy/config/initializers/shopify_session_repository.rb +1 -1
  278. data/test/dummy/config/routes.rb +0 -2
  279. data/test/dummy/config/secrets.yml +3 -0
  280. data/test/dummy/config/webpack/development.js +5 -0
  281. data/test/dummy/config/webpack/environment.js +3 -0
  282. data/test/dummy/config/webpack/production.js +5 -0
  283. data/test/dummy/config/webpack/test.js +5 -0
  284. data/test/dummy/config/webpacker.yml +95 -0
  285. data/test/dummy/db/migrate/20160307182229_create_products.rb +3 -1
  286. data/test/dummy/db/migrate/20160530160739_create_asset_models.rb +3 -1
  287. data/test/dummy/db/migrate/20161105054746_create_carts.rb +3 -1
  288. data/test/dummy/db/schema.rb +141 -88
  289. data/test/dummy/package.json +10 -0
  290. data/test/dummy/postcss.config.js +12 -0
  291. data/test/dummy/yarn.lock +7278 -0
  292. data/test/fixtures/api/subscriptions/valid_request.json +2 -2
  293. data/test/fixtures/api/widget_store/charges/{activate_application_charge_request.json → get_active_application_charge_response.json} +1 -1
  294. data/test/fixtures/api/widget_store/charges/{activate_recurring_application_charge_request.json → get_active_recurring_application_charge_response.json} +2 -2
  295. data/test/fixtures/api/widget_store/empty_webhooks.json +3 -0
  296. data/test/fixtures/api/widget_store/existing_webhooks.json +43 -0
  297. data/test/fixtures/api/widget_store/products/get_metafields_empty_response.json +3 -0
  298. data/test/fixtures/api/widget_store/products/get_metafields_with_existing_response.json +11 -0
  299. data/test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_request.json +4 -0
  300. data/test/fixtures/api/widget_store/products/write_metafields_single_namespace_request.json +2 -0
  301. data/test/fixtures/api/widget_store/products/write_metafields_with_existing_single_namespace_request.json +21 -0
  302. data/test/fixtures/api/widget_store/{charges/activate_application_charge_response.json → products/write_metafields_with_existing_single_namespace_response.json} +0 -0
  303. data/test/fixtures/api/widget_store/shops/get_metafields_with_existing_response.json +11 -0
  304. data/test/fixtures/api/widget_store/shops/write_metafields_with_existing_first_request.json +9 -0
  305. data/test/fixtures/api/widget_store/{charges/activate_recurring_application_charge_response.json → shops/write_metafields_with_existing_first_response.json} +0 -0
  306. data/test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_request.json +9 -0
  307. data/test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_response.json +1 -0
  308. data/test/fixtures/api/widget_store/users.json +42 -0
  309. data/test/fixtures/disco_app/shops.yml +9 -2
  310. data/test/fixtures/disco_app/sources.yml +3 -0
  311. data/test/fixtures/liquid/model.liquid +8 -8
  312. data/test/fixtures/webhooks/flow/trigger_usage.json +7 -0
  313. data/test/integration/synchronises_test.rb +20 -13
  314. data/test/jobs/disco_app/app_installed_job_test.rb +30 -11
  315. data/test/jobs/disco_app/app_uninstalled_job_test.rb +5 -2
  316. data/test/jobs/disco_app/send_subscription_job_test.rb +3 -2
  317. data/test/jobs/disco_app/synchronise_carrier_service_job_test.rb +1 -0
  318. data/test/jobs/disco_app/synchronise_users_job_test.rb +27 -0
  319. data/test/jobs/disco_app/synchronise_webhooks_job_test.rb +78 -9
  320. data/test/models/disco_app/can_be_liquified_test.rb +3 -1
  321. data/test/models/disco_app/has_metafields_test.rb +109 -20
  322. data/test/models/disco_app/renders_assets_test.rb +2 -1
  323. data/test/models/disco_app/session_test.rb +2 -2
  324. data/test/models/disco_app/shop_test.rb +1 -1
  325. data/test/services/disco_app/charges_service_test.rb +10 -14
  326. data/test/services/disco_app/flow/create_action_test.rb +51 -0
  327. data/test/services/disco_app/flow/create_trigger_test.rb +56 -0
  328. data/test/services/disco_app/flow/process_action_test.rb +68 -0
  329. data/test/services/disco_app/flow/process_trigger_test.rb +94 -0
  330. data/test/services/disco_app/flow/update_trigger_usage_test.rb +87 -0
  331. data/test/services/disco_app/subscription_service_test.rb +3 -2
  332. data/test/services/disco_app/synchronise_resources_service_test.rb +57 -0
  333. data/test/support/test_file_fixtures.rb +2 -2
  334. data/test/support/test_shopify_api.rb +1 -1
  335. data/test/test_helper.rb +24 -6
  336. data/test/vcr/flow_trigger_invalid_title.yml +35 -0
  337. data/test/vcr/flow_trigger_valid.yml +38 -0
  338. data/test/vcr/synchronise_products.yml +130 -0
  339. data/test/vcr/synchronise_products_paginated.yml +119 -0
  340. data/test/vcr/synchronise_products_since_id.yml +125 -0
  341. data/test/vcr/synchronise_products_with_params.yml +130 -0
  342. data/test/vcr/webhook_failure.yml +640 -0
  343. metadata +388 -142
  344. data/app/clients/disco_app/disco_api_error.rb +0 -2
  345. data/lib/generators/disco_app/USAGE +0 -5
  346. data/lib/generators/disco_app/disco_app_generator.rb +0 -236
  347. data/lib/generators/disco_app/templates/config/newrelic.yml +0 -26
  348. data/lib/generators/disco_app/templates/initializers/rollbar.rb +0 -23
  349. data/lib/generators/disco_app/templates/initializers/session_store.rb +0 -2
  350. data/lib/generators/disco_app/templates/initializers/shopify_app.rb +0 -6
  351. data/test/dummy/config/database.gitlab-ci.yml +0 -24
  352. data/test/fixtures/api/widget_store/charges/get_accepted_application_charge_response.json +0 -16
  353. data/test/fixtures/api/widget_store/charges/get_accepted_recurring_application_charge_response.json +0 -20
  354. data/test/fixtures/api/widget_store/webhooks.json +0 -1
metadata CHANGED
@@ -1,455 +1,505 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disco_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.7.pre.puma.pre.3
4
+ version: 0.18.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Ballard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-14 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: active_link_to
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.2'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.2'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sass-rails
28
+ name: active_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.0'
40
+ version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: uglifier
42
+ name: activemodel-serializers-xml
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: coffee-rails
56
+ name: activerecord-session_store
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '4.1'
61
+ version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '4.1'
68
+ version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: jquery-rails
70
+ name: acts_as_singleton
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.2'
75
+ version: 0.0.8
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4.2'
82
+ version: 0.0.8
83
83
  - !ruby/object:Gem::Dependency
84
- name: turbolinks
84
+ name: appsignal
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.0'
89
+ version: '2.9'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '5.0'
96
+ version: '2.9'
97
97
  - !ruby/object:Gem::Dependency
98
- name: shopify_app
98
+ name: classnames-rails
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '7.2'
104
- - - ">="
103
+ version: '2.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
105
109
  - !ruby/object:Gem::Version
106
- version: 7.2.3
110
+ version: '2.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: coffee-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '4.2'
107
118
  type: :runtime
108
119
  prerelease: false
109
120
  version_requirements: !ruby/object:Gem::Requirement
110
121
  requirements:
111
122
  - - "~>"
112
123
  - !ruby/object:Gem::Version
113
- version: '7.2'
124
+ version: '4.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: interactor
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
114
129
  - - ">="
115
130
  - !ruby/object:Gem::Version
116
- version: 7.2.3
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
117
139
  - !ruby/object:Gem::Dependency
118
- name: puma
140
+ name: jquery-rails
119
141
  requirement: !ruby/object:Gem::Requirement
120
142
  requirements:
121
143
  - - "~>"
122
144
  - !ruby/object:Gem::Version
123
- version: '3.12'
145
+ version: '4.3'
124
146
  type: :runtime
125
147
  prerelease: false
126
148
  version_requirements: !ruby/object:Gem::Requirement
127
149
  requirements:
128
150
  - - "~>"
129
151
  - !ruby/object:Gem::Version
130
- version: '3.12'
152
+ version: '4.3'
131
153
  - !ruby/object:Gem::Dependency
132
- name: sidekiq
154
+ name: jsonapi-resources
133
155
  requirement: !ruby/object:Gem::Requirement
134
156
  requirements:
135
157
  - - "~>"
136
158
  - !ruby/object:Gem::Version
137
- version: '4.2'
159
+ version: '0.9'
138
160
  type: :runtime
139
161
  prerelease: false
140
162
  version_requirements: !ruby/object:Gem::Requirement
141
163
  requirements:
142
164
  - - "~>"
143
165
  - !ruby/object:Gem::Version
144
- version: '4.2'
166
+ version: '0.9'
145
167
  - !ruby/object:Gem::Dependency
146
- name: pg
168
+ name: mailgun_rails
147
169
  requirement: !ruby/object:Gem::Requirement
148
170
  requirements:
149
171
  - - "~>"
150
172
  - !ruby/object:Gem::Version
151
- version: 0.19.0
173
+ version: '0.8'
152
174
  type: :runtime
153
175
  prerelease: false
154
176
  version_requirements: !ruby/object:Gem::Requirement
155
177
  requirements:
156
178
  - - "~>"
157
179
  - !ruby/object:Gem::Version
158
- version: 0.19.0
180
+ version: '0.8'
159
181
  - !ruby/object:Gem::Dependency
160
- name: rails_12factor
182
+ name: nokogiri
161
183
  requirement: !ruby/object:Gem::Requirement
162
184
  requirements:
163
185
  - - "~>"
164
186
  - !ruby/object:Gem::Version
165
- version: 0.0.3
187
+ version: '1.7'
166
188
  type: :runtime
167
189
  prerelease: false
168
190
  version_requirements: !ruby/object:Gem::Requirement
169
191
  requirements:
170
192
  - - "~>"
171
193
  - !ruby/object:Gem::Version
172
- version: 0.0.3
194
+ version: '1.7'
173
195
  - !ruby/object:Gem::Dependency
174
- name: rails-bigint-pk
196
+ name: pg
175
197
  requirement: !ruby/object:Gem::Requirement
176
198
  requirements:
177
199
  - - "~>"
178
200
  - !ruby/object:Gem::Version
179
- version: '1.2'
201
+ version: '1.1'
180
202
  type: :runtime
181
203
  prerelease: false
182
204
  version_requirements: !ruby/object:Gem::Requirement
183
205
  requirements:
184
206
  - - "~>"
185
207
  - !ruby/object:Gem::Version
186
- version: '1.2'
208
+ version: '1.1'
187
209
  - !ruby/object:Gem::Dependency
188
- name: active_utils
210
+ name: premailer-rails
189
211
  requirement: !ruby/object:Gem::Requirement
190
212
  requirements:
191
213
  - - "~>"
192
214
  - !ruby/object:Gem::Version
193
- version: '3.2'
215
+ version: '1.8'
194
216
  type: :runtime
195
217
  prerelease: false
196
218
  version_requirements: !ruby/object:Gem::Requirement
197
219
  requirements:
198
220
  - - "~>"
199
221
  - !ruby/object:Gem::Version
200
- version: '3.2'
222
+ version: '1.8'
201
223
  - !ruby/object:Gem::Dependency
202
- name: activerecord-session_store
224
+ name: puma
203
225
  requirement: !ruby/object:Gem::Requirement
204
226
  requirements:
205
- - - "~>"
227
+ - - ">="
206
228
  - !ruby/object:Gem::Version
207
- version: '1.0'
229
+ version: '3.9'
208
230
  type: :runtime
209
231
  prerelease: false
210
232
  version_requirements: !ruby/object:Gem::Requirement
211
233
  requirements:
212
- - - "~>"
234
+ - - ">="
213
235
  - !ruby/object:Gem::Version
214
- version: '1.0'
236
+ version: '3.9'
215
237
  - !ruby/object:Gem::Dependency
216
- name: jsonapi-resources
238
+ name: rails
217
239
  requirement: !ruby/object:Gem::Requirement
218
240
  requirements:
219
241
  - - "~>"
220
242
  - !ruby/object:Gem::Version
221
- version: '0.8'
243
+ version: '6.0'
222
244
  type: :runtime
223
245
  prerelease: false
224
246
  version_requirements: !ruby/object:Gem::Requirement
225
247
  requirements:
226
248
  - - "~>"
227
249
  - !ruby/object:Gem::Version
228
- version: '0.8'
250
+ version: '6.0'
229
251
  - !ruby/object:Gem::Dependency
230
- name: acts_as_singleton
252
+ name: rails_12factor
231
253
  requirement: !ruby/object:Gem::Requirement
232
254
  requirements:
233
255
  - - "~>"
234
256
  - !ruby/object:Gem::Version
235
- version: 0.0.8
257
+ version: 0.0.3
236
258
  type: :runtime
237
259
  prerelease: false
238
260
  version_requirements: !ruby/object:Gem::Requirement
239
261
  requirements:
240
262
  - - "~>"
241
263
  - !ruby/object:Gem::Version
242
- version: 0.0.8
264
+ version: 0.0.3
243
265
  - !ruby/object:Gem::Dependency
244
266
  name: react-rails
245
267
  requirement: !ruby/object:Gem::Requirement
246
268
  requirements:
247
269
  - - "~>"
248
270
  - !ruby/object:Gem::Version
249
- version: '1.10'
271
+ version: '2.5'
250
272
  type: :runtime
251
273
  prerelease: false
252
274
  version_requirements: !ruby/object:Gem::Requirement
253
275
  requirements:
254
276
  - - "~>"
255
277
  - !ruby/object:Gem::Version
256
- version: '1.10'
278
+ version: '2.5'
257
279
  - !ruby/object:Gem::Dependency
258
- name: classnames-rails
280
+ name: sass-rails
259
281
  requirement: !ruby/object:Gem::Requirement
260
282
  requirements:
261
283
  - - "~>"
262
284
  - !ruby/object:Gem::Version
263
- version: '2.1'
285
+ version: '6.0'
264
286
  type: :runtime
265
287
  prerelease: false
266
288
  version_requirements: !ruby/object:Gem::Requirement
267
289
  requirements:
268
290
  - - "~>"
269
291
  - !ruby/object:Gem::Version
270
- version: '2.1'
292
+ version: '6.0'
271
293
  - !ruby/object:Gem::Dependency
272
- name: render_anywhere
294
+ name: shopify_api
273
295
  requirement: !ruby/object:Gem::Requirement
274
296
  requirements:
275
297
  - - "~>"
276
298
  - !ruby/object:Gem::Version
277
- version: 0.0.12
299
+ version: '9.0'
278
300
  type: :runtime
279
301
  prerelease: false
280
302
  version_requirements: !ruby/object:Gem::Requirement
281
303
  requirements:
282
304
  - - "~>"
283
305
  - !ruby/object:Gem::Version
284
- version: 0.0.12
306
+ version: '9.0'
285
307
  - !ruby/object:Gem::Dependency
286
- name: sinatra
308
+ name: shopify_app
287
309
  requirement: !ruby/object:Gem::Requirement
288
310
  requirements:
289
311
  - - "~>"
290
312
  - !ruby/object:Gem::Version
291
- version: '1.4'
313
+ version: 12.0.7
292
314
  type: :runtime
293
315
  prerelease: false
294
316
  version_requirements: !ruby/object:Gem::Requirement
295
317
  requirements:
296
318
  - - "~>"
297
319
  - !ruby/object:Gem::Version
298
- version: '1.4'
320
+ version: 12.0.7
299
321
  - !ruby/object:Gem::Dependency
300
- name: active_link_to
322
+ name: sidekiq
301
323
  requirement: !ruby/object:Gem::Requirement
302
324
  requirements:
303
325
  - - "~>"
304
326
  - !ruby/object:Gem::Version
305
- version: '1.0'
327
+ version: '6.0'
306
328
  type: :runtime
307
329
  prerelease: false
308
330
  version_requirements: !ruby/object:Gem::Requirement
309
331
  requirements:
310
332
  - - "~>"
311
333
  - !ruby/object:Gem::Version
312
- version: '1.0'
334
+ version: '6.0'
313
335
  - !ruby/object:Gem::Dependency
314
- name: premailer-rails
336
+ name: sinatra
315
337
  requirement: !ruby/object:Gem::Requirement
316
338
  requirements:
317
339
  - - "~>"
318
340
  - !ruby/object:Gem::Version
319
- version: '1.8'
341
+ version: '2.0'
320
342
  type: :runtime
321
343
  prerelease: false
322
344
  version_requirements: !ruby/object:Gem::Requirement
323
345
  requirements:
324
346
  - - "~>"
325
347
  - !ruby/object:Gem::Version
326
- version: '1.8'
348
+ version: '2.0'
327
349
  - !ruby/object:Gem::Dependency
328
- name: nokogiri
350
+ name: turbolinks
329
351
  requirement: !ruby/object:Gem::Requirement
330
352
  requirements:
331
353
  - - "~>"
332
354
  - !ruby/object:Gem::Version
333
- version: '1.7'
355
+ version: '5.2'
334
356
  type: :runtime
335
357
  prerelease: false
336
358
  version_requirements: !ruby/object:Gem::Requirement
337
359
  requirements:
338
360
  - - "~>"
339
361
  - !ruby/object:Gem::Version
340
- version: '1.7'
362
+ version: '5.2'
341
363
  - !ruby/object:Gem::Dependency
342
- name: rollbar
364
+ name: uglifier
343
365
  requirement: !ruby/object:Gem::Requirement
344
366
  requirements:
345
367
  - - "~>"
346
368
  - !ruby/object:Gem::Version
347
- version: '2.14'
369
+ version: '4.1'
348
370
  type: :runtime
349
371
  prerelease: false
350
372
  version_requirements: !ruby/object:Gem::Requirement
351
373
  requirements:
352
374
  - - "~>"
353
375
  - !ruby/object:Gem::Version
354
- version: '2.14'
376
+ version: '4.1'
355
377
  - !ruby/object:Gem::Dependency
356
- name: oj
378
+ name: dotenv-rails
357
379
  requirement: !ruby/object:Gem::Requirement
358
380
  requirements:
359
381
  - - "~>"
360
382
  - !ruby/object:Gem::Version
361
- version: '2.14'
362
- type: :runtime
383
+ version: '2.0'
384
+ type: :development
363
385
  prerelease: false
364
386
  version_requirements: !ruby/object:Gem::Requirement
365
387
  requirements:
366
388
  - - "~>"
367
389
  - !ruby/object:Gem::Version
368
- version: '2.14'
390
+ version: '2.0'
369
391
  - !ruby/object:Gem::Dependency
370
- name: newrelic_rpm
392
+ name: minitest
371
393
  requirement: !ruby/object:Gem::Requirement
372
394
  requirements:
373
- - - "~>"
395
+ - - '='
374
396
  - !ruby/object:Gem::Version
375
- version: '3.15'
376
- type: :runtime
397
+ version: 5.11.3
398
+ type: :development
377
399
  prerelease: false
378
400
  version_requirements: !ruby/object:Gem::Requirement
379
401
  requirements:
380
- - - "~>"
402
+ - - '='
381
403
  - !ruby/object:Gem::Version
382
- version: '3.15'
404
+ version: 5.11.3
383
405
  - !ruby/object:Gem::Dependency
384
- name: mailgun_rails
406
+ name: minitest-reporters
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - '='
410
+ - !ruby/object:Gem::Version
411
+ version: '1.3'
412
+ type: :development
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - '='
417
+ - !ruby/object:Gem::Version
418
+ version: '1.3'
419
+ - !ruby/object:Gem::Dependency
420
+ name: minitest-stub-const
421
+ requirement: !ruby/object:Gem::Requirement
422
+ requirements:
423
+ - - ">="
424
+ - !ruby/object:Gem::Version
425
+ version: '0'
426
+ type: :development
427
+ prerelease: false
428
+ version_requirements: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - ">="
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
433
+ - !ruby/object:Gem::Dependency
434
+ name: rubocop
385
435
  requirement: !ruby/object:Gem::Requirement
386
436
  requirements:
387
437
  - - "~>"
388
438
  - !ruby/object:Gem::Version
389
- version: '0.8'
390
- type: :runtime
439
+ version: '0.77'
440
+ type: :development
391
441
  prerelease: false
392
442
  version_requirements: !ruby/object:Gem::Requirement
393
443
  requirements:
394
444
  - - "~>"
395
445
  - !ruby/object:Gem::Version
396
- version: '0.8'
446
+ version: '0.77'
397
447
  - !ruby/object:Gem::Dependency
398
- name: dotenv-rails
448
+ name: rubocop-performance
399
449
  requirement: !ruby/object:Gem::Requirement
400
450
  requirements:
401
451
  - - "~>"
402
452
  - !ruby/object:Gem::Version
403
- version: '2.0'
453
+ version: 1.5.1
404
454
  type: :development
405
455
  prerelease: false
406
456
  version_requirements: !ruby/object:Gem::Requirement
407
457
  requirements:
408
458
  - - "~>"
409
459
  - !ruby/object:Gem::Version
410
- version: '2.0'
460
+ version: 1.5.1
411
461
  - !ruby/object:Gem::Dependency
412
- name: minitest-reporters
462
+ name: rubocop-rails
413
463
  requirement: !ruby/object:Gem::Requirement
414
464
  requirements:
415
465
  - - "~>"
416
466
  - !ruby/object:Gem::Version
417
- version: '1.0'
467
+ version: 2.4.0
418
468
  type: :development
419
469
  prerelease: false
420
470
  version_requirements: !ruby/object:Gem::Requirement
421
471
  requirements:
422
472
  - - "~>"
423
473
  - !ruby/object:Gem::Version
424
- version: '1.0'
474
+ version: 2.4.0
425
475
  - !ruby/object:Gem::Dependency
426
- name: webmock
476
+ name: vcr
427
477
  requirement: !ruby/object:Gem::Requirement
428
478
  requirements:
429
479
  - - "~>"
430
480
  - !ruby/object:Gem::Version
431
- version: '2.3'
481
+ version: '5.0'
432
482
  type: :development
433
483
  prerelease: false
434
484
  version_requirements: !ruby/object:Gem::Requirement
435
485
  requirements:
436
486
  - - "~>"
437
487
  - !ruby/object:Gem::Version
438
- version: '2.3'
488
+ version: '5.0'
439
489
  - !ruby/object:Gem::Dependency
440
- name: vcr
490
+ name: webmock
441
491
  requirement: !ruby/object:Gem::Requirement
442
492
  requirements:
443
493
  - - "~>"
444
494
  - !ruby/object:Gem::Version
445
- version: '3.0'
495
+ version: '3.6'
446
496
  type: :development
447
497
  prerelease: false
448
498
  version_requirements: !ruby/object:Gem::Requirement
449
499
  requirements:
450
500
  - - "~>"
451
501
  - !ruby/object:Gem::Version
452
- version: '3.0'
502
+ version: '3.6'
453
503
  description: Rails engine for Shopify applications.
454
504
  email:
455
505
  - gavin@gavinballard.com
@@ -484,8 +534,10 @@ files:
484
534
  - app/assets/components/shopify/ui-stack/_ui-stack.scss
485
535
  - app/assets/components/shopify/ui-stack/ui-stack-item.es6.jsx
486
536
  - app/assets/components/shopify/ui-stack/ui-stack.es6.jsx
537
+ - app/assets/images/disco_app/.keep
487
538
  - app/assets/images/disco_app/icon.svg
488
539
  - app/assets/images/disco_app/icons.svg
540
+ - app/assets/images/disco_app/logo.png
489
541
  - app/assets/javascripts/disco_app/components.js
490
542
  - app/assets/javascripts/disco_app/components/custom/filterable_shop_list.js.jsx
491
543
  - app/assets/javascripts/disco_app/components/custom/inline-radio-options.es6.jsx
@@ -533,46 +585,68 @@ files:
533
585
  - app/assets/stylesheets/disco_app/ui-kit/_ui-tabs.scss
534
586
  - app/assets/stylesheets/disco_app/ui-kit/_ui-type.scss
535
587
  - app/clients/disco_app/api_client.rb
536
- - app/clients/disco_app/disco_api_error.rb
588
+ - app/clients/disco_app/graphql_client.rb
537
589
  - app/controllers/disco_app/admin/app_settings_controller.rb
538
590
  - app/controllers/disco_app/admin/application_controller.rb
539
591
  - app/controllers/disco_app/admin/concerns/app_settings_controller.rb
540
592
  - app/controllers/disco_app/admin/concerns/authenticated_controller.rb
541
593
  - app/controllers/disco_app/admin/concerns/plans_controller.rb
542
594
  - app/controllers/disco_app/admin/concerns/shops_controller.rb
595
+ - app/controllers/disco_app/admin/concerns/sources_controller.rb
543
596
  - app/controllers/disco_app/admin/concerns/subscriptions_controller.rb
544
597
  - app/controllers/disco_app/admin/plans_controller.rb
545
598
  - app/controllers/disco_app/admin/resources/shops_controller.rb
546
599
  - app/controllers/disco_app/admin/shops_controller.rb
600
+ - app/controllers/disco_app/admin/sources_controller.rb
547
601
  - app/controllers/disco_app/admin/subscriptions_controller.rb
548
602
  - app/controllers/disco_app/charges_controller.rb
549
603
  - app/controllers/disco_app/concerns/app_proxy_controller.rb
550
604
  - app/controllers/disco_app/concerns/authenticated_controller.rb
551
605
  - app/controllers/disco_app/concerns/carrier_request_controller.rb
606
+ - app/controllers/disco_app/concerns/user_authenticated_controller.rb
607
+ - app/controllers/disco_app/concerns/webhooks_controller.rb
608
+ - app/controllers/disco_app/flow/actions_controller.rb
609
+ - app/controllers/disco_app/flow/concerns/actions_controller.rb
610
+ - app/controllers/disco_app/flow/concerns/trigger_usage_controller.rb
611
+ - app/controllers/disco_app/flow/concerns/verifies_flow_payload.rb
612
+ - app/controllers/disco_app/flow/trigger_usage_controller.rb
552
613
  - app/controllers/disco_app/frame_controller.rb
553
614
  - app/controllers/disco_app/install_controller.rb
554
615
  - app/controllers/disco_app/subscriptions_controller.rb
616
+ - app/controllers/disco_app/user_sessions_controller.rb
555
617
  - app/controllers/disco_app/webhooks_controller.rb
556
618
  - app/controllers/sessions_controller.rb
557
619
  - app/helpers/disco_app/application_helper.rb
620
+ - app/jobs/application_job.rb
558
621
  - app/jobs/disco_app/app_installed_job.rb
559
622
  - app/jobs/disco_app/app_uninstalled_job.rb
560
623
  - app/jobs/disco_app/concerns/app_installed_job.rb
561
624
  - app/jobs/disco_app/concerns/app_uninstalled_job.rb
625
+ - app/jobs/disco_app/concerns/customers_data_request_job.rb
626
+ - app/jobs/disco_app/concerns/customers_redact_job.rb
562
627
  - app/jobs/disco_app/concerns/render_asset_group_job.rb
628
+ - app/jobs/disco_app/concerns/shop_redact_job.rb
563
629
  - app/jobs/disco_app/concerns/shop_update_job.rb
564
630
  - app/jobs/disco_app/concerns/subscription_changed_job.rb
565
631
  - app/jobs/disco_app/concerns/synchronise_carrier_service_job.rb
566
632
  - app/jobs/disco_app/concerns/synchronise_resources_job.rb
633
+ - app/jobs/disco_app/concerns/synchronise_users_job.rb
567
634
  - app/jobs/disco_app/concerns/synchronise_webhooks_job.rb
635
+ - app/jobs/disco_app/customers_data_request_job.rb
636
+ - app/jobs/disco_app/customers_redact_job.rb
637
+ - app/jobs/disco_app/flow/process_action_job.rb
638
+ - app/jobs/disco_app/flow/process_trigger_job.rb
568
639
  - app/jobs/disco_app/render_asset_group_job.rb
569
640
  - app/jobs/disco_app/send_subscription_job.rb
570
641
  - app/jobs/disco_app/shop_job.rb
642
+ - app/jobs/disco_app/shop_redact_job.rb
571
643
  - app/jobs/disco_app/shop_update_job.rb
572
644
  - app/jobs/disco_app/subscription_changed_job.rb
573
645
  - app/jobs/disco_app/synchronise_carrier_service_job.rb
574
646
  - app/jobs/disco_app/synchronise_resources_job.rb
647
+ - app/jobs/disco_app/synchronise_users_job.rb
575
648
  - app/jobs/disco_app/synchronise_webhooks_job.rb
649
+ - app/models/application_record.rb
576
650
  - app/models/disco_app/app_settings.rb
577
651
  - app/models/disco_app/application_charge.rb
578
652
  - app/models/disco_app/concerns/app_settings.rb
@@ -582,22 +656,39 @@ files:
582
656
  - app/models/disco_app/concerns/plan_code.rb
583
657
  - app/models/disco_app/concerns/renders_assets.rb
584
658
  - app/models/disco_app/concerns/shop.rb
659
+ - app/models/disco_app/concerns/source.rb
585
660
  - app/models/disco_app/concerns/subscription.rb
586
661
  - app/models/disco_app/concerns/synchronises.rb
587
662
  - app/models/disco_app/concerns/taggable.rb
663
+ - app/models/disco_app/concerns/user.rb
664
+ - app/models/disco_app/flow/action.rb
665
+ - app/models/disco_app/flow/concerns/action.rb
666
+ - app/models/disco_app/flow/concerns/trigger.rb
667
+ - app/models/disco_app/flow/concerns/trigger_usage.rb
668
+ - app/models/disco_app/flow/trigger.rb
669
+ - app/models/disco_app/flow/trigger_usage.rb
588
670
  - app/models/disco_app/plan.rb
589
671
  - app/models/disco_app/plan_code.rb
590
672
  - app/models/disco_app/recurring_application_charge.rb
591
673
  - app/models/disco_app/session_storage.rb
592
674
  - app/models/disco_app/shop.rb
675
+ - app/models/disco_app/source.rb
593
676
  - app/models/disco_app/subscription.rb
677
+ - app/models/disco_app/user.rb
594
678
  - app/resources/disco_app/admin/resources/concerns/shop_resource.rb
595
679
  - app/resources/disco_app/admin/resources/shop_resource.rb
596
680
  - app/services/disco_app/carrier_request_service.rb
597
681
  - app/services/disco_app/charges_service.rb
682
+ - app/services/disco_app/flow/create_action.rb
683
+ - app/services/disco_app/flow/create_trigger.rb
684
+ - app/services/disco_app/flow/process_action.rb
685
+ - app/services/disco_app/flow/process_trigger.rb
686
+ - app/services/disco_app/flow/update_trigger_usage.rb
687
+ - app/services/disco_app/partner_app_service.rb
598
688
  - app/services/disco_app/proxy_service.rb
599
689
  - app/services/disco_app/request_validation_service.rb
600
690
  - app/services/disco_app/subscription_service.rb
691
+ - app/services/disco_app/synchronise_resources_service.rb
601
692
  - app/services/disco_app/webhook_service.rb
602
693
  - app/views/disco_app/admin/app_settings/edit.html.erb
603
694
  - app/views/disco_app/admin/plans/_form.html.erb
@@ -606,6 +697,10 @@ files:
606
697
  - app/views/disco_app/admin/plans/index.html.erb
607
698
  - app/views/disco_app/admin/plans/new.html.erb
608
699
  - app/views/disco_app/admin/shops/index.html.erb
700
+ - app/views/disco_app/admin/sources/_form.html.erb
701
+ - app/views/disco_app/admin/sources/edit.html.erb
702
+ - app/views/disco_app/admin/sources/index.html.erb
703
+ - app/views/disco_app/admin/sources/new.html.erb
609
704
  - app/views/disco_app/admin/subscriptions/edit.html.erb
610
705
  - app/views/disco_app/charges/activate.html.erb
611
706
  - app/views/disco_app/charges/create.html.erb
@@ -618,6 +713,7 @@ files:
618
713
  - app/views/disco_app/shared/_icons.html.erb
619
714
  - app/views/disco_app/shared/_section.html.erb
620
715
  - app/views/disco_app/subscriptions/new.html.erb
716
+ - app/views/disco_app/user_sessions/new.html.erb
621
717
  - app/views/layouts/admin.html.erb
622
718
  - app/views/layouts/admin/_nav_items.erb
623
719
  - app/views/layouts/application.html.erb
@@ -626,6 +722,12 @@ files:
626
722
  - app/views/shopify_app/sessions/new.html.erb
627
723
  - config/routes.rb
628
724
  - db/migrate/20150525000000_create_shops_if_not_existent.rb
725
+ - db/migrate/20170315062548_create_disco_app_sources.rb
726
+ - db/migrate/20170315062629_add_sources_to_shop_subscriptions.rb
727
+ - db/migrate/20170327214540_create_disco_app_users.rb
728
+ - db/migrate/20170606160751_fix_disco_app_users_index.rb
729
+ - db/migrate/20181229100327_create_flow_actions_and_triggers.rb
730
+ - db/migrate/20200405000000_create_flow_trigger_usages.rb
629
731
  - lib/disco_app.rb
630
732
  - lib/disco_app/configuration.rb
631
733
  - lib/disco_app/constants.rb
@@ -634,33 +736,101 @@ files:
634
736
  - lib/disco_app/support/file_fixtures.rb
635
737
  - lib/disco_app/test_help.rb
636
738
  - lib/disco_app/version.rb
637
- - lib/generators/disco_app/USAGE
638
- - lib/generators/disco_app/disco_app_generator.rb
639
- - lib/generators/disco_app/templates/assets/javascripts/application.js
640
- - lib/generators/disco_app/templates/assets/javascripts/components.js
641
- - lib/generators/disco_app/templates/assets/stylesheets/application.scss
642
- - lib/generators/disco_app/templates/config/database.yml.tt
643
- - lib/generators/disco_app/templates/config/newrelic.yml
644
- - lib/generators/disco_app/templates/config/puma.rb
645
- - lib/generators/disco_app/templates/controllers/home_controller.rb
646
- - lib/generators/disco_app/templates/initializers/disco_app.rb
647
- - lib/generators/disco_app/templates/initializers/rollbar.rb
648
- - lib/generators/disco_app/templates/initializers/session_store.rb
649
- - lib/generators/disco_app/templates/initializers/shopify_app.rb
650
- - lib/generators/disco_app/templates/initializers/shopify_session_repository.rb
651
- - lib/generators/disco_app/templates/root/CHECKS
652
- - lib/generators/disco_app/templates/root/Procfile
653
- - lib/generators/disco_app/templates/views/home/index.html.erb
739
+ - lib/generators/disco_app/install/USAGE
740
+ - lib/generators/disco_app/install/install_generator.rb
741
+ - lib/generators/disco_app/install/templates/assets/javascripts/application.js
742
+ - lib/generators/disco_app/install/templates/assets/javascripts/components.js
743
+ - lib/generators/disco_app/install/templates/assets/stylesheets/application.scss
744
+ - lib/generators/disco_app/install/templates/config/appsignal.yml
745
+ - lib/generators/disco_app/install/templates/config/cable.yml.tt
746
+ - lib/generators/disco_app/install/templates/config/database.yml.tt
747
+ - lib/generators/disco_app/install/templates/config/environments/staging.rb
748
+ - lib/generators/disco_app/install/templates/config/puma.rb
749
+ - lib/generators/disco_app/install/templates/controllers/home_controller.rb
750
+ - lib/generators/disco_app/install/templates/initializers/disco_app.rb
751
+ - lib/generators/disco_app/install/templates/initializers/session_store.rb
752
+ - lib/generators/disco_app/install/templates/initializers/shopify_app.rb
753
+ - lib/generators/disco_app/install/templates/initializers/shopify_session_repository.rb
754
+ - lib/generators/disco_app/install/templates/initializers/timber.rb
755
+ - lib/generators/disco_app/install/templates/root/.editorconfig
756
+ - lib/generators/disco_app/install/templates/root/.env
757
+ - lib/generators/disco_app/install/templates/root/.env.local
758
+ - lib/generators/disco_app/install/templates/root/.github/PULL_REQUEST_TEMPLATE.md
759
+ - lib/generators/disco_app/install/templates/root/.gitignore
760
+ - lib/generators/disco_app/install/templates/root/.rspec
761
+ - lib/generators/disco_app/install/templates/root/.rubocop.yml
762
+ - lib/generators/disco_app/install/templates/root/.tool-versions
763
+ - lib/generators/disco_app/install/templates/root/CHECKS
764
+ - lib/generators/disco_app/install/templates/root/Procfile
765
+ - lib/generators/disco_app/install/templates/root/README.md
766
+ - lib/generators/disco_app/install/templates/root/package.json.tt
767
+ - lib/generators/disco_app/install/templates/spec/rails_helper.rb
768
+ - lib/generators/disco_app/install/templates/spec/spec_helper.rb
769
+ - lib/generators/disco_app/install/templates/spec/support/active_job.rb
770
+ - lib/generators/disco_app/install/templates/spec/support/coveralls.rb
771
+ - lib/generators/disco_app/install/templates/spec/support/database_cleaner.rb
772
+ - lib/generators/disco_app/install/templates/spec/support/factory_bot.rb
773
+ - lib/generators/disco_app/install/templates/spec/support/helpers/json_helper.rb
774
+ - lib/generators/disco_app/install/templates/spec/support/shared_examples/a_synchronise_job.rb
775
+ - lib/generators/disco_app/install/templates/spec/support/shoulda.rb
776
+ - lib/generators/disco_app/install/templates/spec/support/vcr.rb
777
+ - lib/generators/disco_app/install/templates/spec/support/webmock.rb
778
+ - lib/generators/disco_app/install/templates/views/home/index.html.erb
779
+ - lib/generators/disco_app/react/USAGE
780
+ - lib/generators/disco_app/react/react_generator.rb
781
+ - lib/generators/disco_app/react/templates/app/controllers/embedded/api/base_controller.rb
782
+ - lib/generators/disco_app/react/templates/app/controllers/embedded/api/home_controller.rb
783
+ - lib/generators/disco_app/react/templates/app/controllers/embedded/api/shops_controller.rb
784
+ - lib/generators/disco_app/react/templates/app/controllers/embedded/api/users_controller.rb
785
+ - lib/generators/disco_app/react/templates/app/controllers/embedded/home_controller.rb
786
+ - lib/generators/disco_app/react/templates/app/models/api_response.rb
787
+ - lib/generators/disco_app/react/templates/app/serializers/disco_app/shop_serializer.rb
788
+ - lib/generators/disco_app/react/templates/app/serializers/disco_app/user_serializer.rb
789
+ - lib/generators/disco_app/react/templates/app/serializers/empty_serializer.rb
790
+ - lib/generators/disco_app/react/templates/app/serializers/error_serializer.rb
791
+ - lib/generators/disco_app/react/templates/app/views/embedded/home/index.html.erb
792
+ - lib/generators/disco_app/react/templates/app/views/layouts/embedded.html.erb
793
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/App.jsx
794
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/HomePage.jsx
795
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/EmbeddedPage.jsx
796
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/ErrorBanner.jsx
797
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/PaginationWrapper.jsx
798
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/Shared/ScrollToTop.jsx
799
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/components/withApi.jsx
800
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/index.jsx
801
+ - lib/generators/disco_app/react/templates/app/webpack/javascripts/embedded/utils.js
802
+ - lib/generators/disco_app/react/templates/app/webpack/packs/embedded.js
803
+ - lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded.scss
804
+ - lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/banners.scss
805
+ - lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/busy.scss
806
+ - lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/index.scss
807
+ - lib/generators/disco_app/react/templates/app/webpack/stylesheets/embedded/shared/pagination.scss
808
+ - lib/generators/disco_app/react/templates/config/initializers/mime_types.rb
809
+ - lib/generators/disco_app/react/templates/config/initializers/omniauth.rb
810
+ - lib/generators/disco_app/react/templates/config/initializers/version.rb.tt
811
+ - lib/generators/disco_app/react/templates/config/webpack/staging.js
812
+ - lib/generators/disco_app/react/templates/config/webpack/test.js
813
+ - lib/generators/disco_app/react/templates/config/webpacker.yml
814
+ - lib/generators/disco_app/react/templates/root/.eslintignore
815
+ - lib/generators/disco_app/react/templates/root/.eslintrc
816
+ - lib/generators/disco_app/react/templates/root/.prettierrc
817
+ - lib/generators/disco_app/react/templates/root/VERSION
818
+ - lib/generators/disco_app/react/templates/root/babel.config.js
819
+ - lib/generators/disco_app/react/templates/root/package.json.tt
820
+ - lib/generators/disco_app/react/templates/root/postcss.config.js
654
821
  - lib/tasks/api.rake
655
822
  - lib/tasks/carrier_service.rake
656
823
  - lib/tasks/database.rake
824
+ - lib/tasks/partner_app.rake
657
825
  - lib/tasks/sessions.rake
658
826
  - lib/tasks/shops.rake
659
827
  - lib/tasks/start.rake
828
+ - lib/tasks/users.rake
660
829
  - lib/tasks/webhooks.rake
661
830
  - test/clients/disco_app/api_client_test.rb
662
831
  - test/controllers/disco_app/admin/shops_controller_test.rb
663
832
  - test/controllers/disco_app/charges_controller_test.rb
833
+ - test/controllers/disco_app/flow/trigger_usage_controller_test.rb
664
834
  - test/controllers/disco_app/install_controller_test.rb
665
835
  - test/controllers/disco_app/subscriptions_controller_test.rb
666
836
  - test/controllers/disco_app/webhooks_controller_test.rb
@@ -668,6 +838,7 @@ files:
668
838
  - test/controllers/proxy_controller_test.rb
669
839
  - test/disco_app_test.rb
670
840
  - test/dummy/Rakefile
841
+ - test/dummy/app/assets/config/manifest.js
671
842
  - test/dummy/app/assets/javascripts/application.js
672
843
  - test/dummy/app/assets/stylesheets/application.scss
673
844
  - test/dummy/app/controllers/application_controller.rb
@@ -676,12 +847,15 @@ files:
676
847
  - test/dummy/app/controllers/home_controller.rb
677
848
  - test/dummy/app/controllers/proxy_controller.rb
678
849
  - test/dummy/app/helpers/application_helper.rb
850
+ - test/dummy/app/javascript/packs/application.js
851
+ - test/dummy/app/jobs/application_job.rb
679
852
  - test/dummy/app/jobs/carts_update_job.rb
680
853
  - test/dummy/app/jobs/disco_app/app_installed_job.rb
681
854
  - test/dummy/app/jobs/disco_app/app_uninstalled_job.rb
682
855
  - test/dummy/app/jobs/products_create_job.rb
683
856
  - test/dummy/app/jobs/products_delete_job.rb
684
857
  - test/dummy/app/jobs/products_update_job.rb
858
+ - test/dummy/app/models/application_record.rb
685
859
  - test/dummy/app/models/cart.rb
686
860
  - test/dummy/app/models/disco_app/shop.rb
687
861
  - test/dummy/app/models/js_configuration.rb
@@ -693,19 +867,22 @@ files:
693
867
  - test/dummy/app/views/assets/widget.scss.erb
694
868
  - test/dummy/app/views/home/index.html.erb
695
869
  - test/dummy/app/views/snippets/widget.liquid.erb
870
+ - test/dummy/babel.config.js
696
871
  - test/dummy/bin/bundle
697
872
  - test/dummy/bin/rails
698
873
  - test/dummy/bin/rake
699
874
  - test/dummy/bin/setup
875
+ - test/dummy/bin/webpack
876
+ - test/dummy/bin/webpack-dev-server
700
877
  - test/dummy/config.ru
701
878
  - test/dummy/config/application.rb
702
879
  - test/dummy/config/boot.rb
703
880
  - test/dummy/config/database.codeship.yml
704
- - test/dummy/config/database.gitlab-ci.yml
705
881
  - test/dummy/config/database.yml
706
882
  - test/dummy/config/environment.rb
707
883
  - test/dummy/config/environments/development.rb
708
884
  - test/dummy/config/environments/production.rb
885
+ - test/dummy/config/environments/staging.rb
709
886
  - test/dummy/config/environments/test.rb
710
887
  - test/dummy/config/initializers/assets.rb
711
888
  - test/dummy/config/initializers/backtrace_silencers.rb
@@ -722,6 +899,11 @@ files:
722
899
  - test/dummy/config/locales/en.yml
723
900
  - test/dummy/config/routes.rb
724
901
  - test/dummy/config/secrets.yml
902
+ - test/dummy/config/webpack/development.js
903
+ - test/dummy/config/webpack/environment.js
904
+ - test/dummy/config/webpack/production.js
905
+ - test/dummy/config/webpack/test.js
906
+ - test/dummy/config/webpacker.yml
725
907
  - test/dummy/db/migrate/20160307182229_create_products.rb
726
908
  - test/dummy/db/migrate/20160530160739_create_asset_models.rb
727
909
  - test/dummy/db/migrate/20161105054746_create_carts.rb
@@ -17867,6 +18049,8 @@ files:
17867
18049
  - test/dummy/node_modules/yocto-queue/license
17868
18050
  - test/dummy/node_modules/yocto-queue/package.json
17869
18051
  - test/dummy/node_modules/yocto-queue/readme.md
18052
+ - test/dummy/package.json
18053
+ - test/dummy/postcss.config.js
17870
18054
  - test/dummy/public/404.html
17871
18055
  - test/dummy/public/422.html
17872
18056
  - test/dummy/public/500.html
@@ -18607,6 +18791,7 @@ files:
18607
18791
  - test/dummy/tmp/cache/webpacker/babel-loader-node-modules/d152dee8c0857bba9947d3a2f5c6b32a.json.gz
18608
18792
  - test/dummy/tmp/cache/webpacker/last-compilation-digest-development
18609
18793
  - test/dummy/tmp/cache/webpacker/last-compilation-digest-test
18794
+ - test/dummy/yarn.lock
18610
18795
  - test/fixtures/api/subscriptions/valid_request.json
18611
18796
  - test/fixtures/api/widget_store/assets/create_script_tag_js_request.json
18612
18797
  - test/fixtures/api/widget_store/assets/create_script_tag_js_response.json
@@ -18628,28 +18813,35 @@ files:
18628
18813
  - test/fixtures/api/widget_store/assets/update_script_tag_response.json
18629
18814
  - test/fixtures/api/widget_store/carrier_services.json
18630
18815
  - test/fixtures/api/widget_store/carrier_services_create.json
18631
- - test/fixtures/api/widget_store/charges/activate_application_charge_request.json
18632
- - test/fixtures/api/widget_store/charges/activate_application_charge_response.json
18633
- - test/fixtures/api/widget_store/charges/activate_recurring_application_charge_request.json
18634
- - test/fixtures/api/widget_store/charges/activate_recurring_application_charge_response.json
18635
18816
  - test/fixtures/api/widget_store/charges/create_application_charge_request.json
18636
18817
  - test/fixtures/api/widget_store/charges/create_application_charge_response.json
18637
18818
  - test/fixtures/api/widget_store/charges/create_recurring_application_charge_request.json
18638
18819
  - test/fixtures/api/widget_store/charges/create_recurring_application_charge_response.json
18639
18820
  - test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_request.json
18640
18821
  - test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_response.json
18641
- - test/fixtures/api/widget_store/charges/get_accepted_application_charge_response.json
18642
- - test/fixtures/api/widget_store/charges/get_accepted_recurring_application_charge_response.json
18822
+ - test/fixtures/api/widget_store/charges/get_active_application_charge_response.json
18823
+ - test/fixtures/api/widget_store/charges/get_active_recurring_application_charge_response.json
18643
18824
  - test/fixtures/api/widget_store/charges/get_declined_application_charge_response.json
18644
18825
  - test/fixtures/api/widget_store/charges/get_declined_recurring_application_charge_response.json
18645
18826
  - test/fixtures/api/widget_store/charges/get_pending_application_charge_response.json
18646
18827
  - test/fixtures/api/widget_store/charges/get_pending_recurring_application_charge_response.json
18828
+ - test/fixtures/api/widget_store/empty_webhooks.json
18829
+ - test/fixtures/api/widget_store/existing_webhooks.json
18830
+ - test/fixtures/api/widget_store/products/get_metafields_empty_response.json
18831
+ - test/fixtures/api/widget_store/products/get_metafields_with_existing_response.json
18647
18832
  - test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_request.json
18648
18833
  - test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_response.json
18649
18834
  - test/fixtures/api/widget_store/products/write_metafields_single_namespace_request.json
18650
18835
  - test/fixtures/api/widget_store/products/write_metafields_single_namespace_response.json
18836
+ - test/fixtures/api/widget_store/products/write_metafields_with_existing_single_namespace_request.json
18837
+ - test/fixtures/api/widget_store/products/write_metafields_with_existing_single_namespace_response.json
18651
18838
  - test/fixtures/api/widget_store/shop.json
18652
- - test/fixtures/api/widget_store/webhooks.json
18839
+ - test/fixtures/api/widget_store/shops/get_metafields_with_existing_response.json
18840
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_first_request.json
18841
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_first_response.json
18842
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_request.json
18843
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_response.json
18844
+ - test/fixtures/api/widget_store/users.json
18653
18845
  - test/fixtures/assets/test.js
18654
18846
  - test/fixtures/assets/test.min.js
18655
18847
  - test/fixtures/carts.yml
@@ -18658,12 +18850,14 @@ files:
18658
18850
  - test/fixtures/disco_app/plans.yml
18659
18851
  - test/fixtures/disco_app/recurring_application_charges.yml
18660
18852
  - test/fixtures/disco_app/shops.yml
18853
+ - test/fixtures/disco_app/sources.yml
18661
18854
  - test/fixtures/disco_app/subscriptions.yml
18662
18855
  - test/fixtures/js_configurations.yml
18663
18856
  - test/fixtures/liquid/model.liquid
18664
18857
  - test/fixtures/products.yml
18665
18858
  - test/fixtures/webhooks/app_uninstalled.json
18666
18859
  - test/fixtures/webhooks/cart_updated.json
18860
+ - test/fixtures/webhooks/flow/trigger_usage.json
18667
18861
  - test/fixtures/webhooks/product_created.json
18668
18862
  - test/fixtures/webhooks/product_deleted.json
18669
18863
  - test/fixtures/webhooks/product_updated.json
@@ -18673,6 +18867,7 @@ files:
18673
18867
  - test/jobs/disco_app/app_uninstalled_job_test.rb
18674
18868
  - test/jobs/disco_app/send_subscription_job_test.rb
18675
18869
  - test/jobs/disco_app/synchronise_carrier_service_job_test.rb
18870
+ - test/jobs/disco_app/synchronise_users_job_test.rb
18676
18871
  - test/jobs/disco_app/synchronise_webhooks_job_test.rb
18677
18872
  - test/models/disco_app/can_be_liquified_test.rb
18678
18873
  - test/models/disco_app/has_metafields_test.rb
@@ -18682,10 +18877,23 @@ files:
18682
18877
  - test/models/disco_app/shop_test.rb
18683
18878
  - test/models/disco_app/subscription_test.rb
18684
18879
  - test/services/disco_app/charges_service_test.rb
18880
+ - test/services/disco_app/flow/create_action_test.rb
18881
+ - test/services/disco_app/flow/create_trigger_test.rb
18882
+ - test/services/disco_app/flow/process_action_test.rb
18883
+ - test/services/disco_app/flow/process_trigger_test.rb
18884
+ - test/services/disco_app/flow/update_trigger_usage_test.rb
18685
18885
  - test/services/disco_app/subscription_service_test.rb
18886
+ - test/services/disco_app/synchronise_resources_service_test.rb
18686
18887
  - test/support/test_file_fixtures.rb
18687
18888
  - test/support/test_shopify_api.rb
18688
18889
  - test/test_helper.rb
18890
+ - test/vcr/flow_trigger_invalid_title.yml
18891
+ - test/vcr/flow_trigger_valid.yml
18892
+ - test/vcr/synchronise_products.yml
18893
+ - test/vcr/synchronise_products_paginated.yml
18894
+ - test/vcr/synchronise_products_since_id.yml
18895
+ - test/vcr/synchronise_products_with_params.yml
18896
+ - test/vcr/webhook_failure.yml
18689
18897
  homepage: https://github.com/discolabs/disco_app/
18690
18898
  licenses:
18691
18899
  - None
@@ -18701,12 +18909,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
18701
18909
  version: '0'
18702
18910
  required_rubygems_version: !ruby/object:Gem::Requirement
18703
18911
  requirements:
18704
- - - ">"
18912
+ - - ">="
18705
18913
  - !ruby/object:Gem::Version
18706
- version: 1.3.1
18914
+ version: '0'
18707
18915
  requirements: []
18708
- rubyforge_project:
18709
- rubygems_version: 2.5.2
18916
+ rubygems_version: 3.0.3
18710
18917
  signing_key:
18711
18918
  specification_version: 4
18712
18919
  summary: Rails engine for Shopify applications.
@@ -18716,13 +18923,16 @@ test_files:
18716
18923
  - test/dummy/app/models/product.rb
18717
18924
  - test/dummy/app/models/js_configuration.rb
18718
18925
  - test/dummy/app/models/widget_configuration.rb
18926
+ - test/dummy/app/models/application_record.rb
18719
18927
  - test/dummy/app/models/cart.rb
18928
+ - test/dummy/app/javascript/packs/application.js
18720
18929
  - test/dummy/app/jobs/disco_app/app_installed_job.rb
18721
18930
  - test/dummy/app/jobs/disco_app/app_uninstalled_job.rb
18722
18931
  - test/dummy/app/jobs/products_delete_job.rb
18723
18932
  - test/dummy/app/jobs/products_update_job.rb
18724
18933
  - test/dummy/app/jobs/products_create_job.rb
18725
18934
  - test/dummy/app/jobs/carts_update_job.rb
18935
+ - test/dummy/app/jobs/application_job.rb
18726
18936
  - test/dummy/app/controllers/application_controller.rb
18727
18937
  - test/dummy/app/controllers/carrier_request_controller.rb
18728
18938
  - test/dummy/app/controllers/disco_app/admin/shops_controller.rb
@@ -18734,25 +18944,33 @@ test_files:
18734
18944
  - test/dummy/app/views/assets/widget.js.erb
18735
18945
  - test/dummy/app/views/assets/test.js.erb
18736
18946
  - test/dummy/app/views/assets/script_tag.js.erb
18947
+ - test/dummy/app/assets/config/manifest.js
18737
18948
  - test/dummy/app/assets/javascripts/application.js
18738
18949
  - test/dummy/app/assets/stylesheets/application.scss
18739
18950
  - test/dummy/app/helpers/application_helper.rb
18740
18951
  - test/dummy/bin/rake
18741
18952
  - test/dummy/bin/setup
18742
18953
  - test/dummy/bin/bundle
18954
+ - test/dummy/bin/webpack
18955
+ - test/dummy/bin/webpack-dev-server
18743
18956
  - test/dummy/bin/rails
18744
18957
  - test/dummy/config/secrets.yml
18745
18958
  - test/dummy/config/routes.rb
18746
18959
  - test/dummy/config/locales/en.yml
18747
18960
  - test/dummy/config/environments/production.rb
18961
+ - test/dummy/config/environments/staging.rb
18748
18962
  - test/dummy/config/environments/development.rb
18749
18963
  - test/dummy/config/environments/test.rb
18750
18964
  - test/dummy/config/environment.rb
18751
18965
  - test/dummy/config/application.rb
18752
18966
  - test/dummy/config/database.yml
18967
+ - test/dummy/config/webpack/development.js
18968
+ - test/dummy/config/webpack/test.js
18969
+ - test/dummy/config/webpack/production.js
18970
+ - test/dummy/config/webpack/environment.js
18753
18971
  - test/dummy/config/database.codeship.yml
18754
18972
  - test/dummy/config/boot.rb
18755
- - test/dummy/config/database.gitlab-ci.yml
18973
+ - test/dummy/config/webpacker.yml
18756
18974
  - test/dummy/config/initializers/shopify_app.rb
18757
18975
  - test/dummy/config/initializers/backtrace_silencers.rb
18758
18976
  - test/dummy/config/initializers/mime_types.rb
@@ -35906,6 +36124,7 @@ test_files:
35906
36124
  - test/dummy/node_modules/setprototypeof/package.json
35907
36125
  - test/dummy/node_modules/setprototypeof/index.d.ts
35908
36126
  - test/dummy/Rakefile
36127
+ - test/dummy/yarn.lock
35909
36128
  - test/dummy/public/favicon.ico
35910
36129
  - test/dummy/public/422.html
35911
36130
  - test/dummy/public/500.html
@@ -35913,12 +36132,15 @@ test_files:
35913
36132
  - test/dummy/public/packs-test/js/application-4907031b66a47994a8ac.js
35914
36133
  - test/dummy/public/packs-test/js/application-4907031b66a47994a8ac.js.map
35915
36134
  - test/dummy/public/packs-test/manifest.json
36135
+ - test/dummy/babel.config.js
36136
+ - test/dummy/package.json
35916
36137
  - test/dummy/db/schema.rb
35917
36138
  - test/dummy/db/migrate/20161105054746_create_carts.rb
35918
36139
  - test/dummy/db/migrate/20160530160739_create_asset_models.rb
35919
36140
  - test/dummy/db/migrate/20160307182229_create_products.rb
35920
36141
  - test/dummy/log/test.log
35921
36142
  - test/dummy/log/development.log
36143
+ - test/dummy/postcss.config.js
35922
36144
  - test/dummy/tmp/cache/webpacker/last-compilation-digest-test
35923
36145
  - test/dummy/tmp/cache/webpacker/last-compilation-digest-development
35924
36146
  - test/dummy/tmp/cache/webpacker/babel-loader-node-modules/483a36f433d67197030aa9d42cf876fe.json
@@ -36661,6 +36883,13 @@ test_files:
36661
36883
  - test/models/disco_app/can_be_liquified_test.rb
36662
36884
  - test/models/disco_app/subscription_test.rb
36663
36885
  - test/disco_app_test.rb
36886
+ - test/vcr/flow_trigger_valid.yml
36887
+ - test/vcr/webhook_failure.yml
36888
+ - test/vcr/flow_trigger_invalid_title.yml
36889
+ - test/vcr/synchronise_products_paginated.yml
36890
+ - test/vcr/synchronise_products_since_id.yml
36891
+ - test/vcr/synchronise_products.yml
36892
+ - test/vcr/synchronise_products_with_params.yml
36664
36893
  - test/support/test_shopify_api.rb
36665
36894
  - test/support/test_file_fixtures.rb
36666
36895
  - test/fixtures/products.yml
@@ -36668,34 +36897,42 @@ test_files:
36668
36897
  - test/fixtures/disco_app/shops.yml
36669
36898
  - test/fixtures/disco_app/plan_codes.yml
36670
36899
  - test/fixtures/disco_app/subscriptions.yml
36900
+ - test/fixtures/disco_app/sources.yml
36671
36901
  - test/fixtures/disco_app/recurring_application_charges.yml
36672
36902
  - test/fixtures/disco_app/plans.yml
36673
36903
  - test/fixtures/widget_configurations.yml
36674
36904
  - test/fixtures/liquid/model.liquid
36675
36905
  - test/fixtures/api/widget_store/carrier_services.json
36676
- - test/fixtures/api/widget_store/webhooks.json
36906
+ - test/fixtures/api/widget_store/products/get_metafields_with_existing_response.json
36677
36907
  - test/fixtures/api/widget_store/products/write_metafields_single_namespace_response.json
36678
36908
  - test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_response.json
36679
36909
  - test/fixtures/api/widget_store/products/write_metafields_single_namespace_request.json
36910
+ - test/fixtures/api/widget_store/products/write_metafields_with_existing_single_namespace_response.json
36911
+ - test/fixtures/api/widget_store/products/get_metafields_empty_response.json
36680
36912
  - test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_request.json
36681
- - test/fixtures/api/widget_store/charges/activate_recurring_application_charge_request.json
36682
- - test/fixtures/api/widget_store/charges/activate_application_charge_request.json
36913
+ - test/fixtures/api/widget_store/products/write_metafields_with_existing_single_namespace_request.json
36683
36914
  - test/fixtures/api/widget_store/charges/get_pending_application_charge_response.json
36684
- - test/fixtures/api/widget_store/charges/activate_recurring_application_charge_response.json
36685
36915
  - test/fixtures/api/widget_store/charges/create_application_charge_request.json
36686
36916
  - test/fixtures/api/widget_store/charges/create_application_charge_response.json
36687
- - test/fixtures/api/widget_store/charges/activate_application_charge_response.json
36688
36917
  - test/fixtures/api/widget_store/charges/create_recurring_application_charge_request.json
36689
36918
  - test/fixtures/api/widget_store/charges/get_declined_application_charge_response.json
36919
+ - test/fixtures/api/widget_store/charges/get_active_application_charge_response.json
36690
36920
  - test/fixtures/api/widget_store/charges/get_declined_recurring_application_charge_response.json
36921
+ - test/fixtures/api/widget_store/charges/get_active_recurring_application_charge_response.json
36691
36922
  - test/fixtures/api/widget_store/charges/get_pending_recurring_application_charge_response.json
36692
- - test/fixtures/api/widget_store/charges/get_accepted_recurring_application_charge_response.json
36693
36923
  - test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_request.json
36694
36924
  - test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_response.json
36695
- - test/fixtures/api/widget_store/charges/get_accepted_application_charge_response.json
36696
36925
  - test/fixtures/api/widget_store/charges/create_recurring_application_charge_response.json
36926
+ - test/fixtures/api/widget_store/users.json
36927
+ - test/fixtures/api/widget_store/shops/get_metafields_with_existing_response.json
36928
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_first_response.json
36929
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_response.json
36930
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_second_request.json
36931
+ - test/fixtures/api/widget_store/shops/write_metafields_with_existing_first_request.json
36697
36932
  - test/fixtures/api/widget_store/shop.json
36698
36933
  - test/fixtures/api/widget_store/carrier_services_create.json
36934
+ - test/fixtures/api/widget_store/existing_webhooks.json
36935
+ - test/fixtures/api/widget_store/empty_webhooks.json
36699
36936
  - test/fixtures/api/widget_store/assets/create_widget_liquid_request.json
36700
36937
  - test/fixtures/api/widget_store/assets/create_test_js_response.json
36701
36938
  - test/fixtures/api/widget_store/assets/create_widget_js_request.json
@@ -36720,11 +36957,13 @@ test_files:
36720
36957
  - test/fixtures/webhooks/product_updated.json
36721
36958
  - test/fixtures/webhooks/product_created.json
36722
36959
  - test/fixtures/webhooks/app_uninstalled.json
36960
+ - test/fixtures/webhooks/flow/trigger_usage.json
36723
36961
  - test/fixtures/assets/test.js
36724
36962
  - test/fixtures/assets/test.min.js
36725
36963
  - test/fixtures/carts.yml
36726
36964
  - test/fixtures/js_configurations.yml
36727
36965
  - test/test_helper.rb
36966
+ - test/jobs/disco_app/synchronise_users_job_test.rb
36728
36967
  - test/jobs/disco_app/synchronise_webhooks_job_test.rb
36729
36968
  - test/jobs/disco_app/app_uninstalled_job_test.rb
36730
36969
  - test/jobs/disco_app/synchronise_carrier_service_job_test.rb
@@ -36736,6 +36975,13 @@ test_files:
36736
36975
  - test/controllers/disco_app/admin/shops_controller_test.rb
36737
36976
  - test/controllers/disco_app/subscriptions_controller_test.rb
36738
36977
  - test/controllers/disco_app/webhooks_controller_test.rb
36978
+ - test/controllers/disco_app/flow/trigger_usage_controller_test.rb
36739
36979
  - test/controllers/home_controller_test.rb
36740
36980
  - test/services/disco_app/subscription_service_test.rb
36741
36981
  - test/services/disco_app/charges_service_test.rb
36982
+ - test/services/disco_app/synchronise_resources_service_test.rb
36983
+ - test/services/disco_app/flow/update_trigger_usage_test.rb
36984
+ - test/services/disco_app/flow/process_trigger_test.rb
36985
+ - test/services/disco_app/flow/process_action_test.rb
36986
+ - test/services/disco_app/flow/create_trigger_test.rb
36987
+ - test/services/disco_app/flow/create_action_test.rb