@sitecore-jss/sitecore-jss-nextjs 22.4.0-canary.1 → 22.4.0-canary.3

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.
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.EditingRenderMiddleware = exports.MetadataHandler = exports.isEditingMetadataPreviewData = exports.ChromesHandler = void 0;
12
+ exports.EditingRenderMiddleware = exports.MetadataHandler = exports.isComponentLibraryPreviewData = exports.isEditingMetadataPreviewData = exports.ChromesHandler = void 0;
13
13
  const constants_1 = require("next/constants");
14
14
  const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
15
15
  const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
@@ -184,6 +184,19 @@ const isEditingMetadataPreviewData = (data) => {
184
184
  data.editMode === layout_1.EditMode.Metadata);
185
185
  };
186
186
  exports.isEditingMetadataPreviewData = isEditingMetadataPreviewData;
187
+ /**
188
+ * Type guard for Component Library mode
189
+ * @param {object} data preview data to check
190
+ * @returns true if the data is EditingMetadataPreviewData
191
+ * @see EditingMetadataPreviewData
192
+ */
193
+ const isComponentLibraryPreviewData = (data) => {
194
+ return (typeof data === 'object' &&
195
+ data !== null &&
196
+ 'mode' in data &&
197
+ data.mode === 'library');
198
+ };
199
+ exports.isComponentLibraryPreviewData = isComponentLibraryPreviewData;
187
200
  /**
188
201
  * Handler for the Editing Metadata GET requests.
189
202
  * This handler is responsible for redirecting the request to the page route.
@@ -197,13 +210,18 @@ class MetadataHandler {
197
210
  var _a, _b, _c;
198
211
  const { query } = req;
199
212
  const startTimestamp = Date.now();
200
- const requiredQueryParams = [
213
+ const mode = query.mode;
214
+ const metadataDefaultRequiredParams = ['sc_site', 'sc_itemid', 'sc_lang', 'route', 'mode'];
215
+ const metadataComponentRequiredParams = [
201
216
  'sc_site',
202
217
  'sc_itemid',
218
+ 'sc_renderingId',
219
+ 'sc_datasourceId',
220
+ 'sc_uid',
203
221
  'sc_lang',
204
- 'route',
205
222
  'mode',
206
223
  ];
224
+ const requiredQueryParams = mode === 'library' ? metadataComponentRequiredParams : metadataDefaultRequiredParams;
207
225
  const missingQueryParams = requiredQueryParams.filter((param) => !query[param]);
208
226
  // Validate query parameters
209
227
  if (missingQueryParams.length) {
@@ -212,21 +230,41 @@ class MetadataHandler {
212
230
  html: `<html><body>Missing required query parameters: ${missingQueryParams.join(', ')}</body></html>`,
213
231
  });
214
232
  }
215
- res.setPreviewData({
216
- site: query.sc_site,
217
- itemId: query.sc_itemid,
218
- language: query.sc_lang,
219
- // for sc_variantId we may employ multiple variants (page-layout + component level)
220
- variantIds: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')) || [personalize_1.DEFAULT_VARIANT],
221
- version: query.sc_version,
222
- editMode: layout_1.EditMode.Metadata,
223
- pageState: query.mode,
224
- layoutKind: query.sc_layoutKind,
225
- },
226
- // Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
227
- {
228
- maxAge: 3,
229
- });
233
+ if (mode === 'library') {
234
+ // dedicated route and layout to SSR component library
235
+ query.route = '/component-library/render';
236
+ res.setPreviewData({
237
+ itemId: query.sc_itemid,
238
+ componentUid: query.sc_uid,
239
+ renderingId: query.sc_renderingId,
240
+ language: query.sc_lang,
241
+ site: query.sc_site,
242
+ pageState: layout_1.LayoutServicePageState.Normal,
243
+ mode: 'library',
244
+ dataSourceId: query.sc_datasourceId,
245
+ variant: query.sc_variant || personalize_1.DEFAULT_VARIANT,
246
+ version: query.sc_version,
247
+ }, {
248
+ maxAge: 3,
249
+ });
250
+ }
251
+ else {
252
+ res.setPreviewData({
253
+ site: query.sc_site,
254
+ itemId: query.sc_itemid,
255
+ language: query.sc_lang,
256
+ // for sc_variantId we may employ multiple variants (page-layout + component level)
257
+ variantIds: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')) || [personalize_1.DEFAULT_VARIANT],
258
+ version: query.sc_version,
259
+ editMode: layout_1.EditMode.Metadata,
260
+ pageState: query.mode,
261
+ layoutKind: query.sc_layoutKind,
262
+ },
263
+ // Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
264
+ {
265
+ maxAge: 3,
266
+ });
267
+ }
230
268
  // Cookies with the SameSite=Lax policy set by Next.js setPreviewData function causes CORS issue
231
269
  // when Next.js preview mode is activated, resulting the page to render in normal mode instead.
232
270
  // By replacing it with "SameSite=None; Secure", we ensure cookies are correctly sent with
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EditingConfigMiddleware = exports.FEAASRenderMiddleware = exports.VercelEditingDataCache = exports.editingDataService = exports.ServerlessEditingDataService = exports.BasicEditingDataService = exports.isEditingMetadataPreviewData = exports.EditingRenderMiddleware = exports.EditingDataMiddleware = exports.EditingDataDiskCache = exports.GraphQLEditingService = void 0;
3
+ exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.EditingConfigMiddleware = exports.FEAASRenderMiddleware = exports.VercelEditingDataCache = exports.editingDataService = exports.ServerlessEditingDataService = exports.BasicEditingDataService = exports.isComponentLibraryPreviewData = exports.isEditingMetadataPreviewData = exports.EditingRenderMiddleware = exports.EditingDataMiddleware = exports.EditingDataDiskCache = exports.GraphQLEditingService = void 0;
4
4
  var editing_1 = require("@sitecore-jss/sitecore-jss/editing");
5
5
  Object.defineProperty(exports, "GraphQLEditingService", { enumerable: true, get: function () { return editing_1.GraphQLEditingService; } });
6
6
  var editing_data_cache_1 = require("./editing-data-cache");
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "EditingDataMiddleware", { enumerable: true, get:
10
10
  var editing_render_middleware_1 = require("./editing-render-middleware");
11
11
  Object.defineProperty(exports, "EditingRenderMiddleware", { enumerable: true, get: function () { return editing_render_middleware_1.EditingRenderMiddleware; } });
12
12
  Object.defineProperty(exports, "isEditingMetadataPreviewData", { enumerable: true, get: function () { return editing_render_middleware_1.isEditingMetadataPreviewData; } });
13
+ Object.defineProperty(exports, "isComponentLibraryPreviewData", { enumerable: true, get: function () { return editing_render_middleware_1.isComponentLibraryPreviewData; } });
13
14
  var editing_data_service_1 = require("./editing-data-service");
14
15
  Object.defineProperty(exports, "BasicEditingDataService", { enumerable: true, get: function () { return editing_data_service_1.BasicEditingDataService; } });
15
16
  Object.defineProperty(exports, "ServerlessEditingDataService", { enumerable: true, get: function () { return editing_data_service_1.ServerlessEditingDataService; } });
@@ -20,3 +21,7 @@ var feaas_render_middleware_1 = require("./feaas-render-middleware");
20
21
  Object.defineProperty(exports, "FEAASRenderMiddleware", { enumerable: true, get: function () { return feaas_render_middleware_1.FEAASRenderMiddleware; } });
21
22
  var editing_config_middleware_1 = require("./editing-config-middleware");
22
23
  Object.defineProperty(exports, "EditingConfigMiddleware", { enumerable: true, get: function () { return editing_config_middleware_1.EditingConfigMiddleware; } });
24
+ var layout_1 = require("@sitecore-jss/sitecore-jss/layout");
25
+ Object.defineProperty(exports, "RenderingType", { enumerable: true, get: function () { return layout_1.RenderingType; } });
26
+ Object.defineProperty(exports, "EDITING_COMPONENT_PLACEHOLDER", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_PLACEHOLDER; } });
27
+ Object.defineProperty(exports, "EDITING_COMPONENT_ID", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_ID; } });
package/dist/cjs/index.js CHANGED
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.FEaaSComponent = exports.EditFrame = exports.DateField = exports.Text = exports.Image = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.DisconnectedSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.mediaApi = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.MemoryCacheClient = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.AxiosDataFetcher = exports.constants = void 0;
27
- exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = void 0;
26
+ exports.EditFrame = exports.DateField = exports.Text = exports.Image = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.DisconnectedSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.mediaApi = exports.RestComponentLayoutService = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.MemoryCacheClient = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.AxiosDataFetcher = exports.constants = void 0;
27
+ exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.ComponentLibraryLayout = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = void 0;
28
28
  var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
29
29
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
30
30
  Object.defineProperty(exports, "AxiosDataFetcher", { enumerable: true, get: function () { return sitecore_jss_1.AxiosDataFetcher; } });
@@ -40,6 +40,8 @@ Object.defineProperty(exports, "getChildPlaceholder", { enumerable: true, get: f
40
40
  Object.defineProperty(exports, "getFieldValue", { enumerable: true, get: function () { return layout_1.getFieldValue; } });
41
41
  Object.defineProperty(exports, "getContentStylesheetLink", { enumerable: true, get: function () { return layout_1.getContentStylesheetLink; } });
42
42
  Object.defineProperty(exports, "EditMode", { enumerable: true, get: function () { return layout_1.EditMode; } });
43
+ var editing_1 = require("@sitecore-jss/sitecore-jss/editing");
44
+ Object.defineProperty(exports, "RestComponentLayoutService", { enumerable: true, get: function () { return editing_1.RestComponentLayoutService; } });
43
45
  var media_1 = require("@sitecore-jss/sitecore-jss/media");
44
46
  Object.defineProperty(exports, "mediaApi", { enumerable: true, get: function () { return media_1.mediaApi; } });
45
47
  var tracking_1 = require("@sitecore-jss/sitecore-jss/tracking");
@@ -99,6 +101,7 @@ Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: t
99
101
  Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return sitecore_jss_react_1.BYOCComponent; } });
100
102
  Object.defineProperty(exports, "getComponentLibraryStylesheetLinks", { enumerable: true, get: function () { return sitecore_jss_react_1.getComponentLibraryStylesheetLinks; } });
101
103
  Object.defineProperty(exports, "File", { enumerable: true, get: function () { return sitecore_jss_react_1.File; } });
104
+ Object.defineProperty(exports, "ComponentLibraryLayout", { enumerable: true, get: function () { return sitecore_jss_react_1.ComponentLibraryLayout; } });
102
105
  Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return sitecore_jss_react_1.DefaultEmptyFieldEditingComponentImage; } });
103
106
  Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return sitecore_jss_react_1.DefaultEmptyFieldEditingComponentText; } });
104
107
  Object.defineProperty(exports, "VisitorIdentification", { enumerable: true, get: function () { return sitecore_jss_react_1.VisitorIdentification; } });
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { STATIC_PROPS_ID, SERVER_PROPS_ID } from 'next/constants';
11
11
  import { AxiosDataFetcher, debug } from '@sitecore-jss/sitecore-jss';
12
- import { EditMode } from '@sitecore-jss/sitecore-jss/layout';
12
+ import { EditMode, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';
13
13
  import { QUERY_PARAM_EDITING_SECRET, EDITING_ALLOWED_ORIGINS, } from '@sitecore-jss/sitecore-jss/editing';
14
14
  import { editingDataService } from './editing-data-service';
15
15
  import { getJssEditingSecret } from '../utils/utils';
@@ -179,6 +179,18 @@ export const isEditingMetadataPreviewData = (data) => {
179
179
  'editMode' in data &&
180
180
  data.editMode === EditMode.Metadata);
181
181
  };
182
+ /**
183
+ * Type guard for Component Library mode
184
+ * @param {object} data preview data to check
185
+ * @returns true if the data is EditingMetadataPreviewData
186
+ * @see EditingMetadataPreviewData
187
+ */
188
+ export const isComponentLibraryPreviewData = (data) => {
189
+ return (typeof data === 'object' &&
190
+ data !== null &&
191
+ 'mode' in data &&
192
+ data.mode === 'library');
193
+ };
182
194
  /**
183
195
  * Handler for the Editing Metadata GET requests.
184
196
  * This handler is responsible for redirecting the request to the page route.
@@ -192,13 +204,18 @@ export class MetadataHandler {
192
204
  var _a, _b, _c;
193
205
  const { query } = req;
194
206
  const startTimestamp = Date.now();
195
- const requiredQueryParams = [
207
+ const mode = query.mode;
208
+ const metadataDefaultRequiredParams = ['sc_site', 'sc_itemid', 'sc_lang', 'route', 'mode'];
209
+ const metadataComponentRequiredParams = [
196
210
  'sc_site',
197
211
  'sc_itemid',
212
+ 'sc_renderingId',
213
+ 'sc_datasourceId',
214
+ 'sc_uid',
198
215
  'sc_lang',
199
- 'route',
200
216
  'mode',
201
217
  ];
218
+ const requiredQueryParams = mode === 'library' ? metadataComponentRequiredParams : metadataDefaultRequiredParams;
202
219
  const missingQueryParams = requiredQueryParams.filter((param) => !query[param]);
203
220
  // Validate query parameters
204
221
  if (missingQueryParams.length) {
@@ -207,21 +224,41 @@ export class MetadataHandler {
207
224
  html: `<html><body>Missing required query parameters: ${missingQueryParams.join(', ')}</body></html>`,
208
225
  });
209
226
  }
210
- res.setPreviewData({
211
- site: query.sc_site,
212
- itemId: query.sc_itemid,
213
- language: query.sc_lang,
214
- // for sc_variantId we may employ multiple variants (page-layout + component level)
215
- variantIds: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')) || [DEFAULT_VARIANT],
216
- version: query.sc_version,
217
- editMode: EditMode.Metadata,
218
- pageState: query.mode,
219
- layoutKind: query.sc_layoutKind,
220
- },
221
- // Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
222
- {
223
- maxAge: 3,
224
- });
227
+ if (mode === 'library') {
228
+ // dedicated route and layout to SSR component library
229
+ query.route = '/component-library/render';
230
+ res.setPreviewData({
231
+ itemId: query.sc_itemid,
232
+ componentUid: query.sc_uid,
233
+ renderingId: query.sc_renderingId,
234
+ language: query.sc_lang,
235
+ site: query.sc_site,
236
+ pageState: LayoutServicePageState.Normal,
237
+ mode: 'library',
238
+ dataSourceId: query.sc_datasourceId,
239
+ variant: query.sc_variant || DEFAULT_VARIANT,
240
+ version: query.sc_version,
241
+ }, {
242
+ maxAge: 3,
243
+ });
244
+ }
245
+ else {
246
+ res.setPreviewData({
247
+ site: query.sc_site,
248
+ itemId: query.sc_itemid,
249
+ language: query.sc_lang,
250
+ // for sc_variantId we may employ multiple variants (page-layout + component level)
251
+ variantIds: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')) || [DEFAULT_VARIANT],
252
+ version: query.sc_version,
253
+ editMode: EditMode.Metadata,
254
+ pageState: query.mode,
255
+ layoutKind: query.sc_layoutKind,
256
+ },
257
+ // Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
258
+ {
259
+ maxAge: 3,
260
+ });
261
+ }
225
262
  // Cookies with the SameSite=Lax policy set by Next.js setPreviewData function causes CORS issue
226
263
  // when Next.js preview mode is activated, resulting the page to render in normal mode instead.
227
264
  // By replacing it with "SameSite=None; Secure", we ensure cookies are correctly sent with
@@ -1,8 +1,9 @@
1
1
  export { GraphQLEditingService } from '@sitecore-jss/sitecore-jss/editing';
2
2
  export { EditingDataDiskCache } from './editing-data-cache';
3
3
  export { EditingDataMiddleware } from './editing-data-middleware';
4
- export { EditingRenderMiddleware, isEditingMetadataPreviewData, } from './editing-render-middleware';
4
+ export { EditingRenderMiddleware, isEditingMetadataPreviewData, isComponentLibraryPreviewData, } from './editing-render-middleware';
5
5
  export { BasicEditingDataService, ServerlessEditingDataService, editingDataService, } from './editing-data-service';
6
6
  export { VercelEditingDataCache } from './vercel-editing-data-cache';
7
7
  export { FEAASRenderMiddleware } from './feaas-render-middleware';
8
8
  export { EditingConfigMiddleware, } from './editing-config-middleware';
9
+ export { RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, } from '@sitecore-jss/sitecore-jss/layout';
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { constants, AxiosDataFetcher, NativeDataFetcher, enableDebug, debug, MemoryCacheClient, } from '@sitecore-jss/sitecore-jss';
2
2
  export { LayoutServicePageState, GraphQLLayoutService, RestLayoutService, getChildPlaceholder, getFieldValue, getContentStylesheetLink, EditMode, } from '@sitecore-jss/sitecore-jss/layout';
3
+ export { RestComponentLayoutService } from '@sitecore-jss/sitecore-jss/editing';
3
4
  export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
4
5
  export { trackingApi, } from '@sitecore-jss/sitecore-jss/tracking';
5
6
  export { GraphQLDictionaryService, RestDictionaryService, } from '@sitecore-jss/sitecore-jss/i18n';
@@ -19,4 +20,4 @@ import * as BYOCWrapper from './components/BYOCWrapper';
19
20
  export { FEaaSWrapper };
20
21
  export { BYOCWrapper };
21
22
  export { ComponentBuilder } from './ComponentBuilder';
22
- export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
23
+ export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, ComponentLibraryLayout, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.4.0-canary.1",
3
+ "version": "22.4.0-canary.3",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -73,9 +73,9 @@
73
73
  "react-dom": "^18.2.0"
74
74
  },
75
75
  "dependencies": {
76
- "@sitecore-jss/sitecore-jss": "^22.4.0-canary.1",
77
- "@sitecore-jss/sitecore-jss-dev-tools": "^22.4.0-canary.1",
78
- "@sitecore-jss/sitecore-jss-react": "^22.4.0-canary.1",
76
+ "@sitecore-jss/sitecore-jss": "^22.4.0-canary.3",
77
+ "@sitecore-jss/sitecore-jss-dev-tools": "^22.4.0-canary.3",
78
+ "@sitecore-jss/sitecore-jss-react": "^22.4.0-canary.3",
79
79
  "@vercel/kv": "^0.2.1",
80
80
  "prop-types": "^15.8.1",
81
81
  "regex-parser": "^2.2.11",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "description": "",
85
85
  "types": "types/index.d.ts",
86
- "gitHead": "d3ecb29aed9eb83d3d4db8df8ee58870aae6e74f",
86
+ "gitHead": "9e192b19fd1c19e559a93469ce26392eed3621e0",
87
87
  "files": [
88
88
  "dist",
89
89
  "types",
@@ -99,7 +99,7 @@ export type EditingRenderMiddlewareMetadataConfig = Pick<EditingRenderMiddleware
99
99
  /**
100
100
  * Next.js API request with Metadata query parameters.
101
101
  */
