Skip to content
This repository has been archived by the owner on Jan 26, 2024. It is now read-only.

Commit

Permalink
Merge pull request #4493 from DivanteLtd/release/v1.12
Browse files Browse the repository at this point in the history
Release/v1.12
  • Loading branch information
Tomasz Kostuch authored Jun 2, 2020
2 parents e4223fc + 01618fb commit c80a135
Show file tree
Hide file tree
Showing 537 changed files with 6,852 additions and 28,016 deletions.
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[submodule "src/modules/vsf-cache-nginx"]
path = src/modules/vsf-cache-nginx
url = https://github.com/new-fantastic/vsf-cache-nginx.git
branch = master
[submodule "src/modules/vsf-cache-varnish"]
path = src/modules/vsf-cache-varnish
url = https://github.com/new-fantastic/vsf-cache-varnish.git
branch = master
19 changes: 19 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
tasks:
- init: |
yarn install
echo '{ "api": { "url": "https://next.storefrontcloud.io" }}' > config/local.json
yarn build
command: yarn dev
ports:
- port: 3000
onOpen: open-preview

vscode:
extensions:
- [email protected]:TEzauMObB6f3i2JqlvrOpA==
- [email protected]:/v3eRFwBI38JLZJv5ExY5g==
- [email protected]:peDPJqeL8FmmJiabU4fAJQ==
- [email protected]:oZ/8R2VhZEhkHsoeO57hSw==
- [email protected]:lKCmLIZAiCM0M8AjDnwCLQ==
- [email protected]:oYJg0oZA/6FBnFfW599HRg==
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ cache:
- node_modules

install:
- git clone --quiet --single-branch --branch master https://github.com/DivanteLtd/vsf-default.git ./src/themes/default
- yarn

jobs:
Expand Down
80 changes: 80 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,86 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.12.0] - 2020.06.01

### Added

