spree_vpago 0.1.0.pre.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +3 -0
  3. data/.github/workflows/test_and_publish_gem.yml +96 -0
  4. data/.gitignore +24 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +56 -0
  7. data/.ruby-version +1 -0
  8. data/.tool-versions +1 -0
  9. data/.travis.yml +45 -0
  10. data/Appraisals +20 -0
  11. data/Gemfile +27 -0
  12. data/Gemfile.lock +656 -0
  13. data/LICENSE +26 -0
  14. data/README.md +151 -0
  15. data/Rakefile +21 -0
  16. data/app/.gitkeep +0 -0
  17. data/app/assets/config/spree_vpago_manifest.js +3 -0
  18. data/app/assets/images/backend-process.svg +3 -0
  19. data/app/assets/images/vpago/payway/abapay.png +0 -0
  20. data/app/assets/images/vpago/payway/cards.png +0 -0
  21. data/app/assets/javascripts/vpago/vpago_payments/request_process_payment.js +44 -0
  22. data/app/assets/javascripts/vpago/vpago_payments/user_informers/firebase.js +15802 -0
  23. data/app/controllers/.gitkeep +0 -0
  24. data/app/controllers/spree/acleda_redirects_controller.rb +22 -0
  25. data/app/controllers/spree/admin/payment_methods_controller_decorator.rb +65 -0
  26. data/app/controllers/spree/admin/payment_payway_base_controller.rb +25 -0
  27. data/app/controllers/spree/admin/payment_payway_checkers_controller.rb +34 -0
  28. data/app/controllers/spree/admin/payment_payway_markers_controller.rb +44 -0
  29. data/app/controllers/spree/admin/payment_payway_queriers_controller.rb +39 -0
  30. data/app/controllers/spree/admin/payment_wing_sdk_base_controller.rb +21 -0
  31. data/app/controllers/spree/admin/payment_wing_sdk_checkers_controller.rb +26 -0
  32. data/app/controllers/spree/admin/payment_wing_sdk_markers_controller.rb +36 -0
  33. data/app/controllers/spree/admin/payment_wing_sdk_queriers_controller.rb +20 -0
  34. data/app/controllers/spree/admin/payments_controller_decorator.rb +19 -0
  35. data/app/controllers/spree/admin/payout_profile_products_controller.rb +21 -0
  36. data/app/controllers/spree/admin/payout_profile_shipping_methods_controller.rb +21 -0
  37. data/app/controllers/spree/admin/payout_profiles_controller.rb +91 -0
  38. data/app/controllers/spree/admin/payouts_controller.rb +16 -0
  39. data/app/controllers/spree/api/v2/storefront/checkout_controller_decorator.rb +84 -0
  40. data/app/controllers/spree/payway_card_popups_controller.rb +20 -0
  41. data/app/controllers/spree/payway_results_controller.rb +11 -0
  42. data/app/controllers/spree/payway_v2_card_popups_controller.rb +20 -0
  43. data/app/controllers/spree/vpago_payments_controller.rb +71 -0
  44. data/app/controllers/spree/webhook/acleda_mobiles_controller.rb +88 -0
  45. data/app/controllers/spree/webhook/acledas_controller.rb +80 -0
  46. data/app/controllers/spree/webhook/base_controller.rb +6 -0
  47. data/app/controllers/spree/webhook/payways_controller.rb +77 -0
  48. data/app/controllers/spree/webhook/wings_controller.rb +63 -0
  49. data/app/controllers/spree/wing/base_controller.rb +29 -0
  50. data/app/controllers/spree/wing/transactions_controller.rb +27 -0
  51. data/app/controllers/spree/wing_redirects_controller.rb +20 -0
  52. data/app/helpers/vpago/admin/base_helper_decorator.rb +40 -0
  53. data/app/helpers/vpago/vpago_payments_helper.rb +12 -0
  54. data/app/javascripts/vpago/vpago_payments/user_informers/firebase.js +62 -0
  55. data/app/jobs/application_unique_job.rb +1 -0
  56. data/app/jobs/vpago/payment_processor_job.rb +8 -0
  57. data/app/models/.gitkeep +0 -0
  58. data/app/models/concerns/vpago/payoutable.rb +11 -0
  59. data/app/models/spree/gateway/acleda.rb +63 -0
  60. data/app/models/spree/gateway/acleda_mobile.rb +46 -0
  61. data/app/models/spree/gateway/payway.rb +66 -0
  62. data/app/models/spree/gateway/payway_v2.rb +174 -0
  63. data/app/models/spree/gateway/wing_sdk.rb +51 -0
  64. data/app/models/spree/payout.rb +23 -0
  65. data/app/models/spree/payout_profile.rb +107 -0
  66. data/app/models/spree/payout_profile_product.rb +14 -0
  67. data/app/models/spree/payout_profile_shipping_method.rb +14 -0
  68. data/app/models/spree/payout_profiles/payway_v2.rb +40 -0
  69. data/app/models/spree/vpago_payment_source.rb +21 -0
  70. data/app/models/vpago/adjustment_decorator.rb +28 -0
  71. data/app/models/vpago/line_item_decorator.rb +75 -0
  72. data/app/models/vpago/order_decorator.rb +78 -0
  73. data/app/models/vpago/payment_decorator.rb +44 -0
  74. data/app/models/vpago/payment_method_decorator.rb +91 -0
  75. data/app/models/vpago/payouts_generator.rb +125 -0
  76. data/app/models/vpago/product_decorator.rb +30 -0
  77. data/app/models/vpago/promotion_action_decorator.rb +9 -0
  78. data/app/models/vpago/shipment_decorator.rb +23 -0
  79. data/app/models/vpago/shipping_method_decorator.rb +33 -0
  80. data/app/models/vpago/shipping_rate_decorator.rb +25 -0
  81. data/app/models/vpago/store_decorator.rb +17 -0
  82. data/app/models/vpago/tax_category_decorator.rb +9 -0
  83. data/app/models/vpago/variant_decorator.rb +22 -0
  84. data/app/models/vpago/vendor_decorator.rb +10 -0
  85. data/app/overrides/spree/admin/adjustments/_adjustment/handle_by_table_body.html.erb.deface +11 -0
  86. data/app/overrides/spree/admin/adjustments/_adjustments_table/handle_by_table_header.html.erb.deface +3 -0
  87. data/app/overrides/spree/admin/adjustments/_form/handle_by_field.html.erb.deface +10 -0
  88. data/app/overrides/spree/admin/orders/_shipment/edit_method.html.erb.deface +26 -0
  89. data/app/overrides/spree/admin/orders/_shipment/show_method.html.erb.deface +27 -0
  90. data/app/overrides/spree/admin/payment_methods/_form/enable_pre_auth_field.html.erb.deface +17 -0
  91. data/app/overrides/spree/admin/payment_methods/_form/vendor_field.html.erb.deface +6 -0
  92. data/app/overrides/spree/admin/payment_methods/index/list.html.erb.deface +45 -0
  93. data/app/overrides/spree/admin/payment_methods/index/payment_methods_tabs.html.erb.deface +9 -0
  94. data/app/overrides/spree/admin/payment_methods/index/vendor_body.html.erb.deface +5 -0
  95. data/app/overrides/spree/admin/payment_methods/index/vendor_header.html.erb.deface +5 -0
  96. data/app/overrides/spree/admin/payments/_list/actions.html.erb.deface +13 -0
  97. data/app/overrides/spree/admin/promotions/_promotion_action/run_by_field.html.erb.deface +13 -0
  98. data/app/overrides/spree/admin/shared/_order_tabs/payouts.html.erb.deface +8 -0
  99. data/app/overrides/spree/admin/shared/_product_tabs/payout_profile_products.html.erb.deface +8 -0
  100. data/app/overrides/spree/admin/shared/sub_menu/_integrations/payout_profiles.html.erb.deface +3 -0
  101. data/app/overrides/spree/admin/shipping_methods/_form/handle_by.html.erb.deface +12 -0
  102. data/app/overrides/spree/admin/shipping_methods/edit/shipping_method_tabs.html.erb.deface +3 -0
  103. data/app/overrides/spree/admin/tax_categories/_form/collect_by_field.html.erb.deface +10 -0
  104. data/app/overrides/spree/admin/tax_categories/index/collect_by_table_body.html.erb.deface +4 -0
  105. data/app/overrides/spree/admin/tax_categories/index/collect_by_table_header.html.erb.deface +4 -0
  106. data/app/serializers/spree/api/v2/platform/vpago_payment_source_serializer.rb +11 -0
  107. data/app/serializers/spree/v2/storefront/payment_method_serializer_decorator.rb +23 -0
  108. data/app/serializers/spree/v2/storefront/payment_redirect_serializer.rb +13 -0
  109. data/app/serializers/spree/v2/storefront/payment_serializer_decorator.rb +13 -0
  110. data/app/serializers/spree/v2/storefront/vpago_payment_source_serializer.rb +9 -0
  111. data/app/services/.gitkeep +0 -0
  112. data/app/services/vpago/payment_finder.rb +27 -0
  113. data/app/services/vpago/payment_processor.rb +72 -0
  114. data/app/services/vpago/payment_redirect_handler.rb +194 -0
  115. data/app/services/vpago/payment_url_constructor.rb +32 -0
  116. data/app/services/vpago/payments/find_or_create.rb +51 -0
  117. data/app/services/vpago/payout_profiles/payway/base_payout_profile_request.rb +38 -0
  118. data/app/services/vpago/payout_profiles/payway/open_ssl_encrypter.rb +31 -0
  119. data/app/services/vpago/payout_profiles/payway/payout_profile_request_creator.rb +50 -0
  120. data/app/services/vpago/payout_profiles/payway/payout_profile_request_params_builder.rb +58 -0
  121. data/app/services/vpago/payout_profiles/payway/payout_profile_request_updater.rb +28 -0
  122. data/app/services/vpago/payway_return_options_builder.rb +39 -0
  123. data/app/services/vpago/user_informers/firebase.rb +52 -0
  124. data/app/views/.gitkeep +0 -0
  125. data/app/views/layouts/acleda.html.erb +18 -0
  126. data/app/views/layouts/payway.html.erb +24 -0
  127. data/app/views/layouts/payway_v2.html.erb +18 -0
  128. data/app/views/layouts/vpago_payments.html.erb +18 -0
  129. data/app/views/layouts/wing.html.erb +18 -0
  130. data/app/views/spree/_payment_icon.html.erb +25 -0
  131. data/app/views/spree/acleda_redirects/show.html.erb +3 -0
  132. data/app/views/spree/admin/payments/source_forms/_payment_payway.html.erb +4 -0
  133. data/app/views/spree/admin/payments/source_forms/_payway_v2.html.erb +7 -0
  134. data/app/views/spree/admin/payments/source_views/_acleda.html.erb +1 -0
  135. data/app/views/spree/admin/payments/source_views/_acleda_mobile.html.erb +1 -0
  136. data/app/views/spree/admin/payments/source_views/_payment_payway.html.erb +98 -0
  137. data/app/views/spree/admin/payments/source_views/_payway_v2.html.erb +5 -0
  138. data/app/views/spree/admin/payments/source_views/_vpago_payment_tmpl.html.erb +113 -0
  139. data/app/views/spree/admin/payments/source_views/_wingsdk.html.erb +5 -0
  140. data/app/views/spree/admin/payout_profile_products/_form.html.erb +28 -0
  141. data/app/views/spree/admin/payout_profile_products/edit.html.erb +18 -0
  142. data/app/views/spree/admin/payout_profile_products/index.html.erb +58 -0
  143. data/app/views/spree/admin/payout_profile_products/new.html.erb +22 -0
  144. data/app/views/spree/admin/payout_profile_shipping_methods/_form.html.erb +28 -0
  145. data/app/views/spree/admin/payout_profile_shipping_methods/edit.html.erb +22 -0
  146. data/app/views/spree/admin/payout_profile_shipping_methods/index.html.erb +6 -0
  147. data/app/views/spree/admin/payout_profile_shipping_methods/new.html.erb +27 -0
  148. data/app/views/spree/admin/payout_profiles/_filter.html.erb +19 -0
  149. data/app/views/spree/admin/payout_profiles/_form.html.erb +72 -0
  150. data/app/views/spree/admin/payout_profiles/edit.html.erb +33 -0
  151. data/app/views/spree/admin/payout_profiles/index.html.erb +63 -0
  152. data/app/views/spree/admin/payout_profiles/new.html.erb +13 -0
  153. data/app/views/spree/admin/payouts/_line_item_info_with_popover.html.erb +43 -0
  154. data/app/views/spree/admin/payouts/index.html.erb +46 -0
  155. data/app/views/spree/admin/shared/_payment_methods_tabs.html.erb +15 -0
  156. data/app/views/spree/admin/shared/_shipping_method_tabs.html.erb +19 -0
  157. data/app/views/spree/admin/shared/payout_profile/_info_card.html.erb +24 -0
  158. data/app/views/spree/admin/shared/payout_profile/_status.html.erb +11 -0
  159. data/app/views/spree/checkout/payment/_acleda.html.erb +1 -0
  160. data/app/views/spree/checkout/payment/_acleda_checkout_form.html.erb +14 -0
  161. data/app/views/spree/checkout/payment/_acleda_mobile.html.erb +0 -0
  162. data/app/views/spree/checkout/payment/_payment_payway.html.erb +21 -0
  163. data/app/views/spree/checkout/payment/_payway_loader.html.erb +2 -0
  164. data/app/views/spree/checkout/payment/_payway_root.html.erb +9 -0
  165. data/app/views/spree/checkout/payment/_payway_script.html.erb +77 -0
  166. data/app/views/spree/checkout/payment/_payway_v2.html.erb +1 -0
  167. data/app/views/spree/checkout/payment/_payway_v2_loader.html.erb +2 -0
  168. data/app/views/spree/checkout/payment/_payway_v2_root.html.erb +9 -0
  169. data/app/views/spree/checkout/payment/_payway_v2_script.html.erb +79 -0
  170. data/app/views/spree/checkout/payment/_wing_checkout_form.html.erb +18 -0
  171. data/app/views/spree/checkout/payment/_wingsdk.html.erb +1 -0
  172. data/app/views/spree/checkout/payment/acleda_form.html.erb +3 -0
  173. data/app/views/spree/checkout/payment/payway_form.html.erb +10 -0
  174. data/app/views/spree/checkout/payment/payway_v2_form.html.erb +10 -0
  175. data/app/views/spree/checkout/payment/wingsdk_form.html.erb +3 -0
  176. data/app/views/spree/payway_card_popups/_form.html.erb +10 -0
  177. data/app/views/spree/payway_card_popups/show.html.erb +5 -0
  178. data/app/views/spree/payway_results/failed.html.erb +1 -0
  179. data/app/views/spree/payway_results/success.html.erb +1 -0
  180. data/app/views/spree/payway_v2_card_popups/_form.html.erb +15 -0
  181. data/app/views/spree/payway_v2_card_popups/show.html.erb +3 -0
  182. data/app/views/spree/vpago_payments/checkout.html.erb +3 -0
  183. data/app/views/spree/vpago_payments/forms/spree/gateway/_payway_v2.html.erb +13 -0
  184. data/app/views/spree/vpago_payments/processing.html.erb +49 -0
  185. data/app/views/spree/vpago_payments/success.html.erb +3 -0
  186. data/app/views/spree/wing_redirects/show.html.erb +3 -0
  187. data/bin/rails +8 -0
  188. data/build.js +9 -0
  189. data/config/initializers/assets.rb +1 -0
  190. data/config/initializers/spree_permitted_attributes.rb +5 -0
  191. data/config/locales/en.yml +28 -0
  192. data/config/locales/km.yml +24 -0
  193. data/config/routes.rb +92 -0
  194. data/db/migrate/20210128040625_create_spree_vpago_payment_sources.rb +14 -0
  195. data/db/migrate/20210430052432_add_fields_to_payment_sources.rb +7 -0
  196. data/db/migrate/20210824044737_add_preference_to_spree_vpago_payment_source.rb +5 -0
  197. data/db/migrate/20240506095140_create_spree_payout_profiles.rb +22 -0
  198. data/db/migrate/20240506095148_create_spree_payout_profile_products.rb +10 -0
  199. data/db/migrate/20240523070757_add_optional_spere_payout_profile_products.rb +5 -0
  200. data/db/migrate/20240715091228_create_spree_payouts.rb +25 -0
  201. data/db/migrate/20240718195510_create_spree_payout_profile_shipping_methods.rb +15 -0
  202. data/db/migrate/20240718201453_add_handle_by_to_spree_adjustments.rb +5 -0
  203. data/db/migrate/20240718201509_add_run_by_to_spree_promotion_actions.rb +5 -0
  204. data/db/migrate/20240718201523_add_collect_by_to_spree_tax_categories.rb +5 -0
  205. data/db/migrate/20240718201538_add_handle_by_to_spree_shipping_method.rb +5 -0
  206. data/db/migrate/20240718201554_add_handle_by_to_spree_shipping_rates.rb +5 -0
  207. data/db/migrate/20240808102853_add_vendor_reference_to_spree_payment_methods.rb +7 -0
  208. data/db/migrate/20240904030132_add_gateway_status_to_spree_payments.rb +5 -0
  209. data/db/migrate/20241029071959_add_pre_auth_response_to_spree_payment.rb +5 -0
  210. data/db/migrate/20241202104014_add_enable_pre_auth_to_spree_payment_method.rb +5 -0
  211. data/db/migrate/20250121044614_add_transaction_response_to_spree_payments.rb +5 -0
  212. data/docs/acleda.md +65 -0
  213. data/gemfiles/spree_3_7.gemfile +9 -0
  214. data/gemfiles/spree_4_0.gemfile +8 -0
  215. data/gemfiles/spree_4_1.gemfile +9 -0
  216. data/gemfiles/spree_master.gemfile +8 -0
  217. data/lib/generators/spree_vpago/install/install_generator.rb +26 -0
  218. data/lib/generators/spree_vpago/install/templates/app/assets/images/vpago/payway/acleda_merchant_logo_300x300.png +0 -0
  219. data/lib/spree_vpago/engine.rb +36 -0
  220. data/lib/spree_vpago/factories.rb +6 -0
  221. data/lib/spree_vpago/version.rb +9 -0
  222. data/lib/spree_vpago.rb +5 -0
  223. data/lib/vpago/acleda/base.rb +111 -0
  224. data/lib/vpago/acleda/checkout.rb +105 -0
  225. data/lib/vpago/acleda/deeplink_checkout.rb +74 -0
  226. data/lib/vpago/acleda/payment_request_updater.rb +38 -0
  227. data/lib/vpago/acleda/transaction_status.rb +71 -0
  228. data/lib/vpago/acleda_mobile/base.rb +28 -0
  229. data/lib/vpago/acleda_mobile/callback_validator.php +35 -0
  230. data/lib/vpago/acleda_mobile/callback_validator.rb +38 -0
  231. data/lib/vpago/acleda_mobile/checkout.rb +78 -0
  232. data/lib/vpago/acleda_mobile/payment_request_updater.rb +34 -0
  233. data/lib/vpago/acleda_mobile/payment_retriever.rb +24 -0
  234. data/lib/vpago/acleda_mobile/transaction_status.rb +35 -0
  235. data/lib/vpago/payment_amount_calculator.rb +23 -0
  236. data/lib/vpago/payment_request_updater.rb +19 -0
  237. data/lib/vpago/payment_status_marker.rb +109 -0
  238. data/lib/vpago/payway/base.rb +112 -0
  239. data/lib/vpago/payway/checkout.rb +24 -0
  240. data/lib/vpago/payway/payment_request_updater.rb +31 -0
  241. data/lib/vpago/payway/payment_status_marker.rb +84 -0
  242. data/lib/vpago/payway/transaction_status.rb +74 -0
  243. data/lib/vpago/payway.rb +13 -0
  244. data/lib/vpago/payway_v2/base.rb +153 -0
  245. data/lib/vpago/payway_v2/checkout.rb +35 -0
  246. data/lib/vpago/payway_v2/payment_request_updater.rb +65 -0
  247. data/lib/vpago/payway_v2/payouts_params_constructor.rb +47 -0
  248. data/lib/vpago/payway_v2/pre_auth_canceler.rb +43 -0
  249. data/lib/vpago/payway_v2/pre_auth_completer.rb +76 -0
  250. data/lib/vpago/payway_v2/transaction_status.rb +85 -0
  251. data/lib/vpago/wing_sdk/base.rb +58 -0
  252. data/lib/vpago/wing_sdk/checkout.rb +20 -0
  253. data/lib/vpago/wing_sdk/payment_request_updater.rb +46 -0
  254. data/lib/vpago/wing_sdk/payment_retriever.rb +34 -0
  255. data/lib/vpago/wing_sdk/transaction_status_checker.rb +64 -0
  256. data/lib/vpago/wing_sdk/transaction_status_response.rb +33 -0
  257. data/node_modules/.yarn-integrity +147 -0
  258. data/package-lock.json +1491 -0
  259. data/package.json +10 -0
  260. data/spree_vpago.gemspec +33 -0
  261. data/yarn.lock +921 -0
  262. metadata +403 -0
