@sitecore-jss/sitecore-jss-nextjs 21.7.0-canary.56 → 21.7.0-canary.58
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.
- package/dist/cjs/components/NextImage.js +2 -10
- package/dist/cjs/editing/editing-config-middleware.js +49 -0
- package/dist/cjs/editing/index.js +3 -1
- package/dist/esm/components/NextImage.js +1 -8
- package/dist/esm/editing/editing-config-middleware.js +45 -0
- package/dist/esm/editing/index.js +1 -0
- package/package.json +5 -5
- package/types/components/NextImage.d.ts +1 -2
- package/types/editing/editing-config-middleware.d.ts +29 -0
- package/types/editing/index.d.ts +1 -0
|
@@ -14,19 +14,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.NextImage =
|
|
17
|
+
exports.NextImage = void 0;
|
|
18
18
|
const media_1 = require("@sitecore-jss/sitecore-jss/media");
|
|
19
19
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
20
20
|
const react_1 = __importDefault(require("react"));
|
|
21
21
|
const sitecore_jss_react_1 = require("@sitecore-jss/sitecore-jss-react");
|
|
22
22
|
const image_1 = __importDefault(require("next/image"));
|
|
23
|
-
const sitecoreLoader = ({ src, width }) => {
|
|
24
|
-
const [root, paramString] = src.split('?');
|
|
25
|
-
const params = new URLSearchParams(paramString);
|
|
26
|
-
params.set('mw', width.toString());
|
|
27
|
-
return `${root}?${params}`;
|
|
28
|
-
};
|
|
29
|
-
exports.sitecoreLoader = sitecoreLoader;
|
|
30
23
|
const NextImage = (_a) => {
|
|
31
24
|
var { editable, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
|
|
32
25
|
// next handles src and we use a custom loader,
|
|
@@ -62,9 +55,8 @@ const NextImage = (_a) => {
|
|
|
62
55
|
delete imageProps.width;
|
|
63
56
|
delete imageProps.height;
|
|
64
57
|
}
|
|
65
|
-
const loader = (otherProps.loader ? otherProps.loader : exports.sitecoreLoader);
|
|
66
58
|
if (attrs) {
|
|
67
|
-
return react_1.default.createElement(image_1.default, Object.assign({ alt: ""
|
|
59
|
+
return react_1.default.createElement(image_1.default, Object.assign({ alt: "" }, imageProps));
|
|
68
60
|
}
|
|
69
61
|
return null; // we can't handle the truth
|
|
70
62
|
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EditingConfigMiddleware = void 0;
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const utils_1 = require("../utils/utils");
|
|
15
|
+
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
16
|
+
/**
|
|
17
|
+
* Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
|
|
18
|
+
* provides configuration information to determine feature compatibility on Pages side.
|
|
19
|
+
*/
|
|
20
|
+
class EditingConfigMiddleware {
|
|
21
|
+
/**
|
|
22
|
+
* @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
|
|
23
|
+
*/
|
|
24
|
+
constructor(config) {
|
|
25
|
+
this.config = config;
|
|
26
|
+
this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const secret = _req.query[constants_1.QUERY_PARAM_EDITING_SECRET];
|
|
28
|
+
if (secret !== (0, utils_1.getJssEditingSecret)()) {
|
|
29
|
+
sitecore_jss_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_1.getJssEditingSecret)());
|
|
30
|
+
res.status(401).end('Missing or invalid editing secret');
|
|
31
|
+
}
|
|
32
|
+
const components = Array.isArray(this.config.components)
|
|
33
|
+
? this.config.components
|
|
34
|
+
: Array.from(this.config.components.keys());
|
|
35
|
+
return res.status(200).json({
|
|
36
|
+
components,
|
|
37
|
+
packages: this.config.metadata.packages,
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets the Next.js API route handler
|
|
43
|
+
* @returns middleware handler
|
|
44
|
+
*/
|
|
45
|
+
getHandler() {
|
|
46
|
+
return this.handler;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.EditingConfigMiddleware = EditingConfigMiddleware;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VercelEditingDataCache = exports.editingDataService = exports.ServerlessEditingDataService = exports.BasicEditingDataService = exports.EditingRenderMiddleware = exports.EditingDataMiddleware = exports.EditingDataDiskCache = void 0;
|
|
3
|
+
exports.EditingConfigMiddleware = exports.VercelEditingDataCache = exports.editingDataService = exports.ServerlessEditingDataService = exports.BasicEditingDataService = exports.EditingRenderMiddleware = exports.EditingDataMiddleware = exports.EditingDataDiskCache = void 0;
|
|
4
4
|
var editing_data_cache_1 = require("./editing-data-cache");
|
|
5
5
|
Object.defineProperty(exports, "EditingDataDiskCache", { enumerable: true, get: function () { return editing_data_cache_1.EditingDataDiskCache; } });
|
|
6
6
|
var editing_data_middleware_1 = require("./editing-data-middleware");
|
|
@@ -13,3 +13,5 @@ Object.defineProperty(exports, "ServerlessEditingDataService", { enumerable: tru
|
|
|
13
13
|
Object.defineProperty(exports, "editingDataService", { enumerable: true, get: function () { return editing_data_service_1.editingDataService; } });
|
|
14
14
|
var vercel_editing_data_cache_1 = require("./vercel-editing-data-cache");
|
|
15
15
|
Object.defineProperty(exports, "VercelEditingDataCache", { enumerable: true, get: function () { return vercel_editing_data_cache_1.VercelEditingDataCache; } });
|
|
16
|
+
var editing_config_middleware_1 = require("./editing-config-middleware");
|
|
17
|
+
Object.defineProperty(exports, "EditingConfigMiddleware", { enumerable: true, get: function () { return editing_config_middleware_1.EditingConfigMiddleware; } });
|
|
@@ -14,12 +14,6 @@ import PropTypes from 'prop-types';
|
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import { getEEMarkup, } from '@sitecore-jss/sitecore-jss-react';
|
|
16
16
|
import Image from 'next/image';
|
|
17
|
-
export const sitecoreLoader = ({ src, width }) => {
|
|
18
|
-
const [root, paramString] = src.split('?');
|
|
19
|
-
const params = new URLSearchParams(paramString);
|
|
20
|
-
params.set('mw', width.toString());
|
|
21
|
-
return `${root}?${params}`;
|
|
22
|
-
};
|
|
23
17
|
export const NextImage = (_a) => {
|
|
24
18
|
var { editable, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
|
|
25
19
|
// next handles src and we use a custom loader,
|
|
@@ -55,9 +49,8 @@ export const NextImage = (_a) => {
|
|
|
55
49
|
delete imageProps.width;
|
|
56
50
|
delete imageProps.height;
|
|
57
51
|
}
|
|
58
|
-
const loader = (otherProps.loader ? otherProps.loader : sitecoreLoader);
|
|
59
52
|
if (attrs) {
|
|
60
|
-
return React.createElement(Image, Object.assign({ alt: ""
|
|
53
|
+
return React.createElement(Image, Object.assign({ alt: "" }, imageProps));
|
|
61
54
|
}
|
|
62
55
|
return null; // we can't handle the truth
|
|
63
56
|
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { QUERY_PARAM_EDITING_SECRET } from './constants';
|
|
11
|
+
import { getJssEditingSecret } from '../utils/utils';
|
|
12
|
+
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
13
|
+
/**
|
|
14
|
+
* Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
|
|
15
|
+
* provides configuration information to determine feature compatibility on Pages side.
|
|
16
|
+
*/
|
|
17
|
+
export class EditingConfigMiddleware {
|
|
18
|
+
/**
|
|
19
|
+
* @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
|
|
20
|
+
*/
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const secret = _req.query[QUERY_PARAM_EDITING_SECRET];
|
|
25
|
+
if (secret !== getJssEditingSecret()) {
|
|
26
|
+
debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, getJssEditingSecret());
|
|
27
|
+
res.status(401).end('Missing or invalid editing secret');
|
|
28
|
+
}
|
|
29
|
+
const components = Array.isArray(this.config.components)
|
|
30
|
+
? this.config.components
|
|
31
|
+
: Array.from(this.config.components.keys());
|
|
32
|
+
return res.status(200).json({
|
|
33
|
+
components,
|
|
34
|
+
packages: this.config.metadata.packages,
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets the Next.js API route handler
|
|
40
|
+
* @returns middleware handler
|
|
41
|
+
*/
|
|
42
|
+
getHandler() {
|
|
43
|
+
return this.handler;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -3,3 +3,4 @@ export { EditingDataMiddleware } from './editing-data-middleware';
|
|
|
3
3
|
export { EditingRenderMiddleware, } from './editing-render-middleware';
|
|
4
4
|
export { BasicEditingDataService, ServerlessEditingDataService, editingDataService, } from './editing-data-service';
|
|
5
5
|
export { VercelEditingDataCache } from './vercel-editing-data-cache';
|
|
6
|
+
export { EditingConfigMiddleware, } from './editing-config-middleware';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-jss/sitecore-jss-nextjs",
|
|
3
|
-
"version": "21.7.0-canary.
|
|
3
|
+
"version": "21.7.0-canary.58",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"react-dom": "^18.2.0"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@sitecore-jss/sitecore-jss": "^21.7.0-canary.
|
|
76
|
-
"@sitecore-jss/sitecore-jss-dev-tools": "^21.7.0-canary.
|
|
77
|
-
"@sitecore-jss/sitecore-jss-react": "^21.7.0-canary.
|
|
75
|
+
"@sitecore-jss/sitecore-jss": "^21.7.0-canary.58",
|
|
76
|
+
"@sitecore-jss/sitecore-jss-dev-tools": "^21.7.0-canary.58",
|
|
77
|
+
"@sitecore-jss/sitecore-jss-react": "^21.7.0-canary.58",
|
|
78
78
|
"@vercel/kv": "^0.2.1",
|
|
79
79
|
"node-html-parser": "^6.1.4",
|
|
80
80
|
"prop-types": "^15.8.1",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
},
|
|
84
84
|
"description": "",
|
|
85
85
|
"types": "types/index.d.ts",
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "c7bbfe5c5e1ea3ee34590af2323917df27969e67",
|
|
87
87
|
"files": [
|
|
88
88
|
"dist",
|
|
89
89
|
"types",
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/// <reference types="@types/react" />
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { ImageProps } from '@sitecore-jss/sitecore-jss-react';
|
|
4
|
-
import {
|
|
4
|
+
import { ImageProps as NextImageProperties } from 'next/image';
|
|
5
5
|
type NextImageProps = Omit<ImageProps, 'media'> & Partial<NextImageProperties>;
|
|
6
|
-
export declare const sitecoreLoader: ImageLoader;
|
|
7
6
|
export declare const NextImage: React.FC<NextImageProps>;
|
|
8
7
|
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next';
|
|
2
|
+
import { Metadata } from '@sitecore-jss/sitecore-jss-dev-tools';
|
|
3
|
+
export type EditingConfigMiddlewareConfig = {
|
|
4
|
+
/**
|
|
5
|
+
* Components available in the application
|
|
6
|
+
*/
|
|
7
|
+
components: string[] | Map<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Application metadata
|
|
10
|
+
*/
|
|
11
|
+
metadata: Metadata;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
|
|
15
|
+
* provides configuration information to determine feature compatibility on Pages side.
|
|
16
|
+
*/
|
|
17
|
+
export declare class EditingConfigMiddleware {
|
|
18
|
+
protected config: EditingConfigMiddlewareConfig;
|
|
19
|
+
/**
|
|
20
|
+
* @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
|
|
21
|
+
*/
|
|
22
|
+
constructor(config: EditingConfigMiddlewareConfig);
|
|
23
|
+
/**
|
|
24
|
+
* Gets the Next.js API route handler
|
|
25
|
+
* @returns middleware handler
|
|
26
|
+
*/
|
|
27
|
+
getHandler(): (req: NextApiRequest, res: NextApiResponse) => Promise<void>;
|
|
28
|
+
private handler;
|
|
29
|
+
}
|
package/types/editing/index.d.ts
CHANGED
|
@@ -4,3 +4,4 @@ export { EditingDataMiddleware, EditingDataMiddlewareConfig } from './editing-da
|
|
|
4
4
|
export { EditingRenderMiddleware, EditingRenderMiddlewareConfig, } from './editing-render-middleware';
|
|
5
5
|
export { EditingPreviewData, EditingDataService, BasicEditingDataService, BasicEditingDataServiceConfig, ServerlessEditingDataService, ServerlessEditingDataServiceConfig, editingDataService, } from './editing-data-service';
|
|
6
6
|
export { VercelEditingDataCache } from './vercel-editing-data-cache';
|
|
7
|
+
export { EditingConfigMiddleware, EditingConfigMiddlewareConfig, } from './editing-config-middleware';
|