@sitecore-jss/sitecore-jss-nextjs 22.9.0-canary.3 → 22.9.0-canary.9

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.
@@ -23,7 +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.ComponentPropsContext = exports.useComponentProps = exports.ComponentPropsReactContext = void 0;
26
+ exports.ComponentPropsContext = exports.ComponentPropsReactContext = void 0;
27
+ exports.useComponentProps = useComponentProps;
27
28
  const react_1 = __importStar(require("react"));
28
29
  /**
29
30
  * Component props context which we are using in order to store data fetched on components level (getStaticProps/getServerSideProps)
@@ -42,6 +43,5 @@ function useComponentProps(componentUid) {
42
43
  const data = (0, react_1.useContext)(exports.ComponentPropsReactContext);
43
44
  return data[componentUid];
44
45
  }
45
- exports.useComponentProps = useComponentProps;
46
46
  const ComponentPropsContext = ({ children, value, }) => (react_1.default.createElement(exports.ComponentPropsReactContext.Provider, { value: value }, children));
47
47
  exports.ComponentPropsContext = ComponentPropsContext;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEditingData = void 0;
3
+ exports.isEditingData = isEditingData;
4
4
  /**
5
5
  * @param {EditingData} data
6
6
  */
@@ -10,4 +10,3 @@ function isEditingData(data) {
10
10
  data.layoutData !== undefined &&
11
11
  data.dictionary !== undefined);
12
12
  }
13
- exports.isEditingData = isEditingData;
@@ -285,9 +285,10 @@ class MetadataHandler {
285
285
  });
286
286
  res.setHeader('Set-Cookie', modifiedCookies);
287
287
  }
