@enonic/nextjs-adapter 3.2.0 → 3.2.2

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.
@@ -1,2 +1,2 @@
1
- import type { ContentResult, LocaleMapping } from '../types';
2
- export declare const fetchContentData: <Content = Record<string, unknown>>(contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, query: string, variables?: {}, headers?: {}) => Promise<ContentResult>;
1
+ import type { ContentApiBaseBodyVariables, ContentResult, LocaleMapping, GuillotineRequestHeaders } from '../types';
2
+ export declare const fetchContentData: <Content = Record<string, unknown>>(contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, query: string, variables?: ContentApiBaseBodyVariables, headers?: GuillotineRequestHeaders) => Promise<ContentResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchContentData.js","sourceRoot":"","sources":["../src/guillotine/fetchContentData.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,KAAa,EACb,SAAc,EACd,OAAY,EACU,EAAE;IACxB,MAAM,IAAI,GAAuB,EAAC,KAAK,EAAC,CAAC;IACzC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAyB,aAAa,EAAE,OAAO,EAAE;QACzF,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,qCAAqC;YACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;SAC1C,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"fetchContentData.js","sourceRoot":"","sources":["../src/guillotine/fetchContentData.ts"],"names":[],"mappings":";;;;;;;;;AAQA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,KAAa,EACb,SAAuC,EACvC,OAAkC,EACZ,EAAE;IACxB,MAAM,IAAI,GAAuB,EAAC,KAAK,EAAC,CAAC;IACzC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAyB,aAAa,EAAE,OAAO,EAAE;QACzF,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,qCAAqC;YACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;SAC1C,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -65,11 +65,11 @@ function mergeHeaders(mapping, headers) {
65
65
  'Content-Type': 'application/json',
66
66
  });
67
67
  if (headers) {
68
- for (const headersKey in headers) {
68
+ Object.keys(headers).forEach((headersKey) => {
69
69
  newHeaders.set(headersKey, headers[headersKey]);
70
- }
71
- // append last to make sure it is not overwritten
70
+ });
72
71
  }
72
+ // append last to make sure it is not overwritten
73
73
  newHeaders.set('X-Guillotine-SiteKey', mapping.site);
74
74
  return newHeaders;
75
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetchFromApi.js","sourceRoot":"","sources":["../src/guillotine/fetchFromApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchFromApi.js","sourceRoot":"","sources":["../src/guillotine/fetchFromApi.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import gqlmin from 'gqlmin';
11
11
  import { fetchFromApi } from './fetchFromApi';
12
+ const XP_ERROR_PATTERN = '/_/error/';
12
13
  /** Guillotine-specialized fetch, using the generic fetch above */