102
- type MetadataNextApiRequest = NextApiRequest & {
102
+ export type MetadataNextApiRequest = NextApiRequest & {
103
103
  query: RenderMetadataQueryParams;
104
104
  };
105
105
  /**
@@ -115,6 +115,21 @@ export type EditingMetadataPreviewData = {
115
115
  version?: string;
116
116
  layoutKind?: LayoutKind;
117
117
  };
118
+ /**
119
+ * Data for Component Library rendering mode
120
+ */
121
+ export interface ComponentLibraryRenderPreviewData {
122
+ site: string;
123
+ itemId: string;
124
+ renderingId: string;
125
+ componentUid: string;
126
+ language: string;
127
+ pageState: LayoutServicePageState;
128
+ mode?: 'library';
129
+ variant?: string;
130
+ version?: string;
131
+ dataSourceId?: string;
132
+ }
118
133
  /**
119
134
  * Type guard for EditingMetadataPreviewData
120
135
  * @param {object} data preview data to check
@@ -122,6 +137,13 @@ export type EditingMetadataPreviewData = {
122
137
  * @see EditingMetadataPreviewData
123
138
  */
124
139
  export declare const isEditingMetadataPreviewData: (data: unknown) => data is EditingMetadataPreviewData;
140
+ /**
141
+ * Type guard for Component Library mode
142
+ * @param {object} data preview data to check
143
+ * @returns true if the data is EditingMetadataPreviewData
144
+ * @see EditingMetadataPreviewData
145
+ */
146
+ export declare const isComponentLibraryPreviewData: (data: unknown) => data is ComponentLibraryRenderPreviewData;
125
147
  /**
126
148
  * Handler for the Editing Metadata GET requests.
127
149
  * This handler is responsible for redirecting the request to the page route.
@@ -154,4 +176,3 @@ export declare class EditingRenderMiddleware extends RenderMiddlewareBase {
154
176
  getHandler(): (req: NextApiRequest, res: NextApiResponse) => Promise<void>;
155
177
  private handler;
156
178
  }
157
- export {};
@@ -2,8 +2,9 @@ export { GraphQLEditingService } from '@sitecore-jss/sitecore-jss/editing';
2
2
  export { EditingData } from './editing-data';
3
3
  export { EditingDataCache, EditingDataDiskCache } from './editing-data-cache';
4
4
  export { EditingDataMiddleware, EditingDataMiddlewareConfig } from './editing-data-middleware';
5
- export { EditingRenderMiddleware, EditingRenderMiddlewareConfig, EditingMetadataPreviewData, isEditingMetadataPreviewData, } from './editing-render-middleware';
5
+ export { EditingRenderMiddleware, EditingRenderMiddlewareConfig, EditingMetadataPreviewData, isEditingMetadataPreviewData, isComponentLibraryPreviewData, } from './editing-render-middleware';
6
6
  export { EditingPreviewData, EditingDataService, BasicEditingDataService, BasicEditingDataServiceConfig, ServerlessEditingDataService, ServerlessEditingDataServiceConfig, editingDataService, } from './editing-data-service';
7
7
  export { VercelEditingDataCache } from './vercel-editing-data-cache';
8
8
  export { FEAASRenderMiddleware, FEAASRenderMiddlewareConfig } from './feaas-render-middleware';
9
9
  export { EditingConfigMiddleware, EditingConfigMiddlewareConfig, } from './editing-config-middleware';
10
+ export { RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, } from '@sitecore-jss/sitecore-jss/layout';
package/types/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { constants, HttpDataFetcher, HttpResponse, AxiosResponse, AxiosDataFetcher, AxiosDataFetcherConfig, NativeDataFetcher, NativeDataFetcherConfig, HTMLLink, enableDebug, debug, CacheClient, CacheOptions, MemoryCacheClient, } from '@sitecore-jss/sitecore-jss';
2
2
  export { LayoutService, LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, GraphQLLayoutServiceConfig, RestLayoutService, RestLayoutServiceConfig, PlaceholderData, PlaceholdersData, RouteData, Field, Item, HtmlElementRendering, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, getContentStylesheetLink, EditMode, } from '@sitecore-jss/sitecore-jss/layout';
3
+ export { RestComponentLayoutService } from '@sitecore-jss/sitecore-jss/editing';
3
4
  export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
4
5
  export { trackingApi, TrackingRequestOptions, CampaignInstance, GoalInstance, OutcomeInstance, EventInstance, PageViewInstance, } from '@sitecore-jss/sitecore-jss/tracking';
5
6
  export { DictionaryPhrases, DictionaryService, GraphQLDictionaryService, GraphQLDictionaryServiceConfig, RestDictionaryService, RestDictionaryServiceConfig, } from '@sitecore-jss/sitecore-jss/i18n';
@@ -22,4 +23,4 @@ import * as BYOCWrapper from './components/BYOCWrapper';
22
23
  export { FEaaSWrapper };
23
24
  export { BYOCWrapper };
24
25
  export { ComponentBuilder, ComponentBuilderConfig } from './ComponentBuilder';
25
- export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
26
+ export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, ComponentLibraryLayout, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';