288
+ const encodedRoute = encodeURI(query.route);
288
289
  const route = ((_c = (_b = this.config).resolvePageUrl) === null || _c === void 0 ? void 0 : _c.call(_b, {
289
- itemPath: query.route,
290
- })) || query.route;
290
+ itemPath: encodedRoute,
291
+ })) || encodedRoute;
291
292
  sitecore_jss_1.debug.editing('editing render middleware end in %dms: redirect %o', Date.now() - startTimestamp, {
292
293
  status: 307,
293
294
  route,
@@ -29,7 +29,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
29
29
  this.config = config;
30
30
  this.defaultPageUrl = '/feaas/render';
31
31
  this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
32
- var _b;
32
+ var _a;
33
33
  const { method, query, headers } = req;
34
34
  const startTimestamp = Date.now();
35
35
  sitecore_jss_1.debug.editing('feaas render middleware start: %o', {
@@ -41,7 +41,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
41
41
  sitecore_jss_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
42
42
  return res
43
43
  .status(401)
44
- .send(`<html><body>Requests from origin ${(_b = req.headers) === null || _b === void 0 ? void 0 : _b.origin} are not allowed</body></html>`);
44
+ .send(`<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} are not allowed</body></html>`);
45
45
  }
46
46
  if (!method || !['GET', 'OPTIONS'].includes(method)) {
47
47
  sitecore_jss_1.debug.editing('invalid method - sent %s expected GET,OPTIONS', method);
@@ -102,7 +102,7 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
102
102
  .replace(/\$\/gi$/g, '')}[\/]?$/i`; // Ensures the pattern allows an optional trailing slash
103
103
  // Redirect pattern matches the full incoming URL with query string present
104
104
  matchedQueryString = [
105
- (0, regex_parser_1.default)(redirect.pattern).test(`${localePath}${incomingQS}`),
105
+ (0, regex_parser_1.default)(redirect.pattern).test(`/${localePath}${incomingQS}`),
106
106
  (0, regex_parser_1.default)(redirect.pattern).test(`${normalizedPath}${incomingQS}`),
107
107
  ].some(Boolean)
108
108
  ? incomingQS
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BaseGraphQLSitemapService = exports.getSiteEmptyError = exports.siteError = exports.languageError = void 0;
12
+ exports.BaseGraphQLSitemapService = exports.siteError = exports.languageError = void 0;
13
+ exports.getSiteEmptyError = getSiteEmptyError;
13
14
  const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
14
15
  const personalize_1 = require("@sitecore-jss/sitecore-jss/personalize");
15
16
  /** @private */
@@ -22,7 +23,6 @@ exports.siteError = 'The service needs a site name';
22
23
  function getSiteEmptyError(siteName) {
23
24
  return `Site "${siteName}" does not exist or site item tree is missing`;
24
25
  }
25
- exports.getSiteEmptyError = getSiteEmptyError;
26
26
  const languageEmptyError = 'The language must be a non-empty string';
27
27
  /**
28
28
  * GQL query made dynamic based on schema differences between SXP and XM Cloud
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.GraphQLSitemapService = exports.getSiteEmptyError = exports.siteError = exports.languageError = void 0;
12
+ exports.GraphQLSitemapService = exports.siteError = exports.languageError = void 0;
13
+ exports.getSiteEmptyError = getSiteEmptyError;
13
14
  const base_graphql_sitemap_service_1 = require("./base-graphql-sitemap-service");
14
15
  /** @private */
15
16
  exports.languageError = 'The list of languages cannot be empty';
@@ -21,7 +22,6 @@ exports.siteError = 'The service needs a site name';
21
22
  function getSiteEmptyError(siteName) {
22
23
  return `Site "${siteName}" does not exist or site item tree is missing`;
23
24
  }
24
- exports.getSiteEmptyError = getSiteEmptyError;
25
25
  /**
26
26
  * Service that fetches the list of site pages using Sitecore's GraphQL API.
27
27
  * Used to handle a single site
@@ -279,9 +279,10 @@ export class MetadataHandler {
279
279
  });
280
280
  res.setHeader('Set-Cookie', modifiedCookies);
281
281
  }
282
+ const encodedRoute = encodeURI(query.route);
282
283
  const route = ((_c = (_b = this.config).resolvePageUrl) === null || _c === void 0 ? void 0 : _c.call(_b, {
283
- itemPath: query.route,
284
- })) || query.route;
284
+ itemPath: encodedRoute,
285
+ })) || encodedRoute;
285
286
  debug.editing('editing render middleware end in %dms: redirect %o', Date.now() - startTimestamp, {
286
287
  status: 307,
287
288
  route,
@@ -26,7 +26,7 @@ export class FEAASRenderMiddleware extends RenderMiddlewareBase {
26
26
  this.config = config;
27
27
  this.defaultPageUrl = '/feaas/render';
28
28
  this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
29
- var _b;
29
+ var _a;
30
30
  const { method, query, headers } = req;
31
31
  const startTimestamp = Date.now();
32
32
  debug.editing('feaas render middleware start: %o', {
@@ -38,7 +38,7 @@ export class FEAASRenderMiddleware extends RenderMiddlewareBase {
38
38
  debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
39
39
  return res
40
40
  .status(401)
41
- .send(`<html><body>Requests from origin ${(_b = req.headers) === null || _b === void 0 ? void 0 : _b.origin} are not allowed</body></html>`);
41
+ .send(`<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} are not allowed</body></html>`);
42
42
  }
43
43
  if (!method || !['GET', 'OPTIONS'].includes(method)) {
44
44
  debug.editing('invalid method - sent %s expected GET,OPTIONS', method);
@@ -96,7 +96,7 @@ export class RedirectsMiddleware extends MiddlewareBase {
96
96
  .replace(/\$\/gi$/g, '')}[\/]?$/i`; // Ensures the pattern allows an optional trailing slash
97
97
  // Redirect pattern matches the full incoming URL with query string present
98
98
  matchedQueryString = [
99
- regexParser(redirect.pattern).test(`${localePath}${incomingQS}`),
99
+ regexParser(redirect.pattern).test(`/${localePath}${incomingQS}`),
100
100
  regexParser(redirect.pattern).test(`${normalizedPath}${incomingQS}`),
101
101
  ].some(Boolean)
102
102
  ? incomingQS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.9.0-canary.3",
3
+ "version": "22.9.0-canary.9",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -32,56 +32,56 @@
32
32
  "devDependencies": {
33
33
  "@sitecore-cloudsdk/core": "^0.5.1",
34
34
  "@sitecore-cloudsdk/personalize": "^0.5.1",
35
- "@testing-library/dom": "^10.4.0",
35
+ "@testing-library/dom": "^10.4.1",
36
36
  "@testing-library/react": "^16.3.0",
37
- "@types/chai": "^4.3.4",
38
- "@types/chai-as-promised": "^7.1.5",
39
- "@types/chai-string": "^1.4.2",
40
- "@types/mocha": "^10.0.1",
37
+ "@types/chai": "^5.2.2",
38
+ "@types/chai-as-promised": "^8.0.2",
39
+ "@types/chai-string": "^1.4.5",
40
+ "@types/mocha": "^10.0.10",
41
41
  "@types/node": "~22.9.0",
42
- "@types/react": "^19.1.2",
43
- "@types/react-dom": "^19.1.3",
44
- "@types/sinon": "^10.0.13",
45
- "@types/sinon-chai": "^3.2.9",
42
+ "@types/react": "^19.1.7",
43
+ "@types/react-dom": "^19.1.7",
44
+ "@types/sinon": "^17.0.4",
45
+ "@types/sinon-chai": "^4.0.0",
46
46
  "chai": "^4.3.7",
47
47
  "chai-as-promised": "^7.1.1",
48
- "chai-string": "^1.5.0",
48
+ "chai-string": "^1.6.0",
49
49
  "chalk": "^4.1.2",
50
50
  "cross-fetch": "^3.1.5",
51
51
  "del-cli": "^5.0.0",
52
52
  "eslint": "^8.56.0",
53
53
  "eslint-plugin-react": "^7.37.5",
54
- "jsdom": "^21.1.0",
55
- "mocha": "^10.2.0",
56
- "next": "^15.3.1",
54
+ "jsdom": "^26.1.0",
55
+ "mocha": "^11.7.0",
56
+ "next": "^15.4.6",
57
57
  "nock": "^13.3.0",
58
- "nyc": "^15.1.0",
58
+ "nyc": "^17.1.0",
59
59
  "react": "^19.1.0",
60
60
  "react-dom": "^19.1.0",
61
- "sinon": "^15.0.1",
61
+ "sinon": "^20.0.0",
62
62
  "sinon-chai": "^3.7.0",
63
63
  "ts-node": "^10.9.1",
64
- "typescript": "~5.4.0"
64
+ "typescript": "~5.6.3"
65
65
  },
66
66
  "peerDependencies": {
67
- "@sitecore-cloudsdk/core": "^0.5.1",
68
- "@sitecore-cloudsdk/events": "^0.5.1",
69
- "@sitecore-cloudsdk/personalize": "^0.5.1",
70
- "next": "^15.3.1",
67
+ "@sitecore-cloudsdk/core": "^0.5.2",
68
+ "@sitecore-cloudsdk/events": "^0.5.2",
69
+ "@sitecore-cloudsdk/personalize": "^0.5.2",
70
+ "next": "^15.4.6",
71
71
  "react": "^19.1.0",
72
72
  "react-dom": "^19.1.0"
73
73
  },
74
74
  "dependencies": {
75
- "@sitecore-jss/sitecore-jss": "22.9.0-canary.3",
76
- "@sitecore-jss/sitecore-jss-dev-tools": "22.9.0-canary.3",
77
- "@sitecore-jss/sitecore-jss-react": "22.9.0-canary.3",
75
+ "@sitecore-jss/sitecore-jss": "22.9.0-canary.9",
76
+ "@sitecore-jss/sitecore-jss-dev-tools": "22.9.0-canary.9",
77
+ "@sitecore-jss/sitecore-jss-react": "22.9.0-canary.9",
78
78
  "@vercel/kv": "^0.2.1",
79
79
  "regex-parser": "^2.2.11",
80
80
  "sync-disk-cache": "^2.1.0"
81
81
  },
82
82
  "description": "",
83
83
  "types": "types/index.d.ts",
84
- "gitHead": "70636941cdd23fdc50c2ca6da426d878a1120831",
84
+ "gitHead": "0a43b0e00378ba1dcfeb30c18971d98da017fe0a",
85
85
  "files": [
86
86
  "dist",
87
87
  "types",
@@ -1,4 +1,3 @@
1
- /// <reference types="@types/react" />
2
1
  import React, { ReactNode, JSX } from 'react';
3
2
  import { ComponentPropsCollection } from '../sharedTypes/component-props';
4
3
  /**
@@ -1,4 +1,3 @@
1
- /// <reference types="@types/react" />
2
1
  import React from 'react';
3
2
  import { LinkProps as NextLinkProps } from 'next/link';
4
3
  import { LinkProps as ReactLinkProps } from '@sitecore-jss/sitecore-jss-react';
@@ -1,4 +1,3 @@
1
- /// <reference types="@types/react" />
2
1
  import React from 'react';
3
2
  import { ImageProps } from '@sitecore-jss/sitecore-jss-react';
4
3
  import { ImageProps as NextImageProperties } from 'next/image';
@@ -1,4 +1,3 @@
1
- /// <reference types="@types/react" />
2
1
  import React from 'react';
3
2
  import { PlaceholderComponentProps, WithSitecoreContextProps, EnhancedOmit } from '@sitecore-jss/sitecore-jss-react';
4
3
  /**
@@ -64,12 +64,12 @@ export type EditingRenderMiddlewareChromesConfig = EditingRenderMiddlewareConfig
64
64
  * This handler is responsible for rendering the page and returning the HTML content that is provided via request.
65
65
  */
66
66
  export declare class ChromesHandler extends RenderMiddlewareBase {
67
- config?: EditingRenderMiddlewareConfig | undefined;
67
+ config?: EditingRenderMiddlewareChromesConfig | undefined;
68
68
  private editingDataService;
69
69
  private dataFetcher;
70
70
  private resolvePageUrl;
71
71
  private resolveServerUrl;
72
- constructor(config?: EditingRenderMiddlewareConfig | undefined);
72
+ constructor(config?: EditingRenderMiddlewareChromesConfig | undefined);
73
73
  render(req: NextApiRequest, res: NextApiResponse): Promise<void>;
74
74
  /**
75
75
  * Default page URL resolution.
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { IncomingHttpHeaders } from 'http';
3
2
  /**
4
3
  * Base class for middleware that handles pages and components rendering in Sitecore Editors.
@@ -1,4 +1,3 @@
1
- /// <reference types="@types/react" />
2
1
  import { ComponentType } from 'react';
3
2
  import { GetServerSideComponentProps, GetStaticComponentProps } from './component-props';
4
3
  /**