@alpaca-headless/alpaca-headless-nextjs 1.0.26 → 1.0.128

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 (238) hide show
  1. package/dist/cjs/client-components/ClientLink.js +36 -0
  2. package/dist/cjs/client-components/MultiComponentEditor.js +26 -0
  3. package/dist/cjs/client-components/index.js +19 -0
  4. package/dist/cjs/components/Link.js +1 -1
  5. package/dist/cjs/components/LinkEditor.js +47 -1
  6. package/dist/cjs/components/Picture.js +14 -12
  7. package/dist/cjs/components/PictureEditor.js +22 -18
  8. package/dist/cjs/components/Placeholder.js +51 -9
  9. package/dist/cjs/components/RichText.js +1 -1
  10. package/dist/cjs/components/RichTextEditor.js +17 -2
  11. package/dist/cjs/components/TextEditor.js +15 -3
  12. package/dist/cjs/components/Translate.js +1 -1
  13. package/dist/cjs/{editor → components}/TranslateEditor.js +5 -2
  14. package/dist/cjs/editor/AiPopup.js +33 -0
  15. package/dist/cjs/editor/AiTerminal.js +42 -18
  16. package/dist/cjs/editor/ComponentInfo.js +4 -3
  17. package/dist/cjs/editor/ComponentPalette.js +12 -68
  18. package/dist/cjs/editor/ComponentTree.js +76 -59
  19. package/dist/cjs/editor/ConfirmationDialog.js +31 -0
  20. package/dist/cjs/editor/ContentTree.js +144 -49
  21. package/dist/cjs/editor/Debug.js +12 -2
  22. package/dist/cjs/editor/DialogButtons.js +7 -0
  23. package/dist/cjs/editor/DictionaryEditor.js +14 -8
  24. package/dist/cjs/editor/EditFrame.js +88 -20
  25. package/dist/cjs/editor/EditHistory.js +17 -4
  26. package/dist/cjs/editor/Editor.js +1 -1
  27. package/dist/cjs/editor/EditorClient.js +506 -237
  28. package/dist/cjs/editor/EditorClientHost.js +2 -2
  29. package/dist/cjs/editor/FieldList.js +30 -43
  30. package/dist/cjs/editor/FieldListField.js +75 -0
  31. package/dist/cjs/editor/FloatingToolbar.js +92 -0
  32. package/dist/cjs/editor/GraphQL.js +4 -6
  33. package/dist/cjs/editor/ItemEditor.js +9 -0
  34. package/dist/cjs/editor/ItemInfo.js +17 -0
  35. package/dist/cjs/editor/ItemNameDialog.js +37 -0
  36. package/dist/cjs/editor/LanguageSelector.js +1 -1
  37. package/dist/cjs/editor/LinkEditorDialog.js +67 -0
  38. package/dist/cjs/editor/MainLayout.js +24 -0
  39. package/dist/cjs/editor/MediaSelector.js +44 -13
  40. package/dist/cjs/editor/PictureEditorDialog.js +93 -0
  41. package/dist/cjs/editor/PlaceholderDropZone.js +48 -9
  42. package/dist/cjs/editor/SidebarTabs.js +47 -0
  43. package/dist/cjs/editor/Terminal.js +21 -11
  44. package/dist/cjs/editor/Utils.js +43 -0
  45. package/dist/cjs/editor/VersionSelector.js +1 -1
  46. package/dist/cjs/editor/Workbox.js +41 -0
  47. package/dist/cjs/editor/componentCommands.js +141 -0
  48. package/dist/cjs/editor/contentService.js +45 -3
  49. package/dist/cjs/editor/editContext.js +9 -4
  50. package/dist/cjs/editor/editService.js +187 -3
  51. package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +21 -0
  52. package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +46 -0
  53. package/dist/cjs/editor/fieldTypes/LinkFieldEditor.js +55 -0
  54. package/dist/cjs/editor/fieldTypes/MultiLineText.js +25 -0
  55. package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +19 -0
  56. package/dist/cjs/editor/fieldTypes/RichTextEditor.js +9 -4
  57. package/dist/cjs/editor/fieldTypes/SingleLineText.js +12 -4
  58. package/dist/cjs/editor/fieldTypes/TreeListEditor.js +59 -0
  59. package/dist/cjs/editor/ui/Section.js +8 -0
  60. package/dist/cjs/loadRouteData.js +24 -14
  61. package/dist/cjs/middleware/authorization.js +52 -0
  62. package/dist/cjs/middleware/index.js +17 -0
  63. package/dist/editor.css +552 -74
  64. package/dist/primereact/resources/themes/arya-blue/theme.css +103 -91
  65. package/dist/primereact/resources/themes/arya-green/theme.css +103 -91
  66. package/dist/primereact/resources/themes/arya-orange/theme.css +103 -91
  67. package/dist/primereact/resources/themes/arya-purple/theme.css +103 -91
  68. package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +103 -91
  69. package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +103 -91
  70. package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +102 -90
  71. package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +102 -90
  72. package/dist/primereact/resources/themes/fluent-light/theme.css +103 -91
  73. package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-italic.var.woff2 +0 -0
  74. package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-roman.var.woff2 +0 -0
  75. package/dist/primereact/resources/themes/lara-dark-amber/theme.css +6049 -0
  76. package/dist/primereact/resources/themes/lara-dark-blue/theme.css +1006 -955
  77. package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-italic.var.woff2 +0 -0
  78. package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-roman.var.woff2 +0 -0
  79. package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +6049 -0
  80. package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-italic.var.woff2 +0 -0
  81. package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-roman.var.woff2 +0 -0
  82. package/dist/primereact/resources/themes/lara-dark-green/theme.css +6049 -0
  83. package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +1006 -955
  84. package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-italic.var.woff2 +0 -0
  85. package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-roman.var.woff2 +0 -0
  86. package/dist/primereact/resources/themes/lara-dark-pink/theme.css +6049 -0
  87. package/dist/primereact/resources/themes/lara-dark-purple/theme.css +1006 -955
  88. package/dist/primereact/resources/themes/lara-dark-teal/theme.css +1006 -955
  89. package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-italic.var.woff2 +0 -0
  90. package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-roman.var.woff2 +0 -0
  91. package/dist/primereact/resources/themes/lara-light-amber/theme.css +6041 -0
  92. package/dist/primereact/resources/themes/lara-light-blue/theme.css +842 -799
  93. package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-italic.var.woff2 +0 -0
  94. package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-roman.var.woff2 +0 -0
  95. package/dist/primereact/resources/themes/lara-light-cyan/theme.css +6041 -0
  96. package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-italic.var.woff2 +0 -0
  97. package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-roman.var.woff2 +0 -0
  98. package/dist/primereact/resources/themes/lara-light-green/theme.css +6041 -0
  99. package/dist/primereact/resources/themes/lara-light-indigo/theme.css +842 -799
  100. package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-italic.var.woff2 +0 -0
  101. package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-roman.var.woff2 +0 -0
  102. package/dist/primereact/resources/themes/lara-light-pink/theme.css +6041 -0
  103. package/dist/primereact/resources/themes/lara-light-purple/theme.css +842 -799
  104. package/dist/primereact/resources/themes/lara-light-teal/theme.css +1115 -1072
  105. package/dist/primereact/resources/themes/luna-amber/theme.css +103 -91
  106. package/dist/primereact/resources/themes/luna-blue/theme.css +103 -91
  107. package/dist/primereact/resources/themes/luna-green/theme.css +103 -91
  108. package/dist/primereact/resources/themes/luna-pink/theme.css +103 -91
  109. package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +147 -135
  110. package/dist/primereact/resources/themes/md-dark-indigo/theme.css +147 -135
  111. package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +147 -135
  112. package/dist/primereact/resources/themes/md-light-indigo/theme.css +147 -135
  113. package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +147 -135
  114. package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +147 -135
  115. package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +147 -135
  116. package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +147 -135
  117. package/dist/primereact/resources/themes/mira/theme.css +108 -91
  118. package/dist/primereact/resources/themes/nano/theme.css +107 -91
  119. package/dist/primereact/resources/themes/nova/theme.css +103 -91
  120. package/dist/primereact/resources/themes/nova-accent/theme.css +103 -91
  121. package/dist/primereact/resources/themes/nova-alt/theme.css +103 -91
  122. package/dist/primereact/resources/themes/rhea/theme.css +103 -91
  123. package/dist/primereact/resources/themes/saga-blue/theme.css +103 -91
  124. package/dist/primereact/resources/themes/saga-green/theme.css +103 -91
  125. package/dist/primereact/resources/themes/saga-orange/theme.css +103 -91
  126. package/dist/primereact/resources/themes/saga-purple/theme.css +103 -91
  127. package/dist/primereact/resources/themes/soho-dark/theme.css +108 -91
  128. package/dist/primereact/resources/themes/soho-light/theme.css +108 -91
  129. package/dist/primereact/resources/themes/vela-blue/theme.css +103 -91
  130. package/dist/primereact/resources/themes/vela-green/theme.css +103 -91
  131. package/dist/primereact/resources/themes/vela-orange/theme.css +103 -91
  132. package/dist/primereact/resources/themes/vela-purple/theme.css +103 -91
  133. package/dist/primereact/resources/themes/viva-dark/theme.css +103 -91
  134. package/dist/primereact/resources/themes/viva-light/theme.css +103 -91
  135. package/package.json +29 -16
  136. package/tailwind.config.js +9 -2
  137. package/types/client-components/ClientLink.d.ts +6 -0
  138. package/types/client-components/MultiComponentEditor.d.ts +10 -0
  139. package/types/client-components/index.d.ts +2 -0
  140. package/types/components/Picture.d.ts +1 -0
  141. package/types/components/Placeholder.d.ts +16 -2
  142. package/types/components/RichTextEditor.d.ts +55 -55
  143. package/types/components/TextEditor.d.ts +54 -54
  144. package/types/editor/AiPopup.d.ts +10 -0
  145. package/types/editor/AiTerminal.d.ts +4 -3
  146. package/types/editor/ComponentPalette.d.ts +3 -4
  147. package/types/editor/ComponentTree.d.ts +1 -1
  148. package/types/editor/ConfirmationDialog.d.ts +19 -0
  149. package/types/editor/ContentTree.d.ts +7 -3
  150. package/types/editor/Debug.d.ts +1 -1
  151. package/types/editor/DialogButtons.d.ts +4 -0
  152. package/types/editor/DictionaryEditor.d.ts +3 -2
  153. package/types/editor/EditFrame.d.ts +4 -3
  154. package/types/editor/EditorClient.d.ts +4 -4
  155. package/types/editor/EditorClientHost.d.ts +4 -3
  156. package/types/editor/FieldListField.d.ts +4 -0
  157. package/types/editor/FloatingToolbar.d.ts +7 -0
  158. package/types/editor/ItemEditor.d.ts +4 -0
  159. package/types/editor/ItemInfo.d.ts +4 -0
  160. package/types/editor/ItemNameDialog.d.ts +10 -0
  161. package/types/editor/LinkEditorDialog.d.ts +15 -0
  162. package/types/editor/MainLayout.d.ts +6 -0
  163. package/types/editor/MediaSelector.d.ts +2 -1
  164. package/types/editor/PictureEditorDialog.d.ts +6 -0
  165. package/types/editor/SidebarTabs.d.ts +8 -0
  166. package/types/editor/Terminal.d.ts +3 -1
  167. package/types/editor/Utils.d.ts +3 -0
  168. package/types/editor/Workbox.d.ts +6 -0
  169. package/types/editor/componentCommands.d.ts +4 -0
  170. package/types/editor/contentService.d.ts +7 -1
  171. package/types/editor/editContext.d.ts +90 -19
  172. package/types/editor/editService.d.ts +9 -1
  173. package/types/editor/fieldTypes/CheckboxEditor.d.ts +4 -0
  174. package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +4 -0
  175. package/types/editor/fieldTypes/LinkFieldEditor.d.ts +4 -0
  176. package/types/editor/fieldTypes/MultiLineText.d.ts +4 -0
  177. package/types/editor/fieldTypes/PictureFieldEditor.d.ts +4 -0
  178. package/types/editor/fieldTypes/TreeListEditor.d.ts +4 -0
  179. package/types/editor/ui/Section.d.ts +5 -0
  180. package/types/fieldTypes.d.ts +32 -17
  181. package/types/layoutData.d.ts +34 -9
  182. package/types/loadRouteData.d.ts +34 -5
  183. package/types/mediaProtection.d.ts +1 -0
  184. package/types/middleware/authorization.d.ts +2 -0
  185. package/types/middleware/index.d.ts +1 -0
  186. package/dist/cjs/editor/PageInfo.js +0 -12
  187. package/dist/esm/alpacaContext.js +0 -8
  188. package/dist/esm/components/Error.js +0 -10
  189. package/dist/esm/components/Image.js +0 -32
  190. package/dist/esm/components/Link.js +0 -29
  191. package/dist/esm/components/LinkEditor.js +0 -19
  192. package/dist/esm/components/Picture.js +0 -118
  193. package/dist/esm/components/PictureEditor.js +0 -41
  194. package/dist/esm/components/Placeholder.js +0 -69
  195. package/dist/esm/components/RichText.js +0 -40
  196. package/dist/esm/components/RichTextEditor.js +0 -52
  197. package/dist/esm/components/Slot.js +0 -5
  198. package/dist/esm/components/Text.js +0 -39
  199. package/dist/esm/components/TextEditor.js +0 -38
  200. package/dist/esm/components/Translate.js +0 -10
  201. package/dist/esm/components/index.js +0 -7
  202. package/dist/esm/editor/AiTerminal.js +0 -157
  203. package/dist/esm/editor/ComponentInfo.js +0 -10
  204. package/dist/esm/editor/ComponentPalette.js +0 -72
  205. package/dist/esm/editor/ComponentTree.js +0 -196
  206. package/dist/esm/editor/ContentTree.js +0 -117
  207. package/dist/esm/editor/Debug.js +0 -9
  208. package/dist/esm/editor/DictionaryEditor.js +0 -31
  209. package/dist/esm/editor/EditFrame.js +0 -57
  210. package/dist/esm/editor/EditHistory.js +0 -26
  211. package/dist/esm/editor/Editor.js +0 -23
  212. package/dist/esm/editor/EditorClient.js +0 -477
  213. package/dist/esm/editor/EditorClientHost.js +0 -7
  214. package/dist/esm/editor/FieldList.js +0 -60
  215. package/dist/esm/editor/GraphQL.js +0 -82
  216. package/dist/esm/editor/LanguageSelector.js +0 -17
  217. package/dist/esm/editor/MediaSelector.js +0 -54
  218. package/dist/esm/editor/PageInfo.js +0 -8
  219. package/dist/esm/editor/PlaceholderDropZone.js +0 -50
  220. package/dist/esm/editor/PlaceholderDropZoneHost.js +0 -7
  221. package/dist/esm/editor/Terminal.js +0 -47
  222. package/dist/esm/editor/TranslateEditor.js +0 -21
  223. package/dist/esm/editor/VersionSelector.js +0 -17
  224. package/dist/esm/editor/componentTreeHelper.js +0 -14
  225. package/dist/esm/editor/contentService.js +0 -31
  226. package/dist/esm/editor/editContext.js +0 -5
  227. package/dist/esm/editor/editService.js +0 -139
  228. package/dist/esm/editor/fieldTypes/RichTextEditor.js +0 -15
  229. package/dist/esm/editor/fieldTypes/SingleLineText.js +0 -13
  230. package/dist/esm/editor/index.js +0 -2
  231. package/dist/esm/fieldTypes.js +0 -1
  232. package/dist/esm/graphQLTypes.js +0 -1
  233. package/dist/esm/index.js +0 -7
  234. package/dist/esm/layoutData.js +0 -1
  235. package/dist/esm/loadRouteData.js +0 -123
  236. package/dist/esm/mediaProtection.js +0 -49
  237. package/types/editor/PageInfo.d.ts +0 -4
  238. /package/types/{editor → components}/TranslateEditor.d.ts +0 -0
