spree_frontend 4.1.0 → 4.7.0

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 (314) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +120 -0
  3. data/.codeclimate.yml +36 -0
  4. data/.deepsource.toml +19 -0
  5. data/.editorconfig +22 -0
  6. data/.eslintignore +7 -0
  7. data/.eslintrc +36 -0
  8. data/.gem_release.yml +7 -0
  9. data/.github/CONTRIBUTING.md +1 -0
  10. data/.github/ISSUE_TEMPLATE/bug_report.md +47 -0
  11. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  12. data/.github/ISSUE_TEMPLATE.md +39 -0
  13. data/.github/dependabot.yml +32 -0
  14. data/.gitignore +58 -0
  15. data/.rubocop.yml +197 -0
  16. data/.solargraph.yml +20 -0
  17. data/.stylelintignore +4 -0
  18. data/.stylelintrc +6 -0
  19. data/CODE_OF_CONDUCT.md +22 -0
  20. data/Gemfile +57 -3
  21. data/LICENSE +1 -1
  22. data/README.md +89 -0
  23. data/Rakefile +1 -1
  24. data/SECURITY.md +1 -0
  25. data/app/assets/config/spree_frontend_manifest.js +5 -0
  26. data/app/assets/images/arrow-down.svg +12 -0
  27. data/app/assets/images/arrow-right-circle-fill.svg +3 -0
  28. data/app/assets/images/card-image.svg +4 -0
  29. data/app/assets/images/edit.svg +1 -1
  30. data/app/assets/images/favicon.ico +0 -0
  31. data/app/assets/images/file-image.svg +4 -0
  32. data/app/assets/images/global.svg +1 -0
  33. data/app/assets/images/image.svg +4 -0
  34. data/app/assets/images/info.svg +7 -0
  35. data/app/assets/images/logo/spree_50.png +0 -0
  36. data/app/assets/images/logo-spree.png +0 -0
  37. data/app/assets/images/logo.png +0 -0
  38. data/app/assets/images/logo.svg +10 -1
  39. data/app/assets/images/logo@2x.png +0 -0
  40. data/app/assets/images/logo@3x.png +0 -0
  41. data/app/assets/images/noimage/large.png +0 -0
  42. data/app/assets/images/noimage/mini.png +0 -0
  43. data/app/assets/images/noimage/plp.png +0 -0
  44. data/app/assets/images/noimage/plp.svg +16 -0
  45. data/app/assets/images/noimage/product.png +0 -0
  46. data/app/assets/images/noimage/small.png +0 -0
  47. data/app/assets/images/pagination-arrow-right.svg +3 -10
  48. data/app/assets/images/pagination-double-arrow-right.svg +6 -13
  49. data/app/assets/images/plus.svg +1 -1
  50. data/app/assets/images/search.svg +1 -1
  51. data/app/assets/javascripts/spree/frontend/account.js +1 -1
  52. data/app/assets/javascripts/spree/frontend/api/main.js +36 -0
  53. data/app/assets/javascripts/spree/frontend/api/storefront/cart.js +49 -0
  54. data/app/assets/javascripts/spree/frontend/cart.js +24 -2
  55. data/app/assets/javascripts/spree/frontend/checkout/address.js +78 -52
  56. data/app/assets/javascripts/spree/frontend/checkout/address_book.js +38 -40
  57. data/app/assets/javascripts/spree/frontend/checkout/payment.js +63 -23
  58. data/app/assets/javascripts/spree/frontend/checkout/shipment.js +15 -2
  59. data/app/assets/javascripts/spree/frontend/checkout.js +17 -1
  60. data/app/assets/javascripts/spree/frontend/coupon_manager.js +1 -1
  61. data/app/assets/javascripts/spree/frontend/currency.js +44 -0
  62. data/app/assets/javascripts/spree/frontend/locale.es6 +12 -0
  63. data/app/assets/javascripts/spree/frontend/login.js +5 -0
  64. data/app/assets/javascripts/spree/frontend/main.js +78 -0
  65. data/app/assets/javascripts/spree/frontend/main_nav_bar.js +86 -0
  66. data/app/assets/javascripts/spree/frontend/{turbolinks_scroll_fix.js → turbo_scroll_fix.js} +3 -3
  67. data/app/assets/javascripts/spree/frontend/views/spree/home/product_carousels.js +4 -4
  68. data/app/assets/javascripts/spree/frontend/views/spree/product/related.js +3 -3
  69. data/app/assets/javascripts/spree/frontend/views/spree/products/cart_form.js +67 -18
  70. data/app/assets/javascripts/spree/frontend/views/spree/products/description.js +1 -1
  71. data/app/assets/javascripts/spree/frontend/views/spree/products/index.js +76 -15
  72. data/app/assets/javascripts/spree/frontend/views/spree/products/price_filters.es6 +46 -0
  73. data/app/assets/javascripts/spree/frontend/views/spree/shared/mobile_navigation.js +9 -10
  74. data/app/assets/javascripts/spree/frontend/views/spree/shared/product_added_modal.js +7 -0
  75. data/app/assets/javascripts/spree/frontend/views/spree/shared/variant_select.js +93 -0
  76. data/app/assets/javascripts/spree/frontend.js +68 -11
  77. data/app/assets/stylesheets/spree/frontend/application.scss +5 -2
  78. data/app/assets/stylesheets/spree/frontend/components-bootstrap/button.scss +8 -0
  79. data/app/assets/stylesheets/spree/frontend/components-bootstrap/carousel.scss +4 -0
  80. data/app/assets/stylesheets/spree/frontend/components-custom/inputs.scss +80 -1
  81. data/app/assets/stylesheets/spree/frontend/flags/_flag-icon-base.scss +23 -0
  82. data/app/assets/stylesheets/spree/frontend/flags/_flag-icon-list.scss +265 -0
  83. data/app/assets/stylesheets/spree/frontend/flags/_variables.scss +2 -0
  84. data/app/assets/stylesheets/spree/frontend/flags/flag-icon.scss +3 -0
  85. data/app/assets/stylesheets/spree/frontend/functions.scss +1 -0
  86. data/app/assets/stylesheets/spree/frontend/helpers/spree/frontend_helper.scss +48 -0
  87. data/app/assets/stylesheets/spree/frontend/variables/bootstrap-overrides.scss +2 -2
  88. data/app/assets/stylesheets/spree/frontend/variables/helper-variables.scss +1 -0
  89. data/app/assets/stylesheets/spree/frontend/variables/variables.scss +54 -0
  90. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/confirm.scss +27 -26
  91. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/delivery.scss +6 -0
  92. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/edit.scss +24 -10
  93. data/app/assets/stylesheets/spree/frontend/views/spree/cms_sections/_index.scss +1 -0
  94. data/app/assets/stylesheets/spree/frontend/views/spree/cms_sections/product_buy_bar.scss +20 -0
  95. data/app/assets/stylesheets/spree/frontend/views/spree/home/index.scss +54 -67
  96. data/app/assets/stylesheets/spree/frontend/views/spree/orders/edit.scss +4 -3
  97. data/app/assets/stylesheets/spree/frontend/views/spree/orders/show.scss +3 -0
  98. data/app/assets/stylesheets/spree/frontend/views/spree/products/cart_form.scss +8 -0
  99. data/app/assets/stylesheets/spree/frontend/views/spree/products/gallery_modal.scss +7 -0
  100. data/app/assets/stylesheets/spree/frontend/views/spree/products/index.scss +55 -26
  101. data/app/assets/stylesheets/spree/frontend/views/spree/products/show.scss +7 -0
  102. data/app/assets/stylesheets/spree/frontend/views/spree/shared/_color_select.scss +10 -9
  103. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/single.scss +1 -1
  104. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/thumbnails.scss +1 -0
  105. data/app/assets/stylesheets/spree/frontend/views/spree/shared/cart.scss +9 -4
  106. data/app/assets/stylesheets/spree/frontend/views/spree/shared/category_nav_bar.scss +3 -3
  107. data/app/assets/stylesheets/spree/frontend/views/spree/shared/change_store.scss +7 -0
  108. data/app/assets/stylesheets/spree/frontend/views/spree/shared/footer.scss +4 -0
  109. data/app/assets/stylesheets/spree/frontend/views/spree/shared/main_nav_bar.scss +42 -26
  110. data/app/assets/stylesheets/spree/frontend/views/spree/shared/mobile_navigation.scss +34 -3
  111. data/app/assets/stylesheets/spree/frontend/views/spree/shared/nav_bar.scss +24 -7
  112. data/app/assets/stylesheets/spree/frontend/views/spree/shared/quantity_select.scss +9 -12
  113. data/app/assets/stylesheets/spree/frontend/views/spree/shared/search_form.scss +12 -0
  114. data/app/assets/stylesheets/spree/frontend/views/spree/users/show.scss +7 -13
  115. data/app/assets/stylesheets/spree/frontend.css +0 -1
  116. data/app/controllers/concerns/spree/checkout/address_book.rb +9 -7
  117. data/app/controllers/concerns/spree/locale_urls.rb +21 -0
  118. data/app/controllers/spree/addresses_controller.rb +16 -33
  119. data/app/controllers/spree/checkout_controller.rb +15 -13
  120. data/app/controllers/spree/cms_pages_controller.rb +29 -0
  121. data/app/controllers/spree/content_controller.rb +0 -2
  122. data/app/controllers/spree/currency_controller.rb +17 -0
  123. data/app/controllers/spree/errors_controller.rb +11 -0
  124. data/app/controllers/spree/home_controller.rb +38 -1
  125. data/app/controllers/spree/locale_controller.rb +35 -6
  126. data/app/controllers/spree/orders_controller.rb +12 -10
  127. data/app/controllers/spree/products_controller.rb +46 -28
  128. data/app/controllers/spree/store_controller.rb +77 -12
  129. data/app/controllers/spree/taxons_controller.rb +16 -8
  130. data/app/helpers/spree/addresses_helper.rb +64 -12
  131. data/app/helpers/spree/cache_helper.rb +7 -0
  132. data/app/helpers/spree/cms_pages_helper.rb +23 -0
  133. data/app/helpers/spree/frontend_helper.rb +170 -18
  134. data/app/helpers/spree/navigation_helper.rb +81 -4
  135. data/app/helpers/spree/products_filters_helper.rb +168 -0
  136. data/app/helpers/spree/store_helper.rb +41 -0
  137. data/app/helpers/spree/structured_data_helper.rb +6 -2
  138. data/app/helpers/spree/taxons_helper.rb +2 -2
  139. data/app/services/spree/build_localized_redirect_url.rb +141 -0
  140. data/app/views/kaminari/twitter-bootstrap-4/_first_page.html.erb +3 -3
  141. data/app/views/kaminari/twitter-bootstrap-4/_gap.html.erb +2 -2
  142. data/app/views/kaminari/twitter-bootstrap-4/_last_page.html.erb +3 -3
  143. data/app/views/kaminari/twitter-bootstrap-4/_next_page.html.erb +3 -3
  144. data/app/views/kaminari/twitter-bootstrap-4/_page.html.erb +2 -2
  145. data/app/views/kaminari/twitter-bootstrap-4/_paginator.html.erb +2 -2
  146. data/app/views/kaminari/twitter-bootstrap-4/_prev_page.html.erb +3 -3
  147. data/app/views/spree/address/_form.html.erb +26 -27
  148. data/app/views/spree/addresses/_form.html.erb +15 -6
  149. data/app/views/spree/addresses/edit.html.erb +13 -8
  150. data/app/views/spree/addresses/new.html.erb +8 -4
  151. data/app/views/spree/checkout/_address.html.erb +19 -23
  152. data/app/views/spree/checkout/_confirm.html.erb +1 -75
  153. data/app/views/spree/checkout/_credit_card.html.erb +3 -2
  154. data/app/views/spree/checkout/_delivery.html.erb +11 -4
  155. data/app/views/spree/checkout/_delivery_informations.html.erb +51 -0
  156. data/app/views/spree/checkout/_payment.html.erb +5 -24
  157. data/app/views/spree/checkout/_payment_sources.html.erb +17 -0
  158. data/app/views/spree/checkout/_summary.html.erb +22 -19
  159. data/app/views/spree/checkout/edit.html.erb +22 -2
  160. data/app/views/spree/checkout/payment/_gateway.html.erb +2 -2
  161. data/app/views/spree/checkout/registration.html.erb +3 -3
  162. data/app/views/spree/cms_pages/show.html.erb +16 -0
  163. data/app/views/spree/errors/not_found.html.erb +2 -2
  164. data/app/views/spree/home/index.html.erb +17 -123
  165. data/app/views/spree/layouts/checkout.html.erb +3 -1
  166. data/app/views/spree/layouts/spree_application.html.erb +3 -2
  167. data/app/views/spree/locale/index.html.erb +1 -0
  168. data/app/views/spree/orders/_coupon_code.html.erb +3 -4
  169. data/app/views/spree/orders/_line_item.html.erb +4 -4
  170. data/app/views/spree/orders/_line_item_data.html.erb +3 -3
  171. data/app/views/spree/orders/edit.html.erb +2 -3
  172. data/app/views/spree/orders/show.html.erb +2 -72
  173. data/app/views/spree/products/_cart_form.html.erb +5 -2
  174. data/app/views/spree/products/_color_option_type.html.erb +14 -14
  175. data/app/views/spree/products/_description.html.erb +19 -14
  176. data/app/views/spree/products/_filters_desktop.html.erb +80 -40
  177. data/app/views/spree/products/_filters_mobile.html.erb +47 -15
  178. data/app/views/spree/products/_gallery.html.erb +4 -6
  179. data/app/views/spree/products/_gallery_modal.html.erb +4 -6
  180. data/app/views/spree/products/_option_type.html.erb +1 -3
  181. data/app/views/spree/products/_product.html.erb +1 -1
  182. data/app/views/spree/products/_properties.html.erb +6 -4
  183. data/app/views/spree/products/_sort_desktop.html.erb +20 -14
  184. data/app/views/spree/products/_sort_mobile.html.erb +24 -8
  185. data/app/views/spree/products/_thumbnails.html.erb +2 -2
  186. data/app/views/spree/products/index.html.erb +7 -4
  187. data/app/views/spree/products/related.html.erb +11 -5
  188. data/app/views/spree/products/show.html.erb +2 -3
  189. data/app/views/spree/shared/_breadcrumbs.html.erb +2 -2
  190. data/app/views/spree/shared/_carousel_4_products.html.erb +14 -20
  191. data/app/views/spree/shared/_cart.html.erb +1 -1
  192. data/app/views/spree/shared/_checkout_header.html.erb +22 -21
  193. data/app/views/spree/shared/_color_select.html.erb +3 -3
  194. data/app/views/spree/shared/_copyright.html.erb +1 -10
  195. data/app/views/spree/shared/_currency_dropdown.html.erb +13 -0
  196. data/app/views/spree/shared/_delete_address_popup.html.erb +1 -2
  197. data/app/views/spree/shared/_error_messages.html.erb +2 -2
  198. data/app/views/spree/shared/_footer.html.erb +31 -21
  199. data/app/views/spree/shared/_get_started.html.erb +32 -0
  200. data/app/views/spree/shared/_head.html.erb +8 -5
  201. data/app/views/spree/shared/_header.html.erb +4 -4
  202. data/app/views/spree/shared/_internationalization_options.html.erb +31 -0
  203. data/app/views/spree/shared/_line_item.html.erb +3 -3
  204. data/app/views/spree/shared/_link_to_account.html.erb +7 -4
  205. data/app/views/spree/shared/_link_to_cart.html.erb +1 -2
  206. data/app/views/spree/shared/_locale_and_currency.html.erb +6 -0
  207. data/app/views/spree/shared/_locale_dropdown.html.erb +13 -0
  208. data/app/views/spree/shared/_login.html.erb +5 -5
  209. data/app/views/spree/shared/_main_nav_bar.html.erb +69 -45
  210. data/app/views/spree/shared/_mobile_internationalization_options.html.erb +37 -0
  211. data/app/views/spree/shared/_mobile_navigation.html.erb +48 -63
  212. data/app/views/spree/shared/_nav_bar.html.erb +9 -19
  213. data/app/views/spree/shared/_no_product_available.html.erb +1 -1
  214. data/app/views/spree/shared/_option_values.html.erb +2 -21
  215. data/app/views/spree/shared/_order_details.html.erb +117 -174
  216. data/app/views/spree/shared/_paths.html.erb +8 -0
  217. data/app/views/spree/shared/_payment.html.erb +2 -2
  218. data/app/views/spree/shared/_payment_sources.html.erb +2 -2
  219. data/app/views/spree/shared/_product_added_modal.html.erb +3 -3
  220. data/app/views/spree/shared/_properties.html.erb +4 -0
  221. data/app/views/spree/shared/_quantity_select.html.erb +2 -2
  222. data/app/views/spree/shared/_search.html.erb +9 -13
  223. data/app/views/spree/shared/_translations.html.erb +8 -7
  224. data/app/views/spree/shared/carousel/_single.html.erb +9 -14
  225. data/app/views/spree/shared/carousel/_thumbnails.html.erb +35 -39
  226. data/app/views/spree/shared/cms/pages/_edit_mode.html.erb +13 -0
  227. data/app/views/spree/shared/cms/sections/_featured_article.html.erb +27 -0
  228. data/app/views/spree/shared/cms/sections/_hero_image.html.erb +60 -0
  229. data/app/views/spree/shared/cms/sections/_image_gallery.html.erb +171 -0
  230. data/app/views/spree/shared/cms/sections/_product_carousel.html.erb +5 -0
  231. data/app/views/spree/shared/cms/sections/_rich_text_content.html.erb +3 -0
  232. data/app/views/spree/shared/cms/sections/_side_by_side_images.html.erb +118 -0
  233. data/app/views/spree/taxons/_header.html.erb +7 -2
  234. data/app/views/spree/users/_address.html.erb +16 -24
  235. data/app/views/spree/users/_address_controls.html.erb +10 -0
  236. data/app/views/spree/users/show.html.erb +21 -16
  237. data/config/initializers/admin_actions.rb +18 -0
  238. data/config/initializers/assets.rb +4 -13
  239. data/config/initializers/canonical_rails.rb +1 -1
  240. data/config/routes.rb +30 -26
  241. data/lib/generators/spree/frontend/copy_storefront/copy_storefront_generator.rb +1 -7
  242. data/lib/generators/spree/frontend/install/install_generator.rb +34 -0
  243. data/lib/generators/spree/frontend/install/templates/app/assets/config/manifest.js +2 -0
  244. data/lib/generators/spree/frontend/install/templates/vendor/assets/javascripts/spree/frontend/all.js +8 -0
  245. data/lib/generators/spree/frontend/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +9 -0
  246. data/lib/spree/frontend/configuration.rb +18 -0
  247. data/lib/spree/frontend/engine.rb +3 -1
  248. data/lib/spree/frontend/version.rb +9 -0
  249. data/lib/spree/frontend.rb +8 -4
  250. data/license.md +13 -0
  251. data/spec/fixtures/files/store_favicon.ico +0 -0
  252. data/spree_frontend.gemspec +26 -14
  253. data/vendor/assets/javascripts/cleave.js +8 -0
  254. data/vendor/assets/javascripts/fetch.umd.js +531 -0
  255. data/vendor/assets/javascripts/jquery.payment.js +652 -0
  256. data/vendor/assets/javascripts/jsuri.js +458 -0
  257. data/vendor/assets/javascripts/polyfill.min.js +1 -0
  258. metadata +224 -86
  259. data/app/assets/images/homepage/big_category_banner.jpg +0 -0
  260. data/app/assets/images/homepage/big_category_banner_mobile.jpg +0 -0
  261. data/app/assets/images/homepage/big_category_banner_tablet_landscape.jpg +0 -0
  262. data/app/assets/images/homepage/big_category_banner_tablet_portrait.jpg +0 -0
  263. data/app/assets/images/homepage/category_banner_lower.jpg +0 -0
  264. data/app/assets/images/homepage/category_banner_lower_mobile.jpg +0 -0
  265. data/app/assets/images/homepage/category_banner_lower_tablet_landscape.jpg +0 -0
  266. data/app/assets/images/homepage/category_banner_lower_tablet_portrait.jpg +0 -0
  267. data/app/assets/images/homepage/category_banner_upper.jpg +0 -0
  268. data/app/assets/images/homepage/category_banner_upper_mobile.jpg +0 -0
  269. data/app/assets/images/homepage/category_banner_upper_tablet_landscape.jpg +0 -0
  270. data/app/assets/images/homepage/category_banner_upper_tablet_portrait.jpg +0 -0
  271. data/app/assets/images/homepage/main_banner.jpg +0 -0
  272. data/app/assets/images/homepage/main_banner_mobile.jpg +0 -0
  273. data/app/assets/images/homepage/main_banner_tablet_landscape.jpg +0 -0
  274. data/app/assets/images/homepage/main_banner_tablet_portrait.jpg +0 -0
  275. data/app/assets/images/homepage/promo_banner_left.jpg +0 -0
  276. data/app/assets/images/homepage/promo_banner_left_mobile.jpg +0 -0
  277. data/app/assets/images/homepage/promo_banner_left_tablet_landscape.jpg +0 -0
  278. data/app/assets/images/homepage/promo_banner_left_tablet_portrait.jpg +0 -0
  279. data/app/assets/images/homepage/promo_banner_right.jpg +0 -0
  280. data/app/assets/images/homepage/promo_banner_right_mobile.jpg +0 -0
  281. data/app/assets/images/homepage/promo_banner_right_tablet_landscape.jpg +0 -0
  282. data/app/assets/images/homepage/promo_banner_right_tablet_portrait.jpg +0 -0
  283. data/app/assets/images/meganav/promo_banner_left-first-category.jpg +0 -0
  284. data/app/assets/images/meganav/promo_banner_left-second-category.jpg +0 -0
  285. data/app/assets/images/meganav/promo_banner_left-third-category.jpg +0 -0
  286. data/app/assets/images/meganav/promo_banner_right-first-category.jpg +0 -0
  287. data/app/assets/images/meganav/promo_banner_right-second-category.jpg +0 -0
  288. data/app/assets/images/meganav/promo_banner_right-third-category.jpg +0 -0
  289. data/app/assets/images/noimage/big_category_banner.jpg +0 -0
  290. data/app/assets/images/noimage/big_category_banner_mobile.jpg +0 -0
  291. data/app/assets/images/noimage/big_category_banner_tablet_landscape.jpg +0 -0
  292. data/app/assets/images/noimage/big_category_banner_tablet_portrait.jpg +0 -0
  293. data/app/assets/images/noimage/category_banner.jpg +0 -0
  294. data/app/assets/images/noimage/category_banner_mobile.jpg +0 -0
  295. data/app/assets/images/noimage/category_banner_plp.jpg +0 -0
  296. data/app/assets/images/noimage/category_banner_tablet_landscape.jpg +0 -0
  297. data/app/assets/images/noimage/category_banner_tablet_portrait.jpg +0 -0
  298. data/app/assets/images/noimage/main_banner.jpg +0 -0
  299. data/app/assets/images/noimage/main_banner_mobile.jpg +0 -0
  300. data/app/assets/images/noimage/main_banner_tablet_landscape.jpg +0 -0
  301. data/app/assets/images/noimage/main_banner_tablet_portrait.jpg +0 -0
  302. data/app/assets/images/noimage/product_photo.jpg +0 -0
  303. data/app/assets/images/noimage/promo_banner.jpg +0 -0
  304. data/app/assets/images/noimage/promo_banner_megamenu.jpg +0 -0
  305. data/app/assets/images/noimage/promo_banner_mobile.jpg +0 -0
  306. data/app/assets/images/noimage/promo_banner_tablet_landscape.jpg +0 -0
  307. data/app/assets/images/noimage/promo_banner_tablet_portrait.jpg +0 -0
  308. data/app/assets/images/spark-logo@3x.png +0 -0
  309. data/app/assets/stylesheets/spree/frontend/_glyphicons_urls_fix.scss +0 -10
  310. data/app/assets/stylesheets/spree/frontend/address_book.scss +0 -8
  311. data/app/models/spree/frontend_configuration.rb +0 -7
  312. data/app/views/spree/shared/_taxonomies.html.erb +0 -16
  313. /data/app/views/spree/{shared → errors}/forbidden.html.erb +0 -0
  314. /data/app/views/spree/{shared → errors}/unauthorized.html.erb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5317d2a7a6ca3ca3bfb57ecec0acf3855ac522773bff72c884ee245475c5fda7
