@enonic/nextjs-adapter 6.0.0-beta.3 → 6.0.0-beta.5

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.
Files changed (76) hide show
  1. package/README.md +76 -106
  2. package/dist/client/DraftModeButton.d.ts +2 -0
  3. package/dist/client/DraftModeButton.jsx +28 -0
  4. package/dist/client/DraftModeButton.jsx.map +1 -0
  5. package/dist/client/DraftModeButton.module.css +43 -0
  6. package/dist/client/replaceLocation.d.ts +1 -0
  7. package/dist/client/replaceLocation.js +5 -0
  8. package/dist/client/replaceLocation.js.map +1 -0
  9. package/dist/common/constants.d.ts +4 -0
  10. package/dist/common/constants.js +4 -0
  11. package/dist/common/constants.js.map +1 -1
  12. package/dist/common/env.d.ts +7 -3
  13. package/dist/common/env.js +13 -7
  14. package/dist/common/env.js.map +1 -1
  15. package/dist/guillotine/applyProcessors.js +18 -29
  16. package/dist/guillotine/applyProcessors.js.map +1 -1
  17. package/dist/guillotine/fetchContent.js +180 -191
  18. package/dist/guillotine/fetchContent.js.map +1 -1
  19. package/dist/guillotine/fetchContentData.js +3 -12
  20. package/dist/guillotine/fetchContentData.js.map +1 -1
  21. package/dist/guillotine/fetchContentPathsForAllLocales.js +4 -15
  22. package/dist/guillotine/fetchContentPathsForAllLocales.js.map +1 -1
  23. package/dist/guillotine/fetchContentPathsForLocale.js +25 -36
  24. package/dist/guillotine/fetchContentPathsForLocale.js.map +1 -1
  25. package/dist/guillotine/fetchFromApi.js +48 -59
  26. package/dist/guillotine/fetchFromApi.js.map +1 -1
  27. package/dist/guillotine/fetchGuillotine.js +50 -60
  28. package/dist/guillotine/fetchGuillotine.js.map +1 -1
  29. package/dist/guillotine/fetchMetaData.js +3 -12
  30. package/dist/guillotine/fetchMetaData.js.map +1 -1
  31. package/dist/guillotine/metadata/richTextQuery.d.ts +7 -0
  32. package/dist/guillotine/metadata/richTextQuery.js +55 -34
  33. package/dist/guillotine/metadata/richTextQuery.js.map +1 -1
  34. package/dist/guillotine/urlQueries.d.ts +5 -0
  35. package/dist/guillotine/urlQueries.js +23 -0
  36. package/dist/guillotine/urlQueries.js.map +1 -0
  37. package/dist/guillotine/urls.d.ts +9 -0
  38. package/dist/guillotine/urls.js +18 -0
  39. package/dist/guillotine/urls.js.map +1 -0
  40. package/dist/guillotine/validateShortcut.js +5 -6
  41. package/dist/guillotine/validateShortcut.js.map +1 -1
  42. package/dist/i18n/LocaleContext.jsx +2 -11
  43. package/dist/i18n/LocaleContext.jsx.map +1 -1
  44. package/dist/i18n/i18n.js +9 -20
  45. package/dist/i18n/i18n.js.map +1 -1
  46. package/dist/index.d.ts +5 -3
  47. package/dist/index.js +5 -3
  48. package/dist/index.js.map +1 -1
  49. package/dist/query/Shortcut.js +2 -3
  50. package/dist/query/Shortcut.js.map +1 -1
  51. package/dist/server/disableDraftMode.d.ts +1 -0
  52. package/dist/server/disableDraftMode.js +7 -0
  53. package/dist/server/disableDraftMode.js.map +1 -0
  54. package/dist/types/guillotine.d.ts +2 -2
  55. package/dist/types/index.d.ts +6 -0
  56. package/dist/types/urls.d.ts +34 -0
  57. package/dist/types/urls.js +2 -0
  58. package/dist/types/urls.js.map +1 -0
  59. package/dist/utils/getMediaUrl.d.ts +3 -0
  60. package/dist/utils/getMediaUrl.js +17 -0
  61. package/dist/utils/getMediaUrl.js.map +1 -0
  62. package/dist/utils/getPageUrl.d.ts +3 -0
  63. package/dist/utils/getPageUrl.js +8 -0
  64. package/dist/utils/getPageUrl.js.map +1 -0
  65. package/dist/utils/localizeMappings.d.ts +3 -0
  66. package/dist/utils/localizeMappings.js +6 -0
  67. package/dist/utils/localizeMappings.js.map +1 -0
  68. package/dist/views/DraftModeIndicator.d.ts +2 -0
  69. package/dist/views/DraftModeIndicator.jsx +12 -0
  70. package/dist/views/DraftModeIndicator.jsx.map +1 -0
  71. package/dist/views/RichTextView.jsx +10 -3
  72. package/dist/views/RichTextView.jsx.map +1 -1
  73. package/package.json +7 -7
  74. package/dist/common/UrlProcessor.d.ts +0 -17
  75. package/dist/common/UrlProcessor.js +0 -33
  76. package/dist/common/UrlProcessor.js.map +0 -1
