diff --git a/CHANGELOG.md b/CHANGELOG.md
index 49d48c1329..99522e57d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,56 @@ All notable changes to this project will be documented in this file. The format
This project does NOT adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and major versions of this project denote compatibility with Sitecore Platform versions. Refer to the "Headless Services" section in the [Sitecore modules compatibility table](https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB1000576) or the [Headless Rendering download page](https://dev.sitecore.net/Downloads/Sitecore_Headless_Rendering.aspx) for more details on versioning.
+## 20.3.2
+
+### ๐ Bug Fixes
+
+* `[sitecore-jss]` Handle null items in graphql layout service ([#1771](https://github.com/Sitecore/jss/pull/1771))
+
+## 20.3.1
+
+### ๐ Bug Fixes
+
+* `[sitecore-jss]` Export _ClientError_ type ([#1738](https://github.com/Sitecore/jss/pull/1738))
+* `[templates/nextjs]` `[sitecore-jss-nextjs]` Better error handling for component-level data fetching ([#1586](https://github.com/Sitecore/jss/pull/1586))
+* `[sitecore-jss]` Enable the Layout, dictionary and Error Page service to use custom `retryStrategy`. ([#1749](https://github.com/Sitecore/jss/pull/1749))
+
+
+## 20.3.0
+
+### ๐ New Features & Improvements
+
+* `[sitecore-jss]` Retry policy to handle transient network errors. Users can pass `retryStrategy` to configure custom retry config to the services. They can customize the error codes and the number of retries. It consist of two functions shouldRetry and getDelay. To determine the back-off time, we employ an exponential strategy with a default factor of 2.([#1731](https://github.com/Sitecore/jss/pull/1731)) ([#1733](https://github.com/Sitecore/jss/pull/1733))
+
+## 20.2.3
+
+### ๐ Bug Fixes
+
+* `[sitecore-jss-react]` `[sitecore-jss-nextjs]` Link component does not add anchor to the internal links ([#1226](https://github.com/Sitecore/jss/pull/1226))
+
+## 20.2.2
+
+### ๐งน Chores
+
+* `[create-sitecore-jss]` This is a maintenance release to fix package versioning in JSS templates.
+
+## 20.2.1
+
+### ๐งน Chores
+
+* `[create-sitecore-jss]` This is a maintenance release to fix package versioning in JSS templates.
+
+## 20.2.0
+
+### ๐ New Features & Improvements
+
+* `[sitecore-jss]` `[templates/nextjs]` GraphQL Layout and Dictionary services can handle endpoint rate limits through retryer functionality in GraphQLClient. To prevent SSG builds from failing and enable multiple retries, set retry amount in lib/dictionary-service-factory and lib/layout-service-factory ([commit](https://github.com/Sitecore/jss/pull/1631/commits/d39d74ad7bbeddcb66b7de4377070e178851abc5))([#1631](https://github.com/Sitecore/jss/pull/1631))
+* `[sitecore-jss-nextjs]` Reduce the amount of Edge API calls during fetch getStaticPaths ([commit](https://github.com/Sitecore/jss/pull/1631/commits/cd2771b256ac7c38818ee6bea48278958ac455ca))([#1631](https://github.com/Sitecore/jss/pull/1631))
+
+### ๐ Bug Fixes
+
+* `[sitecore-jss-proxy]` Setting "followRedirects" to "true" breaks HEAD requests ([#1630](https://github.com/Sitecore/jss/pull/1635))
+
## 20.1.0
### ๐ New Features & Improvements
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index b0be29309d..a52f636ff6 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -83,7 +83,7 @@ steps:
#
- script: |
echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > .npmrc
- $(npm bin)/lerna publish from-git --canary --pre-dist-tag ver20 --preid canary --no-verify-access --yes
+ $(npm bin)/lerna publish from-git --canary --pre-dist-tag ver20-canary --preid canary --no-verify-access --yes
yarn install --no-immutable --mode=update-lockfile
git add yarn.lock
git commit -m "update yarn.lock [skip ci]"
diff --git a/lerna.json b/lerna.json
index d6416fe528..885d7df546 100644
--- a/lerna.json
+++ b/lerna.json
@@ -4,7 +4,7 @@
"packages/*",
"samples/*"
],
- "version": "20.1.0",
+ "version": "20.3.3",
"npmClient": "yarn",
"useWorkspaces": true
}
diff --git a/packages/create-sitecore-jss/package.json b/packages/create-sitecore-jss/package.json
index fa2577721e..b28305184b 100644
--- a/packages/create-sitecore-jss/package.json
+++ b/packages/create-sitecore-jss/package.json
@@ -1,6 +1,6 @@
{
"name": "create-sitecore-jss",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "Sitecore JSS initializer",
"bin": "./dist/index.js",
"scripts": {
diff --git a/packages/create-sitecore-jss/src/initializers/nextjs/index.ts b/packages/create-sitecore-jss/src/initializers/nextjs/index.ts
index 84efdb8749..c9f945008d 100644
--- a/packages/create-sitecore-jss/src/initializers/nextjs/index.ts
+++ b/packages/create-sitecore-jss/src/initializers/nextjs/index.ts
@@ -43,7 +43,8 @@ export default class NextjsInitializer implements Initializer {
value: 'nextjs-styleguide',
},
{
- name: 'nextjs-sxa - Includes example components and setup for working using SXA',
+ name:
+ 'nextjs-sxa - Includes example components and setup for SXA Headless (only compatible with Sitecore XM Cloud)',
value: 'nextjs-sxa',
},
],
diff --git a/packages/create-sitecore-jss/src/templates/angular/package.json b/packages/create-sitecore-jss/src/templates/angular/package.json
index 39a22916b3..7b6ac8867c 100644
--- a/packages/create-sitecore-jss/src/templates/angular/package.json
+++ b/packages/create-sitecore-jss/src/templates/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "<%- appName %>",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "Application utilizing Sitecore JavaScript Services and Angular (angular-cli).",
"config": {
"appName": "<%- appName %>",
@@ -63,8 +63,8 @@
"@apollo/client": "^3.3.12",
"@ngx-translate/core": "~13.0.0",
"@ngx-translate/http-loader": "~6.0.0",
- "@sitecore-jss/sitecore-jss": "^20.1.0",
- "@sitecore-jss/sitecore-jss-angular": "^20.1.0",
+ "@sitecore-jss/sitecore-jss": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-angular": "^20.3.3",
"apollo-angular": "~2.4.0",
"bootstrap": "^4.3.1",
"core-js": "~3.9.1",
@@ -86,9 +86,9 @@
"@angular/cli": "~11.2.5",
"@angular/compiler-cli": "~11.2.6",
"@angular/language-service": "~11.2.6",
- "@sitecore-jss/sitecore-jss-angular-schematics": "^20.1.0",
- "@sitecore-jss/sitecore-jss-cli": "^20.1.0",
- "@sitecore-jss/sitecore-jss-dev-tools": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-angular-schematics": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-cli": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-dev-tools": "^20.3.3",
"@types/isomorphic-fetch": "0.0.35",
"@types/jasmine": "~3.6.7",
"@types/jasminewd2": "~2.0.8",
diff --git a/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json b/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json
index 57dab68990..13e9ddeef9 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json
+++ b/packages/create-sitecore-jss/src/templates/nextjs-styleguide/package.json
@@ -4,11 +4,11 @@
"nprogress": "~0.2.0"
},
"devDependencies": {
- "@sitecore-jss/sitecore-jss-dev-tools": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-dev-tools": "^20.3.3",
"@types/nprogress": "^0.2.0"
},
"scripts": {
"start": "cross-env-shell JSS_MODE=disconnected \"npm-run-all --serial bootstrap --parallel next:dev start:disconnected-proxy start:watch-components\"",
"start:disconnected-proxy": "ts-node --project tsconfig.scripts.json ./scripts/disconnected-mode-proxy.ts"
}
-}
\ No newline at end of file
+}
diff --git a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/lib/page-props-factory/plugins/error-pages.ts b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/lib/page-props-factory/plugins/error-pages.ts
index ffe06eb737..af84245991 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/lib/page-props-factory/plugins/error-pages.ts
+++ b/packages/create-sitecore-jss/src/templates/nextjs-sxa/src/lib/page-props-factory/plugins/error-pages.ts
@@ -14,6 +14,10 @@ class ErrorPagesPlugin implements Plugin {
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
language: props.locale,
+ retries:
+ (process.env.GRAPH_QL_SERVICE_RETRIES &&
+ parseInt(process.env.GRAPH_QL_SERVICE_RETRIES, 10)) ||
+ 0,
});
if (props.notFound) {
diff --git a/packages/create-sitecore-jss/src/templates/nextjs/.env b/packages/create-sitecore-jss/src/templates/nextjs/.env
index ccc7ecd3da..81bd93b76b 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs/.env
+++ b/packages/create-sitecore-jss/src/templates/nextjs/.env
@@ -36,6 +36,9 @@ SITECORE_API_HOST=
# the resolved Sitecore API hostname + the `graphQLEndpointPath` defined in your `package.json`.
GRAPH_QL_ENDPOINT=
+# How many times should GraphQL Layout, Dictionary and ErrorPages services retry a fetch when endpoint rate limit is reached
+GRAPH_QL_SERVICE_RETRIES=0
+
# The way in which layout and dictionary data is fetched from Sitecore
FETCH_WITH=<%- fetchWith %>
diff --git a/packages/create-sitecore-jss/src/templates/nextjs/package.json b/packages/create-sitecore-jss/src/templates/nextjs/package.json
index 52e58752ee..1f9d695034 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs/package.json
+++ b/packages/create-sitecore-jss/src/templates/nextjs/package.json
@@ -1,7 +1,7 @@
{
"name": "<%- appName %>",
"description": "Application utilizing Sitecore JavaScript Services and Next.js",
- "version": "20.1.0",
+ "version": "20.3.3",
"private": true,
"config": {
"appName": "<%- appName %>",
@@ -29,7 +29,7 @@
},
"license": "Apache-2.0",
"dependencies": {
- "@sitecore-jss/sitecore-jss-nextjs": "ver20",
+ "@sitecore-jss/sitecore-jss-nextjs": "^20.3.3",
"graphql": "~15.8.0",
"graphql-tag": "^2.11.0",
"next": "^12.2.4",
@@ -45,7 +45,7 @@
"@graphql-codegen/typescript-operations": "^1.17.9",
"@graphql-codegen/typescript-resolvers": "^1.17.10",
"@graphql-typed-document-node/core": "^3.1.0",
- "@sitecore-jss/sitecore-jss-cli": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-cli": "^20.3.3",
"@types/node": "^14.6.4",
"@types/react": "^17.0.15",
"@types/react-dom": "^17.0.9",
diff --git a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/dictionary-service-factory.ts b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/dictionary-service-factory.ts
index 25616ccafb..8bd65f4ef0 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/dictionary-service-factory.ts
+++ b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/dictionary-service-factory.ts
@@ -18,6 +18,20 @@ export class DictionaryServiceFactory {
otherwise, the service will attempt to figure out the root item for the current JSS App using GraphQL and app name.
rootItemId: '{GUID}'
*/
+ /*
+ GraphQL endpoint may reach its rate limit with the amount of requests it receives and throw a rate limit error.
+ GraphQL Dictionary and Layout Services can handle rate limit errors from server and attempt a retry on requests.
+ For this, specify the number of 'retries' the GraphQL client will attempt.
+ It will only try the request once by default.
+
+ Additionally, you have the flexibility to customize the retry strategy by passing a 'retryStrategy'.
+ By default it uses the `DefaultRetryStrategy` with exponential back-off factor of 2 for error codes 429,
+ 502, 503, 504, 520, 521, 522, 523, and 524. You can use this class or your own implementation of `RetryStrategy`.
+ */
+ retries:
+ (process.env.GRAPH_QL_SERVICE_RETRIES &&
+ parseInt(process.env.GRAPH_QL_SERVICE_RETRIES, 10)) ||
+ 0,
})
: new RestDictionaryService({
apiHost: config.sitecoreApiHost,
diff --git a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/layout-service-factory.ts b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/layout-service-factory.ts
index a3e466ae31..584b2a37eb 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/layout-service-factory.ts
+++ b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/layout-service-factory.ts
@@ -12,6 +12,20 @@ export class LayoutServiceFactory {
endpoint: config.graphQLEndpoint,
apiKey: config.sitecoreApiKey,
siteName: config.jssAppName,
+ /*
+ GraphQL endpoint may reach its rate limit with the amount of requests it receives and throw a rate limit error.
+ GraphQL Dictionary and Layout Services can handle rate limit errors from server and attempt a retry on requests.
+ For this, specify the number of 'retries' the GraphQL client will attempt.
+ It will only try the request once by default.
+
+ Additionally, you have the flexibility to customize the retry strategy by passing a 'retryStrategy'.
+ By default it uses the `DefaultRetryStrategy` with exponential back-off factor of 2 for error codes 429,
+ 502, 503, 504, 520, 521, 522, 523, and 524. You can use this class or your own implementation of `RetryStrategy`.
+ */
+ retries:
+ (process.env.GRAPH_QL_SERVICE_RETRIES &&
+ parseInt(process.env.GRAPH_QL_SERVICE_RETRIES, 10)) ||
+ 0,
})
: new RestLayoutService({
apiHost: config.sitecoreApiHost,
diff --git a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/page-props-factory/plugins/component-props.ts b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/page-props-factory/plugins/component-props.ts
index e5b91ec8e7..c66f61c226 100644
--- a/packages/create-sitecore-jss/src/templates/nextjs/src/lib/page-props-factory/plugins/component-props.ts
+++ b/packages/create-sitecore-jss/src/templates/nextjs/src/lib/page-props-factory/plugins/component-props.ts
@@ -1,4 +1,4 @@
-import { ComponentPropsService } from '@sitecore-jss/sitecore-jss-nextjs';
+import { ComponentPropsService, ComponentPropsError } from '@sitecore-jss/sitecore-jss-nextjs';
import { SitecorePageProps } from 'lib/page-props';
import { GetServerSidePropsContext, GetStaticPropsContext } from 'next';
import { componentModule } from 'temp/componentFactory';
@@ -31,6 +31,20 @@ class ComponentPropsPlugin implements Plugin {
});
}
+ const errors = Object.keys(props.componentProps)
+ .map(id => {
+ const component = props.componentProps[id] as ComponentPropsError;
+
+ return component.error
+ ? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
+ : '';
+ })
+ .join('');
+
+ if (errors.length) {
+ throw new Error(errors);
+ }
+
return props;
}
}
diff --git a/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json b/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json
index 73ed9142be..8c0af8f09c 100644
--- a/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json
+++ b/packages/create-sitecore-jss/src/templates/node-headless-ssr-experience-edge/package.json
@@ -1,6 +1,6 @@
{
"name": "node-headless-ssr-experience-edge-sample",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "Node server-side-rendering sample for running JSS apps under Node hosting using Experience Edge",
"main": "index.js",
"scripts": {
@@ -24,7 +24,7 @@
"homepage": "https://jss.sitecore.com",
"license": "Apache-2.0",
"dependencies": {
- "@sitecore-jss/sitecore-jss": "^20.1.0",
+ "@sitecore-jss/sitecore-jss": "^20.3.3",
"compression": "^1.7.4",
"express": "^4.17.1"
},
diff --git a/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json b/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json
index 0d88f21323..5bbff09872 100644
--- a/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json
+++ b/packages/create-sitecore-jss/src/templates/node-headless-ssr-proxy/package.json
@@ -1,6 +1,6 @@
{
"name": "node-headless-ssr-proxy-sample",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "Node server-side-rendering proxy sample for running JSS apps under Node hosting",
"main": "dist/index.js",
"scripts": {
@@ -24,8 +24,8 @@
"homepage": "https://jss.sitecore.com",
"license": "Apache-2.0",
"dependencies": {
- "@sitecore-jss/sitecore-jss": "^20.1.0",
- "@sitecore-jss/sitecore-jss-proxy": "^20.1.0",
+ "@sitecore-jss/sitecore-jss": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-proxy": "^20.3.3",
"agentkeepalive": "^4.1.3",
"compression": "~1.7.3",
"express": "~4.16.4",
diff --git a/packages/create-sitecore-jss/src/templates/react-native/package.json b/packages/create-sitecore-jss/src/templates/react-native/package.json
index 7a53aad6f1..fcb1289beb 100644
--- a/packages/create-sitecore-jss/src/templates/react-native/package.json
+++ b/packages/create-sitecore-jss/src/templates/react-native/package.json
@@ -1,6 +1,6 @@
{
"name": "<%- appName %>",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "A basic React Native app utilizing Sitecore JavaScript Services",
"config": {
"appName": "<%- appName %>",
@@ -27,7 +27,7 @@
},
"dependencies": {
"@react-native-community/masked-view": "^0.1.10",
- "@sitecore-jss/sitecore-jss-react-native": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-react-native": "^20.3.3",
"prop-types": "^15.6.0",
"react": "16.13.1",
"react-native": "^0.63.4",
@@ -41,8 +41,8 @@
},
"private": true,
"devDependencies": {
- "@sitecore-jss/sitecore-jss-cli": "^20.1.0",
- "@sitecore-jss/sitecore-jss-dev-tools": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-cli": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-dev-tools": "^20.3.3",
"babel-core": "^6.26.0",
"babel-eslint": "^8.2.1",
"babel-plugin-inline-replace-variables": "^1.3.1",
diff --git a/packages/create-sitecore-jss/src/templates/react/package.json b/packages/create-sitecore-jss/src/templates/react/package.json
index fdccaa4790..c323ca6352 100644
--- a/packages/create-sitecore-jss/src/templates/react/package.json
+++ b/packages/create-sitecore-jss/src/templates/react/package.json
@@ -1,7 +1,7 @@
{
"name": "<%- appName %>",
"description": "Application utilizing Sitecore JavaScript Services and React (create-react-app).",
- "version": "20.1.0",
+ "version": "20.3.3",
"private": true,
"config": {
"appName": "<%- appName %>",
@@ -32,7 +32,7 @@
"license": "Apache-2.0",
"dependencies": {
"@apollo/client": "^3.5.6",
- "@sitecore-jss/sitecore-jss-react": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-react": "^20.3.3",
"axios": "^0.21.1",
"bootstrap": "^4.3.1",
"cross-fetch": "^3.0.6",
@@ -54,9 +54,9 @@
"@babel/core": "^7.16.0",
"@babel/preset-env": "^7.10.4",
"@babel/register": "~7.6.2",
- "@sitecore-jss/sitecore-jss-cli": "^20.1.0",
- "@sitecore-jss/sitecore-jss-dev-tools": "^20.1.0",
- "@sitecore-jss/sitecore-jss-rendering-host": "^20.1.0",
+ "@sitecore-jss/sitecore-jss-cli": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-dev-tools": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-rendering-host": "^20.3.3",
"babel-eslint": "^10.1.0",
"babel-loader": "8.1.0",
"babel-preset-react-app": "~9.0.2",
diff --git a/packages/create-sitecore-jss/src/templates/vue/.eslintrc.js b/packages/create-sitecore-jss/src/templates/vue/.eslintrc.js
index 7b987d45ca..2fa21774d6 100644
--- a/packages/create-sitecore-jss/src/templates/vue/.eslintrc.js
+++ b/packages/create-sitecore-jss/src/templates/vue/.eslintrc.js
@@ -8,8 +8,11 @@ module.exports = {
rules: {
'no-console': 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+ 'vue/multi-word-component-names': 'off',
},
parserOptions: {
- parser: 'babel-eslint',
+ parser: '@babel/eslint-parser',
+ ecmaVersion: 8,
+ requireConfigFile: false,
},
};
diff --git a/packages/create-sitecore-jss/src/templates/vue/package.json b/packages/create-sitecore-jss/src/templates/vue/package.json
index 3bd5f9674a..2e5dbf1248 100644
--- a/packages/create-sitecore-jss/src/templates/vue/package.json
+++ b/packages/create-sitecore-jss/src/templates/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "<%- appName %>",
- "version": "20.1.0",
+ "version": "20.3.3",
"description": "Application utilizing Sitecore JavaScript Services and Vue (vue-cli).",
"private": true,
"config": {
@@ -48,43 +48,46 @@
"dependencies": {
"@apollo/client": "^3.5.6",
"@panter/vue-i18next": "~0.15.1",
- "@sitecore-jss/sitecore-jss-vue": "^20.1.0",
- "@vue/apollo-composable": "^4.0.0-alpha.12",
+ "@sitecore-jss/sitecore-jss-vue": "^20.3.3",
+ "@vue/apollo-composable": "4.0.0-beta.2",
"@vue/apollo-option": "^4.0.0-alpha.11",
"@vue/apollo-ssr": "^4.0.0-alpha.11",
"@vue/server-renderer": "^3.0.11",
"axios": "^0.21.1",
"bootstrap": "^4.3.1",
- "cross-fetch": "~2.2.3",
+ "cross-fetch": "~3.1.5",
"graphql": "^15.5.0",
"js-sha256": "^0.9.0",
"register-service-worker": "~1.6.2",
"serialize-javascript": "^5.0.1",
"vue": "^v3.1.0-beta.6",
- "vue-i18n": "^9.1.6",
- "vue-meta": "3.0.0-alpha.6",
- "vue-router": "^4.0.8"
+ "vue-i18n": "9.1.10",
+ "vue-meta": "3.0.0-alpha.10",
+ "vue-router": "4.0.16"
},
"devDependencies": {
- "@babel/register": "7.6.2",
- "@sitecore-jss/sitecore-jss-cli": "^20.1.0",
- "@sitecore-jss/sitecore-jss-dev-tools": "^20.1.0",
- "@vue/cli-plugin-babel": "~4.5.13",
- "@vue/cli-plugin-eslint": "~4.5.13",
- "@vue/cli-service": "~4.5.13",
+ "@babel/register": "7.18.9",
+ "@babel/eslint-parser": "^7.19.1",
+ "@sitecore-jss/sitecore-jss-cli": "^20.3.3",
+ "@sitecore-jss/sitecore-jss-dev-tools": "^20.3.3",
+ "@vue/cli-plugin-babel": "~5.0.8",
+ "@vue/cli-plugin-eslint": "~5.0.8",
+ "@vue/cli-service": "~5.0.8",
"@vue/compiler-sfc": "^3.0.11",
- "@vue/eslint-config-prettier": "~5.0.0",
+ "@vue/eslint-config-prettier": "~7.0.0",
"babel-eslint": "~10.0.3",
"chokidar": "~3.1.1",
"constant-case": "^3.0.4",
"cross-env": "~6.0.0",
- "eslint": "^6.8.0",
- "eslint-plugin-prettier": "^3.1.3",
- "eslint-plugin-vue": "~7.9.0",
+ "eslint": "^8.32.0",
+ "eslint-plugin-prettier": "^5.0.0",
+ "eslint-plugin-vue": "~9.9.0",
"eslint-plugin-yaml": "^0.2.0",
"graphql-tag": "^2.12.4",
"html-loader": "~0.5.5",
"npm-run-all": "~4.1.5",
- "null-loader": "~3.0.0"
+ "null-loader": "~4.0.0",
+ "prettier": "^3.0.0",
+ "tslib": "2.5.1"
}
}
diff --git a/packages/create-sitecore-jss/src/templates/vue/src/components/GraphQL/GraphQL-SSRDemo.vue b/packages/create-sitecore-jss/src/templates/vue/src/components/GraphQL/GraphQL-SSRDemo.vue
index 5c94bb1532..2f1372ffb3 100644
--- a/packages/create-sitecore-jss/src/templates/vue/src/components/GraphQL/GraphQL-SSRDemo.vue
+++ b/packages/create-sitecore-jss/src/templates/vue/src/components/GraphQL/GraphQL-SSRDemo.vue
@@ -13,22 +13,23 @@
NOTE: when using the useQuery prefetch option,
GraphQL queries are executed prior to app rendering.
-
Expected behavior for this component:
- Connected Mode: the GraphQL query will execute in the browser after component load.
- The prefetch option will not execute.
+ Connected Mode: the GraphQL query will execute in the browser after
+ component load. The prefetch option will not execute.
+
+
+ Integrated Mode: the prefetch option of the GraphQL query will
+ execute on the server and output will be rendered in the markup generated by the app on the
+ server. After the initial load / render from the server, you can manage the query like a
+ client-side query.
- Integrated Mode: the prefetch option of the GraphQL query will execute on the server
- and output will be rendered in the markup generated by the app on the server. After the initial load / render from
- the server, you can manage the query like a client-side query.
+ Disconnected Mode: GraphQL requires connected mode, headless connected
+ mode, or integrated mode to work.
-
Disconnected Mode: GraphQL requires connected mode, headless
- connected mode, or integrated mode to work.