4
- data.tar.gz: 5b18212fba5963c66c4ef309335f5627506c384fde5ac8f50f84130f1bfdecc1
3
+ metadata.gz: 66ee07c39f3973037fba8e3d5c16f5de80d7cf7152051058b7138ea98b1e0160
4
+ data.tar.gz: 8413f7984b0dca8fbc785c36d958bf409d7d635dadf997861ed3db8c2f9949c2
5
5
  SHA512:
6
- metadata.gz: 581b2b7605797cbd41255ae3a7c6039599bfb927ca626081fc90db6ed763a70bc2be1f6e2f8b8f32199f37cdbf165dcea7cb4950ab17efe52c68d2a46782e409
7
- data.tar.gz: 4cdc7a0dd326ff60029ea95993a213efd34ff292f01e1a2e5ff497f7d968ee61fde81e784d2993a8a86a97c77015e2e2088d7a2ef9275a0b1d9671019f5bc416
6
+ metadata.gz: 4276034e9e0892d040c79e0ddbb31753c926d0e1d2d7a7f43a378d23224e2418ec41480b95be79ac84bce9da899b2f6951a7dabbdfdf367b430464084230363c
7
+ data.tar.gz: 67a583cbbf0c984f0b297b4a258a3391bcef391a54683fa5b7c4bbaaeab5897b37a837e655cba233cfa4835315b908402e5e18fcb6b3371e19bdcd39204f20a3
@@ -0,0 +1,120 @@
1
+ version: 2.1 # use CircleCI 2.0
2
+
3
+ defaults: &defaults
4
+ environment: &environment
5
+ CIRCLE_TEST_REPORTS: /tmp/test-results
6
+ CIRCLE_ARTIFACTS: /tmp/test-artifacts
7
+ BUNDLE_JOBS: 4
8
+ BUNDLE_RETRY: 3
9
+ BUNDLE_PATH: ~/spree/vendor/bundle
10
+ RAILS_VERSION: '~> 7.1.0'
11
+ working_directory: ~/spree
12
+ docker:
13
+ - image: &ruby_3_2_image circleci/ruby:3.0-node-browsers
14
+ - image: &redis_image circleci/redis:6.2-alpine
15
+
16
+ run_tests_3_2: &run_tests_3_2
17
+ <<: *defaults
18
+ parallelism: 8
19
+ steps:
20
+ - checkout
21
+ - restore_cache:
22
+ keys:
23
+ - spree-storefront-old-bundle-v10-ruby-3-2-{{ .Branch }}
24
+ - spree-storefront-old-bundle-v10-ruby-3-2
25
+ - run:
26
+ name: Add keyserver
27
+ command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
28
+ - run:
29
+ name: Install libvips
30
+ command: sudo apt-get update && sudo apt-get install libvips
31
+ - run:
32
+ name: Set bundle path
33
+ command: bundle config --local path vendor/bundle
34
+ - run:
35
+ name: Ensure bundle Install
36
+ command: |
37
+ bundle check || bundle install
38
+ - run:
39
+ name: Create test app
40
+ command: |
41
+ bundle exec rake test_app
42
+ - run:
43
+ name: Run Rspec
44
+ command: |
45
+ TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
46
+ bundle exec rspec --format documentation \
47
+ --format RspecJunitFormatter \
48
+ -o ~/rspec/rspec.xml \
49
+ -- ${TESTFILES}
50
+ - store_test_results:
51
+ path: ~/rspec
52
+ - store_artifacts:
53
+ path: tmp/capybara
54
+
55
+ jobs:
56
+ bundle_ruby_3_2:
57
+ <<: *defaults
58
+ steps:
59
+ - checkout
60
+ - restore_cache:
61
+ keys:
62
+ - spree-storefront-old-bundle-v10-ruby-3-2-{{ .Branch }}
63
+ - spree-storefront-old-bundle-v10-ruby-3-2
64
+ - run:
65
+ name: Add keyserver
66
+ command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
67
+ - run:
68
+ name: Install libvips
69
+ command: sudo apt-get update && sudo apt-get install libvips
70
+ - run:
71
+ name: Set bundle path
72
+ command: bundle config --local path vendor/bundle
73
+ - run:
74
+ name: Bundle Install
75
+ command: |
76
+ bundle check || bundle install
77
+ - save_cache:
78
+ paths:
79
+ - vendor/bundle
80
+ key: spree-storefront-old-bundle-v10-ruby-3-2-{{ checksum "Gemfile.lock" }}
81
+
82
+ tests_ruby_3_2_rails_7_1_postgres:
83
+ <<: *run_tests_3_2
84
+ environment: &postgres_environment
85
+ <<: *environment
86
+ DB: postgres
87
+ DB_HOST: localhost
88
+ DB_USERNAME: postgres
89
+ docker:
90
+ - image: *ruby_3_2_image
91
+ - image: &postgres_image circleci/postgres:12-alpine
92
+ environment:
93
+ POSTGRES_USER: postgres
94
+ - image: *redis_image
95
+
96
+ tests_ruby_3_2_rails_7_1_mysql:
97
+ <<: *run_tests_3_2
98
+ environment: &mysql_environment
99
+ <<: *environment
100
+ DB: mysql
101
+ DB_HOST: 127.0.0.1
102
+ DB_USERNAME: root
103
+ COVERAGE: true
104
+ COVERAGE_DIR: /tmp/workspace/simplecov
105
+ docker:
106
+ - image: *ruby_3_2_image
107
+ - image: *redis_image
108
+ - image: &mysql_image circleci/mysql:8-ram
109
+
110
+ workflows:
111
+ version: 2
112
+ main:
113
+ jobs:
114
+ - bundle_ruby_3_2
115
+ - tests_ruby_3_2_rails_7_1_postgres:
116
+ requires:
117
+ - bundle_ruby_3_2
118
+ - tests_ruby_3_2_rails_7_1_mysql:
119
+ requires:
120
+ - bundle_ruby_3_2
data/.codeclimate.yml ADDED
@@ -0,0 +1,36 @@
1
+ version: "2"
2
+ plugins:
3
+ rubocop:
4
+ enabled: true
5
+ checks:
6
+ Rubocop/Naming/RescuedExceptionsVariableName:
7
+ enabled: false
8
+ Rubocop/Layout/AlignArguments:
9
+ enabled: false
10
+ Rubocop/Style/MultilineWhenThen:
11
+ enabled: false
12
+ Rubocop/Layout/SpaceAroundOperators:
13
+ enabled: false
14
+ Rubocop/Style/FormatStringToken:
15
+ enabled: false
16
+ config:
17
+ file: .rubocop.yml
18
+ channel: "rubocop-1-50-3" # need to keep this value the same as rubocop version
19
+ # https://docs.codeclimate.com/v1.0/docs/rubocop#section-using-rubocop-s-newer-versions
20
+ eslint:
21
+ enabled: true
22
+ config:
23
+ extensions:
24
+ - .es6
25
+ - .js
26
+ channel: "eslint-7" # need to keep this value the same as eslint version
27
+ # https://docs.codeclimate.com/v1.0/docs/eslint#section-eslint-versions
28
+ stylelint:
29
+ enabled: true
30
+ exclude_patterns:
31
+ - "**/bin/"
32
+ - "**/script/"
33
+ - "**/vendor/"
34
+ - "**/spec/"
35
+ - "public/"
36
+ - "sample/db/samples"
data/.deepsource.toml ADDED
@@ -0,0 +1,19 @@
1
+ version = 1
2
+
3
+ exclude_patterns = [
4
+ "**/sandbox/**/*",
5
+ "**/db/migrate/*",
6
+ "**/Gemfile",
7
+ "**/Gemfile.lock",
8
+ "**/Rakefile",
9
+ "**/rails",
10
+ "**/*.gemspec",
11
+ "**/dummy/**/*",
12
+ "**/vendor/**/*",
13
+ "**/spec_helper.rb",
14
+ "**/templates/**/*"
15
+ ]
16
+
17
+ [[analyzers]]
18
+ name = "ruby"
19
+ enabled = true
data/.editorconfig ADDED
@@ -0,0 +1,22 @@
1
+ # http://EditorConfig.org
2
+ # https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
3
+
4
+ root = true
5
+
6
+ [*]
7
+ charset = utf-8
8
+ end_of_line = lf
9
+ indent_size = 2
10
+ indent_style = space
11
+ insert_final_newline = true
12
+ trim_trailing_whitespace = true
13
+ tab_width = 2
14
+
15
+ [**.rb]
16
+ max_line_length = 150
17
+
18
+ [**.js, **.coffee]
19
+ max_line_length = 150
20
+
21
+ [*.md]
22
+ trim_trailing_whitespace = false
data/.eslintignore ADDED
@@ -0,0 +1,7 @@
1
+ **/vendor/**
2
+ **/dummy/**
3
+ **/sandbox/**
4
+ *-min.js
5
+ *.min.js
6
+ jquery*.js
7
+ /cli/lib/spree_cli/templates/**
data/.eslintrc ADDED
@@ -0,0 +1,36 @@
1
+ ---
2
+ extends: standard
3
+
4
+ globals:
5
+ Spree: true
6
+ analytics: true
7
+ DOMPurify: true
8
+ flatpickr: true
9
+ Sortable: true
10
+ ga: true
11
+ _: true
12
+ Select2: true
13
+ Handlebars: true
14
+ Raphael: true
15
+ SpreeAPI: true
16
+ SpreePaths: true
17
+ CouponManager: true
18
+ ThumbnailsCarousel: true
19
+ Turbo: true
20
+ ADDRESS_FIELDS: true
21
+ AUTH_TOKEN: true
22
+ SPREE_LOCALE: true
23
+ SPREE_CURRENCY: true
24
+ SPREE_DEFAULT_CURRENCY: true
25
+ SPREE_DEFAULT_LOCALE: true
26
+ OAUTH_TOKEN: true
27
+ updateAddressState: true
28
+ formatSelect2Options: true
29
+
30
+ env:
31
+ browser: true
32
+ jquery: true
33
+
34
+ rules:
35
+ space-before-function-paren: off
36
+ semi: off
data/.gem_release.yml ADDED
@@ -0,0 +1,7 @@
1
+
2
+ bump:
3
+ recurse: false
4
+ file: 'frontend/lib/spree/frontend/version.rb'
5
+
6
+ release:
7
+ recurse: true
@@ -0,0 +1 @@
1
+ Please visit [Contributing section](https://dev-docs.spreecommerce.org/contributing/index) of Spree Guides. Thank you!
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: Needs Confirmation
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ <!--- Provide a general summary of the issue in the Title above -->
11
+
12
+ ## Context
13
+ <!--- Provide a more detailed introduction to the issue itself -->
14
+ <!--- How has this issue affected you? What were you trying to accomplish? -->
15
+
16
+ ## Expected Behavior
17
+ <!--- Tell us what should happen -->
18
+
19
+ ## Actual Behavior
20
+ <!--- Tell us what happens instead -->
21
+
22
+ ## Possible Fix
23
+ <!--- Not obligatory, but suggest a fix or reason for the issue -->
24
+
25
+ ## Steps to Reproduce
26
+ <!--- Provide a link to a live example, or an unambiguous set of steps to -->
27
+ <!--- reproduce this issue include code to reproduce, if relevant -->
28
+ 1.
29
+ 2.
30
+ 3.
31
+ 4.
32
+
33
+ ## Your Environment
34
+ <!--- Include as many relevant details about the environment you experienced the issue in -->
35
+ * Version used:
36
+ * Gemfile and Gemfile.lock as text in a Gist:
37
+ * Any relevant stack traces ("Full trace" preferred):
38
+
39
+ <!--- Please remember to format code using triple backticks (`)
40
+ so that it is neatly formatted when the issue is posted. -->
41
+
42
+ <!--- In 99% of cases, this information is enough to determine the cause and
43
+ solution to the problem that is being described.
44
+
45
+ Any issue that is open for 14 days without actionable information or
46
+ activity will be marked as "stalled" and then closed. Stalled issues
47
+ can be re-opened if the information requested is provided. -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: 'New Feature :tada:'
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,39 @@
1
+
2
+ <!--- Provide a general summary of the issue in the Title above -->
3
+
4
+ ## Context
5
+ <!--- Provide a more detailed introduction to the issue itself -->
6
+ <!--- How has this issue affected you? What were you trying to accomplish? -->
7
+
8
+ ## Expected Behavior
9
+ <!--- Tell us what should happen -->
10
+
11
+ ## Actual Behavior
12
+ <!--- Tell us what happens instead -->
13
+
14
+ ## Possible Fix
15
+ <!--- Not obligatory, but suggest a fix or reason for the issue -->
16
+
17
+ ## Steps to Reproduce
18
+ <!--- Provide a link to a live example, or an unambiguous set of steps to -->
19
+ <!--- reproduce this issue include code to reproduce, if relevant -->
20
+ 1.
21
+ 2.
22
+ 3.
23
+ 4.
24
+
25
+ ## Your Environment
26
+ <!--- Include as many relevant details about the environment you experienced the issue in -->
27
+ * Version used:
28
+ * Gemfile and Gemfile.lock as text in a Gist:
29
+ * Any relevant stack traces ("Full trace" preferred):
30
+
31
+ <!--- Please remember to format code using triple backticks (`)
32
+ so that it is neatly formatted when the issue is posted. -->
33
+
34
+ <!--- In 99% of cases, this information is enough to determine the cause and
35
+ solution to the problem that is being described.
36
+
37
+ Any issue that is open for 14 days without actionable information or
38
+ activity will be marked as "stalled" and then closed. Stalled issues
39
+ can be re-opened if the information requested is provided. -->
@@ -0,0 +1,32 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/backend"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
8
+ - package-ecosystem: bundler
9
+ directory: "/frontend"
10
+ schedule:
11
+ interval: daily
12
+ open-pull-requests-limit: 10
13
+ - package-ecosystem: bundler
14
+ directory: "/core"
15
+ schedule:
16
+ interval: daily
17
+ open-pull-requests-limit: 10
18
+ - package-ecosystem: bundler
19
+ directory: "/cli"
20
+ schedule:
21
+ interval: daily
22
+ open-pull-requests-limit: 10
23
+ - package-ecosystem: bundler
24
+ directory: "/api"
25
+ schedule:
26
+ interval: daily
27
+ open-pull-requests-limit: 10
28
+ - package-ecosystem: bundler
29
+ directory: "/sample"
30
+ schedule:
31
+ interval: daily
32
+ open-pull-requests-limit: 10
data/.gitignore ADDED
@@ -0,0 +1,58 @@
1
+ \#*
2
+ **/*.db
3
+ **/*.log
4
+ **/*.byebug_history
5
+ *~
6
+ .#*
7
+ .DS_Store
8
+ .bundle
9
+ .dotest
10
+ .idea
11
+ .loadpath
12
+ .project
13
+ .vscode
14
+ public/dispatch.cgi
15
+ public/dispatch.fcgi
16
+ public/dispatch.rb
17
+ httpd
18
+ pgsql
19
+ config/*-public.asc
20
+ config/database.yml
21
+ config/mongrel_cluster.yml
22
+ db/*.sql
23
+ db/*.sqlite3*
24
+ db/schema.rb
25
+ doc/**/*
26
+ Gemfile.lock
27
+ */Gemfile.lock
28
+ lib/products_index_profiler.rb
29
+ log/*.log
30
+ pkg
31
+ public/assets
32
+ public/attachments
33
+ public/blank_iframe.html
34
+ public/ckeditora
35
+ sandbox/*
36
+ spree_dev
37
+ spree_test
38
+ testapp
39
+ **/spec/dummy
40
+ tmp
41
+ public/google_base.xml
42
+ public/template_google_base.xml
43
+ coverage/*
44
+ var
45
+ nbproject
46
+ ./vendor
47
+ *.swp
48
+ rerun.txt
49
+ test_app
50
+ .rvmrc
51
+ **/coverage
52
+ */.sass-cache
53
+ .localeapp
54
+ .ruby-gemset
55
+ vendor/bundle
56
+ */vendor/bundle
57
+ .ignore
58
+ TODO
data/.rubocop.yml ADDED
@@ -0,0 +1,197 @@
1
+ require: rubocop-rspec
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 3.0
5
+ Exclude:
6
+ - '**/sandbox/**/*'
7
+ - '**/db/migrate/*'
8
+ - '**/Gemfile'
9
+ - '**/Gemfile.lock'
10
+ - '**/Rakefile'
11
+ - '**/rails'
12
+ - '**/*.gemspec'
13
+ - '**/dummy/**/*'
14
+ - '**/vendor/**/*'
15
+ - '**/spec_helper.rb'
16
+ - '**/templates/**/*'
17
+
18
+ Layout/MultilineOperationIndentation:
19
+ EnforcedStyle: indented
20
+
21
+ Layout/ParameterAlignment:
22
+ Enabled: false
23
+
24
+ Metrics/ClassLength:
25
+ CountComments: false
26
+ Max: 150
27
+
28
+ Metrics/ModuleLength:
29
+ CountComments: false
30
+ Max: 250
31
+ Exclude:
32
+ - '**/spec/**/*'
33
+
34
+ Style/Documentation:
35
+ Enabled: false
36
+
37
+ Layout/LineLength:
38
+ Max: 150
39
+ Exclude:
40
+ - '**/spec/**/*'
41
+
42
+ Metrics/MethodLength:
43
+ CountComments: false
44
+ Max: 50
45
+
46
+ Metrics/BlockLength:
47
+ CountComments: false
48
+ Max: 50
49
+ Exclude:
50
+ - '**/spec/**/*'
51
+ - '**/*.rake'
52
+ - '**/factories/**/*'
53
+ - '**/config/routes.rb'
54
+
55
+ Metrics/AbcSize:
56
+ Max: 45
57
+
58
+ Style/StringLiterals:
59
+ EnforcedStyle: single_quotes
60
+
61
+ Layout/DotPosition:
62
+ EnforcedStyle: trailing
63
+ Enabled: true
64
+
65
+ Layout/SpaceInsideArrayLiteralBrackets:
66
+ Exclude:
67
+ - 'api/spec/integration/**/*.rb'
68
+ - 'api/lib/spree/api/testing_support/v2/platform_contexts.rb'
69
+
70
+ Style/FrozenStringLiteralComment:
71
+ Enabled: false
72
+
73
+ Style/RegexpLiteral:
74
+ Enabled: false
75
+
76
+ Style/WordArray:
77
+ Enabled: false
78
+
79
+ Style/SymbolArray:
80
+ Enabled: false
81
+
82
+ Style/SymbolProc:
83
+ Exclude:
84
+ - '**/app/serializers/**/*'
85
+
86
+ Style/GuardClause:
87
+ Enabled: false
88
+
89
+ Style/TrailingCommaInArrayLiteral:
90
+ Enabled: false
91
+
92
+ Style/TrailingCommaInHashLiteral:
93
+ Enabled: false
94
+
95
+ Style/BarePercentLiterals:
96
+ Enabled: false
97
+
98
+ Style/MutableConstant:
99
+ Enabled: false
100
+
101
+ Style/PercentLiteralDelimiters:
102
+ Enabled: false
103
+
104
+ Style/IfUnlessModifier:
105
+ Enabled: false
106
+
107
+ Naming/VariableNumber:
108
+ Enabled: false
109
+
110
+ Style/RedundantPercentQ:
111
+ Enabled: false
112
+
113
+ Lint/ParenthesesAsGroupedExpression:
114
+ Enabled: false
115
+
116
+ Style/NumericPredicate:
117
+ Enabled: false
118
+
119
+ Metrics/PerceivedComplexity:
120
+ Max: 10
121
+
122
+ Metrics/CyclomaticComplexity:
123
+ Max: 10
124
+
125
+ Style/ClassAndModuleChildren:
126
+ Enabled: false
127
+
128
+ Style/AndOr:
129
+ Exclude:
130
+ - '**/*controller.rb'
131
+
132
+ Style/HashEachMethods:
133
+ Enabled: false
134
+
135
+ Style/HashTransformKeys:
136
+ Enabled: false
137
+
138
+ Style/HashTransformValues:
139
+ Enabled: false
140
+
141
+ RSpec/NestedGroups:
142
+ Max: 7
143
+
144
+ Lint/AmbiguousBlockAssociation:
145
+ Exclude:
146
+ - '**/spec/**/*'
147
+
148
+ Style/NumericLiterals:
149
+ Enabled: false
150
+
151
+ RSpec/DescribeClass:
152
+ Enabled: false
153
+
154
+ RSpec/VerifiedDoubles:
155
+ Enabled: false
156
+
157
+ RSpec/MessageChain:
158
+ Enabled: false
159
+
160
+ RSpec/AnyInstance:
161
+ Enabled: false
162
+
163
+ RSpec/InstanceVariable:
164
+ Enabled: false
165
+
166
+ RSpec/ContextWording:
167
+ Enabled: false
168
+
169
+ RSpec/ExpectInHook:
170
+ Enabled: false
171
+
172
+ RSpec/ExampleLength:
173
+ Enabled: false
174
+
175
+ RSpec/MessageSpies:
176
+ Enabled: false
177
+
178
+ RSpec/NamedSubject:
179
+ Enabled: false
180
+
181
+ RSpec/MultipleExpectations:
182
+ Enabled: false
183
+
184
+ RSpec/FilePath:
185
+ Enabled: false
186
+
187
+ RSpec/LetSetup:
188
+ Enabled: false
189
+
190
+ RSpec/SubjectStub:
191
+ Enabled: false
192
+
193
+ RSpec/VoidExpect:
194
+ Enabled: false
195
+
196
+ RSpec/BeforeAfterAll:
197
+ Enabled: false
data/.solargraph.yml ADDED
@@ -0,0 +1,20 @@
1
+ ---
2
+ include:
3
+ - "**/*.rb"
4
+ exclude:
5
+ - "*/spec/**/*"
6
+ - "*test/**/*"
7
+ - "*/vendor/**/*"
8
+ - vendor/**/*
9
+ - ".bundle/**/*"
10
+ - sample/**/*
11
+ - sandbox/**/*
12
+ - pkg/**/*
13
+ - cli/**/*.gemspec
14
+ require: []
15
+ domains: []
16
+ reporters:
17
+ - rubocop
18
+ - require_not_found
19
+ require_paths: []
20
+ max_files: 50_000
data/.stylelintignore ADDED
@@ -0,0 +1,4 @@
1
+ **/vendor/**
2
+ **/dummy/**
3
+ **/sandbox/**
4
+ /cli/lib/spree_cli/templates/**
data/.stylelintrc ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "stylelint-config-recommended",
3
+ "rules": {
4
+ "at-rule-no-unknown": null
5
+ }
6
+ }