@@ -12,13 +12,38 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.commitChanges = exports.executeRedo = exports.executeUndo = exports.executeEditOperation = exports.setCurrentOperation = exports.currentOperation = void 0;
15
+ exports.createItem = exports.loadInsertOptions = exports.createVersion = exports.commitChanges = exports.executeRedo = exports.executeWorkflowCommand = exports.lockItem = exports.executeUndo = exports.executeEditOperation = exports.getPictureValue = exports.setCurrentOperation = exports.currentOperation = void 0;
16
16
  const universal_cookie_1 = __importDefault(require("universal-cookie"));
17
17
  exports.currentOperation = undefined;
18
18
  function setCurrentOperation(operation) {
19
19
  exports.currentOperation = operation;
20
20
  }
21
21
  exports.setCurrentOperation = setCurrentOperation;
22
+ function getPictureValue(field, pictureRawValue, site, sessionId) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const response = yield fetch("/alpaca/headless/editor/getPictureValue?sessionId=" + sessionId, {
25
+ method: "POST",
26
+ body: JSON.stringify({
27
+ site,
28
+ itemId: field.item.id,
29
+ itemLanguage: field.item.language,
30
+ itemVersion: field.item.version,
31
+ pictureFieldId: field.id,
32
+ pictureValue: JSON.stringify(pictureRawValue),
33
+ }),
34
+ credentials: "include",
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ Cookie: new universal_cookie_1.default().getAll(),
38
+ },
39
+ next: {
40
+ revalidate: 0,
41
+ },
42
+ });
43
+ return yield response.json();
44
+ });
45
+ }
46
+ exports.getPictureValue = getPictureValue;
22
47
  function executeEditOperation(editOperation, sessionId) {
23
48
  return __awaiter(this, void 0, void 0, function* () {
24
49
  const response = yield fetch("/alpaca/headless/editor/edit?sessionId=" + sessionId, {
@@ -51,9 +76,12 @@ function executeEditOperation(editOperation, sessionId) {
51
76
  });
52
77
  }
53
78
  exports.executeEditOperation = executeEditOperation;
54
- function executeUndo(sessionId) {
79
+ function executeUndo(sessionId, numOperations) {
55
80
  return __awaiter(this, void 0, void 0, function* () {
56
- const response = yield fetch("/alpaca/headless/editor/undo?sessionId=" + sessionId, {
81
+ const response = yield fetch("/alpaca/headless/editor/undo?sessionId=" +
82
+ sessionId +
83
+ "&numOperations=" +
84
+ (numOperations !== null && numOperations !== void 0 ? numOperations : 1), {
57
85
  method: "POST",
58
86
  body: "",
59
87
  credentials: "include",
@@ -83,6 +111,70 @@ function executeUndo(sessionId) {
83
111
  });
84
112
  }
85
113
  exports.executeUndo = executeUndo;
114
+ function lockItem(item) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ const response = yield fetch("/alpaca/headless/editor/lock", {
117
+ method: "POST",
118
+ body: JSON.stringify(item),
119
+ credentials: "include",
120
+ headers: {
121
+ "Content-Type": "application/json",
122
+ Cookie: new universal_cookie_1.default().getAll(),
123
+ },
124
+ next: {
125
+ revalidate: 0,
126
+ },
127
+ });
128
+ if (response.status === 500 || response.redirected) {
129
+ return {
130
+ type: "error",
131
+ summary: "Error",
132
+ details: "An error occured while locking the item.",
133
+ };
134
+ }
135
+ if (response.status === 401) {
136
+ return {
137
+ type: "error",
138
+ summary: "Unauthorized",
139
+ details: "Not logged in anymore?",
140
+ };
141
+ }
142
+ return { type: "success" };
143
+ });
144
+ }
145
+ exports.lockItem = lockItem;
146
+ function executeWorkflowCommand(item, commandId, comment) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ const response = yield fetch("/alpaca/headless/editor/executeWorkflowCommand", {
149
+ method: "POST",
150
+ body: JSON.stringify({ item, commandId, comment }),
151
+ credentials: "include",
152
+ headers: {
153
+ "Content-Type": "application/json",
154
+ Cookie: new universal_cookie_1.default().getAll(),
155
+ },
156
+ next: {
157
+ revalidate: 0,
158
+ },
159
+ });
160
+ if (response.status === 500 || response.redirected) {
161
+ return {
162
+ type: "error",
163
+ summary: "Error",
164
+ details: "An error occured while locking the item.",
165
+ };
166
+ }
167
+ if (response.status === 401) {
168
+ return {
169
+ type: "error",
170
+ summary: "Unauthorized",
171
+ details: "Not logged in anymore?",
172
+ };
173
+ }
174
+ return { type: "success" };
175
+ });
176
+ }
177
+ exports.executeWorkflowCommand = executeWorkflowCommand;
86
178
  function executeRedo(sessionId) {
87
179
  return __awaiter(this, void 0, void 0, function* () {
88
180
  const response = yield fetch("/alpaca/headless/editor/redo?sessionId=" + sessionId, {
@@ -148,3 +240,95 @@ function commitChanges(sessionId) {
148
240
  });
149
241
  }
150
242
  exports.commitChanges = commitChanges;
243
+ function createVersion(page, sessionId) {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ const response = yield fetch("/alpaca/headless/editor/createVersion?sessionId=" + sessionId, {
246
+ method: "POST",
247
+ body: JSON.stringify({
248
+ item: page,
249
+ }),
250
+ credentials: "include",
251
+ headers: {
252
+ "Content-Type": "application/json",
253
+ Cookie: new universal_cookie_1.default().getAll(),
254
+ },
255
+ next: {
256
+ revalidate: 0,
257
+ },
258
+ });
259
+ if (response.ok)
260
+ return { type: "success" };
261
+ else {
262
+ if (response.status === 401) {
263
+ return {
264
+ type: "error",
265
+ summary: "Unauthorized",
266
+ details: "Not logged in anymore?",
267
+ };
268
+ }
269
+ return {
270
+ type: "error",
271
+ summary: "Error",
272
+ details: "An error occured while saving changes.",
273
+ };
274
+ }
275
+ });
276
+ }
277
+ exports.createVersion = createVersion;
278
+ function loadInsertOptions(item) {
279
+ return __awaiter(this, void 0, void 0, function* () {
280
+ let url = "/alpaca/headless/editor/insertoptions";
281
+ const response = yield fetch(url, {
282
+ method: "POST",
283
+ credentials: "include",
284
+ body: JSON.stringify(item),
285
+ headers: {
286
+ "Content-Type": "application/json",
287
+ Cookie: new universal_cookie_1.default().getAll(),
288
+ },
289
+ next: {
290
+ revalidate: 0,
291
+ },
292
+ });
293
+ return yield response.json();
294
+ });
295
+ }
296
+ exports.loadInsertOptions = loadInsertOptions;
297
+ function createItem(parent, templateId, name) {
298
+ return __awaiter(this, void 0, void 0, function* () {
299
+ let url = "/alpaca/headless/editor/createItem";
300
+ const response = yield fetch(url, {
301
+ method: "POST",
302
+ credentials: "include",
303
+ body: JSON.stringify({
304
+ parent,
305
+ templateId,
306
+ name,
307
+ }),
308
+ headers: {
309
+ "Content-Type": "application/json",
310
+ Cookie: new universal_cookie_1.default().getAll(),
311
+ },
312
+ next: {
313
+ revalidate: 0,
314
+ },
315
+ });
316
+ if (response.ok)
317
+ return { type: "success" };
318
+ else {
319
+ if (response.status === 401) {
320
+ return {
321
+ type: "error",
322
+ summary: "Unauthorized",
323
+ details: "Not logged in anymore?",
324
+ };
325
+ }
326
+ return {
327
+ type: "error",
328
+ summary: "Error",
329
+ details: "An error occured while saving changes.",
330
+ };
331
+ }
332
+ });
333
+ }
334
+ exports.createItem = createItem;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CheckboxEditor = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const __1 = require("../..");
7
+ const checkbox_1 = require("primereact/checkbox");
8
+ function CheckboxEditor({ field }) {
9
+ const editContext = (0, __1.useEditContext)();
10
+ if (!editContext)
11
+ return;
12
+ return ((0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: field.value, onChange: (e) => {
13
+ editContext.editField({
14
+ field,
15
+ rawValue: e.checked ? "1" : "0",
16
+ refresh: "immediate",
17
+ });
18
+ // field.value = e.target.value;
19
+ } }, field.item.id + field.id + field.item.language + field.item.version));
20
+ }
21
+ exports.CheckboxEditor = CheckboxEditor;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ "use client";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.InternalLinkFieldEditor = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const react_1 = require("react");
10
+ const __1 = require("../..");
11
+ const ContentTree_1 = __importDefault(require("../ContentTree"));
12
+ function InternalLinkFieldEditor({ field, }) {
13
+ const editContext = (0, __1.useEditContext)();
14
+ const [link, setLink] = (0, react_1.useState)();
15
+ const [showTree, setShowTree] = (0, react_1.useState)(false);
16
+ (0, react_1.useEffect)(() => {
17
+ var _a;
18
+ setLink({
19
+ url: field.value.url,
20
+ target: field.value.target,
21
+ targetItemName: field.value.targetItemName,
22
+ targetItemLongId: field.value.targetItemLongId,
23
+ type: field.value.type,
24
+ itemId: (_a = field.value.targetItemLongId) === null || _a === void 0 ? void 0 : _a.split("/").pop(),
25
+ queryString: field.value.queryString,
26
+ });
27
+ }, [field]);
28
+ if (!field)
29
+ return;
30
+ if (!editContext)
31
+ return;
32
+ const selection = [];
33
+ if (link === null || link === void 0 ? void 0 : link.itemId)
34
+ selection.push(link.itemId);
35
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: "a-p-2 a-border a-bg-gray-50 a-flex a-justify-between a-text-sm a-cursor-pointer a-justiy-between a-focus-shadow", onClick: (e) => {
36
+ setShowTree(!showTree);
37
+ e.preventDefault();
38
+ }, children: [(0, jsx_runtime_1.jsx)("span", { children: link === null || link === void 0 ? void 0 : link.targetItemName }), (0, jsx_runtime_1.jsx)("i", { className: `pi ${showTree ? "pi-angle-up" : "pi-angle-down"} ` })] }), showTree && ((0, jsx_runtime_1.jsx)("div", { className: "a-h-64 a-overflow-scroll a-resize", children: (0, jsx_runtime_1.jsx)(ContentTree_1.default, { expandIdPath: link === null || link === void 0 ? void 0 : link.targetItemLongId, rootItemId: "{11111111-1111-1111-1111-111111111111}", selectionMode: "single", selectedItemIds: selection, onSelectionChange: (selection) => {
39
+ setShowTree(false);
40
+ editContext === null || editContext === void 0 ? void 0 : editContext.editField({
41
+ field,
42
+ rawValue: selection.id,
43
+ });
44
+ } }) }))] }));
45
+ }
46
+ exports.InternalLinkFieldEditor = InternalLinkFieldEditor;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LinkFieldEditor = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const __1 = require("../..");
8
+ const LinkEditorDialog_1 = require("../LinkEditorDialog");
9
+ function LinkFieldEditor({ field }) {
10
+ const editContext = (0, __1.useEditContext)();
11
+ const [showDialog, setShowDialog] = (0, react_1.useState)(false);
12
+ const [link, setLink] = (0, react_1.useState)();
13
+ (0, react_1.useEffect)(() => {
14
+ var _a;
15
+ setLink({
16
+ url: field.value.url,
17
+ target: field.value.target,
18
+ targetItemLongId: field.value.targetItemLongId,
19
+ type: field.value.type,
20
+ itemId: (_a = field.value.targetItemLongId) === null || _a === void 0 ? void 0 : _a.split("/").pop(),
21
+ queryString: field.value.queryString,
22
+ });
23
+ }, [field]);
24
+ if (!field)
25
+ return;
26
+ if (!editContext)
27
+ return;
28
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "a-p-3 a-bg-gray-50 a-flex a-justify-between a-focus-shadow", onClick: (e) => {
29
+ setShowDialog(true);
30
+ e.preventDefault();
31
+ }, children: [(0, jsx_runtime_1.jsx)("div", { children: field.value.url }), (0, jsx_runtime_1.jsx)("i", { className: "pi pi-link a-cursor-pointer" })] }), showDialog && ((0, jsx_runtime_1.jsx)(LinkEditorDialog_1.LinkEditorDialog, { linkValue: link || { type: "internal" }, onOk: (link) => {
32
+ var _a, _b;
33
+ const xml = link.type == "internal"
34
+ ? '<link linktype="internal" querystring="' +
35
+ ((_a = link.queryString) !== null && _a !== void 0 ? _a : "") +
36
+ '" id="' +
37
+ link.itemId +
38
+ '" target="' +
39
+ link.target +
40
+ '" />'
41
+ : '<link linktype="external" querystring="' +
42
+ ((_b = link.queryString) !== null && _b !== void 0 ? _b : "") +
43
+ ' url="' +
44
+ link.url +
45
+ '" target="' +
46
+ link.target +
47
+ '" />';
48
+ editContext === null || editContext === void 0 ? void 0 : editContext.editField({ field, rawValue: xml });
49
+ editContext === null || editContext === void 0 ? void 0 : editContext.requestRefresh("immediate");
50
+ setShowDialog(false);
51
+ }, onCancel: () => {
52
+ setShowDialog(false);
53
+ } }))] }));
54
+ }
55
+ exports.LinkFieldEditor = LinkFieldEditor;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MultiLineText = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const inputtextarea_1 = require("primereact/inputtextarea");
7
+ const __1 = require("../..");
8
+ function MultiLineText({ field }) {
9
+ const editContext = (0, __1.useEditContext)();
10
+ if (!editContext)
11
+ return;
12
+ const liveField = editContext.getLiveField(field);
13
+ if (!editContext)
14
+ return;
15
+ const value = (liveField === null || liveField === void 0 ? void 0 : liveField.value) || field.value;
16
+ return ((0, jsx_runtime_1.jsx)(inputtextarea_1.InputTextarea, { value: value, className: "a-p-2 a-focus-shadow", style: { width: "100%" }, rows: 12, onChange: (e) => {
17
+ editContext.editField({
18
+ field,
19
+ value: e.target.value,
20
+ refresh: "none",
21
+ });
22
+ // field.value = e.target.value;
23
+ } }, field.item.id + field.id + field.item.language + field.item.version));
24
+ }
25
+ exports.MultiLineText = MultiLineText;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PictureFieldEditor = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const editContext_1 = require("../editContext");
7
+ const PictureEditorDialog_1 = require("../PictureEditorDialog");
8
+ const react_1 = require("react");
9
+ function PictureFieldEditor({ field }) {
10
+ var _a, _b;
11
+ const editContext = (0, editContext_1.useEditContext)();
12
+ const [editorVisible, setEditorVisible] = (0, react_1.useState)(false);
13
+ if (!field)
14
+ return;
15
+ if (!editContext)
16
+ return;
17
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "a-flex a-gap-1 a-h-full a-border-r a-focus-shadow", children: [(_b = (_a = field === null || field === void 0 ? void 0 : field.value) === null || _a === void 0 ? void 0 : _a.variants) === null || _b === void 0 ? void 0 : _b.map((variant) => ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "a-h-24 a-w-24 a-border a-relative a-cursor-pointer a-flex a-justify-center a-items-center", onClick: () => setEditorVisible(true), children: variant.src && (0, jsx_runtime_1.jsx)("img", { src: variant.thumbSrc }) }), (0, jsx_runtime_1.jsx)("div", { className: "a-text-xs", children: variant.name }), (0, jsx_runtime_1.jsx)("div", { className: "a-text-xs", children: variant.aspectRatioText })] }, variant.name))), editorVisible && ((0, jsx_runtime_1.jsx)(PictureEditorDialog_1.PictureEditorDialog, { field: field, onCancel: () => setEditorVisible(false), onOk: () => setEditorVisible(false) }))] }));
18
+ }
19
+ exports.PictureFieldEditor = PictureFieldEditor;
@@ -9,11 +9,16 @@ function RichTextEditor({ field }) {
9
9
  const editContext = (0, __1.useEditContext)();
10
10
  if (!editContext)
11
11
  return;
12
- return ((0, jsx_runtime_1.jsx)(editor_1.Editor, { value: field.value, style: { width: "100%" }, onTextChange: (e) => {
12
+ const liveField = editContext.getLiveField(field);
13
+ return ((0, jsx_runtime_1.jsx)(editor_1.Editor, { className: "a-focus-shadow", value: liveField.value, style: { width: "100%" }, onTextChange: (e) => {
13
14
  var _a;
14
15
  // console.log("Text change: " + field.itemId);
15
- editContext.editField(field, (_a = e.htmlValue) !== null && _a !== void 0 ? _a : "", true);
16
- field.value = e.htmlValue;
17
- } }, field.itemId + field.id + field.language + field.version));
16
+ editContext.editField({
17
+ field,
18
+ value: (_a = e.htmlValue) !== null && _a !== void 0 ? _a : "",
19
+ refresh: "none",
20
+ });
21
+ // field.value = e.htmlValue;
22
+ } }, field.item.id + field.id + field.item.language + field.item.version));
18
23
  }