@@ -1,63 +1,52 @@
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
1
  /** Generic fetch */
11
- export function fetchFromApi(apiUrl, options) {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- const opts = {
14
- method: (options === null || options === void 0 ? void 0 : options.method) || 'POST',
15
- body: (options === null || options === void 0 ? void 0 : options.body) ? JSON.stringify(options === null || options === void 0 ? void 0 : options.body) : null,
16
- headers: mergeHeaders(options === null || options === void 0 ? void 0 : options.headers),
17
- next: options === null || options === void 0 ? void 0 : options.next,
18
- cache: options === null || options === void 0 ? void 0 : options.cache
19
- };
20
- let res;
21
- try {
22
- res = yield fetch(apiUrl, opts);
23
- }
24
- catch (e) {
25
- console.warn(apiUrl, e);
26
- throw new Error(JSON.stringify({
27
- code: 'API',
28
- message: e.message
29
- }));
30
- }
31
- if (!res.ok) {
32
- throw new Error(JSON.stringify({
33
- code: res.status,
34
- message: `Data fetching failed (message: '${yield res.text()}')`
35
- }));
36
- }
37
- let json;
38
- try {
39
- json = yield res.json();
40
- }
41
- catch (e) {
42
- throw new Error(JSON.stringify({
43
- code: 500,
44
- message: `API call completed but with non-JSON data: ${JSON.stringify(yield res.text())}`
45
- }));
46
- }
47
- if (!json) {
48
- throw new Error(JSON.stringify({
49
- code: 500,
50
- message: `API call completed but with unexpectedly empty data: ${JSON.stringify(yield res.text())}`
51
- }));
52
- }
53
- if (Array.isArray(json)) {
54
- throw new Error(JSON.stringify({
55
- code: 500,
56
- message: `API call completed but with unexpected array data: ${JSON.stringify(json)}`
57
- }));
58
- }
59
- return json;
60
- });
2
+ export async function fetchFromApi(apiUrl, options) {
3
+ const opts = {
4
+ method: (options === null || options === void 0 ? void 0 : options.method) || 'POST',
5
+ body: (options === null || options === void 0 ? void 0 : options.body) ? JSON.stringify(options === null || options === void 0 ? void 0 : options.body) : null,
6
+ headers: mergeHeaders(options === null || options === void 0 ? void 0 : options.headers),
7
+ next: options === null || options === void 0 ? void 0 : options.next,
8
+ cache: options === null || options === void 0 ? void 0 : options.cache
9
+ };
10
+ let res;
11
+ try {
12
+ res = await fetch(apiUrl, opts);
13
+ }
14
+ catch (e) {
15
+ console.warn(apiUrl, e);
16
+ throw new Error(JSON.stringify({
17
+ code: 'API',
18
+ message: e.message
19
+ }));
20
+ }
21
+ if (!res.ok) {
22
+ throw new Error(JSON.stringify({
23
+ code: res.status,
24
+ message: `Data fetching failed (message: '${await res.text()}')`
25
+ }));
26
+ }
27
+ let json;
28
+ try {
29
+ json = await res.json();
30
+ }
31
+ catch (e) {
32
+ throw new Error(JSON.stringify({
33
+ code: 500,
34
+ message: `API call completed but with non-JSON data: ${JSON.stringify(await res.text())}`
35
+ }));
36
+ }
37
+ if (!json) {
38
+ throw new Error(JSON.stringify({
39
+ code: 500,
40
+ message: `API call completed but with unexpectedly empty data: ${JSON.stringify(await res.text())}`
41
+ }));
42
+ }
43
+ if (Array.isArray(json)) {
44
+ throw new Error(JSON.stringify({
45
+ code: 500,
46
+ message: `API call completed but with unexpected array data: ${JSON.stringify(json)}`
47
+ }));
48
+ }
49
+ return json;
61
50
  }