- Add `vsf-capybara` support as a dependency and extend CLI to support customization - @psmyrek (#4209)
- Support theme configuration via CLI - @psmyrek (#4395)
- Allow parent_ids field on product as an alternative to urlpath based breadcrumb navigation (#4219)
- Pass the original item_id when updating/deleting a cart entry @carlokok (#4218)
- Separating endpoints for CSR/SSR - @Fifciu (#2861)
- Added short hands for version and help flags - @jamesgeorge007 (#3946)
- Add `or` operator for Elasticsearch filters in `quickSearchByQuery` and use exists if value is `null` - @cewald (#3960)
- Add unified fetch in mappingFallback for all searched entities - @gibkigonzo (#3942)
- add npm-run-all for parallel build - @gibkigonzo (#3819)
- Add OutputCaching support for x-vs-store-code - @benjick (#3979)
- The new search adapter `api-search-query` has been added. When you switch to it, by setting the `config.server.api = "api-search-query"` the ElasticSearch query is being built in the [`vue-storefront-api`](https://github.com/DivanteLtd/vue-storefront-api/pull/390) which saves around 400kB in the bundle size as `bodybuilder` is no longer needed in the frontend - @pkarw - #2167
- This new `api-search-query` adapter supports the `response_format` query parameter which now is sent to the `/api/catalog` endpoint. Currently there is just one additional format supported: `response_format=compact`. When used, the response format got optimized by: a) remapping the results, removing the `_source` from the `hits.hits`; b) compressing the JSON fields names according to the `config.products.fieldsToCompact`; c) removing the JSON fields from the `product.configurable_children` when their values === parent product values; overall response size reduced over -70% - @pkarw
- The `amp-renderer` module has been disabled by default to save the bundle size; If you'd like to enable it uncomment the module from the `src/modules` and uncomment the `product-amp` and `category-amp` links that are added to the `<head>` section in the `src/themes/default/Product.vue` and `src/themes/default/Category.vue`
- Reset Password confirmation page - @Fifciu (#2576)
- Add `Intl.NumberFormat()`/`toLocaleString()` via polyfill support in NodeJs - @cewald (#3836, #4040)
- Added `saveBandwidthOverCache` parameter for skipping caching for products data - @andrzejewsky (#3706)
- New zoom effect for product gallery images - @Michal-Dziedzinski (#2755)
- Add custom currency separators and amount of fraction digits - @EndPositive (#3553)
- Product Page Schema implementation as JSON-LD - @Michal-Dziedzinski (#3704)
- Add `/cache-version.json` route to get current cache version
- Built-in module for detecting device type based on UserAgent with SSR support - @Fifciu
- Update to `storefront-query-builder` version `1.0.0` - @cewald (#4234)
- Move generating files from webpack config to script @gibkigonzo (#4236)
- Add correct type matching to `getConfigurationMatchLevel` - @cewald (#4241)
- Support `useSpecificImagePaths` with `useExactUrlsNoProxy` - @cewald (#4243)
- Adds module which handles cache invalidation for Fastly. - @gibkigonzo (#4096)
- Add vsf-cache-nginx and vsf-cache-varnish modules - @gibkigonzo (#4096)
- Added meta info for CMS pages from Magento @mdanilowicz (#4392)
- Add useful core events to server & logger - @cewald (#4419)

### Fixed

- Fixed `resultPorcessor` typo - @psmyrek
- Negative price has doubled minus sign - @psmyrek (#4353)
- Fixed Search product fails for category filter when categoryId is string - @adityasharma7 (#3929)
- Revert init filters in Vue app - @gibkigonzo (#3929)
- All categories disappearing if you add the child category name to includeFields - @1070rik (#4015)
- Fix overlapping text in PersonalDetails component - @jakubmakielkowski (#4024)
- Redirect from checkout to home with a proper store code - @Fifciu
- Added back error notification when user selects invalid configuration - @1070rik (#4033)
- findConfigurableChildAsync - return best match for configurable variant - @gibkigonzo, @cewald (#4042, #4216)
- use storeCode for mappingFallback url - @gibkigonzo (#4050)
- `getVariantWithLowestPrice` uses inexistent `final_price` property - @cewald (#4091)
- Fixed `NOT_ALLOWED_SSR_EXTENSIONS_REGEX` to only match with file extensions having a dot - @haelbichalex (#4100)
- Fixed problem with not showing error message when placing an order fails - @qiqqq
- Invoking afterCacheInvalidated server hook in a proper moment - @Fifciu (#4176)
- Fixed `cart/isVirtualCart` to return `false` when cart is empty - @haelbichalex(#4182)
- Use `setProductGallery` in `product/setCurrent` to use logic of the action - @cewald (#4153)
- Use same data format in getConfigurationMatchLevel - @gibkigonzo (#4208)
- removed possible memory leak in ssr - @resubaka (#4247)
- Bugfix for reactivity of `current_configuration` in `populateProductConfigurationAsync` - @cewald (#4258)
- Bugfix for build exception in Node v13.13+ - @cewald (#4249)
- Convert option ids to string while comparing them in `getProductConfiguration` - @gibkigonzo (#4484)
- change value to number in price filter - @gibkigonzo (#4478)

### Changed / Improved

- Optimized `translation.processor` to process only enabled locale CSV files - @pkarw (#3950)
- Remove commit register mapping - @gibkigonzo (#3875)
- Improved method `findConfigurableChildAsync` - find variant with lowest price - @gibkigonzo (#3939)
- Removed `product/loadConfigurableAttributes` calls - @andrzejewsky (#3336)
- Removed unused locales in disabled multistore - @gibkigonzo (#4072)
- Optimized attributes loading - @andrzejewsky (#3948)
- Cart optimization can now be used regardless if entity optimization is enabled - @juho-jaakkola (#4198)
- Improve typescript support for test utils - @resubaka (#4067)
- Removed `product/loadConfigurableAttributes` calls - @andrzejewsky, @gibkigonzo (#3336)
- Disable `mapFallback` url by default - @gibkigonzo(#4092)
- Include token in pricing sync - @carlokok (#4156)
- Move 'graphql' search adapter from core to src (deprecated) - @gibkigonzo (#4214)
- Homepage, new products query, uses now `new` attribute - @mdanilwoicz
- Refactor product module, more info in upgrade notes- @gibkigonzo (#3952, #4459)
- Move default theme to separate repository https://github.com/DivanteLtd/vsf-default - @gibkigonzo (#4255)
- add two numbers after dot to price by default, calculate default price for bundle or grouped main product, update typing, add fallback to attribute options - @gibkigonzo (#4476)
- udpate yarn and filter shipping methods for instant checkout - @gibkigonzo (#4480)
- add attribute metadata search query, add parentId - @gibkigonzo (#4491)

## [1.11.4] - 2020.05.26

### Added
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
Already a JavaScript/Vue.js developer? Pick an issue, push a pull request (PR) and instantly become a member of the vue-storefront contributors community.
We've marked some issues as "Easy first pick" to make it easier for newcomers to begin!

You can start a ready-to-code development environment in your browser, by clicking the button below:

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)

Thank you for your interest in, and engagement!

Before you type an issue please read about out [release lifecycle](https://docs.vuestorefront.io/guide/basics/release-cycle.html).
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<a href="https://github.com/DivanteLtd/vue-storefront"><img src="https://img.shields.io/badge/stable%20branch-master-blue.svg" alt="Branch stable"></a>
<a href="https://github.com/DivanteLtd/vue-storefront/tree/develop"><img src="https://img.shields.io/badge/dev%20branch-develop-blue.svg" alt="Branch Develop"></a>
<a href="https://slack.vuestorefront.io">![Branch Develop](https://img.shields.io/badge/community%20chat-slack-FF1493.svg)</a>
[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/from-referrer/)

Vue Storefront is a standalone PWA storefront for your eCommerce, possible to connect with any eCommerce backend (eg. Magento, <a href="https://github.com/DivanteLtd/coreshop-vsbridge">Pimcore/CoreShop</a>, [BigCommerce](https://github.com/DivanteLtd/bigcommerce2vuestorefront), Prestashop or Shopware) through the API.

Expand Down
114 changes: 108 additions & 6 deletions config/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,20 @@
"config": {}
}
},
"initialResources": [
{
"filters": ["vsf-newsletter-modal", "vsf-languages-modal", "vsf-layout-empty", "vsf-layout-minimal", "vsf-order-confirmation", "vsf-search-panel"],
"type": "script",
"onload": true,
"rel": "prefetch"
},
{
"filters": ["vsf-category", "vsf-home", "vsf-not-found", "vsf-error", "vsf-product", "vsf-cms", "vsf-checkout", "vsf-compare", "vsf-my-account", "vsf-static", "vsf-reset-password"],
"type": "script",
"onload": true,
"rel": "prefetch"
}
],
"staticPages": {
"updateOnRequest": true,
"destPath": "static"
Expand All @@ -91,7 +105,8 @@
"port": 8080
},
"api": {
"url": "http://localhost:8080"
"url": "http://localhost:8080",
"saveBandwidthOverCache": true
},
"elasticsearch": {
"httpAuth": "",
Expand Down Expand Up @@ -284,12 +299,14 @@
"is_comparable",
"options",
"tier_prices"
]
],
"loadByAttributeMetadata": false
},
"productList": {
"sort": "updated_at:desc",
"includeFields": [
"activity",
"configurable_children.attributes",
"configurable_children.id",
"configurable_children.final_price",
"configurable_children.color",
Expand Down Expand Up @@ -328,18 +345,37 @@
"*small_image"
],
"excludeFields": [
"attribute_set_id",
"configurable_options",
"description",
"sgn",
"*.sgn",
"msrp_display_actual_price_type",
"*.msrp_display_actual_price_type",
"required_options"
"required_options",
"media_gallery",
"stock.use_config_min_qty",
"stock.use_config_notify_stock_qty",
"stock.stock_id",
"stock.use_config_backorders",
"stock.use_config_enable_qty_inc",
"stock.enable_qty_increments",
"stock.use_config_manage_stock",
"stock.use_config_min_sale_qty",
"stock.notify_stock_qty",
"stock.use_config_max_sale_qty",
"stock.use_config_max_sale_qty",
"stock.qty_increments",
"stock.stock_status_changed_auto",
"stock.show_default_notification_message",
"stock.use_config_qty_increments",
"stock.is_decimal_divided"
]
},
"productListWithChildren": {
"includeFields": [
"activity",
"configurable_children.attributes",
"configurable_children.image",
"configurable_children.sku",
"configurable_children.price",
Expand Down Expand Up @@ -380,12 +416,30 @@
"url_key"
],
"excludeFields": [
"attribute_set_id",
"description",
"sgn",
"*.sgn",
"msrp_display_actual_price_type",
"*.msrp_display_actual_price_type",
"required_options"
"required_options",
"media_gallery",
"stock.use_config_min_qty",
"stock.use_config_notify_stock_qty",
"stock.stock_id",
"stock.use_config_backorders",
"stock.use_config_enable_qty_inc",
"stock.enable_qty_increments",
"stock.use_config_manage_stock",
"stock.use_config_min_sale_qty",
"stock.notify_stock_qty",
"stock.use_config_max_sale_qty",
"stock.use_config_max_sale_qty",
"stock.qty_increments",
"stock.stock_status_changed_auto",
"stock.show_default_notification_message",
"stock.use_config_qty_increments",
"stock.is_decimal_divided"
]
},
"review": {
Expand Down Expand Up @@ -519,6 +573,34 @@
"disablePersistentAttributesCache": false
},
"products": {
"fieldsToCompact": {
"minimal_price": "mp",
"has_options": "ho",
"url_key": "u",
"status": "s",
"required_options": "ro",
"name": "nm",
"tax_class_id": "tci",
"description": "desc",
"minimal_regular_price": "mrp",
"final_price": "fp",
"price": "p",
"special_price": "sp",
"original_final_price": "ofp",
"original_price": "op",
"original_special_price": "osp",
"final_price_incl_tax": "fpit",
"original_price_incl_tax": "opit",
"price_incl_tax": "pit",
"special_price_incl_tax": "spit",
"final_price_tax": "fpt",
"price_tax": "pt",
"special_price_tax": "spt",
"original_price_tax": "opt",
"image": "i",
"small_image": "si",
"thumbnail": "t"
},
"disablePersistentProductsCache": true,
"useMagentoUrlKeys": true,
"setFirstVarianAsDefaultInURL": false,
Expand All @@ -529,6 +611,7 @@
"listOutOfStockProducts": true,
"preventConfigurableChildrenDirectAccess": true,
"alwaysSyncPlatformPricesOver": false,
"alwaysSyncPricesClientSide": false,
"clearPricesBeforePlatformSync": false,
"waitForPlatformSync": false,
"setupVariantByAttributeCode": true,
Expand Down Expand Up @@ -625,9 +708,11 @@
},
"users": {
"autoRefreshTokens": true,
"loginAfterCreatePassword": true,
"endpoint": "/api/user",
"history_endpoint": "/api/user/order-history?token={{token}}&pageSize={{pageSize}}&currentPage={{currentPage}}",
"resetPassword_endpoint": "/api/user/reset-password",
"createPassword_endpoint": "http://localhost:8080/api/user/create-password",
"changePassword_endpoint": "/api/user/change-password?token={{token}}",
"login_endpoint": "/api/user/login",
"create_endpoint": "/api/user/create",
Expand Down Expand Up @@ -688,6 +773,9 @@
"defaultLocale": "en-US",
"currencyCode": "USD",
"currencySign": "$",
"currencyDecimal": "",
"currencyGroup": "",
"fractionDigits": 2,
"priceFormat": "{sign}{amount}",
"dateFormat": "HH:mm D/M/YYYY",
"fullCountryName": "United States",
Expand Down Expand Up @@ -756,8 +844,8 @@
"newProducts": {
"filter": [
{
"key": "category.name",
"value": { "eq": "Tees" }
"key": "new",
"value": { "eq": 1 }
}
]
},
Expand All @@ -769,5 +857,19 @@
}
]
}
},
"urlModule": {
"enableMapFallbackUrl": false,
"endpoint": "/api/url",
"map_endpoint": "/api/url/map"
},
"fastly": {
"enabled":false
},
"nginx": {
"enabled":false
},
"varnish": {
"enabled":false
}
}
14 changes: 11 additions & 3 deletions core/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ import { enabledModules } from './modules-entry'
import globalConfig from 'config'
import { injectReferences } from '@vue-storefront/core/lib/modules'
import { coreHooksExecutors } from '@vue-storefront/core/hooks'
import { registerClientModules } from 'src/modules/client';
import { registerClientModules } from 'src/modules/client'
import initialStateFactory from '@vue-storefront/core/helpers/initialStateFactory'
import { createRouter, createRouterProxy } from '@vue-storefront/core/helpers/router';
import { createRouter, createRouterProxy } from '@vue-storefront/core/helpers/router'
import { checkForIntlPolyfill } from '@vue-storefront/i18n/intl'

const stateFactory = initialStateFactory(store.state)

Expand All @@ -49,7 +50,12 @@ const createApp = async (ssrContext, config, storeCode = null): Promise<{app: Vu
store.state.__DEMO_MODE__ = (config.demomode === true)
if (ssrContext) {
// @deprecated - we shouldn't share server context between requests
Vue.prototype.$ssrRequestContext = { output: { cacheTags: ssrContext.output.cacheTags } }
Vue.prototype.$ssrRequestContext = {
output: {
cacheTags: ssrContext.output.cacheTags
},
userAgent: ssrContext.server.request.headers['user-agent']
}

Vue.prototype.$cacheTags = ssrContext.output.cacheTags
}
Expand Down Expand Up @@ -101,6 +107,8 @@ const createApp = async (ssrContext, config, storeCode = null): Promise<{app: Vu
registerModules(enabledModules, appContext)
registerTheme(globalConfig.theme, app, routerProxy, store, globalConfig, ssrContext)

await checkForIntlPolyfill(storeView)

coreHooksExecutors.afterAppInit()
// @deprecated from 2.0
EventBus.$emit('application-after-init', app)
Expand Down
Loading

0 comments on commit c80a135

Please sign in to comment.