19
24
  exports.RichTextEditor = RichTextEditor;
@@ -9,9 +9,17 @@ function SingleLineText({ field }) {
9
9
  const editContext = (0, __1.useEditContext)();
10
10
  if (!editContext)
11
11
  return;
12
- return ((0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: field.value, style: { width: "100%" }, onChange: (e) => {
13
- editContext.editField(field, e.target.value, false);
14
- field.value = e.target.value;
15
- } }, field.itemId + field.id + field.language + field.version));
12
+ const liveField = editContext.getLiveField(field);
13
+ if (!editContext)
14
+ return;
15
+ const value = (liveField === null || liveField === void 0 ? void 0 : liveField.value) || field.value;
16
+ return ((0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: value, className: "a-p-2 a-focus-shadow", style: { width: "100%" }, onChange: (e) => {
17
+ editContext.editField({
18
+ field,
19
+ value: e.target.value,
20
+ refresh: "none",
21
+ });
22
+ // field.value = e.target.value;
23
+ } }, field.item.id + field.id + field.item.language + field.item.version));
16
24
  }
17
25
  exports.SingleLineText = SingleLineText;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const splitter_1 = require("primereact/splitter");
8
+ const __1 = require("..");
9
+ const ContentTree_1 = __importDefault(require("../ContentTree"));
10
+ const react_1 = require("react");
11
+ const listbox_1 = require("primereact/listbox");
12
+ function TreeListEditor({ field }) {
13
+ const editContext = (0, __1.useEditContext)();
14
+ const [selectedItemIdsInTree, setSelectedItemIdsInTree] = (0, react_1.useState)([]);
15
+ const [selectedFromList, setSelectedFromList] = (0, react_1.useState)([]);
16
+ if (!editContext)
17
+ return;
18
+ const rootItemId = field.customEditorProperties.datasources &&
19
+ field.customEditorProperties.datasources.length
20
+ ? field.customEditorProperties.datasources[0]
21
+ : "{11111111-1111-1111-1111-111111111111}";
22
+ const trimPath = (path) => {
23
+ const splitPath = path.split("/");
24
+ if (splitPath.length > 2) {
25
+ return (splitPath[splitPath.length - 2] + "/" + splitPath[splitPath.length - 1]);
26
+ }
27
+ return path;
28
+ };
29
+ function removeFromList(items) {
30
+ editContext === null || editContext === void 0 ? void 0 : editContext.editField({
31
+ field: field,
32
+ rawValue: field.value
33
+ .filter((x) => !items.find((i) => x.id == i.id))
34
+ .map((x) => x.id)
35
+ .join("|"),
36
+ refresh: "immediate",
37
+ });
38
+ }
39
+ function addToList(itemIds) {
40
+ const ids = field.value.map((x) => x.id);
41
+ itemIds.forEach((element) => {
42
+ if (ids.indexOf(element) == -1) {
43
+ ids.push(element);
44
+ }
45
+ });
46
+ editContext === null || editContext === void 0 ? void 0 : editContext.editField({
47
+ field: field,
48
+ rawValue: ids.join("|"),
49
+ refresh: "immediate",
50
+ });
51
+ }
52
+ return ((0, jsx_runtime_1.jsx)("div", { className: "a-border a-focus-shadow", children: (0, jsx_runtime_1.jsxs)(splitter_1.Splitter, { className: "a-h-52", children: [(0, jsx_runtime_1.jsx)(splitter_1.SplitterPanel, { size: 50, className: "a-relative", children: (0, jsx_runtime_1.jsx)("div", { className: "a-absolute a-inset-0 a-overflow-auto", children: (0, jsx_runtime_1.jsx)(ContentTree_1.default, { onDoubleClick: (node) => {
53
+ addToList([node.id]);
54
+ }, selectionMode: "multiple", selectedItemIds: selectedItemIdsInTree, onSelectionChange: (e) => {
55
+ const selcetedIds = e.map((x) => x.id);
56
+ setSelectedItemIdsInTree(selcetedIds);
57
+ }, rootItemId: rootItemId }) }) }), (0, jsx_runtime_1.jsx)(splitter_1.SplitterPanel, { children: (0, jsx_runtime_1.jsx)("div", { className: "a-h-full a-w-full a-relative", children: (0, jsx_runtime_1.jsxs)("div", { className: "a-absolute a-inset-0 a-flex", children: [(0, jsx_runtime_1.jsxs)("div", { className: "a-bg-gray-100 a-flex a-flex-col a-justify-center", children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => addToList(selectedItemIdsInTree), children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-angle-right a-p-2 hover:a-bg-gray-50" }) }), (0, jsx_runtime_1.jsx)("button", { onClick: () => removeFromList(selectedFromList), children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-angle-left a-p-2 hover:a-bg-gray-50" }) })] }), (0, jsx_runtime_1.jsx)("div", { className: "a-flex-1 a-h-full a-relative", children: (0, jsx_runtime_1.jsx)(listbox_1.ListBox, { className: "a-absolute a-inset-0 a-overflow-auto a-text-xs", options: field.value || [], optionLabel: "path", emptyMessage: "None selected", multiple: true, value: selectedFromList, onChange: (e) => setSelectedFromList(e.value), itemTemplate: (option) => ((0, jsx_runtime_1.jsxs)("div", { className: "a-select-none", onDoubleClick: () => removeFromList([option]), children: [trimPath(option.path), " "] })) }) }), (0, jsx_runtime_1.jsx)("div", {})] }) }) })] }) }));
58
+ }
59
+ exports.default = TreeListEditor;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Section = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ function Section({ title, children, }) {
6
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "a-pb-10 a-bg-gray-100", children: [(0, jsx_runtime_1.jsx)("div", { className: "a-p-2 a-border-l-4 a-text-white a-text-sm a-border-blue-500 a-bg-gray-800", children: title }), (0, jsx_runtime_1.jsx)("div", { className: "a-px-2", children: children })] }));
7
+ }
8
+ exports.Section = Section;
@@ -23,19 +23,24 @@ const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, s
23
23
  SessionId: session,