13
14
  export function fetchGuillotine(contentApiUrl, mapping, options) {
14
15
  return __awaiter(this, void 0, void 0, function* () {
15
16
  var _a;
16
17
  const body = options === null || options === void 0 ? void 0 : options.body;
18
+ const path = (_a = body === null || body === void 0 ? void 0 : body.variables) === null || _a === void 0 ? void 0 : _a.path;
17
19
  if (typeof body.query !== 'string' || !body.query.trim()) {
18
20
  return {
19
21
  error: {
@@ -23,10 +25,21 @@ export function fetchGuillotine(contentApiUrl, mapping, options) {
23
25
  };
24
26
  }
25
27
  else {
26
- // Minify the query to avoid hitting 200k space limit
27
- body.query = gqlmin(body.query);
28
+ // special case for not sending XP generated error paths to guillotine
29
+ const pathArr = path === null || path === void 0 ? void 0 : path.split(XP_ERROR_PATTERN);
30
+ if ((pathArr === null || pathArr === void 0 ? void 0 : pathArr.length) === 2) {
31
+ return {
32
+ error: {
33
+ code: pathArr[1],
34
+ message: `XP error URL detected`,
35
+ },
36
+ };
37
+ }
38
+ else {
39
+ // Minify the query to avoid hitting 200k space limit
40
+ body.query = gqlmin(body.query);
41
+ }
28
42
  }
29
- const path = (_a = body === null || body === void 0 ? void 0 : body.variables) === null || _a === void 0 ? void 0 : _a.path;
30
43
  const pathMessage = path ? JSON.stringify(path) : '';
31
44
  return yield fetchFromApi(contentApiUrl, mapping, options)
32
45
  .then(json => {
@@ -1 +1 @@
1
- {"version":3,"file":"fetchGuillotine.js","sourceRoot":"","sources":["../src/guillotine/fetchGuillotine.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,kEAAkE;AAClE,MAAM,UAAgB,eAAe,CACjC,aAAqB,EACrB,OAAsB,EACtB,OAAsB;;;QAEtB,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;QAC3B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACvD,OAAO;gBACH,KAAK,EAAE;oBACH,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,qDAAqD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;iBAC7F;aACJ,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,qDAAqD;YACrD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAE,IAAI,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,MAAM,YAAY,CACrB,aAAa,EACb,OAAO,EACP,OAAO,CACV;aACI,IAAI,CAAC,IAAI,CAAC,EAAE;YACT,IAAI,MAAM,GAAU,IAAI,CAAC,MAAM,CAAC,CAAC,yCAAyC;YAE1E,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,sCAAsC,aAAa,EAAE,CAAC,CAAC;gBACrF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBAEH,OAAO;oBACH,KAAK,EAAE;wBACH,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,yBAAyB,MAAM,CAAC,MAAM,gDAAgD;qBAClG;iBACJ,CAAC;YACN,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,+CAA+C,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;YAChF,IAAI,CAAC;gBACD,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,OAAO,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,EAAC,CAAC;YACtE,CAAC;QACL,CAAC,CAAC,CAAC;IACX,CAAC;CAAA"}
1
+ {"version":3,"file":"fetchGuillotine.js","sourceRoot":"","sources":["../src/guillotine/fetchGuillotine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import type { MetaResult, LocaleMapping } from '../types';
2
- export declare const fetchMetaData: (contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, headers?: {}) => Promise<MetaResult>;
1
+ import type { MetaResult, LocaleMapping, GuillotineRequestHeaders } from '../types';
2
+ export declare const fetchMetaData: (contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, headers?: GuillotineRequestHeaders) => Promise<MetaResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMetaData.js","sourceRoot":"","sources":["../src/guillotine/fetchMetaData.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,OAAY,EACO,EAAE;;IACrB,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE;YACP,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAa,aAAa,EAAE,OAAO,EAAE;QACzE,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,GAAG;SACpC,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"fetchMetaData.js","sourceRoot":"","sources":["../src/guillotine/fetchMetaData.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,OAAkC,EACf,EAAE;;IACrB,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE;YACP,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAa,aAAa,EAAE,OAAO,EAAE;QACzE,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,GAAG;SACpC,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -18,7 +18,7 @@ export function getParentRegion(source, contentType, cmpPath, components = [], c
18
18
  currentTree[regionName] = currentRegion;
19
19
  }
20
20
  else {
21
- throw `Region [${regionName}] was not found`;
21
+ throw new Error(`Region [${regionName}] was not found`);
22
22
  }
23
23
  }
24
24
  if (i < cmpPath.length - 1) {
@@ -27,7 +27,7 @@ export function getParentRegion(source, contentType, cmpPath, components = [], c
27
27
  return cmp.type === XP_COMPONENT_TYPE.LAYOUT && prefixFragmentCmpPath(contentType, cmp.path) === parentPath;
28
28
  });
29
29
  if (!layout) {
30
- throw `Layout [${parentPath}] not found among components, but needed for component [${JSON.stringify(cmpPath, null, 2)}]`;
30
+ throw new Error(`Layout [${parentPath}] not found among components, but needed for component [${JSON.stringify(cmpPath, null, 2)}]`);
31
31
  }
32
32
  if (!layout.regions) {
33
33
  layout.regions = {};
@@ -1 +1 @@
1
- {"version":3,"file":"getParentRegion.js","sourceRoot":"","sources":["../src/guillotine/getParentRegion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAG9D,MAAM,UAAU,eAAe,CAC3B,MAAkB,EAClB,WAAmB,EACnB,OAAuB,EACvB,aAA8B,EAAE,EAChC,aAAyB;IAEzB,IAAI,WAAW,GAAe,MAAM,CAAC;IACrC,IAAI,aAAqC,CAAC;IAC1C,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QACvC,UAAU,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QAC9D,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,IAAI,aAAa,EAAE,CAAC;gBAChB,aAAa,GAAG;oBACZ,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,EAAE;iBACjB,CAAC;gBACF,WAAW,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,UAAU,iBAAiB,CAAC;YACjD,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,gEAAgE;YAEhE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAClD,OAAO,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,IAAI,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;YAChH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,WAAW,UAAU,2DAA2D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;YAC9H,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,CAAC;IACL,CAAC,CAAC,MAAM;IAER,OAAO,aAAa,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"getParentRegion.js","sourceRoot":"","sources":["../src/guillotine/getParentRegion.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAG9D,MAAM,UAAU,eAAe,CAC3B,MAAkB,EAClB,WAAmB,EACnB,OAAuB,EACvB,aAA8B,EAAE,EAChC,aAAyB;IAEzB,IAAI,WAAW,GAAe,MAAM,CAAC;IACrC,IAAI,aAAqC,CAAC;IAC1C,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;QACvC,UAAU,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QAC9D,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,IAAI,aAAa,EAAE,CAAC;gBAChB,aAAa,GAAG;oBACZ,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,EAAE;iBACjB,CAAC;gBACF,WAAW,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,iBAAiB,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,gEAAgE;YAEhE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAClD,OAAO,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,IAAI,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;YAChH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,2DAA2D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACzI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,CAAC;IACL,CAAC,CAAC,MAAM;IAER,OAAO,aAAa,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enonic/nextjs-adapter",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "license": "Apache-2.0",
5
5
  "main": "index.js",
6
6
  "author": "Pavel Milkevich <pmi@enonic.com>",
@@ -40,7 +40,7 @@
40
40
  "build": "tsc",
41
41
  "check:types": "tsc --noEmit",
42
42
  "madge": "madge -i docs/madge.png -x '(constants|env)\\.ts' src/index.ts",
43
- "lint": "eslint --quiet src",
43
+ "lint": "eslint --quiet --cache src",
44
44
  "lint:fix": "eslint --fix src",
45
45
  "prebuild": "npm run clean",
46
46
  "prepack": "concurrently -c auto -g --timings npm:test npm:lint npm:build",
@@ -51,42 +51,42 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@enonic/react-components": "^5.0.1",
54
- "@formatjs/intl-localematcher": "^0.5.8",
54
+ "@formatjs/intl-localematcher": "^0.6.1",
55
55
  "gqlmin": "^0.2.2",
56
- "html-react-parser": "^5.1.18",
56
+ "html-react-parser": "^5.2.5",
57
57
  "negotiator": "^1.0.0",
58
- "next": "^15.0.3",
58
+ "next": "^15.3.2",
59
59
  "react": "18.3.1",
60
60
  "react-dom": "18.3.1",
61
61
  "unescape": "^1.0.1"
62
62
  },
63
63
  "devDependencies": {
64
- "@babel/core": "^7.26.0",
65
- "@babel/preset-env": "^7.26.0",
66
- "@edge-runtime/jest-environment": "^3.0.4",
67
- "@enonic-types/core": "^7.14.4",
68
- "@enonic/eslint-config": "^1.2.1",
64
+ "@babel/core": "^7.27.1",
65
+ "@babel/preset-env": "^7.27.2",
66
+ "@edge-runtime/jest-environment": "^4.0.0",
67
+ "@enonic-types/core": "^7.15.1",
68
+ "@enonic/eslint-config": "^2.0.1",
69
69
  "@testing-library/jest-dom": "^6.6.3",
70
- "@testing-library/react": "^16.0.1",
70
+ "@testing-library/react": "^16.3.0",
71
71
  "@types/negotiator": "^0.6.3",
72
- "@types/node": "^22.9.0",
72
+ "@types/node": "^22.15.17",
73
73
  "@types/react": "^18.3.12",
74
74
  "@types/react-dom": "^18.3.1",
75
- "@typescript-eslint/eslint-plugin": "^7.17.0",
76
- "@typescript-eslint/parser": "^7.18.0",
75
+ "@typescript-eslint/eslint-plugin": "^8.32.0",
76
+ "@typescript-eslint/parser": "^8.32.0",
77
77
  "babel-jest": "^29.7.0",
78
- "concurrently": "^9.1.0",
78
+ "concurrently": "^9.1.2",
79
79
  "cpy-cli": "^5.0.0",
80
80
  "del-cli": "^6.0.0",
81
- "eslint": "^8.57.1",
82
- "eslint-plugin-react": "^7.37.2",
81
+ "eslint": "^9.26.0",
82
+ "eslint-plugin-react": "^7.37.5",
83
83
  "jest": "^29.7.0",
84
84
  "jest-environment-jsdom": "^29.7.0",
85
85
  "madge": "^8.0.0",
86
86
  "mkdirp": "^3.0.1",
87
- "ts-jest": "^29.2.5",
87
+ "ts-jest": "^29.3.2",
88
88
  "ts-node": "^10.9.2",
89
- "typescript": "^5.6.3"
89
+ "typescript": "^5.8.3"
90
90
  },
91
91
  "types": "index.d.ts"
92
92
  }
@@ -1,5 +1,10 @@
1
- import type {ContentApiBaseBody, ContentResult, LocaleMapping} from '../types';
2
-
1
+ import type {
2
+ ContentApiBaseBody,
3
+ ContentApiBaseBodyVariables,
4
+ ContentResult,
5
+ LocaleMapping,
6
+ GuillotineRequestHeaders,
7
+ } from '../types';
3
8
 
4
9
  import {fetchGuillotine} from './fetchGuillotine';
5
10
 
@@ -9,8 +14,8 @@ export const fetchContentData = async <Content = Record<string, unknown>>(
9
14
  xpContentPath: string,
10
15
  mapping: LocaleMapping,
11
16
  query: string,
12
- variables?: {},
13
- headers?: {},
17
+ variables?: ContentApiBaseBodyVariables,
18
+ headers?: GuillotineRequestHeaders,
14
19
  ): Promise<ContentResult> => {
15
20
  const body: ContentApiBaseBody = {query};
16
21
  if (variables && Object.keys(variables).length > 0) {
@@ -66,11 +66,11 @@ function mergeHeaders(mapping: LocaleMapping, headers?: HeadersInit): Headers {
66
66
  'Content-Type': 'application/json',
67
67
  });
68
68
  if (headers) {
69
- for (const headersKey in headers) {
69
+ Object.keys(headers).forEach((headersKey) => {
70
70
  newHeaders.set(headersKey, headers[headersKey]);
71
- }
72
- // append last to make sure it is not overwritten
71
+ });
73
72
  }
73
+ // append last to make sure it is not overwritten
74
74
  newHeaders.set('X-Guillotine-SiteKey', mapping.site);
75
75
  return newHeaders;
76
76
  }
@@ -3,6 +3,7 @@ import gqlmin from 'gqlmin';
3
3
 
4
4
  import {fetchFromApi} from './fetchFromApi';
5
5
 
6
+ const XP_ERROR_PATTERN = '/_/error/';
6
7
 
7
8
  /** Guillotine-specialized fetch, using the generic fetch above */
8
9
  export async function fetchGuillotine<Data = Record<string, unknown>>(
@@ -11,6 +12,8 @@ export async function fetchGuillotine<Data = Record<string, unknown>>(
11
12
  options?: FetchOptions,
12
13
  ): Promise<GuillotineResult> {
13
14
  const body = options?.body;
15
+ const path = body?.variables?.path;
16
+
14
17
  if (typeof body.query !== 'string' || !body.query.trim()) {
15
18
  return {
16
19
  error: {
@@ -19,11 +22,21 @@ export async function fetchGuillotine<Data = Record<string, unknown>>(
19
22
  },
20
23
  };
21
24
  } else {
22
- // Minify the query to avoid hitting 200k space limit
23
- body.query = gqlmin(body.query);
25
+ // special case for not sending XP generated error paths to guillotine
26
+ const pathArr = path?.split(XP_ERROR_PATTERN);
27
+ if (pathArr?.length === 2) {
28
+ return {
29
+ error: {
30
+ code: pathArr[1],
31
+ message: `XP error URL detected`,
32
+ },
33
+ }
34
+ } else {
35
+ // Minify the query to avoid hitting 200k space limit
36
+ body.query = gqlmin(body.query);
37
+ }
24
38
  }
25
39
 
26
- const path = body?.variables?.path;
27
40
  const pathMessage = path ? JSON.stringify(path) : '';
28
41
  return await fetchFromApi<Data>(
29
42
  contentApiUrl,
@@ -1,4 +1,4 @@
1
- import type {ContentApiBaseBody, MetaResult, LocaleMapping} from '../types';
1
+ import type {ContentApiBaseBody, MetaResult, LocaleMapping, GuillotineRequestHeaders} from '../types';
2
2
 
3
3
 
4
4
  import {getMetaQuery, pageFragmentQuery} from './getMetaData';
@@ -9,7 +9,7 @@ export const fetchMetaData = async (
9
9
  contentApiUrl: string,
10
10
  xpContentPath: string,
11
11
  mapping: LocaleMapping,
12
- headers?: {},
12
+ headers?: GuillotineRequestHeaders,
13
13
  ): Promise<MetaResult> => {
14
14
  const body: ContentApiBaseBody = {
15
15
  query: getMetaQuery(pageFragmentQuery()),
@@ -30,7 +30,7 @@ export function getParentRegion(
30
30
  };
31
31
  currentTree[regionName] = currentRegion;
32
32
  } else {
33
- throw `Region [${regionName}] was not found`;
33
+ throw new Error(`Region [${regionName}] was not found`);
34
34
  }
35
35
  }
36
36
 
@@ -41,7 +41,7 @@ export function getParentRegion(
41
41
  return cmp.type === XP_COMPONENT_TYPE.LAYOUT && prefixFragmentCmpPath(contentType, cmp.path) === parentPath;
42
42
  });
43
43
  if (!layout) {
44
- throw `Layout [${parentPath}] not found among components, but needed for component [${JSON.stringify(cmpPath, null, 2)}]`;
44
+ throw new Error(`Layout [${parentPath}] not found among components, but needed for component [${JSON.stringify(cmpPath, null, 2)}]`);
45
45
  }
46
46
  if (!layout.regions) {
47
47
  layout.regions = {};
@@ -16,7 +16,7 @@ export function processComponentConfig(
16
16
  return;
17
17
  }
18
18
  let config;
19
- const configArray: Object[] = [];
19
+ const configArray: object[] = [];
20
20
  if ('configAsJson' in cmpData && cmpData.configAsJson && cmpData.configAsJson[myAppNameDashed]) {
21
21
  config = cmpData.configAsJson[myAppNameDashed][cmpName];
22
22
  if (config) {
@@ -35,4 +35,4 @@ export function processComponentConfig(
35
35
  cmpData.config = Object.assign({}, ...configArray);
36
36
  }
37
37
  }
38
- }
38
+ }
@@ -65,6 +65,7 @@ export interface FetchContentResult extends Result {
65
65
  // Seems like NodeJS.fetch lowercases all headers, so we need to lowercase the
66
66
  // header names here.
67
67
  export interface GuillotineRequestHeaders {
68
+ [key: string]: string;
68
69
  Cookie?: string
69
70
  locale: string
70
71
  locales: string
@@ -384,8 +385,8 @@ interface XData_base_ApplicationConfig {
384
385
 
385
386
  interface XData_base_gpsInfo_DataConfig {
386
387
  geoPoint: GeoPoint
387
- altitude: String
388
- direction: String
388
+ altitude: string
389
+ direction: string
389
390
  }
390
391
 
391
392
  interface XData_media_ApplicationConfig {
@@ -10,11 +10,13 @@ export type * from './util';
10
10
 
11
11
  // Shape of content base-data API body
12
12
  export interface ContentApiBaseBody {
13
- query?: string, // Override the default base-data query
14
- variables?: { // GraphQL variables inserted into the query
15
- path?: string, // Full content item _path
16
- [key: string]: string | number | undefined,
17
- }
13
+ query?: string, // Override the default base-data query
14
+ variables?: ContentApiBaseBodyVariables // GraphQL variables inserted into the query
15
+ }
16
+
17
+ export interface ContentApiBaseBodyVariables {
18
+ path?: string, // Full content item _path
19
+ [key: string]: string | number | undefined,
18
20
  }
19
21
 
20
22
  export interface ContentPathItem {
@@ -38,6 +38,7 @@ export interface FetchContentResult extends Result {
38
38
  page: PageComponent | null;
39
39
  }
40
40
  export interface GuillotineRequestHeaders {
41
+ [key: string]: string;
41
42
  Cookie?: string;
42
43
  locale: string;
43
44
  locales: string;
@@ -302,8 +303,8 @@ interface XData_base_ApplicationConfig {
302
303
  }
303
304
  interface XData_base_gpsInfo_DataConfig {
304
305
  geoPoint: GeoPoint;
305
- altitude: String;
306
- direction: String;
306
+ altitude: string;
307
+ direction: string;
307
308
  }
308
309
  interface XData_media_ApplicationConfig {
309
310
  imageInfo: XData_media_imageInfo_DataConfig;
package/types/index.d.ts CHANGED
@@ -6,10 +6,11 @@ export type * from './next';
6
6
  export type * from './util';
7
7
  export interface ContentApiBaseBody {
8
8
  query?: string;
9
- variables?: {
10
- path?: string;
11
- [key: string]: string | number | undefined;
12
- };
9
+ variables?: ContentApiBaseBodyVariables;
10
+ }
11
+ export interface ContentApiBaseBodyVariables {
12
+ path?: string;
13
+ [key: string]: string | number | undefined;
13
14
  }
14
15
  export interface ContentPathItem {
15
16
  contentPath: string[];