62
51
  function mergeHeaders(headers) {
63
52
  const newHeaders = new Headers({
@@ -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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"}
@@ -1,75 +1,65 @@
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
1
  import gqlmin from 'gqlmin';
11
2
  import { fetchFromApi } from './fetchFromApi';
3
+ import { withRichTextFragments } from './metadata/richTextQuery';
12
4
  const XP_ERROR_PATTERN = '/_/error/';
13
5
  /** Guillotine-specialized fetch, using the generic fetch above */
14
- export function fetchGuillotine(contentApiUrl, options) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- var _a;
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;
19
- if (typeof body.query !== 'string' || !body.query.trim()) {
6
+ export async function fetchGuillotine(contentApiUrl, options) {
7
+ var _a;
8
+ const body = options === null || options === void 0 ? void 0 : options.body;
9
+ const path = (_a = body === null || body === void 0 ? void 0 : body.variables) === null || _a === void 0 ? void 0 : _a.path;
10
+ if (typeof body.query !== 'string' || !body.query.trim()) {
11
+ return {
12
+ error: {
13
+ code: '400',
14
+ message: `Invalid or missing query. JSON.stringify(query) = ${JSON.stringify(body.query)}`
15
+ }
16
+ };
17
+ }
18
+ else {
19
+ // special case for not sending XP generated error paths to guillotine
20
+ const pathArr = path === null || path === void 0 ? void 0 : path.split(XP_ERROR_PATTERN);
21
+ if ((pathArr === null || pathArr === void 0 ? void 0 : pathArr.length) === 2) {
20
22
  return {
21
23
  error: {
22
- code: '400',
23
- message: `Invalid or missing query. JSON.stringify(query) = ${JSON.stringify(body.query)}`
24
+ code: pathArr[1],
25
+ message: `XP error URL detected`
24
26
  }
25
27
  };
26
28
  }
27
29
  else {
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
- }
30
+ // Define the rich text fragments once, then minify the query to avoid hitting 200k space limit
31
+ body.query = gqlmin(withRichTextFragments(body.query));
42
32
  }
43
- const pathMessage = path ? JSON.stringify(path) : '';
44
- return yield fetchFromApi(contentApiUrl, options)
45
- .then(json => {
46
- let errors = json.errors; // fetchFromApi ensures json is an object
47
- if (errors) {
48
- if (!Array.isArray(errors)) {
49
- errors = [errors];
50
- }
51
- console.error(`${errors.length} error(s) when fetching data from: ${contentApiUrl}`);
52
- errors.forEach(error => {
53
- console.error(error);
54
- });
55
- return {
56
- error: {
57
- code: '500',
58
- message: `Server responded with ${errors.length} error(s), probably from guillotine - see log.`
59
- }
60
- };
61
- }
62
- return json.data;
63
- })
64
- .catch((err) => {
65
- console.warn(`Client-side error when trying to fetch data ${pathMessage}`, err);
66
- try {
67
- return { error: JSON.parse(err.message) };
68
- }
69
- catch (e2) {
70
- return { error: { code: 'Client-side error', message: err.message } };
33
+ }
34
+ const pathMessage = path ? JSON.stringify(path) : '';
35
+ return await fetchFromApi(contentApiUrl, options)
36
+ .then(json => {
37
+ let errors = json.errors; // fetchFromApi ensures json is an object
38
+ if (errors) {
39
+ if (!Array.isArray(errors)) {
40
+ errors = [errors];
71
41
  }
72
- });
42
+ console.error(`${errors.length} error(s) when fetching data from: ${contentApiUrl}`);
43
+ errors.forEach(error => {
44
+ console.error(error);
45
+ });
46
+ return {
47
+ error: {
48
+ code: '500',
49
+ message: `Server responded with ${errors.length} error(s), probably from guillotine - see log.`
50
+ }
51
+ };
52
+ }
53
+ return json.data;
54
+ })
55
+ .catch((err) => {
56
+ console.warn(`Client-side error when trying to fetch data ${pathMessage}`, err);
57
+ try {
58
+ return { error: JSON.parse(err.message) };
59
+ }
60
+ catch (e2) {
61
+ return { error: { code: 'Client-side error', message: err.message } };
62
+ }
73
63
  });
74
64
  }
75
65
  //# sourceMappingURL=fetchGuillotine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchGuillotine.js","sourceRoot":"","sources":["../../src/guillotine/fetchGuillotine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchGuillotine.js","sourceRoot":"","sources":["../../src/guillotine/fetchGuillotine.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,6 @@
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
1
  import { getMetaQuery, pageFragmentQuery } from './getMetaData';
11
2
  import { fetchGuillotine } from './fetchGuillotine';
12
- export const fetchMetaData = (contentApiUrl, contentPath, mapping, branch, headers) => __awaiter(void 0, void 0, void 0, function* () {
3
+ export const fetchMetaData = async (contentApiUrl, contentPath, mapping, branch, headers) => {
13
4
  var _a;
14
5
  const body = {
15
6
  query: getMetaQuery(pageFragmentQuery()),
@@ -20,7 +11,7 @@ export const fetchMetaData = (contentApiUrl, contentPath, mapping, branch, heade
20
11
  branch
21
12
  }
22
13
  };
23
- const metaResult = yield fetchGuillotine(contentApiUrl, {
14
+ const metaResult = await fetchGuillotine(contentApiUrl, {
24
15
  body,
25
16
  headers
26
17
  });
@@ -32,5 +23,5 @@ export const fetchMetaData = (contentApiUrl, contentPath, mapping, branch, heade
32
23
  meta: (_a = metaResult === null || metaResult === void 0 ? void 0 : metaResult.guillotine) === null || _a === void 0 ? void 0 : _a.get
33
24
  };
34
25
  }
35
- });
26
+ };
36
27
  //# sourceMappingURL=fetchMetaData.js.map
@@ -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,WAAmB,EACnB,OAAsB,EACtB,MAAc,EACd,OAAkC,EACf,EAAE;;IACrB,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM;SACT;KACJ,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAa,aAAa,EAAE;QAChE,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,KAAK,EAC9B,aAAqB,EACrB,WAAmB,EACnB,OAAsB,EACtB,MAAc,EACd,OAAkC,EACf,EAAE;;IACrB,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM;SACT;KACJ,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAa,aAAa,EAAE;QAChE,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,CAAC"}
@@ -1 +1,8 @@
1
+ export declare const RICH_TEXT_MACROS_FRAGMENT = "RichTextMacros";
2
+ export declare const RICH_TEXT_LINKS_FRAGMENT = "RichTextLinks";
3
+ export declare const RICH_TEXT_IMAGES_FRAGMENT = "RichTextImages";
1
4
  export declare const richTextQuery: (fieldName: string) => string;
5
+ /** The fragment definitions behind richTextQuery(); evaluated when called, so the registered macros are included */
6
+ export declare const richTextFragments: () => string;
7
+ /** Appends the definitions of the rich text fragments a document spreads but does not define (fetchGuillotine does this) */
8
+ export declare function withRichTextFragments(query: string): string;
@@ -1,6 +1,11 @@
1
1
  import { ComponentRegistry } from '../../common/ComponentRegistry';
2
2
  import { configQuery } from './configQuery';
3
3
  import { indent } from '../../utils/indent';
4
+ import { imageUrlQuery, mediaUrlQuery, pageUrlQuery } from '../urlQueries';
5
+ // Fragments on Guillotine's rich text member types: spread by every rich text field, defined once per document
6
+ export const RICH_TEXT_MACROS_FRAGMENT = 'RichTextMacros';
7
+ export const RICH_TEXT_LINKS_FRAGMENT = 'RichTextLinks';
8
+ export const RICH_TEXT_IMAGES_FRAGMENT = 'RichTextImages';
4
9
  const macroConfigQuery = () => {
5
10
  return configQuery(ComponentRegistry.getMacros(), false, false);
6
11
  };
@@ -8,48 +13,64 @@ export const richTextQuery = (fieldName) => {
8
13
  return `${fieldName}(processHtml:{imageWidths:[400, 800, 1200], imageSizes:"(max-width: 400px) 400px, (max-width: 800px) 800px, 1200px"}) {
9
14
  processedHtml
10
15
  macros {
11
- ref
12
- name
13
- descriptor
14
- ${indent(macroConfigQuery(), 8)}
16
+ ...${RICH_TEXT_MACROS_FRAGMENT}
15
17
  }
16
18
  links {
17
- ref
18
- uri
19
- content {
20
- _path
21
- _id
22
- pageUrl {
23
- path
24
- }
25
- }
26
- media {
27
- content {
28
- _id
29
- ... on media_Image {
30
- mediaUrl {
31
- url
32
- }
33
- }
34
- }
35
- intent
36
- }
19
+ ...${RICH_TEXT_LINKS_FRAGMENT}
37
20
  }
38
21
  images {
39
- ref
40
- image {
22
+ ...${RICH_TEXT_IMAGES_FRAGMENT}
23
+ }}`;
24
+ };
25
+ const fragmentDefinitions = () => [
26
+ [RICH_TEXT_MACROS_FRAGMENT, `fragment ${RICH_TEXT_MACROS_FRAGMENT} on Macro {
27
+ ref
28
+ name
29
+ descriptor
30
+ ${indent(macroConfigQuery(), 4)}
31
+ }`],
32
+ [RICH_TEXT_LINKS_FRAGMENT, `fragment ${RICH_TEXT_LINKS_FRAGMENT} on Link {
33
+ ref
34
+ uri
35
+ content {
36
+ _path
37
+ _id
38
+ ${pageUrlQuery()}
39
+ }
40
+ media {
41
+ content {
41
42
  _id
42
43
  ... on media_Image {
43
- imageUrl(scale: "width(768)") {
44
- url
45
- }
44
+ ${mediaUrlQuery()}
46
45
  }
47
46
  }
48
- style {
49
- name
50
- aspectRatio
51
- filter
47
+ intent
48
+ }
49
+ }`],
50
+ [RICH_TEXT_IMAGES_FRAGMENT, `fragment ${RICH_TEXT_IMAGES_FRAGMENT} on Image {
51
+ ref
52
+ image {
53
+ _id
54
+ ... on media_Image {
55
+ ${imageUrlQuery({ scale: 'width(768)' })}
52
56
  }
53
- }}`;
57
+ }
58
+ style {
59
+ name
60
+ aspectRatio
61
+ filter
62
+ }
63
+ }`]
64
+ ];
65
+ /** The fragment definitions behind richTextQuery(); evaluated when called, so the registered macros are included */
66
+ export const richTextFragments = () => {
67
+ return fragmentDefinitions().map(([, definition]) => definition).join('\n');
54
68
  };
69
+ /** Appends the definitions of the rich text fragments a document spreads but does not define (fetchGuillotine does this) */
70
+ export function withRichTextFragments(query) {
71
+ const missing = fragmentDefinitions()
72
+ .filter(([name]) => query.includes(`...${name}`) && !query.includes(`fragment ${name} `))
73
+ .map(([, definition]) => definition);
74
+ return missing.length ? `${query}\n${missing.join('\n')}` : query;
75
+ }
55
76
  //# sourceMappingURL=richTextQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"richTextQuery.js","sourceRoot":"","sources":["../../../src/guillotine/metadata/richTextQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAG1C,MAAM,gBAAgB,GAAG,GAAW,EAAE;IAClC,OAAO,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,OAAO,GAAG,SAAS;;;;;;UAMb,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuChC,CAAC;AACR,CAAC,CAAC"}
1
+ {"version":3,"file":"richTextQuery.js","sourceRoot":"","sources":["../../../src/guillotine/metadata/richTextQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAGzE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,MAAM,gBAAgB,GAAG,GAAW,EAAE;IAClC,OAAO,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,OAAO,GAAG,SAAS;;;aAGV,yBAAyB;;;aAGzB,wBAAwB;;;aAGxB,yBAAyB;OAC/B,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAuB,EAAE,CAAC;IAClD,CAAC,yBAAyB,EAAE,YAAY,yBAAyB;;;;MAI/D,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;EACjC,CAAC;IACC,CAAC,wBAAwB,EAAE,YAAY,wBAAwB;;;;;;UAMzD,YAAY,EAAE;;;;;;kBAMN,aAAa,EAAE;;;;;EAK/B,CAAC;IACC,CAAC,yBAAyB,EAAE,YAAY,yBAAyB;;;;;cAKvD,aAAa,CAAC,EAAC,KAAK,EAAE,YAAY,EAAC,CAAC;;;;;;;;EAQhD,CAAC;CACF,CAAC;AAEF,oHAAoH;AACpH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC1C,OAAO,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,4HAA4H;AAC5H,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAC/C,MAAM,OAAO,GAAG,mBAAmB,EAAE;SAChC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;SACxF,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ImageUrlArgs, MediaUrlArgs, PageUrlArgs } from '../types';
2
+ export declare const imageUrlQuery: (args: ImageUrlArgs) => string;
3
+ export declare const mediaUrlQuery: (args?: MediaUrlArgs) => string;
4
+ export declare const attachmentUrlQuery: (args?: MediaUrlArgs) => string;
5
+ export declare const pageUrlQuery: (args?: PageUrlArgs) => string;
@@ -0,0 +1,23 @@
1
+ // Every field of the Guillotine 9 result types, so callers can build their own URLs from the parts
2
+ const IMAGE_URL_FIELDS = '{ url path queryString context id fingerprint scale name }';
3
+ const ATTACHMENT_URL_FIELDS = '{ url path queryString context id fingerprint name intent }';
4
+ const PAGE_URL_FIELDS = '{ url path queryString }';
5
+ export const imageUrlQuery = (args) => `imageUrl${toGraphqlArgs(args)} ${IMAGE_URL_FIELDS}`;
6
+ export const mediaUrlQuery = (args) => `mediaUrl${toGraphqlArgs(args)} ${ATTACHMENT_URL_FIELDS}`;
7
+ export const attachmentUrlQuery = (args) => `attachmentUrl${toGraphqlArgs(args)} ${ATTACHMENT_URL_FIELDS}`;
8
+ export const pageUrlQuery = (args) => `pageUrl${toGraphqlArgs(args)} ${PAGE_URL_FIELDS}`;
9
+ function toGraphqlArgs(args = {}) {
10
+ const entries = Object.entries(args).filter(([, value]) => value !== undefined && value !== null);
11
+ return entries.length ? `(${entries.map(([key, value]) => `${key}: ${toGraphqlLiteral(value)}`).join(', ')})` : '';
12
+ }
13
+ function toGraphqlLiteral(value) {
14
+ if (Array.isArray(value)) {
15
+ return `[${value.map(toGraphqlLiteral).join(', ')}]`;
16
+ }
17
+ if (value !== null && typeof value === 'object') {
18
+ // GraphQL object literals have unquoted keys, unlike JSON
19
+ return `{${Object.entries(value).map(([key, val]) => `${key}: ${toGraphqlLiteral(val)}`).join(', ')}}`;
20
+ }
21
+ return JSON.stringify(value);
22
+ }
23
+ //# sourceMappingURL=urlQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlQueries.js","sourceRoot":"","sources":["../../src/guillotine/urlQueries.ts"],"names":[],"mappings":"AAEA,mGAAmG;AACnG,MAAM,gBAAgB,GAAG,4DAA4D,CAAC;AACtF,MAAM,qBAAqB,GAAG,6DAA6D,CAAC;AAC5F,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAkB,EAAU,EAAE,CAAC,WAAW,aAAa,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;AAElH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAU,EAAE,CAAC,WAAW,aAAa,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC;AAExH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAU,EAAE,CAAC,gBAAgB,aAAa,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC;AAElI,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAU,EAAE,CAAC,UAAU,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC;AAE/G,SAAS,aAAa,CAAC,OAAe,EAAE;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;IAClG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACvH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,0DAA0D;QAC1D,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3G,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { AttachmentUrl, ImageUrl, PageUrl, PageUrlMeta, UrlParts } from '../types';
2
+ export declare function imageUrl(data: UrlParts<ImageUrl>): string;
3
+ export declare function imageUrl(data?: UrlParts<ImageUrl> | null): string | undefined;
4
+ export declare function mediaUrl(data: UrlParts<AttachmentUrl>): string;
5
+ export declare function mediaUrl(data?: UrlParts<AttachmentUrl> | null): string | undefined;
6
+ export declare function attachmentUrl(data: UrlParts<AttachmentUrl>): string;
7
+ export declare function attachmentUrl(data?: UrlParts<AttachmentUrl> | null): string | undefined;
8
+ export declare function pageUrl(data: UrlParts<PageUrl>, meta: PageUrlMeta): string;
9
+ export declare function pageUrl(data: UrlParts<PageUrl> | null | undefined, meta: PageUrlMeta): string | undefined;
@@ -0,0 +1,18 @@
1
+ import { getMediaUrl } from '../utils/getMediaUrl';
2
+ import { getPageUrl } from '../utils/getPageUrl';
3
+ export function imageUrl(data) {
4
+ return toMediaUrl(data);
5
+ }
6
+ export function mediaUrl(data) {
7
+ return toMediaUrl(data);
8
+ }
9
+ export function attachmentUrl(data) {
10
+ return toMediaUrl(data);
11
+ }
12
+ export function pageUrl(data, meta) {
13
+ return data ? getPageUrl(data.path + (data.queryString || ''), meta) : undefined;
14
+ }
15
+ function toMediaUrl(data) {
16
+ return data ? getMediaUrl(data.path + (data.queryString || '')) : undefined;
17
+ }
18
+ //# sourceMappingURL=urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/guillotine/urls.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAI/C,MAAM,UAAU,QAAQ,CAAC,IAAgC;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,IAAqC;IAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAID,MAAM,UAAU,aAAa,CAAC,IAAqC;IAC/D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAMD,MAAM,UAAU,OAAO,CAAC,IAA0C,EAAE,IAAiB;IACjF,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC;AAED,SAAS,UAAU,CAAC,IAAsC;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC"}
@@ -1,21 +1,20 @@
1
1
  import { notFound, redirect, RedirectType } from 'next/navigation';
2
2
  import { RENDER_MODE } from '../common/constants';
3
3
  import { IS_DEV_MODE } from '../common/env';
4
- import { UrlProcessor } from '../common/UrlProcessor';
4
+ import { pageUrl } from './urls';
5
5
  export function validateShortcut(props) {
6
- var _a, _b, _c;
6
+ var _a, _b;
7
7
  const { data, meta, error } = props;
8
8
  const dataObj = (_a = data === null || data === void 0 ? void 0 : data.get) === null || _a === void 0 ? void 0 : _a.data;
9
- const targetPath = (_c = (_b = dataObj === null || dataObj === void 0 ? void 0 : dataObj.target) === null || _b === void 0 ? void 0 : _b.pageUrl) === null || _c === void 0 ? void 0 : _c.path;
10
9
  const parameters = dataObj === null || dataObj === void 0 ? void 0 : dataObj.parameters;
11
- if (meta.type === 'base:shortcut' && targetPath) {
10
+ let destination = pageUrl((_b = dataObj === null || dataObj === void 0 ? void 0 : dataObj.target) === null || _b === void 0 ? void 0 : _b.pageUrl, meta);
11
+ if (meta.type === 'base:shortcut' && destination) {
12
12
  if (meta.renderMode !== RENDER_MODE.NEXT) {
13
13
  // do not show shortcut targets in preview/edit mode
14
14
  console.warn(404, `Shortcuts are not available in ${meta.renderMode} render mode`);
15
15
  notFound();
16
16
  }
17
- let destination = UrlProcessor.process(targetPath, meta, true);
18
- if (parameters) {
17
+ if (parameters === null || parameters === void 0 ? void 0 : parameters.length) {
19
18
  const searchParams = parameters.map(({ name, value }) => `${encodeURIComponent(name)}=${encodeURIComponent(value)}`).join('&');
20
19
  destination += '?' + searchParams;
21
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateShortcut.js","sourceRoot":"","sources":["../../src/guillotine/validateShortcut.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAGpD,MAAM,UAAU,gBAAgB,CAAC,KAAyB;;IACtD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,KAAK,CAAC;IAClC,MAAM,OAAO,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,IAAI,CAAC;IAChC,MAAM,UAAU,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,OAAO,0CAAE,IAAI,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,UAAU,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACvC,oDAAoD;YACpD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,IAAI,CAAC,UAAU,cAAc,CAAC,CAAC;YACnF,QAAQ,EAAE,CAAC;QACf,CAAC;QAED,IAAI,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7H,WAAW,IAAI,GAAG,GAAG,YAAY,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7E,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,uCAAuC;IACvC,kDAAkD;IAClD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,CAAC;IAErF,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;IAErG,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,YAAY,IAAI,sBAAsB,CAAC;IAE7F,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,8BAA8B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9D,QAAQ,EAAE,CAAC;IACf,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"validateShortcut.js","sourceRoot":"","sources":["../../src/guillotine/validateShortcut.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAG/B,MAAM,UAAU,gBAAgB,CAAC,KAAyB;;IACtD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,KAAK,CAAC;IAClC,MAAM,OAAO,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,IAAI,CAAC;IAChC,MAAM,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC;IACvC,IAAI,WAAW,GAAG,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,WAAW,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACvC,oDAAoD;YACpD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,IAAI,CAAC,UAAU,cAAc,CAAC,CAAC;YACnF,QAAQ,EAAE,CAAC;QACf,CAAC;QAED,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7H,WAAW,IAAI,GAAG,GAAG,YAAY,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7E,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,uCAAuC;IACvC,kDAAkD;IAClD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,CAAC;IAErF,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;IAErG,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,YAAY,IAAI,sBAAsB,CAAC;IAE7F,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,8BAA8B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9D,QAAQ,EAAE,CAAC;IACf,CAAC;AACL,CAAC"}
@@ -1,13 +1,4 @@
1
1
  'use client';
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
2
  import React, { createContext, useContext, useEffect, useState } from 'react';
12
3
  import { getPhrase, loadPhrases } from './i18n';
13
4
  const LocaleContext = createContext({
@@ -21,7 +12,7 @@ export const LocaleContextProvider = ({ children, locale: localeProps = '' }) =>
21
12
  const [currentLocale, setLocaleState] = useState(localeProps);
22
13
  const [dictionary, setPhrasesState] = useState({});
23
14
  const [isLoaded, setLoadedState] = useState(false);
24
- const setLocale = (locale) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const setLocale = async (locale) => {
25
16
  setLocaleState(locale);
26
17
  setLoadedState(false);
27
18
  return loadPhrases(locale).then((phrases) => {
@@ -29,7 +20,7 @@ export const LocaleContextProvider = ({ children, locale: localeProps = '' }) =>
29
20
  setLoadedState(true);
30
21
  return phrases;
31
22
  });
32
- });
23
+ };
33
24
  useEffect(() => {
34
25
  if (localeProps) {
35
26
  void setLocale(localeProps); // void to avoid @typescript-eslint/no-floating-promises
@@ -1 +1 @@
1
- {"version":3,"file":"LocaleContext.jsx","sourceRoot":"","sources":["../../src/i18n/LocaleContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAGb,OAAO,KAAK,EAAE,EAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AAG9C,MAAM,aAAa,GAAG,aAAa,CAAoB;IACnD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,GAAG;IAC9C,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,QAAQ,EACR,MAAM,EAAE,WAAW,GAAG,EAAE,EAI3B,EAAE,EAAE;IACD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAO,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,CAAO,MAAc,EAAiB,EAAE;QACtD,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,cAAc,CAAC,KAAK,CAAC,CAAC;QAEtB,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACxC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAA,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,WAAW,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,wDAAwD;QACzF,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/E,CAAC,CAAC;IAEF,OAAO,CACH,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;YACT,MAAM,EAAE,aAAa;YACrB,UAAU;YACV,QAAQ;SACX,CAAC,CACE;YAAA,CAAC,QAAQ,CACb;QAAA,EAAE,aAAa,CAAC,QAAQ,CAAC,CAC5B,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"LocaleContext.jsx","sourceRoot":"","sources":["../../src/i18n/LocaleContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,KAAK,EAAE,EAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AAG9C,MAAM,aAAa,GAAG,aAAa,CAAoB;IACnD,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,GAAG;IAC9C,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,QAAQ,EACR,MAAM,EAAE,WAAW,GAAG,EAAE,EAI3B,EAAE,EAAE;IACD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAO,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACtD,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,cAAc,CAAC,KAAK,CAAC,CAAC;QAEtB,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACxC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,WAAW,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,wDAAwD;QACzF,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/E,CAAC,CAAC;IAEF,OAAO,CACH,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS;YACT,MAAM,EAAE,aAAa;YACrB,UAAU;YACV,QAAQ;SACX,CAAC,CACE;YAAA,CAAC,QAAQ,CACb;QAAA,EAAE,aAAa,CAAC,QAAQ,CAAC,CAC5B,CAAC;AACN,CAAC,CAAC"}