data/Gemfile.lock ADDED
@@ -0,0 +1,656 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spree_vpago (0.1.0.pre.beta)
5
+ faraday
6
+ google-cloud-firestore
7
+ spree_api (>= 4.5)
8
+ spree_backend (>= 4.5)
9
+ spree_core (>= 4.5)
10
+ spree_extension
11
+ spree_multi_vendor (>= 2.4.1)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ actioncable (7.0.4.3)
17
+ actionpack (= 7.0.4.3)
18
+ activesupport (= 7.0.4.3)
19
+ nio4r (~> 2.0)
20
+ websocket-driver (>= 0.6.1)
21
+ actionmailbox (7.0.4.3)
22
+ actionpack (= 7.0.4.3)
23
+ activejob (= 7.0.4.3)
24
+ activerecord (= 7.0.4.3)
25
+ activestorage (= 7.0.4.3)
26
+ activesupport (= 7.0.4.3)
27
+ mail (>= 2.7.1)
28
+ net-imap
29
+ net-pop
30
+ net-smtp
31
+ actionmailer (7.0.4.3)
32
+ actionpack (= 7.0.4.3)
33
+ actionview (= 7.0.4.3)
34
+ activejob (= 7.0.4.3)
35
+ activesupport (= 7.0.4.3)
36
+ mail (~> 2.5, >= 2.5.4)
37
+ net-imap
38
+ net-pop
39
+ net-smtp
40
+ rails-dom-testing (~> 2.0)
41
+ actionpack (7.0.4.3)
42
+ actionview (= 7.0.4.3)
43
+ activesupport (= 7.0.4.3)
44
+ rack (~> 2.0, >= 2.2.0)
45
+ rack-test (>= 0.6.3)
46
+ rails-dom-testing (~> 2.0)
47
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
48
+ actiontext (7.0.4.3)
49
+ actionpack (= 7.0.4.3)
50
+ activerecord (= 7.0.4.3)
51
+ activestorage (= 7.0.4.3)
52
+ activesupport (= 7.0.4.3)
53
+ globalid (>= 0.6.0)
54
+ nokogiri (>= 1.8.5)
55
+ actionview (7.0.4.3)
56
+ activesupport (= 7.0.4.3)
57
+ builder (~> 3.1)
58
+ erubi (~> 1.4)
59
+ rails-dom-testing (~> 2.0)
60
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
61
+ active_storage_validations (0.9.5)
62
+ rails (>= 5.2.0)
63
+ activejob (7.0.4.3)
64
+ activesupport (= 7.0.4.3)
65
+ globalid (>= 0.3.6)
66
+ activemerchant (1.129.0)
67
+ activesupport (>= 4.2)
68
+ builder (>= 2.1.2, < 4.0.0)
69
+ i18n (>= 0.6.9)
70
+ nokogiri (~> 1.4)
71
+ rexml (~> 3.2.5)
72
+ activemodel (7.0.4.3)
73
+ activesupport (= 7.0.4.3)
74
+ activerecord (7.0.4.3)
75
+ activemodel (= 7.0.4.3)
76
+ activesupport (= 7.0.4.3)
77
+ activerecord-typedstore (1.5.1)
78
+ activerecord (>= 6.1)
79
+ activestorage (7.0.4.3)
80
+ actionpack (= 7.0.4.3)
81
+ activejob (= 7.0.4.3)
82
+ activerecord (= 7.0.4.3)
83
+ activesupport (= 7.0.4.3)
84
+ marcel (~> 1.0)
85
+ mini_mime (>= 1.1.0)
86
+ activesupport (7.0.4.3)
87
+ concurrent-ruby (~> 1.0, >= 1.0.2)
88
+ i18n (>= 1.6, < 2)
89
+ minitest (>= 5.1)
90
+ tzinfo (~> 2.0)
91
+ acts_as_list (1.1.0)
92
+ activerecord (>= 4.2)
93
+ addressable (2.8.4)
94
+ public_suffix (>= 2.0.2, < 6.0)
95
+ appraisal (2.4.1)
96
+ bundler
97
+ rake
98
+ thor (>= 0.14.0)
99
+ ast (2.4.2)
100
+ async (1.31.0)
101
+ console (~> 1.10)
102
+ nio4r (~> 2.3)
103
+ timers (~> 4.1)
104
+ async-http (0.60.1)
105
+ async (>= 1.25)
106
+ async-io (>= 1.28)
107
+ async-pool (>= 0.2)
108
+ protocol-http (~> 0.24.0)
109
+ protocol-http1 (~> 0.15.0)
110
+ protocol-http2 (~> 0.15.0)
111
+ traces (>= 0.8.0)
112
+ async-http-faraday (0.12.0)
113
+ async-http (~> 0.42)
114
+ faraday
115
+ async-io (1.34.3)
116
+ async
117
+ async-pool (0.4.0)
118
+ async (>= 1.25)
119
+ auto_strip_attributes (2.6.0)
120
+ activerecord (>= 4.0)
121
+ autoprefixer-rails (10.4.19.0)
122
+ execjs (~> 2)
123
+ awesome_nested_set (3.5.0)
124
+ activerecord (>= 4.0.0, < 7.1)
125
+ awesome_print (1.9.2)
126
+ babel-source (5.8.35)
127
+ babel-transpiler (0.7.0)
128
+ babel-source (>= 4.0, < 6)
129
+ execjs (~> 2.0)
130
+ bcrypt (3.1.20)
131
+ bigdecimal (3.1.8)
132
+ bootstrap (4.6.2.1)
133
+ autoprefixer-rails (>= 9.1.0)
134
+ popper_js (>= 1.16.1, < 2)
135
+ brakeman (5.4.1)
136
+ builder (3.2.4)
137
+ byebug (11.1.3)
138
+ cancancan (3.5.0)
139
+ capybara (3.39.1)
140
+ addressable
141
+ matrix
142
+ mini_mime (>= 0.1.3)
143
+ nokogiri (~> 1.8)
144
+ rack (>= 1.6.0)
145
+ rack-test (>= 0.6.3)
146
+ regexp_parser (>= 1.5, < 3.0)
147
+ xpath (~> 3.2)
148
+ capybara-screenshot (1.0.26)
149
+ capybara (>= 1.0, < 4)
150
+ launchy
151
+ capybara-select-2 (0.5.1)
152
+ carmen (1.1.3)
153
+ activesupport (>= 3.0.0)
154
+ coderay (1.1.3)
155
+ concurrent-ruby (1.2.2)
156
+ connection_pool (2.4.0)
157
+ console (1.16.2)
158
+ fiber-local
159
+ crack (1.0.0)
160
+ bigdecimal
161
+ rexml
162
+ crass (1.0.6)
163
+ database_cleaner (2.0.2)
164
+ database_cleaner-active_record (>= 2, < 3)
165
+ database_cleaner-active_record (2.1.0)
166
+ activerecord (>= 5.a)
167
+ database_cleaner-core (~> 2.0.0)
168
+ database_cleaner-core (2.0.1)
169
+ date (3.3.3)
170
+ deface (1.9.0)
171
+ actionview (>= 5.2)
172
+ nokogiri (>= 1.6)
173
+ polyglot
174
+ railties (>= 5.2)
175
+ rainbow (>= 2.1.0)
176
+ diff-lcs (1.5.0)
177
+ docile (1.4.0)
178
+ doorkeeper (5.8.1)
179
+ railties (>= 5)
180
+ erubi (1.12.0)
181
+ execjs (2.10.0)
182
+ factory_bot (4.11.1)
183
+ activesupport (>= 3.0.0)
184
+ faraday (2.7.4)
185
+ faraday-net_http (>= 2.0, < 3.1)
186
+ ruby2_keywords (>= 0.0.4)
187
+ faraday-http-cache (2.5.0)
188
+ faraday (>= 0.8)
189
+ faraday-net_http (3.0.2)
190
+ faraday-retry (2.2.1)
191
+ faraday (~> 2.0)
192
+ ffaker (2.21.0)
193
+ ffi (1.15.5)
194
+ fiber-local (1.0.0)
195
+ flag-icons-rails (3.4.6.1)
196
+ sass-rails
197
+ flatpickr (4.6.13.1)
198
+ friendly_id (5.5.0)
199
+ activerecord (>= 4.0.0)
200
+ gapic-common (0.25.0)
201
+ faraday (>= 1.9, < 3.a)
202
+ faraday-retry (>= 1.0, < 3.a)
203
+ google-cloud-env (~> 2.2)
204
+ google-logging-utils (~> 0.1)
205
+ google-protobuf (>= 3.25, < 5.a)
206
+ googleapis-common-protos (~> 1.6)
207
+ googleapis-common-protos-types (~> 1.15)
208
+ googleauth (~> 1.12)
209
+ grpc (~> 1.66)
210
+ gem-release (2.2.2)
211
+ github_changelog_generator (1.16.4)
212
+ activesupport
213
+ async (>= 1.25.0)
214
+ async-http-faraday
215
+ faraday-http-cache
216
+ multi_json
217
+ octokit (~> 4.6)
218
+ rainbow (>= 2.2.1)
219
+ rake (>= 10.0)
220
+ globalid (1.1.0)
221
+ activesupport (>= 5.0)
222
+ glyphicons (1.0.2)
223
+ google-cloud-core (1.7.1)
224
+ google-cloud-env (>= 1.0, < 3.a)
225
+ google-cloud-errors (~> 1.0)
226
+ google-cloud-env (2.2.1)
227
+ faraday (>= 1.0, < 3.a)
228
+ google-cloud-errors (1.5.0)
229
+ google-cloud-firestore (2.16.1)
230
+ bigdecimal (~> 3.0)
231
+ concurrent-ruby (~> 1.0)
232
+ google-cloud-core (~> 1.5)
233
+ google-cloud-firestore-v1 (>= 0.10, < 2.a)
234
+ rbtree (~> 0.4.2)
235
+ google-cloud-firestore-v1 (1.3.0)
236
+ gapic-common (>= 0.25.0, < 2.a)
237
+ google-cloud-errors (~> 1.0)
238
+ google-cloud-location (>= 0.7, < 2.a)
239
+ google-cloud-location (0.10.0)
240
+ gapic-common (>= 0.25.0, < 2.a)
241
+ google-cloud-errors (~> 1.0)
242
+ google-logging-utils (0.1.0)
243
+ google-protobuf (4.30.0)
244
+ bigdecimal
245
+ rake (>= 13)
246
+ googleapis-common-protos (1.6.0)
247
+ google-protobuf (>= 3.18, < 5.a)
248
+ googleapis-common-protos-types (~> 1.7)
249
+ grpc (~> 1.41)
250
+ googleapis-common-protos-types (1.18.0)
251
+ google-protobuf (>= 3.18, < 5.a)
252
+ googleauth (1.13.1)
253
+ faraday (>= 1.0, < 3.a)
254
+ google-cloud-env (~> 2.2)
255
+ google-logging-utils (~> 0.1)
256
+ jwt (>= 1.4, < 3.0)
257
+ multi_json (~> 1.11)
258
+ os (>= 0.9, < 2.0)
259
+ signet (>= 0.16, < 2.a)
260
+ grpc (1.70.1)
261
+ google-protobuf (>= 3.25, < 5.0)
262
+ googleapis-common-protos-types (~> 1.0)
263
+ hashdiff (1.1.0)
264
+ highline (2.1.0)
265
+ hotwire-rails (0.1.3)
266
+ rails (>= 6.0.0)
267
+ stimulus-rails
268
+ turbo-rails
269
+ i18n (1.13.0)
270
+ concurrent-ruby (~> 1.0)
271
+ image_processing (1.12.2)
272
+ mini_magick (>= 4.9.5, < 5)
273
+ ruby-vips (>= 2.0.17, < 3)
274
+ inline_svg (1.10.0)
275
+ activesupport (>= 3.0)
276
+ nokogiri (>= 1.6)
277
+ jquery-rails (4.6.0)
278
+ rails-dom-testing (>= 1, < 3)
279
+ railties (>= 4.2.0)
280
+ thor (>= 0.14, < 2.0)
281
+ jquery-ui-rails (6.0.1)
282
+ railties (>= 3.2.16)
283
+ jsbundling-rails (1.3.1)
284
+ railties (>= 6.0.0)
285
+ json (2.6.3)
286
+ jsonapi-rspec (0.0.11)
287
+ rspec-core
288
+ rspec-expectations
289
+ jsonapi-serializer (2.2.0)
290
+ activesupport (>= 4.2)
291
+ jwt (2.7.1)
292
+ kaminari (1.2.2)
293
+ activesupport (>= 4.1.0)
294
+ kaminari-actionview (= 1.2.2)
295
+ kaminari-activerecord (= 1.2.2)
296
+ kaminari-core (= 1.2.2)
297
+ kaminari-actionview (1.2.2)
298
+ actionview
299
+ kaminari-core (= 1.2.2)
300
+ kaminari-activerecord (1.2.2)
301
+ activerecord
302
+ kaminari-core (= 1.2.2)
303
+ kaminari-core (1.2.2)
304
+ launchy (2.5.2)
305
+ addressable (~> 2.8)
306
+ loofah (2.21.3)
307
+ crass (~> 1.0.2)
308
+ nokogiri (>= 1.12.0)
309
+ mail (2.8.1)
310
+ mini_mime (>= 0.1.1)
311
+ net-imap
312
+ net-pop
313
+ net-smtp
314
+ marcel (1.0.2)
315
+ matrix (0.4.2)
316
+ method_source (1.0.0)
317
+ mini_magick (4.12.0)
318
+ mini_mime (1.1.2)
319
+ mini_portile2 (2.8.2)
320
+ minitest (5.18.0)
321
+ monetize (1.12.0)
322
+ money (~> 6.12)
323
+ money (6.16.0)
324
+ i18n (>= 0.6.4, <= 2)
325
+ multi_json (1.15.0)
326
+ net-imap (0.3.4)
327
+ date
328
+ net-protocol
329
+ net-pop (0.1.2)
330
+ net-protocol
331
+ net-protocol (0.2.1)
332
+ timeout
333
+ net-smtp (0.3.3)
334
+ net-protocol
335
+ nio4r (2.5.9)
336
+ nokogiri (1.15.0)
337
+ mini_portile2 (~> 2.8.2)
338
+ racc (~> 1.4)
339
+ octokit (4.25.1)
340
+ faraday (>= 1, < 3)
341
+ sawyer (~> 0.9)
342
+ os (1.1.4)
343
+ parallel (1.23.0)
344
+ paranoia (2.6.1)
345
+ activerecord (>= 5.1, < 7.1)
346
+ parser (3.2.2.1)
347
+ ast (~> 2.4.1)
348
+ pg (1.5.3)
349
+ polyglot (0.3.5)
350
+ popper_js (1.16.1)
351
+ protocol-hpack (1.4.2)
352
+ protocol-http (0.24.1)
353
+ protocol-http1 (0.15.0)
354
+ protocol-http (~> 0.22)
355
+ protocol-http2 (0.15.1)
356
+ protocol-hpack (~> 1.4)
357
+ protocol-http (~> 0.18)
358
+ pry (0.14.2)
359
+ coderay (~> 1.1)
360
+ method_source (~> 1.0)
361
+ public_suffix (5.0.1)
362
+ puma (6.2.2)
363
+ nio4r (~> 2.0)
364
+ racc (1.6.2)
365
+ rack (2.2.7)
366
+ rack-test (2.1.0)
367
+ rack (>= 1.3)
368
+ rails (7.0.4.3)
369
+ actioncable (= 7.0.4.3)
370
+ actionmailbox (= 7.0.4.3)
371
+ actionmailer (= 7.0.4.3)
372
+ actionpack (= 7.0.4.3)
373
+ actiontext (= 7.0.4.3)
374
+ actionview (= 7.0.4.3)
375
+ activejob (= 7.0.4.3)
376
+ activemodel (= 7.0.4.3)
377
+ activerecord (= 7.0.4.3)
378
+ activestorage (= 7.0.4.3)
379
+ activesupport (= 7.0.4.3)
380
+ bundler (>= 1.15.0)
381
+ railties (= 7.0.4.3)
382
+ rails-controller-testing (1.0.5)
383
+ actionpack (>= 5.0.1.rc1)
384
+ actionview (>= 5.0.1.rc1)
385
+ activesupport (>= 5.0.1.rc1)
386
+ rails-dom-testing (2.0.3)
387
+ activesupport (>= 4.2.0)
388
+ nokogiri (>= 1.6)
389
+ rails-html-sanitizer (1.5.0)
390
+ loofah (~> 2.19, >= 2.19.1)
391
+ railties (7.0.4.3)
392
+ actionpack (= 7.0.4.3)
393
+ activesupport (= 7.0.4.3)
394
+ method_source
395
+ rake (>= 12.2)
396
+ thor (~> 1.0)
397
+ zeitwerk (~> 2.5)
398
+ rainbow (3.1.1)
399
+ rake (13.0.6)
400
+ ransack (2.6.0)
401
+ activerecord (>= 6.0.4)
402
+ activesupport (>= 6.0.4)
403
+ i18n
404
+ rbtree (0.4.6)
405
+ redis (5.0.6)
406
+ redis-client (>= 0.9.0)
407
+ redis-client (0.14.1)
408
+ connection_pool
409
+ regexp_parser (2.8.0)
410
+ responders (3.1.1)
411
+ actionpack (>= 5.2)
412
+ railties (>= 5.2)
413
+ rexml (3.2.5)
414
+ rspec-activemodel-mocks (1.1.0)
415
+ activemodel (>= 3.0)
416
+ activesupport (>= 3.0)
417
+ rspec-mocks (>= 2.99, < 4.0)
418
+ rspec-core (3.12.2)
419
+ rspec-support (~> 3.12.0)
420
+ rspec-expectations (3.12.3)
421
+ diff-lcs (>= 1.2.0, < 2.0)
422
+ rspec-support (~> 3.12.0)
423
+ rspec-mocks (3.12.5)
424
+ diff-lcs (>= 1.2.0, < 2.0)
425
+ rspec-support (~> 3.12.0)
426
+ rspec-rails (4.1.2)
427
+ actionpack (>= 4.2)
428
+ activesupport (>= 4.2)
429
+ railties (>= 4.2)
430
+ rspec-core (~> 3.10)
431
+ rspec-expectations (~> 3.10)
432
+ rspec-mocks (~> 3.10)
433
+ rspec-support (~> 3.10)
434
+ rspec-retry (0.6.2)
435
+ rspec-core (> 3.3)
436
+ rspec-support (3.12.0)
437
+ rspec_junit_formatter (0.6.0)
438
+ rspec-core (>= 2, < 4, != 2.12.0)
439
+ rubocop (1.51.0)
440
+ json (~> 2.3)
441
+ parallel (~> 1.10)
442
+ parser (>= 3.2.0.0)
443
+ rainbow (>= 2.2.2, < 4.0)
444
+ regexp_parser (>= 1.8, < 3.0)
445
+ rexml (>= 3.2.5, < 4.0)
446
+ rubocop-ast (>= 1.28.0, < 2.0)
447
+ ruby-progressbar (~> 1.7)
448
+ unicode-display_width (>= 2.4.0, < 3.0)
449
+ rubocop-ast (1.28.1)
450
+ parser (>= 3.2.1.0)
451
+ rubocop-rails (2.19.1)
452
+ activesupport (>= 4.2.0)
453
+ rack (>= 1.1)
454
+ rubocop (>= 1.33.0, < 2.0)
455
+ ruby-progressbar (1.13.0)
456
+ ruby-vips (2.1.4)
457
+ ffi (~> 1.12)
458
+ ruby2_keywords (0.0.5)
459
+ rubyzip (2.3.2)
460
+ sass-rails (6.0.0)
461
+ sassc-rails (~> 2.1, >= 2.1.1)
462
+ sassc (2.4.0)
463
+ ffi (~> 1.9)
464
+ sassc-rails (2.1.2)
465
+ railties (>= 4.0.0)
466
+ sassc (>= 2.0)
467
+ sprockets (> 3.0)
468
+ sprockets-rails
469
+ tilt
470
+ sawyer (0.9.2)
471
+ addressable (>= 2.3.5)
472
+ faraday (>= 0.17.3, < 3)
473
+ select2-rails (4.0.13)
474
+ selenium-webdriver (4.9.0)
475
+ rexml (~> 3.2, >= 3.2.5)
476
+ rubyzip (>= 1.2.2, < 3.0)
477
+ websocket (~> 1.0)
478
+ shoulda-matchers (6.2.0)
479
+ activesupport (>= 5.2.0)
480
+ signet (0.19.0)
481
+ addressable (~> 2.8)
482
+ faraday (>= 0.17.5, < 3.a)
483
+ jwt (>= 1.5, < 3.0)
484
+ multi_json (~> 1.10)
485
+ simplecov (0.22.0)
486
+ docile (~> 1.1)
487
+ simplecov-html (~> 0.11)
488
+ simplecov_json_formatter (~> 0.1)
489
+ simplecov-html (0.12.3)
490
+ simplecov_json_formatter (0.1.4)
491
+ spree (4.5.3)
492
+ spree_api (= 4.5.3)
493
+ spree_cli (= 4.5.3)
494
+ spree_core (= 4.5.3)
495
+ spree_api (4.5.3)
496
+ bcrypt (~> 3.1)
497
+ doorkeeper (~> 5.3)
498
+ jsonapi-serializer (~> 2.1)
499
+ spree_core (= 4.5.3)
500
+ spree_backend (4.5.1)
501
+ babel-transpiler (~> 0.7)
502
+ bootstrap (~> 4.0)
503
+ flag-icons-rails (~> 3.4)
504
+ flatpickr (~> 4.6)
505
+ glyphicons (~> 1.0)
506
+ hotwire-rails
507
+ inline_svg (~> 1.5)
508
+ jquery-rails (~> 4.3)
509
+ jquery-ui-rails (~> 6.0)
510
+ jsbundling-rails
511
+ responders
512
+ sass-rails (>= 5)
513
+ select2-rails (~> 4.0.6)
514
+ spree (>= 4.4.0)
515
+ sprockets (~> 4.0)
516
+ tinymce-rails (~> 5.0)
517
+ spree_cli (4.5.3)
518
+ thor (~> 1.0)
519
+ spree_core (4.5.3)
520
+ actionpack (>= 6.1)
521
+ actionview (>= 6.1)
522
+ active_storage_validations (~> 0.9, <= 0.9.5)
523
+ activejob (>= 6.1)
524
+ activemerchant (~> 1.67)
525
+ activemodel (>= 6.1)
526
+ activerecord (>= 6.1)
527
+ activerecord-typedstore
528
+ activestorage (>= 6.1)
529
+ activesupport (>= 6.1)
530
+ acts_as_list (>= 0.8)
531
+ auto_strip_attributes (~> 2.6)
532
+ awesome_nested_set (~> 3.3, >= 3.3.1)
533
+ cancancan (~> 3.2)
534
+ carmen (>= 1.0)
535
+ friendly_id (~> 5.2, >= 5.2.1)
536
+ highline (~> 2.0)
537
+ image_processing (~> 1.2)
538
+ kaminari (~> 1.2)
539
+ monetize (~> 1.9)
540
+ money (~> 6.13)
541
+ paranoia (~> 2.4)
542
+ railties (>= 6.1)
543
+ ransack (>= 2.3, < 3.0)
544
+ rexml
545
+ state_machines-activemodel (~> 0.7)
546
+ state_machines-activerecord (~> 0.6)
547
+ stringex
548
+ validates_zipcode
549
+ spree_dev_tools (0.2.0)
550
+ appraisal
551
+ awesome_print
552
+ capybara
553
+ capybara-screenshot
554
+ capybara-select-2
555
+ database_cleaner
556
+ factory_bot (~> 4.7)
557
+ ffaker
558
+ gem-release
559
+ github_changelog_generator
560
+ jsonapi-rspec
561
+ pry
562
+ puma
563
+ rails-controller-testing
564
+ redis
565
+ rspec-activemodel-mocks
566
+ rspec-rails (~> 4.0)
567
+ rspec-retry
568
+ rspec_junit_formatter (~> 0.4)
569
+ rubocop
570
+ rubocop-rails
571
+ sass-rails
572
+ selenium-webdriver
573
+ simplecov
574
+ spree_core
575
+ timecop
576
+ webdrivers (~> 4.3)
577
+ spree_emails (4.5.3)
578
+ actionmailer
579
+ spree_core (>= 4.5.3)
580
+ sprockets (>= 4.0)
581
+ spree_extension (0.1.0)
582
+ activerecord (>= 4.2)
583
+ spree_core
584
+ spree_multi_vendor (2.4.1)
585
+ deface (~> 1.0)
586
+ spree (>= 4.3.0.rc1)
587
+ spree_backend (>= 4.3.0.rc1)
588
+ spree_emails (>= 4.3.0.rc1)
589
+ spree_extension
590
+ sprockets (4.2.0)
591
+ concurrent-ruby (~> 1.0)
592
+ rack (>= 2.2.4, < 4)
593
+ sprockets-rails (3.4.2)
594
+ actionpack (>= 5.2)
595
+ activesupport (>= 5.2)
596
+ sprockets (>= 3.0.0)
597
+ state_machines (0.5.0)
598
+ state_machines-activemodel (0.8.0)
599
+ activemodel (>= 5.1)
600
+ state_machines (>= 0.5.0)
601
+ state_machines-activerecord (0.8.0)
602
+ activerecord (>= 5.1)
603
+ state_machines-activemodel (>= 0.8.0)
604
+ stimulus-rails (1.3.4)
605
+ railties (>= 6.0.0)
606
+ stringex (2.8.6)
607
+ thor (1.2.2)
608
+ tilt (2.1.0)
609
+ timecop (0.9.6)
610
+ timeout (0.3.2)
611
+ timers (4.3.5)
612
+ tinymce-rails (5.10.9)
613
+ railties (>= 3.1.1)
614
+ traces (0.9.1)
615
+ turbo-rails (2.0.12)
616
+ actionpack (>= 6.0.0)
617
+ railties (>= 6.0.0)
618
+ tzinfo (2.0.6)
619
+ concurrent-ruby (~> 1.0)
620
+ unicode-display_width (2.4.2)
621
+ validates_zipcode (0.5.2)
622
+ activemodel (>= 4.2.0)
623
+ vcr (6.2.0)
624
+ webdrivers (4.7.0)
625
+ nokogiri (~> 1.6)
626
+ rubyzip (>= 1.3.0)
627
+ selenium-webdriver (> 3.141, < 5.0)
628
+ webmock (3.23.0)
629
+ addressable (>= 2.8.0)
630
+ crack (>= 0.3.2)
631
+ hashdiff (>= 0.4.0, < 2.0.0)
632
+ websocket (1.2.9)
633
+ websocket-driver (0.7.5)
634
+ websocket-extensions (>= 0.1.0)
635
+ websocket-extensions (0.1.5)
636
+ xpath (3.2.0)
637
+ nokogiri (~> 1.8)
638
+ zeitwerk (2.6.8)
639
+
640
+ PLATFORMS
641
+ ruby
642
+
643
+ DEPENDENCIES
644
+ brakeman
645
+ byebug
646
+ jwt
647
+ pg
648
+ rails-controller-testing
649
+ shoulda-matchers
650
+ spree_dev_tools
651
+ spree_vpago!
652
+ vcr
653
+ webmock
654
+
655
+ BUNDLED WITH
656
+ 2.1.4
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2021 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.