24
24
  Version: version,
25
25
  };
26
- const url = process.env.LAYOUT_SERVICE_URL +
27
- "/alpaca/headless/layout?session=" +
28
- session;
26
+ let url = process.env.LAYOUT_SERVICE_URL + "/alpaca/headless/layout";
27
+ if (session)
28
+ url += "?session=" + session;
29
29
  console.log(`Fetching page layout from ${url}. Host:${request.Host} Path: ${request.Path}`);
30
+ const requestHeaders = {
31
+ "Content-Type": "application/json",
32
+ Cookie: (0, headers_1.cookies)().toString(),
33
+ "x-api-key": getApiKey(),
34
+ };
35
+ const headersList = (0, headers_1.headers)();
36
+ if (headersList.get("Authorization")) {
37
+ requestHeaders["Authorization"] = headersList.get("Authorization");
38
+ }
30
39
  const response = yield fetch(url, {
31
40
  method: "POST",
32
41
  body: JSON.stringify(request),
33
42
  credentials: "include",
34
- headers: {
35
- "Content-Type": "application/json",
36
- Cookie: (0, headers_1.cookies)().toString(),
37
- "x-api-key": getApiKey(),
38
- },
43
+ headers: requestHeaders,
39
44
  next: {
40
45
  tags: ["pages"],
41
46
  revalidate: mode === "preview" || mode == "edit" ? 0 : 30,
@@ -74,7 +79,7 @@ const fetchRouteData = (0, react_1.cache)((path, host, mode, itemId, language, s
74
79
  };
75
80
  context.fields = data.page.fields;
76
81
  context.edit = data.edit;
77
- const dictionary = yield loadDictionary(context.pageContext.site.name, context.pageContext.language, mode);
82
+ const dictionary = yield loadDictionary(context.pageContext.site.name, context.pageContext.language, mode, session);
78
83
  context.dictionary = dictionary;
79
84
  context.translate = (text) => {
80
85
  return context.dictionary[text] || text;
@@ -89,13 +94,17 @@ function loadRouteData(params, searchParams, host) {
89
94
  });
90
95
  }
91
96
  exports.loadRouteData = loadRouteData;
92
- function loadDictionary(siteName, language, mode) {
97
+ function loadDictionary(siteName, language, mode, session) {
93
98
  return __awaiter(this, void 0, void 0, function* () {
94
- const url = process.env.LAYOUT_SERVICE_URL +
95
- "/alpaca/headless/dictionary?siteName=" +
99
+ let url = process.env.LAYOUT_SERVICE_URL +
100
+ "/alpaca/headless/dictionary" +
101
+ (mode === "edit" ? "/editable" : "") +
102
+ "?siteName=" +
96
103
  siteName +
97
104
  "&language=" +
98
105
  language;
106
+ if (session)
107
+ url += "&sessionId=" + session;
99
108
  console.log(`Fetching dictionary from ${url}.`);
100
109
  const response = yield fetch(url, {
101
110
  method: "GET",
@@ -107,15 +116,16 @@ function loadDictionary(siteName, language, mode) {
107
116
  },
108
117
  next: {
109
118
  tags: ["dictionary"],
110
- revalidate: mode === "preview" || mode == "edit" ? 15 : 600,
119
+ revalidate: mode === "preview" || mode === "edit" ? 15 : 600,
111
120
  },
112
121
  });
113
122
  if (!response.ok) {
114
123
  console.log("Could not load dictionary: Response code: " + response.status);
124
+ console.log(yield response.text());
115
125
  return {};
116
126
  }
117
127
  const data = yield response.json();
118
- console.log(data);
128
+ //console.log(data);
119
129
  return data;
120
130
  });
121
131
  }
@@ -0,0 +1,52 @@
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.ensureAuthorized = void 0;
13
+ function ensureAuthorized(request) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ if (request.nextUrl.searchParams.get("mode"))
16
+ return null;
17
+ const itemId = request.nextUrl.searchParams.get("itemid");
18
+ const language = request.nextUrl.searchParams.get("language");
19
+ const url = process.env.LAYOUT_SERVICE_URL + "/alpaca/headless/layout/authorize";
20
+ const fetchRequest = {
21
+ Path: request.nextUrl.pathname,
22
+ Host: request.headers.get("host") || "",
23
+ ItemId: itemId,
24
+ Language: language,
25
+ };
26
+ const headers = {
27
+ "Content-Type": "application/json",
28
+ Cookie: request.cookies.toString(),
29
+ };
30
+ if (request.headers.get("Authorization"))
31
+ headers["Authorization"] = request.headers.get("Authorization");
32
+ const response = yield fetch(url, {
33
+ method: "POST",
34
+ body: JSON.stringify(fetchRequest),
35
+ credentials: "include",
36
+ headers,
37
+ next: {
38
+ revalidate: 0,
39
+ },
40
+ });
41
+ var auth = response.headers.get("WWW-Authenticate");
42
+ if (!auth)
43
+ return null;
44
+ return new Response(null, {
45
+ status: 401,
46
+ headers: {
47
+ "WWW-Authenticate": auth.replace(", Bearer", ""),
48
+ },
49
+ });
50
+ });
51
+ }
52
+ exports.ensureAuthorized = ensureAuthorized;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./authorization"), exports);