@webiny/api-website-builder 6.3.0 → 6.4.0-beta.1

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 (391) hide show
  1. package/constants.js +4 -3
  2. package/constants.js.map +1 -1
  3. package/domain/page/EntryToPageMapper.js +30 -28
  4. package/domain/page/EntryToPageMapper.js.map +1 -1
  5. package/domain/page/PagePath.js +20 -30
  6. package/domain/page/PagePath.js.map +1 -1
  7. package/domain/page/abstractions.d.ts +13 -0
  8. package/domain/page/abstractions.js +2 -5
  9. package/domain/page/abstractions.js.map +1 -1
  10. package/domain/page/errors.js +46 -51
  11. package/domain/page/errors.js.map +1 -1
  12. package/domain/page/page.model.d.ts +8 -1
  13. package/domain/page/page.model.js +25 -30
  14. package/domain/page/page.model.js.map +1 -1
  15. package/domain/permissionsSchema.js +49 -28
  16. package/domain/permissionsSchema.js.map +1 -1
  17. package/domain/redirect/EntryToRedirectMapper.js +21 -20
  18. package/domain/redirect/EntryToRedirectMapper.js.map +1 -1
  19. package/domain/redirect/abstractions.js +2 -9
  20. package/domain/redirect/abstractions.js.map +1 -1
  21. package/domain/redirect/errors.js +28 -31
  22. package/domain/redirect/errors.js.map +1 -1
  23. package/domain/redirect/redirect.model.d.ts +8 -1
  24. package/domain/redirect/redirect.model.js +24 -30
  25. package/domain/redirect/redirect.model.js.map +1 -1
  26. package/domain/shared/abstractions.js +0 -3
  27. package/exports/api/website-builder/nextjs.js +0 -2
  28. package/exports/api/website-builder/page.js +5 -7
  29. package/exports/api/website-builder/redirect.js +1 -3
  30. package/features/installer/ApiKeyInstaller.js +33 -30
  31. package/features/installer/ApiKeyInstaller.js.map +1 -1
  32. package/features/installer/feature.js +6 -5
  33. package/features/installer/feature.js.map +1 -1
  34. package/features/nextjs/MarkdownContentBuilder.js +67 -76
  35. package/features/nextjs/MarkdownContentBuilder.js.map +1 -1
  36. package/features/nextjs/MarkdownContentBuilder.test.js +266 -273
  37. package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -1
  38. package/features/nextjs/NextjsConfig.js +43 -46
  39. package/features/nextjs/NextjsConfig.js.map +1 -1
  40. package/features/nextjs/abstractions.js +2 -2
  41. package/features/nextjs/abstractions.js.map +1 -1
  42. package/features/nextjs/feature.js +6 -5
  43. package/features/nextjs/feature.js.map +1 -1
  44. package/features/nextjs/index.js +0 -2
  45. package/features/pages/CreatePage/CreatePageRepository.js +23 -25
  46. package/features/pages/CreatePage/CreatePageRepository.js.map +1 -1
  47. package/features/pages/CreatePage/CreatePageUseCase.js +29 -34
  48. package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -1
  49. package/features/pages/CreatePage/abstractions.js +5 -30
  50. package/features/pages/CreatePage/abstractions.js.map +1 -1
  51. package/features/pages/CreatePage/events.js +16 -14
  52. package/features/pages/CreatePage/events.js.map +1 -1
  53. package/features/pages/CreatePage/feature.js +7 -6
  54. package/features/pages/CreatePage/feature.js.map +1 -1
  55. package/features/pages/CreatePage/index.js +1 -3
  56. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +30 -36
  57. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -1
  58. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +33 -41
  59. package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  60. package/features/pages/CreatePageRevisionFrom/abstractions.js +5 -30
  61. package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
  62. package/features/pages/CreatePageRevisionFrom/events.js +16 -14
  63. package/features/pages/CreatePageRevisionFrom/events.js.map +1 -1
  64. package/features/pages/CreatePageRevisionFrom/feature.js +7 -6
  65. package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -1
  66. package/features/pages/CreatePageRevisionFrom/index.js +1 -3
  67. package/features/pages/DeletePage/DeletePageRepository.js +19 -18
  68. package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
  69. package/features/pages/DeletePage/DeletePageUseCase.js +32 -39
  70. package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
  71. package/features/pages/DeletePage/abstractions.js +5 -30
  72. package/features/pages/DeletePage/abstractions.js.map +1 -1
  73. package/features/pages/DeletePage/events.js +16 -14
  74. package/features/pages/DeletePage/events.js.map +1 -1
  75. package/features/pages/DeletePage/feature.js +7 -6
  76. package/features/pages/DeletePage/feature.js.map +1 -1
  77. package/features/pages/DeletePage/index.js +1 -3
  78. package/features/pages/DuplicatePage/DuplicatePageRepository.js +50 -53
  79. package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -1
  80. package/features/pages/DuplicatePage/DuplicatePageUseCase.js +35 -43
  81. package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -1
  82. package/features/pages/DuplicatePage/abstractions.js +5 -30
  83. package/features/pages/DuplicatePage/abstractions.js.map +1 -1
  84. package/features/pages/DuplicatePage/events.js +16 -14
  85. package/features/pages/DuplicatePage/events.js.map +1 -1
  86. package/features/pages/DuplicatePage/feature.js +7 -6
  87. package/features/pages/DuplicatePage/feature.js.map +1 -1
  88. package/features/pages/DuplicatePage/index.js +1 -3
  89. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +20 -20
  90. package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -1
  91. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +19 -21
  92. package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -1
  93. package/features/pages/GetDeletedPageById/abstractions.js +3 -12
  94. package/features/pages/GetDeletedPageById/abstractions.js.map +1 -1
  95. package/features/pages/GetDeletedPageById/feature.js +7 -6
  96. package/features/pages/GetDeletedPageById/feature.js.map +1 -1
  97. package/features/pages/GetDeletedPageById/index.js +0 -2
  98. package/features/pages/GetPageById/GetPageByIdRepository.js +20 -18
  99. package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -1
  100. package/features/pages/GetPageById/GetPageByIdUseCase.js +19 -21
  101. package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -1
  102. package/features/pages/GetPageById/abstractions.js +3 -13
  103. package/features/pages/GetPageById/abstractions.js.map +1 -1
  104. package/features/pages/GetPageById/feature.js +7 -6
  105. package/features/pages/GetPageById/feature.js.map +1 -1
  106. package/features/pages/GetPageById/index.js +0 -2
  107. package/features/pages/GetPageByPath/GetPageByPathRepository.js +26 -26
  108. package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -1
  109. package/features/pages/GetPageByPath/GetPageByPathUseCase.js +19 -21
  110. package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -1
  111. package/features/pages/GetPageByPath/abstractions.js +3 -13
  112. package/features/pages/GetPageByPath/abstractions.js.map +1 -1
  113. package/features/pages/GetPageByPath/feature.js +7 -6
  114. package/features/pages/GetPageByPath/feature.js.map +1 -1
  115. package/features/pages/GetPageByPath/index.js +0 -2
  116. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js +42 -48
  117. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsRepository.js.map +1 -1
  118. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js +14 -13
  119. package/features/pages/GetPageLanguagePaths/GetPageLanguagePathsUseCase.js.map +1 -1
  120. package/features/pages/GetPageLanguagePaths/abstractions.js +3 -3
  121. package/features/pages/GetPageLanguagePaths/abstractions.js.map +1 -1
  122. package/features/pages/GetPageLanguagePaths/feature.js +7 -6
  123. package/features/pages/GetPageLanguagePaths/feature.js.map +1 -1
  124. package/features/pages/GetPageLanguagePaths/index.js +0 -2
  125. package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +17 -15
  126. package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -1
  127. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +22 -24
  128. package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  129. package/features/pages/GetPageRevisions/abstractions.js +3 -13
  130. package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
  131. package/features/pages/GetPageRevisions/feature.js +7 -6
  132. package/features/pages/GetPageRevisions/feature.js.map +1 -1
  133. package/features/pages/GetPageRevisions/index.js +0 -2
  134. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +37 -36
  135. package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -1
  136. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +27 -24
  137. package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -1
  138. package/features/pages/ListDeletedPages/abstractions.js +3 -12
  139. package/features/pages/ListDeletedPages/abstractions.js.map +1 -1
  140. package/features/pages/ListDeletedPages/feature.js +7 -6
  141. package/features/pages/ListDeletedPages/feature.js.map +1 -1
  142. package/features/pages/ListDeletedPages/index.js +0 -2
  143. package/features/pages/ListPages/ListPagesRepository.js +37 -36
  144. package/features/pages/ListPages/ListPagesRepository.js.map +1 -1
  145. package/features/pages/ListPages/ListPagesUseCase.js +27 -24
  146. package/features/pages/ListPages/ListPagesUseCase.js.map +1 -1
  147. package/features/pages/ListPages/abstractions.js +3 -13
  148. package/features/pages/ListPages/abstractions.js.map +1 -1
  149. package/features/pages/ListPages/feature.js +7 -6
  150. package/features/pages/ListPages/feature.js.map +1 -1
  151. package/features/pages/ListPages/index.js +0 -2
  152. package/features/pages/MovePage/MovePageRepository.js +25 -27
  153. package/features/pages/MovePage/MovePageRepository.js.map +1 -1
  154. package/features/pages/MovePage/MovePageUseCase.js +39 -49
  155. package/features/pages/MovePage/MovePageUseCase.js.map +1 -1
  156. package/features/pages/MovePage/abstractions.js +5 -30
  157. package/features/pages/MovePage/abstractions.js.map +1 -1
  158. package/features/pages/MovePage/events.js +16 -14
  159. package/features/pages/MovePage/events.js.map +1 -1
  160. package/features/pages/MovePage/feature.js +7 -6
  161. package/features/pages/MovePage/feature.js.map +1 -1
  162. package/features/pages/MovePage/index.js +1 -3
  163. package/features/pages/PublishPage/PublishPageRepository.js +26 -28
  164. package/features/pages/PublishPage/PublishPageRepository.js.map +1 -1
  165. package/features/pages/PublishPage/PublishPageUseCase.js +36 -46
  166. package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -1
  167. package/features/pages/PublishPage/abstractions.js +5 -30
  168. package/features/pages/PublishPage/abstractions.js.map +1 -1
  169. package/features/pages/PublishPage/events.js +16 -14
  170. package/features/pages/PublishPage/events.js.map +1 -1
  171. package/features/pages/PublishPage/feature.js +7 -6
  172. package/features/pages/PublishPage/feature.js.map +1 -1
  173. package/features/pages/PublishPage/index.js +0 -2
  174. package/features/pages/RestorePage/RestorePageRepository.js +20 -19
  175. package/features/pages/RestorePage/RestorePageRepository.js.map +1 -1
  176. package/features/pages/RestorePage/RestorePageUseCase.js +32 -39
  177. package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -1
  178. package/features/pages/RestorePage/abstractions.js +5 -27
  179. package/features/pages/RestorePage/abstractions.js.map +1 -1
  180. package/features/pages/RestorePage/events.js +16 -14
  181. package/features/pages/RestorePage/events.js.map +1 -1
  182. package/features/pages/RestorePage/feature.js +7 -6
  183. package/features/pages/RestorePage/feature.js.map +1 -1
  184. package/features/pages/RestorePage/index.js +0 -2
  185. package/features/pages/TranslatePage/TranslatePageUseCase.js +46 -62
  186. package/features/pages/TranslatePage/TranslatePageUseCase.js.map +1 -1
  187. package/features/pages/TranslatePage/abstractions.js +2 -11
  188. package/features/pages/TranslatePage/abstractions.js.map +1 -1
  189. package/features/pages/TranslatePage/feature.js +6 -5
  190. package/features/pages/TranslatePage/feature.js.map +1 -1
  191. package/features/pages/TranslatePage/index.js +0 -2
  192. package/features/pages/TrashPage/TrashPageRepository.js +21 -20
  193. package/features/pages/TrashPage/TrashPageRepository.js.map +1 -1
  194. package/features/pages/TrashPage/TrashPageUseCase.js +33 -40
  195. package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -1
  196. package/features/pages/TrashPage/abstractions.js +5 -27
  197. package/features/pages/TrashPage/abstractions.js.map +1 -1
  198. package/features/pages/TrashPage/events.js +16 -14
  199. package/features/pages/TrashPage/events.js.map +1 -1
  200. package/features/pages/TrashPage/feature.js +7 -6
  201. package/features/pages/TrashPage/feature.js.map +1 -1
  202. package/features/pages/TrashPage/index.js +0 -2
  203. package/features/pages/UnpublishPage/UnpublishPageRepository.js +26 -28
  204. package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -1
  205. package/features/pages/UnpublishPage/UnpublishPageUseCase.js +35 -45
  206. package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -1
  207. package/features/pages/UnpublishPage/abstractions.js +5 -30
  208. package/features/pages/UnpublishPage/abstractions.js.map +1 -1
  209. package/features/pages/UnpublishPage/events.js +16 -14
  210. package/features/pages/UnpublishPage/events.js.map +1 -1
  211. package/features/pages/UnpublishPage/feature.js +7 -6
  212. package/features/pages/UnpublishPage/feature.js.map +1 -1
  213. package/features/pages/UnpublishPage/index.js +0 -2
  214. package/features/pages/UpdatePage/UpdatePageRepository.js +30 -34
  215. package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -1
  216. package/features/pages/UpdatePage/UpdatePageUseCase.js +44 -54
  217. package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -1
  218. package/features/pages/UpdatePage/abstractions.js +5 -30
  219. package/features/pages/UpdatePage/abstractions.js.map +1 -1
  220. package/features/pages/UpdatePage/events.js +16 -14
  221. package/features/pages/UpdatePage/events.js.map +1 -1
  222. package/features/pages/UpdatePage/feature.js +7 -6
  223. package/features/pages/UpdatePage/feature.js.map +1 -1
  224. package/features/pages/UpdatePage/index.js +0 -2
  225. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.d.ts +15 -0
  226. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js +40 -0
  227. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionRepository.js.map +1 -0
  228. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.d.ts +16 -0
  229. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js +56 -0
  230. package/features/pages/UpdatePageRevisionDescription/UpdatePageRevisionDescriptionUseCase.js.map +1 -0
  231. package/features/pages/UpdatePageRevisionDescription/abstractions.d.ts +67 -0
  232. package/features/pages/UpdatePageRevisionDescription/abstractions.js +8 -0
  233. package/features/pages/UpdatePageRevisionDescription/abstractions.js.map +1 -0
  234. package/features/pages/UpdatePageRevisionDescription/events.d.ts +10 -0
  235. package/features/pages/UpdatePageRevisionDescription/events.js +21 -0
  236. package/features/pages/UpdatePageRevisionDescription/events.js.map +1 -0
  237. package/features/pages/UpdatePageRevisionDescription/feature.d.ts +4 -0
  238. package/features/pages/UpdatePageRevisionDescription/feature.js +13 -0
  239. package/features/pages/UpdatePageRevisionDescription/feature.js.map +1 -0
  240. package/features/pages/UpdatePageRevisionDescription/index.d.ts +1 -0
  241. package/features/pages/UpdatePageRevisionDescription/index.js +1 -0
  242. package/features/permissions/abstractions.js +2 -1
  243. package/features/permissions/abstractions.js.map +1 -1
  244. package/features/permissions/feature.js +2 -1
  245. package/features/permissions/feature.js.map +1 -1
  246. package/features/redirects/CreateRedirect/CreateRedirectRepository.js +23 -21
  247. package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -1
  248. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +29 -34
  249. package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -1
  250. package/features/redirects/CreateRedirect/abstractions.js +5 -30
  251. package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
  252. package/features/redirects/CreateRedirect/events.js +16 -14
  253. package/features/redirects/CreateRedirect/events.js.map +1 -1
  254. package/features/redirects/CreateRedirect/feature.js +7 -6
  255. package/features/redirects/CreateRedirect/feature.js.map +1 -1
  256. package/features/redirects/CreateRedirect/index.js +1 -3
  257. package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +19 -17
  258. package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -1
  259. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +34 -41
  260. package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -1
  261. package/features/redirects/DeleteRedirect/abstractions.js +5 -30
  262. package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
  263. package/features/redirects/DeleteRedirect/events.js +16 -14
  264. package/features/redirects/DeleteRedirect/events.js.map +1 -1
  265. package/features/redirects/DeleteRedirect/feature.js +7 -6
  266. package/features/redirects/DeleteRedirect/feature.js.map +1 -1
  267. package/features/redirects/DeleteRedirect/index.js +1 -3
  268. package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +22 -21
  269. package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -1
  270. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +17 -15
  271. package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -1
  272. package/features/redirects/GetActiveRedirects/abstractions.js +3 -13
  273. package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
  274. package/features/redirects/GetActiveRedirects/feature.js +7 -6
  275. package/features/redirects/GetActiveRedirects/feature.js.map +1 -1
  276. package/features/redirects/GetActiveRedirects/index.js +0 -2
  277. package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +20 -18
  278. package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -1
  279. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +20 -22
  280. package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -1
  281. package/features/redirects/GetRedirectById/abstractions.js +3 -13
  282. package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
  283. package/features/redirects/GetRedirectById/feature.js +7 -6
  284. package/features/redirects/GetRedirectById/feature.js.map +1 -1
  285. package/features/redirects/GetRedirectById/index.js +0 -2
  286. package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +23 -20
  287. package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -1
  288. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +13 -16
  289. package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -1
  290. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +13 -16
  291. package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -1
  292. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +13 -17
  293. package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -1
  294. package/features/redirects/InvalidateRedirectsCache/abstractions.js +2 -7
  295. package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
  296. package/features/redirects/InvalidateRedirectsCache/feature.js +9 -8
  297. package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -1
  298. package/features/redirects/InvalidateRedirectsCache/index.js +0 -2
  299. package/features/redirects/ListRedirects/ListRedirectsRepository.js +35 -34
  300. package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -1
  301. package/features/redirects/ListRedirects/ListRedirectsUseCase.js +28 -25
  302. package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -1
  303. package/features/redirects/ListRedirects/abstractions.js +3 -17
  304. package/features/redirects/ListRedirects/abstractions.js.map +1 -1
  305. package/features/redirects/ListRedirects/feature.js +7 -6
  306. package/features/redirects/ListRedirects/feature.js.map +1 -1
  307. package/features/redirects/ListRedirects/index.js +0 -2
  308. package/features/redirects/MoveRedirect/MoveRedirectRepository.js +25 -27
  309. package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -1
  310. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +39 -49
  311. package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -1
  312. package/features/redirects/MoveRedirect/abstractions.js +5 -30
  313. package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
  314. package/features/redirects/MoveRedirect/events.js +16 -14
  315. package/features/redirects/MoveRedirect/events.js.map +1 -1
  316. package/features/redirects/MoveRedirect/feature.js +7 -6
  317. package/features/redirects/MoveRedirect/feature.js.map +1 -1
  318. package/features/redirects/MoveRedirect/index.js +1 -3
  319. package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +31 -35
  320. package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -1
  321. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +44 -54
  322. package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -1
  323. package/features/redirects/UpdateRedirect/abstractions.js +5 -30
  324. package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
  325. package/features/redirects/UpdateRedirect/events.js +16 -14
  326. package/features/redirects/UpdateRedirect/events.js.map +1 -1
  327. package/features/redirects/UpdateRedirect/feature.js +7 -6
  328. package/features/redirects/UpdateRedirect/feature.js.map +1 -1
  329. package/features/redirects/UpdateRedirect/index.js +0 -2
  330. package/features/tenantManager/TenantModelExtension.js +52 -32
  331. package/features/tenantManager/TenantModelExtension.js.map +1 -1
  332. package/features/tenantManager/feature.js +6 -5
  333. package/features/tenantManager/feature.js.map +1 -1
  334. package/graphql/createGraphQL.js +15 -12
  335. package/graphql/createGraphQL.js.map +1 -1
  336. package/graphql/nextjs/NextjsGraphQLSchema.js +28 -29
  337. package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -1
  338. package/graphql/pages/pages.gql.js +221 -324
  339. package/graphql/pages/pages.gql.js.map +1 -1
  340. package/graphql/pages/pages.typeDefs.d.ts +1 -1
  341. package/graphql/pages/pages.typeDefs.js +7 -1
  342. package/graphql/pages/pages.typeDefs.js.map +1 -1
  343. package/graphql/redirects/redirects.gql.js +56 -86
  344. package/graphql/redirects/redirects.gql.js.map +1 -1
  345. package/graphql/redirects/redirects.typeDefs.js +3 -4
  346. package/graphql/redirects/redirects.typeDefs.js.map +1 -1
  347. package/index.d.ts +1 -1
  348. package/index.js +64 -61
  349. package/index.js.map +1 -1
  350. package/package.json +20 -20
  351. package/rest/ActiveRedirectDto.js +0 -3
  352. package/rest/ActiveRedirectRestMapper.js +10 -9
  353. package/rest/ActiveRedirectRestMapper.js.map +1 -1
  354. package/rest/getRedirects.js +19 -26
  355. package/rest/getRedirects.js.map +1 -1
  356. package/utils/ensureAuthentication.js +6 -9
  357. package/utils/ensureAuthentication.js.map +1 -1
  358. package/utils/resolve.js +7 -6
  359. package/utils/resolve.js.map +1 -1
  360. package/domain/shared/abstractions.js.map +0 -1
  361. package/exports/api/website-builder/nextjs.js.map +0 -1
  362. package/exports/api/website-builder/page.js.map +0 -1
  363. package/exports/api/website-builder/redirect.js.map +0 -1
  364. package/features/nextjs/index.js.map +0 -1
  365. package/features/pages/CreatePage/index.js.map +0 -1
  366. package/features/pages/CreatePageRevisionFrom/index.js.map +0 -1
  367. package/features/pages/DeletePage/index.js.map +0 -1
  368. package/features/pages/DuplicatePage/index.js.map +0 -1
  369. package/features/pages/GetDeletedPageById/index.js.map +0 -1
  370. package/features/pages/GetPageById/index.js.map +0 -1
  371. package/features/pages/GetPageByPath/index.js.map +0 -1
  372. package/features/pages/GetPageLanguagePaths/index.js.map +0 -1
  373. package/features/pages/GetPageRevisions/index.js.map +0 -1
  374. package/features/pages/ListDeletedPages/index.js.map +0 -1
  375. package/features/pages/ListPages/index.js.map +0 -1
  376. package/features/pages/MovePage/index.js.map +0 -1
  377. package/features/pages/PublishPage/index.js.map +0 -1
  378. package/features/pages/RestorePage/index.js.map +0 -1
  379. package/features/pages/TranslatePage/index.js.map +0 -1
  380. package/features/pages/TrashPage/index.js.map +0 -1
  381. package/features/pages/UnpublishPage/index.js.map +0 -1
  382. package/features/pages/UpdatePage/index.js.map +0 -1
  383. package/features/redirects/CreateRedirect/index.js.map +0 -1
  384. package/features/redirects/DeleteRedirect/index.js.map +0 -1
  385. package/features/redirects/GetActiveRedirects/index.js.map +0 -1
  386. package/features/redirects/GetRedirectById/index.js.map +0 -1
  387. package/features/redirects/InvalidateRedirectsCache/index.js.map +0 -1
  388. package/features/redirects/ListRedirects/index.js.map +0 -1
  389. package/features/redirects/MoveRedirect/index.js.map +0 -1
  390. package/features/redirects/UpdateRedirect/index.js.map +0 -1
  391. package/rest/ActiveRedirectDto.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","RedirectModel"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport type { WbIdentity, WbLocation } from \"~/domain/shared/abstractions.js\";\n\n/**\n * RedirectModel abstraction - represents the Website Builder redirect CMS model.\n * This will be registered via container.registerInstance in the composite feature.\n */\nexport const RedirectModel = createAbstraction<CmsModel>(\"Wb/RedirectModel\");\n\nexport namespace RedirectModel {\n export type Interface = CmsModel;\n}\n\nexport interface CmsEntryWbRedirect {\n redirectFrom: string;\n redirectTo: string;\n redirectType: string;\n isEnabled: boolean;\n}\n/**\n * WbRedirect domain entity\n */\nexport interface WbRedirect extends CmsEntryWbRedirect {\n id: string;\n location: WbLocation;\n createdOn: string;\n createdBy: WbIdentity;\n savedOn: string;\n savedBy: WbIdentity;\n modifiedOn: string | null;\n modifiedBy: WbIdentity | null;\n tenant: string;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAIvD;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAAW,kBAAkB,CAAC;;AAY5E;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"domain/redirect/abstractions.js","sources":["../../../src/domain/redirect/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport type { WbIdentity, WbLocation } from \"~/domain/shared/abstractions.js\";\n\n/**\n * RedirectModel abstraction - represents the Website Builder redirect CMS model.\n * This will be registered via container.registerInstance in the composite feature.\n */\nexport const RedirectModel = createAbstraction<CmsModel>(\"Wb/RedirectModel\");\n\nexport namespace RedirectModel {\n export type Interface = CmsModel;\n}\n\nexport interface CmsEntryWbRedirect {\n redirectFrom: string;\n redirectTo: string;\n redirectType: string;\n isEnabled: boolean;\n}\n/**\n * WbRedirect domain entity\n */\nexport interface WbRedirect extends CmsEntryWbRedirect {\n id: string;\n location: WbLocation;\n createdOn: string;\n createdBy: WbIdentity;\n savedOn: string;\n savedBy: WbIdentity;\n modifiedOn: string | null;\n modifiedBy: WbIdentity | null;\n tenant: string;\n}\n"],"names":["RedirectModel","createAbstraction"],"mappings":";AAQO,MAAMA,gBAAgBC,kBAA4B"}
@@ -1,38 +1,35 @@
1
1
  import { BaseError } from "@webiny/feature/api";
2
- export class RedirectNotFoundError extends BaseError {
3
- code = "WebsiteBuilder/Redirect/NotFound";
4
- constructor(id) {
5
- super({
6
- message: `Redirect with id "${id}" not found!`
7
- });
8
- }
2
+ class RedirectNotFoundError extends BaseError {
3
+ constructor(id){
4
+ super({
5
+ message: `Redirect with id "${id}" not found!`
6
+ }), this.code = "WebsiteBuilder/Redirect/NotFound";
7
+ }
9
8
  }
10
- export class RedirectPersistenceError extends BaseError {
11
- code = "WebsiteBuilder/Redirect/PersistenceError";
12
- constructor(error) {
13
- super({
14
- message: `Redirect persistence error: ${error.message}`,
15
- data: {
16
- error
17
- }
18
- });
19
- }
9
+ class RedirectPersistenceError extends BaseError {
10
+ constructor(error){
11
+ super({
12
+ message: `Redirect persistence error: ${error.message}`,
13
+ data: {
14
+ error
15
+ }
16
+ }), this.code = "WebsiteBuilder/Redirect/PersistenceError";
17
+ }
20
18
  }
21
- export class RedirectValidationError extends BaseError {
22
- code = "WebsiteBuilder/Redirect/ValidationError";
23
- constructor(message) {
24
- super({
25
- message: `Redirect validation error: ${message}`
26
- });
27
- }
19
+ class RedirectValidationError extends BaseError {
20
+ constructor(message){
21
+ super({
22
+ message: `Redirect validation error: ${message}`
23
+ }), this.code = "WebsiteBuilder/Redirect/ValidationError";
24
+ }
28
25
  }
29
- export class RedirectNotAuthorizedError extends BaseError {
30
- code = "WebsiteBuilder/Redirect/NotAuthorized";
31
- constructor() {
32
- super({
33
- message: "Not authorized!"
34
- });
35
- }
26
+ class RedirectNotAuthorizedError extends BaseError {
27
+ constructor(){
28
+ super({
29
+ message: "Not authorized!"
30
+ }), this.code = "WebsiteBuilder/Redirect/NotAuthorized";
31
+ }
36
32
  }
33
+ export { RedirectNotAuthorizedError, RedirectNotFoundError, RedirectPersistenceError, RedirectValidationError };
37
34
 
38
35
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseError","RedirectNotFoundError","code","constructor","id","message","RedirectPersistenceError","error","data","RedirectValidationError","RedirectNotAuthorizedError"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class RedirectNotFoundError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: `Redirect with id \"${id}\" not found!`\n });\n }\n}\n\nexport class RedirectPersistenceError extends BaseError<{ error: Error }> {\n override readonly code = \"WebsiteBuilder/Redirect/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({\n message: `Redirect persistence error: ${error.message}`,\n data: { error }\n });\n }\n}\n\nexport class RedirectValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/ValidationError\" as const;\n\n constructor(message: string) {\n super({\n message: `Redirect validation error: ${message}`\n });\n }\n}\n\nexport class RedirectNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,qBAAqB,SAASD,SAAS,CAAC;EAC/BE,IAAI,GAAG,kCAAkC;EAE3DC,WAAWA,CAACC,EAAU,EAAE;IACpB,KAAK,CAAC;MACFC,OAAO,EAAE,qBAAqBD,EAAE;IACpC,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAME,wBAAwB,SAASN,SAAS,CAAmB;EACpDE,IAAI,GAAG,0CAA0C;EAEnEC,WAAWA,CAACI,KAAY,EAAE;IACtB,KAAK,CAAC;MACFF,OAAO,EAAE,+BAA+BE,KAAK,CAACF,OAAO,EAAE;MACvDG,IAAI,EAAE;QAAED;MAAM;IAClB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAME,uBAAuB,SAAST,SAAS,CAAC;EACjCE,IAAI,GAAG,yCAAyC;EAElEC,WAAWA,CAACE,OAAe,EAAE;IACzB,KAAK,CAAC;MACFA,OAAO,EAAE,8BAA8BA,OAAO;IAClD,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,0BAA0B,SAASV,SAAS,CAAC;EACpCE,IAAI,GAAG,uCAAuC;EAEhEC,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC;MAAEE,OAAO,EAAE;IAAkB,CAAC,CAAC;EACzC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"domain/redirect/errors.js","sources":["../../../src/domain/redirect/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class RedirectNotFoundError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/NotFound\" as const;\n\n constructor(id: string) {\n super({\n message: `Redirect with id \"${id}\" not found!`\n });\n }\n}\n\nexport class RedirectPersistenceError extends BaseError<{ error: Error }> {\n override readonly code = \"WebsiteBuilder/Redirect/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({\n message: `Redirect persistence error: ${error.message}`,\n data: { error }\n });\n }\n}\n\nexport class RedirectValidationError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/ValidationError\" as const;\n\n constructor(message: string) {\n super({\n message: `Redirect validation error: ${message}`\n });\n }\n}\n\nexport class RedirectNotAuthorizedError extends BaseError {\n override readonly code = \"WebsiteBuilder/Redirect/NotAuthorized\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"names":["RedirectNotFoundError","BaseError","id","RedirectPersistenceError","error","RedirectValidationError","message","RedirectNotAuthorizedError"],"mappings":";AAEO,MAAMA,8BAA8BC;IAGvC,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YACF,SAAS,CAAC,kBAAkB,EAAEA,GAAG,YAAY,CAAC;QAClD,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMC,iCAAiCF;IAG1C,YAAYG,KAAY,CAAE;QACtB,KAAK,CAAC;YACF,SAAS,CAAC,4BAA4B,EAAEA,MAAM,OAAO,EAAE;YACvD,MAAM;gBAAEA;YAAM;QAClB,SANc,IAAI,GAAG;IAOzB;AACJ;AAEO,MAAMC,gCAAgCJ;IAGzC,YAAYK,OAAe,CAAE;QACzB,KAAK,CAAC;YACF,SAAS,CAAC,2BAA2B,EAAEA,SAAS;QACpD,SALc,IAAI,GAAG;IAMzB;AACJ;AAEO,MAAMC,mCAAmCN;IAG5C,aAAc;QACV,KAAK,CAAC;YAAE,SAAS;QAAkB,SAHrB,IAAI,GAAG;IAIzB;AACJ"}
@@ -1,2 +1,9 @@
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
1
2
  export declare const REDIRECT_MODEL_ID: string;
2
- export declare const createRedirectModel: () => import("@webiny/api-headless-cms").CmsModelPlugin;
3
+ declare class RedirectModelFactory implements ModelFactory.Interface {
4
+ execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PrivateModelBuilder[]>;
5
+ }
6
+ export declare const RedirectModelPlugin: typeof RedirectModelFactory & {
7
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
8
+ };
9
+ export {};
@@ -1,32 +1,26 @@
1
- import { createModelField, createPrivateModelPlugin } from "@webiny/api-headless-cms";
2
- export const REDIRECT_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "wbRedirect" : "wbyWbRedirect";
3
- export const createRedirectModel = () => {
4
- return createPrivateModelPlugin({
5
- name: "Website Builder - Redirect",
6
- modelId: REDIRECT_MODEL_ID,
7
- titleFieldId: "from",
8
- authorization: {
9
- // Disables base permission checks, but leaves FLP checks enabled.
10
- permissions: false
11
- },
12
- fields: [createModelField({
13
- fieldId: "redirectFrom",
14
- label: "Redirect From",
15
- type: "text"
16
- }), createModelField({
17
- fieldId: "redirectTo",
18
- label: "Redirect To",
19
- type: "text"
20
- }), createModelField({
21
- fieldId: "redirectType",
22
- label: "Redirect Type",
23
- type: "text"
24
- }), createModelField({
25
- fieldId: "isEnabled",
26
- label: "Is enabled?",
27
- type: "boolean"
28
- })]
29
- });
30
- };
1
+ import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
+ const REDIRECT_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "wbRedirect" : "wbyWbRedirect";
3
+ class RedirectModelFactory {
4
+ async execute(builder) {
5
+ const model = builder.private({
6
+ modelId: REDIRECT_MODEL_ID,
7
+ name: "Website Builder - Redirect"
8
+ });
9
+ model.fields((fields)=>({
10
+ redirectFrom: fields.text().label("Redirect From"),
11
+ redirectTo: fields.text().label("Redirect To"),
12
+ redirectType: fields.text().label("Redirect Type"),
13
+ isEnabled: fields.boolean().label("Is enabled?")
14
+ }));
15
+ return [
16
+ model
17
+ ];
18
+ }
19
+ }
20
+ const RedirectModelPlugin = ModelFactory.createImplementation({
21
+ implementation: RedirectModelFactory,
22
+ dependencies: []
23
+ });
24
+ export { REDIRECT_MODEL_ID, RedirectModelPlugin };
31
25
 
32
26
  //# sourceMappingURL=redirect.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createModelField","createPrivateModelPlugin","REDIRECT_MODEL_ID","process","env","WEBINY_API_LEGACY_MODELS","createRedirectModel","name","modelId","titleFieldId","authorization","permissions","fields","fieldId","label","type"],"sources":["redirect.model.ts"],"sourcesContent":["import { createModelField, createPrivateModelPlugin } from \"@webiny/api-headless-cms\";\n\nexport const REDIRECT_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS\n ? \"wbRedirect\"\n : \"wbyWbRedirect\";\n\nexport const createRedirectModel = () => {\n return createPrivateModelPlugin({\n name: \"Website Builder - Redirect\",\n modelId: REDIRECT_MODEL_ID,\n titleFieldId: \"from\",\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n },\n fields: [\n createModelField({\n fieldId: \"redirectFrom\",\n label: \"Redirect From\",\n type: \"text\"\n }),\n createModelField({\n fieldId: \"redirectTo\",\n label: \"Redirect To\",\n type: \"text\"\n }),\n createModelField({\n fieldId: \"redirectType\",\n label: \"Redirect Type\",\n type: \"text\"\n }),\n createModelField({\n fieldId: \"isEnabled\",\n label: \"Is enabled?\",\n type: \"boolean\"\n })\n ]\n });\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,EAAEC,wBAAwB,QAAQ,0BAA0B;AAErF,OAAO,MAAMC,iBAAiB,GAAGC,OAAO,CAACC,GAAG,CAACC,wBAAwB,GAC/D,YAAY,GACZ,eAAe;AAErB,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAOL,wBAAwB,CAAC;IAC5BM,IAAI,EAAE,4BAA4B;IAClCC,OAAO,EAAEN,iBAAiB;IAC1BO,YAAY,EAAE,MAAM;IACpBC,aAAa,EAAE;MACX;MACAC,WAAW,EAAE;IACjB,CAAC;IACDC,MAAM,EAAE,CACJZ,gBAAgB,CAAC;MACba,OAAO,EAAE,cAAc;MACvBC,KAAK,EAAE,eAAe;MACtBC,IAAI,EAAE;IACV,CAAC,CAAC,EACFf,gBAAgB,CAAC;MACba,OAAO,EAAE,YAAY;MACrBC,KAAK,EAAE,aAAa;MACpBC,IAAI,EAAE;IACV,CAAC,CAAC,EACFf,gBAAgB,CAAC;MACba,OAAO,EAAE,cAAc;MACvBC,KAAK,EAAE,eAAe;MACtBC,IAAI,EAAE;IACV,CAAC,CAAC,EACFf,gBAAgB,CAAC;MACba,OAAO,EAAE,WAAW;MACpBC,KAAK,EAAE,aAAa;MACpBC,IAAI,EAAE;IACV,CAAC,CAAC;EAEV,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"domain/redirect/redirect.model.js","sources":["../../../src/domain/redirect/redirect.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\n\nexport const REDIRECT_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS\n ? \"wbRedirect\"\n : \"wbyWbRedirect\";\n\nclass RedirectModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder.private({\n modelId: REDIRECT_MODEL_ID,\n name: \"Website Builder - Redirect\"\n });\n\n model.fields(fields => ({\n redirectFrom: fields.text().label(\"Redirect From\"),\n redirectTo: fields.text().label(\"Redirect To\"),\n redirectType: fields.text().label(\"Redirect Type\"),\n isEnabled: fields.boolean().label(\"Is enabled?\")\n }));\n\n return [model];\n }\n}\n\nexport const RedirectModelPlugin = ModelFactory.createImplementation({\n implementation: RedirectModelFactory,\n dependencies: []\n});\n"],"names":["REDIRECT_MODEL_ID","process","RedirectModelFactory","builder","model","fields","RedirectModelPlugin","ModelFactory"],"mappings":";AAEO,MAAMA,oBAAoBC,QAAQ,GAAG,CAAC,wBAAwB,GAC/D,eACA;AAEN,MAAMC;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QAAQ,OAAO,CAAC;YAC1B,SAASH;YACT,MAAM;QACV;QAEAI,MAAM,MAAM,CAACC,CAAAA,SAAW;gBACpB,cAAcA,OAAO,IAAI,GAAG,KAAK,CAAC;gBAClC,YAAYA,OAAO,IAAI,GAAG,KAAK,CAAC;gBAChC,cAAcA,OAAO,IAAI,GAAG,KAAK,CAAC;gBAClC,WAAWA,OAAO,OAAO,GAAG,KAAK,CAAC;YACtC;QAEA,OAAO;YAACD;SAAM;IAClB;AACJ;AAEO,MAAME,sBAAsBC,aAAa,oBAAoB,CAAC;IACjE,gBAAgBL;IAChB,cAAc,EAAE;AACpB"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=abstractions.js.map
@@ -1,3 +1 @@
1
1
  export { NextjsConfig } from "../../../features/nextjs/abstractions.js";
2
-
3
- //# sourceMappingURL=nextjs.js.map
@@ -1,8 +1,8 @@
1
1
  export { CreatePageUseCase, PageAfterCreateEventHandler, PageBeforeCreateEventHandler } from "../../../features/pages/CreatePage/abstractions.js";
2
2
  export { CreatePageRevisionFromUseCase, PageAfterCreateRevisionFromEventHandler, PageBeforeCreateRevisionFromEventHandler } from "../../../features/pages/CreatePageRevisionFrom/abstractions.js";
3
3
  export { DeletePageUseCase, PageAfterDeleteEventHandler, PageBeforeDeleteEventHandler } from "../../../features/pages/DeletePage/abstractions.js";
4
- export { TrashPageUseCase, PageAfterTrashEventHandler, PageBeforeTrashEventHandler } from "../../../features/pages/TrashPage/abstractions.js";
5
- export { RestorePageUseCase, PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler } from "../../../features/pages/RestorePage/abstractions.js";
4
+ export { PageAfterTrashEventHandler, PageBeforeTrashEventHandler, TrashPageUseCase } from "../../../features/pages/TrashPage/abstractions.js";
5
+ export { PageAfterRestoreEventHandler, PageBeforeRestoreEventHandler, RestorePageUseCase } from "../../../features/pages/RestorePage/abstractions.js";
6
6
  export { DuplicatePageUseCase, PageAfterDuplicateEventHandler, PageBeforeDuplicateEventHandler } from "../../../features/pages/DuplicatePage/abstractions.js";
7
7
  export { GetPageByIdUseCase } from "../../../features/pages/GetPageById/abstractions.js";
8
8
  export { GetDeletedPageByIdUseCase } from "../../../features/pages/GetDeletedPageById/abstractions.js";
@@ -11,8 +11,6 @@ export { GetPageRevisionsUseCase } from "../../../features/pages/GetPageRevision
11
11
  export { ListPagesUseCase } from "../../../features/pages/ListPages/abstractions.js";
12
12
  export { ListDeletedPagesUseCase } from "../../../features/pages/ListDeletedPages/abstractions.js";
13
13
  export { MovePageUseCase, PageAfterMoveEventHandler, PageBeforeMoveEventHandler } from "../../../features/pages/MovePage/abstractions.js";
14
- export { PublishPageUseCase, PageAfterPublishEventHandler, PageBeforePublishEventHandler } from "../../../features/pages/PublishPage/abstractions.js";
15
- export { UnpublishPageUseCase, PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler } from "../../../features/pages/UnpublishPage/abstractions.js";
16
- export { UpdatePageUseCase, PageAfterUpdateEventHandler, PageBeforeUpdateEventHandler } from "../../../features/pages/UpdatePage/abstractions.js";
17
-
18
- //# sourceMappingURL=page.js.map
14
+ export { PageAfterPublishEventHandler, PageBeforePublishEventHandler, PublishPageUseCase } from "../../../features/pages/PublishPage/abstractions.js";
15
+ export { PageAfterUnpublishEventHandler, PageBeforeUnpublishEventHandler, UnpublishPageUseCase } from "../../../features/pages/UnpublishPage/abstractions.js";
16
+ export { PageAfterUpdateEventHandler, PageBeforeUpdateEventHandler, UpdatePageUseCase } from "../../../features/pages/UpdatePage/abstractions.js";
@@ -5,6 +5,4 @@ export { GetRedirectByIdUseCase } from "../../../features/redirects/GetRedirectB
5
5
  export { InvalidateRedirectsCacheUseCase } from "../../../features/redirects/InvalidateRedirectsCache/abstractions.js";
6
6
  export { ListRedirectsUseCase } from "../../../features/redirects/ListRedirects/abstractions.js";
7
7
  export { MoveRedirectUseCase, RedirectAfterMoveEventHandler, RedirectBeforeMoveEventHandler } from "../../../features/redirects/MoveRedirect/abstractions.js";
8
- export { UpdateRedirectUseCase, RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler } from "../../../features/redirects/UpdateRedirect/abstractions.js";
9
-
10
- //# sourceMappingURL=redirect.js.map
8
+ export { RedirectAfterUpdateEventHandler, RedirectBeforeUpdateEventHandler, UpdateRedirectUseCase } from "../../../features/redirects/UpdateRedirect/abstractions.js";
@@ -2,39 +2,42 @@ import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/in
2
2
  import { CreateApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js";
3
3
  import { DeleteApiKeyUseCase } from "@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js";
4
4
  class ApiKeyInstallerImpl {
5
- alwaysRun = true;
6
- appName = "WebsiteBuilder";
7
- dependsOn = [];
8
- apiKey = undefined;
9
- constructor(createApiKey, deleteApiKey) {
10
- this.createApiKey = createApiKey;
11
- this.deleteApiKey = deleteApiKey;
12
- }
13
- async install() {
14
- const result = await this.createApiKey.execute({
15
- name: "Website Builder",
16
- description: "Integrate Next.js or custom frontend with Website Builder.",
17
- slug: "website-builder",
18
- permissions: [{
19
- name: "$wb.readonly"
20
- }, {
21
- name: "wb.page",
22
- rwd: "r"
23
- }]
24
- });
25
- if (result.isOk()) {
26
- this.apiKey = result.value;
5
+ constructor(createApiKey, deleteApiKey){
6
+ this.createApiKey = createApiKey;
7
+ this.deleteApiKey = deleteApiKey;
8
+ this.alwaysRun = true;
9
+ this.appName = "WebsiteBuilder";
10
+ this.dependsOn = [];
11
+ this.apiKey = void 0;
27
12
  }
28
- }
29
- async uninstall() {
30
- if (this.apiKey) {
31
- await this.deleteApiKey.execute(this.apiKey.id);
13
+ async install() {
14
+ const result = await this.createApiKey.execute({
15
+ name: "Website Builder",
16
+ description: "Integrate Next.js or custom frontend with Website Builder.",
17
+ slug: "website-builder",
18
+ permissions: [
19
+ {
20
+ name: "$wb.readonly"
21
+ },
22
+ {
23
+ name: "wb.page",
24
+ rwd: "r"
25
+ }
26
+ ]
27
+ });
28
+ if (result.isOk()) this.apiKey = result.value;
29
+ }
30
+ async uninstall() {
31
+ if (this.apiKey) await this.deleteApiKey.execute(this.apiKey.id);
32
32
  }
33
- }
34
33
  }
35
- export const ApiKeyInstaller = AppInstaller.createImplementation({
36
- implementation: ApiKeyInstallerImpl,
37
- dependencies: [CreateApiKeyUseCase, DeleteApiKeyUseCase]
34
+ const ApiKeyInstaller = AppInstaller.createImplementation({
35
+ implementation: ApiKeyInstallerImpl,
36
+ dependencies: [
37
+ CreateApiKeyUseCase,
38
+ DeleteApiKeyUseCase
39
+ ]
38
40
  });
41
+ export { ApiKeyInstaller };
39
42
 
40
43
  //# sourceMappingURL=ApiKeyInstaller.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AppInstaller","CreateApiKeyUseCase","DeleteApiKeyUseCase","ApiKeyInstallerImpl","alwaysRun","appName","dependsOn","apiKey","undefined","constructor","createApiKey","deleteApiKey","install","result","execute","name","description","slug","permissions","rwd","isOk","value","uninstall","id","ApiKeyInstaller","createImplementation","implementation","dependencies"],"sources":["ApiKeyInstaller.ts"],"sourcesContent":["import { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { CreateApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js\";\nimport { DeleteApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js\";\nimport type { ApiKey } from \"@webiny/api-core/types/security.js\";\n\nclass ApiKeyInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"WebsiteBuilder\";\n readonly dependsOn = [];\n private apiKey: ApiKey | undefined = undefined;\n\n constructor(\n private createApiKey: CreateApiKeyUseCase.Interface,\n private deleteApiKey: DeleteApiKeyUseCase.Interface\n ) {}\n\n async install(): Promise<void> {\n const result = await this.createApiKey.execute({\n name: \"Website Builder\",\n description: \"Integrate Next.js or custom frontend with Website Builder.\",\n slug: \"website-builder\",\n permissions: [{ name: \"$wb.readonly\" }, { name: \"wb.page\", rwd: \"r\" }]\n });\n\n if (result.isOk()) {\n this.apiKey = result.value;\n }\n }\n\n async uninstall(): Promise<void> {\n if (this.apiKey) {\n await this.deleteApiKey.execute(this.apiKey.id);\n }\n }\n}\n\nexport const ApiKeyInstaller = AppInstaller.createImplementation({\n implementation: ApiKeyInstallerImpl,\n dependencies: [CreateApiKeyUseCase, DeleteApiKeyUseCase]\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,0DAA0D;AACvF,SAASC,mBAAmB,QAAQ,kEAAkE;AACtG,SAASC,mBAAmB,QAAQ,kEAAkE;AAGtG,MAAMC,mBAAmB,CAAmC;EAC/CC,SAAS,GAAG,IAAI;EAChBC,OAAO,GAAG,gBAAgB;EAC1BC,SAAS,GAAG,EAAE;EACfC,MAAM,GAAuBC,SAAS;EAE9CC,WAAWA,CACCC,YAA2C,EAC3CC,YAA2C,EACrD;IAAA,KAFUD,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,YAA2C,GAA3CA,YAA2C;EACpD;EAEH,MAAMC,OAAOA,CAAA,EAAkB;IAC3B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,YAAY,CAACI,OAAO,CAAC;MAC3CC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,4DAA4D;MACzEC,IAAI,EAAE,iBAAiB;MACvBC,WAAW,EAAE,CAAC;QAAEH,IAAI,EAAE;MAAe,CAAC,EAAE;QAAEA,IAAI,EAAE,SAAS;QAAEI,GAAG,EAAE;MAAI,CAAC;IACzE,CAAC,CAAC;IAEF,IAAIN,MAAM,CAACO,IAAI,CAAC,CAAC,EAAE;MACf,IAAI,CAACb,MAAM,GAAGM,MAAM,CAACQ,KAAK;IAC9B;EACJ;EAEA,MAAMC,SAASA,CAAA,EAAkB;IAC7B,IAAI,IAAI,CAACf,MAAM,EAAE;MACb,MAAM,IAAI,CAACI,YAAY,CAACG,OAAO,CAAC,IAAI,CAACP,MAAM,CAACgB,EAAE,CAAC;IACnD;EACJ;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAGxB,YAAY,CAACyB,oBAAoB,CAAC;EAC7DC,cAAc,EAAEvB,mBAAmB;EACnCwB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,mBAAmB;AAC3D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/installer/ApiKeyInstaller.js","sources":["../../../src/features/installer/ApiKeyInstaller.ts"],"sourcesContent":["import { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { CreateApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/CreateApiKey/index.js\";\nimport { DeleteApiKeyUseCase } from \"@webiny/api-core/features/security/apiKeys/DeleteApiKey/index.js\";\nimport type { ApiKey } from \"@webiny/api-core/types/security.js\";\n\nclass ApiKeyInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"WebsiteBuilder\";\n readonly dependsOn = [];\n private apiKey: ApiKey | undefined = undefined;\n\n constructor(\n private createApiKey: CreateApiKeyUseCase.Interface,\n private deleteApiKey: DeleteApiKeyUseCase.Interface\n ) {}\n\n async install(): Promise<void> {\n const result = await this.createApiKey.execute({\n name: \"Website Builder\",\n description: \"Integrate Next.js or custom frontend with Website Builder.\",\n slug: \"website-builder\",\n permissions: [{ name: \"$wb.readonly\" }, { name: \"wb.page\", rwd: \"r\" }]\n });\n\n if (result.isOk()) {\n this.apiKey = result.value;\n }\n }\n\n async uninstall(): Promise<void> {\n if (this.apiKey) {\n await this.deleteApiKey.execute(this.apiKey.id);\n }\n }\n}\n\nexport const ApiKeyInstaller = AppInstaller.createImplementation({\n implementation: ApiKeyInstallerImpl,\n dependencies: [CreateApiKeyUseCase, DeleteApiKeyUseCase]\n});\n"],"names":["ApiKeyInstallerImpl","createApiKey","deleteApiKey","undefined","result","ApiKeyInstaller","AppInstaller","CreateApiKeyUseCase","DeleteApiKeyUseCase"],"mappings":";;;AAKA,MAAMA;IAMF,YACYC,YAA2C,EAC3CC,YAA2C,CACrD;aAFUD,YAAY,GAAZA;aACAC,YAAY,GAAZA;aAPH,SAAS,GAAG;aACZ,OAAO,GAAG;aACV,SAAS,GAAG,EAAE;aACf,MAAM,GAAuBC;IAKlC;IAEH,MAAM,UAAyB;QAC3B,MAAMC,SAAS,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC3C,MAAM;YACN,aAAa;YACb,MAAM;YACN,aAAa;gBAAC;oBAAE,MAAM;gBAAe;gBAAG;oBAAE,MAAM;oBAAW,KAAK;gBAAI;aAAE;QAC1E;QAEA,IAAIA,OAAO,IAAI,IACX,IAAI,CAAC,MAAM,GAAGA,OAAO,KAAK;IAElC;IAEA,MAAM,YAA2B;QAC7B,IAAI,IAAI,CAAC,MAAM,EACX,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAEtD;AACJ;AAEO,MAAMC,kBAAkBC,aAAa,oBAAoB,CAAC;IAC7D,gBAAgBN;IAChB,cAAc;QAACO;QAAqBC;KAAoB;AAC5D"}
@@ -1,10 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/api";
2
2
  import { ApiKeyInstaller } from "./ApiKeyInstaller.js";
3
- export const ApiKeyInstallerFeature = createFeature({
4
- name: "WebsiteBuilder/ApiKeyInstaller",
5
- register(container) {
6
- container.register(ApiKeyInstaller);
7
- }
3
+ const ApiKeyInstallerFeature = createFeature({
4
+ name: "WebsiteBuilder/ApiKeyInstaller",
5
+ register (container) {
6
+ container.register(ApiKeyInstaller);
7
+ }
8
8
  });
9
+ export { ApiKeyInstallerFeature };
9
10
 
10
11
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ApiKeyInstaller","ApiKeyInstallerFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ApiKeyInstaller } from \"./ApiKeyInstaller.js\";\n\nexport const ApiKeyInstallerFeature = createFeature({\n name: \"WebsiteBuilder/ApiKeyInstaller\",\n register(container) {\n container.register(ApiKeyInstaller);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,eAAe;AAExB,OAAO,MAAMC,sBAAsB,GAAGF,aAAa,CAAC;EAChDG,IAAI,EAAE,gCAAgC;EACtCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;EACvC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/installer/feature.js","sources":["../../../src/features/installer/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ApiKeyInstaller } from \"./ApiKeyInstaller.js\";\n\nexport const ApiKeyInstallerFeature = createFeature({\n name: \"WebsiteBuilder/ApiKeyInstaller\",\n register(container) {\n container.register(ApiKeyInstaller);\n }\n});\n"],"names":["ApiKeyInstallerFeature","createFeature","container","ApiKeyInstaller"],"mappings":";;AAGO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -1,86 +1,77 @@
1
- export class MarkdownContentBuilder {
2
- sections = [];
3
- variables = new Map();
4
- MAX_INTERPOLATION_DEPTH = 10; // Prevent infinite loops
5
-
6
- add(id, markdown, position) {
7
- const section = {
8
- id,
9
- content: markdown
10
- };
11
- if (position?.before) {
12
- const index = this.sections.findIndex(s => s.id === position.before);
13
- if (index !== -1) {
14
- this.sections.splice(index, 0, section);
1
+ class MarkdownContentBuilder {
2
+ add(id, markdown, position) {
3
+ const section = {
4
+ id,
5
+ content: markdown
6
+ };
7
+ if (position?.before) {
8
+ const index = this.sections.findIndex((s)=>s.id === position.before);
9
+ if (-1 !== index) {
10
+ this.sections.splice(index, 0, section);
11
+ return this;
12
+ }
13
+ }
14
+ if (position?.after) {
15
+ const index = this.sections.findIndex((s)=>s.id === position.after);
16
+ if (-1 !== index) {
17
+ this.sections.splice(index + 1, 0, section);
18
+ return this;
19
+ }
20
+ }
21
+ this.sections.push(section);
15
22
  return this;
16
- }
17
23
  }
18
- if (position?.after) {
19
- const index = this.sections.findIndex(s => s.id === position.after);
20
- if (index !== -1) {
21
- this.sections.splice(index + 1, 0, section);
24
+ remove(id) {
25
+ this.sections = this.sections.filter((s)=>s.id !== id);
22
26
  return this;
23
- }
24
27
  }
25
- this.sections.push(section);
26
- return this;
27
- }
28
- remove(id) {
29
- this.sections = this.sections.filter(s => s.id !== id);
30
- return this;
31
- }
32
- replace(id, markdown) {
33
- const section = this.sections.find(s => s.id === id);
34
- if (section) {
35
- if (typeof markdown === "function") {
36
- section.content = markdown(section.content);
37
- } else {
38
- section.content = markdown;
39
- }
28
+ replace(id, markdown) {
29
+ const section = this.sections.find((s)=>s.id === id);
30
+ if (section) if ("function" == typeof markdown) section.content = markdown(section.content);
31
+ else section.content = markdown;
32
+ return this;
40
33
  }
41
- return this;
42
- }
43
- setVariable(key, value) {
44
- this.variables.set(key, value);
45
- return this;
46
- }
47
- setVariables(vars) {
48
- Object.entries(vars).forEach(([key, value]) => {
49
- this.variables.set(key, value);
50
- });
51
- return this;
52
- }
53
- getVariable(key) {
54
- return this.variables.get(key);
55
- }
56
- substituteVariables(text) {
57
- let result = text;
58
- let previousResult = "";
59
- let depth = 0;
60
-
61
- // Keep substituting until no more changes occur or max depth reached
62
- while (result !== previousResult && depth < this.MAX_INTERPOLATION_DEPTH) {
63
- previousResult = result;
64
- this.variables.forEach((value, key) => {
65
- const regex = new RegExp(`\\{${this.escapeRegex(key)}\\}`, "g");
66
- result = result.replace(regex, value);
67
- });
68
- depth++;
34
+ setVariable(key, value) {
35
+ this.variables.set(key, value);
36
+ return this;
69
37
  }
70
-
71
- // Warn about potential circular reference if max depth reached
72
- if (depth === this.MAX_INTERPOLATION_DEPTH && result !== previousResult) {
73
- console.warn("Maximum interpolation depth reached. Possible circular variable reference.");
38
+ setVariables(vars) {
39
+ Object.entries(vars).forEach(([key, value])=>{
40
+ this.variables.set(key, value);
41
+ });
42
+ return this;
43
+ }
44
+ getVariable(key) {
45
+ return this.variables.get(key);
46
+ }
47
+ substituteVariables(text) {
48
+ let result = text;
49
+ let previousResult = "";
50
+ let depth = 0;
51
+ while(result !== previousResult && depth < this.MAX_INTERPOLATION_DEPTH){
52
+ previousResult = result;
53
+ this.variables.forEach((value, key)=>{
54
+ const regex = new RegExp(`\\{${this.escapeRegex(key)}\\}`, "g");
55
+ result = result.replace(regex, value);
56
+ });
57
+ depth++;
58
+ }
59
+ if (depth === this.MAX_INTERPOLATION_DEPTH && result !== previousResult) console.warn("Maximum interpolation depth reached. Possible circular variable reference.");
60
+ return result;
61
+ }
62
+ escapeRegex(str) {
63
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
64
+ }
65
+ build(joinWith = "\n") {
66
+ const content = this.sections.map((s)=>s.content).join(joinWith);
67
+ return this.substituteVariables(content);
68
+ }
69
+ constructor(){
70
+ this.sections = [];
71
+ this.variables = new Map();
72
+ this.MAX_INTERPOLATION_DEPTH = 10;
74
73
  }
75
- return result;
76
- }
77
- escapeRegex(str) {
78
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
79
- }
80
- build(joinWith = "\n") {
81
- const content = this.sections.map(s => s.content).join(joinWith);
82
- return this.substituteVariables(content);
83
- }
84
74
  }
75
+ export { MarkdownContentBuilder };
85
76
 
86
77
  //# sourceMappingURL=MarkdownContentBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MarkdownContentBuilder","sections","variables","Map","MAX_INTERPOLATION_DEPTH","add","id","markdown","position","section","content","before","index","findIndex","s","splice","after","push","remove","filter","replace","find","setVariable","key","value","set","setVariables","vars","Object","entries","forEach","getVariable","get","substituteVariables","text","result","previousResult","depth","regex","RegExp","escapeRegex","console","warn","str","build","joinWith","map","join"],"sources":["MarkdownContentBuilder.ts"],"sourcesContent":["export interface ISection {\n id: string;\n content: string;\n}\n\nexport interface IPositionOptions {\n before?: string;\n after?: string;\n}\nexport interface IMarkdownContentBuilder {\n add(id: string, text: string, position?: IPositionOptions): this;\n remove(id: string): this;\n replace(id: string, markdown: string | ((currentContent: string) => string)): this;\n setVariable(key: string, value: string): this;\n setVariables(vars: Record<string, string>): this;\n getVariable(key: string): string | undefined;\n build(joinWith?: string): string;\n}\n\nexport class MarkdownContentBuilder implements IMarkdownContentBuilder {\n private sections: ISection[] = [];\n private variables: Map<string, string> = new Map();\n private readonly MAX_INTERPOLATION_DEPTH = 10; // Prevent infinite loops\n\n add(id: string, markdown: string, position?: IPositionOptions): this {\n const section: ISection = { id, content: markdown };\n\n if (position?.before) {\n const index = this.sections.findIndex(s => s.id === position.before);\n if (index !== -1) {\n this.sections.splice(index, 0, section);\n return this;\n }\n }\n\n if (position?.after) {\n const index = this.sections.findIndex(s => s.id === position.after);\n if (index !== -1) {\n this.sections.splice(index + 1, 0, section);\n return this;\n }\n }\n\n this.sections.push(section);\n return this;\n }\n\n remove(id: string): this {\n this.sections = this.sections.filter(s => s.id !== id);\n return this;\n }\n\n replace(id: string, markdown: string | ((currentContent: string) => string)): this {\n const section = this.sections.find(s => s.id === id);\n if (section) {\n if (typeof markdown === \"function\") {\n section.content = markdown(section.content);\n } else {\n section.content = markdown;\n }\n }\n return this;\n }\n\n setVariable(key: string, value: string): this {\n this.variables.set(key, value);\n return this;\n }\n\n setVariables(vars: Record<string, string>): this {\n Object.entries(vars).forEach(([key, value]) => {\n this.variables.set(key, value);\n });\n return this;\n }\n\n getVariable(key: string): string | undefined {\n return this.variables.get(key);\n }\n\n private substituteVariables(text: string): string {\n let result = text;\n let previousResult = \"\";\n let depth = 0;\n\n // Keep substituting until no more changes occur or max depth reached\n while (result !== previousResult && depth < this.MAX_INTERPOLATION_DEPTH) {\n previousResult = result;\n\n this.variables.forEach((value, key) => {\n const regex = new RegExp(`\\\\{${this.escapeRegex(key)}\\\\}`, \"g\");\n result = result.replace(regex, value);\n });\n\n depth++;\n }\n\n // Warn about potential circular reference if max depth reached\n if (depth === this.MAX_INTERPOLATION_DEPTH && result !== previousResult) {\n console.warn(\n \"Maximum interpolation depth reached. Possible circular variable reference.\"\n );\n }\n\n return result;\n }\n\n private escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n\n build(joinWith = \"\\n\"): string {\n const content = this.sections.map(s => s.content).join(joinWith);\n return this.substituteVariables(content);\n }\n}\n"],"mappings":"AAmBA,OAAO,MAAMA,sBAAsB,CAAoC;EAC3DC,QAAQ,GAAe,EAAE;EACzBC,SAAS,GAAwB,IAAIC,GAAG,CAAC,CAAC;EACjCC,uBAAuB,GAAG,EAAE,CAAC,CAAC;;EAE/CC,GAAGA,CAACC,EAAU,EAAEC,QAAgB,EAAEC,QAA2B,EAAQ;IACjE,MAAMC,OAAiB,GAAG;MAAEH,EAAE;MAAEI,OAAO,EAAEH;IAAS,CAAC;IAEnD,IAAIC,QAAQ,EAAEG,MAAM,EAAE;MAClB,MAAMC,KAAK,GAAG,IAAI,CAACX,QAAQ,CAACY,SAAS,CAACC,CAAC,IAAIA,CAAC,CAACR,EAAE,KAAKE,QAAQ,CAACG,MAAM,CAAC;MACpE,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;QACd,IAAI,CAACX,QAAQ,CAACc,MAAM,CAACH,KAAK,EAAE,CAAC,EAAEH,OAAO,CAAC;QACvC,OAAO,IAAI;MACf;IACJ;IAEA,IAAID,QAAQ,EAAEQ,KAAK,EAAE;MACjB,MAAMJ,KAAK,GAAG,IAAI,CAACX,QAAQ,CAACY,SAAS,CAACC,CAAC,IAAIA,CAAC,CAACR,EAAE,KAAKE,QAAQ,CAACQ,KAAK,CAAC;MACnE,IAAIJ,KAAK,KAAK,CAAC,CAAC,EAAE;QACd,IAAI,CAACX,QAAQ,CAACc,MAAM,CAACH,KAAK,GAAG,CAAC,EAAE,CAAC,EAAEH,OAAO,CAAC;QAC3C,OAAO,IAAI;MACf;IACJ;IAEA,IAAI,CAACR,QAAQ,CAACgB,IAAI,CAACR,OAAO,CAAC;IAC3B,OAAO,IAAI;EACf;EAEAS,MAAMA,CAACZ,EAAU,EAAQ;IACrB,IAAI,CAACL,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACkB,MAAM,CAACL,CAAC,IAAIA,CAAC,CAACR,EAAE,KAAKA,EAAE,CAAC;IACtD,OAAO,IAAI;EACf;EAEAc,OAAOA,CAACd,EAAU,EAAEC,QAAuD,EAAQ;IAC/E,MAAME,OAAO,GAAG,IAAI,CAACR,QAAQ,CAACoB,IAAI,CAACP,CAAC,IAAIA,CAAC,CAACR,EAAE,KAAKA,EAAE,CAAC;IACpD,IAAIG,OAAO,EAAE;MACT,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;QAChCE,OAAO,CAACC,OAAO,GAAGH,QAAQ,CAACE,OAAO,CAACC,OAAO,CAAC;MAC/C,CAAC,MAAM;QACHD,OAAO,CAACC,OAAO,GAAGH,QAAQ;MAC9B;IACJ;IACA,OAAO,IAAI;EACf;EAEAe,WAAWA,CAACC,GAAW,EAAEC,KAAa,EAAQ;IAC1C,IAAI,CAACtB,SAAS,CAACuB,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;IAC9B,OAAO,IAAI;EACf;EAEAE,YAAYA,CAACC,IAA4B,EAAQ;IAC7CC,MAAM,CAACC,OAAO,CAACF,IAAI,CAAC,CAACG,OAAO,CAAC,CAAC,CAACP,GAAG,EAAEC,KAAK,CAAC,KAAK;MAC3C,IAAI,CAACtB,SAAS,CAACuB,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;IAClC,CAAC,CAAC;IACF,OAAO,IAAI;EACf;EAEAO,WAAWA,CAACR,GAAW,EAAsB;IACzC,OAAO,IAAI,CAACrB,SAAS,CAAC8B,GAAG,CAACT,GAAG,CAAC;EAClC;EAEQU,mBAAmBA,CAACC,IAAY,EAAU;IAC9C,IAAIC,MAAM,GAAGD,IAAI;IACjB,IAAIE,cAAc,GAAG,EAAE;IACvB,IAAIC,KAAK,GAAG,CAAC;;IAEb;IACA,OAAOF,MAAM,KAAKC,cAAc,IAAIC,KAAK,GAAG,IAAI,CAACjC,uBAAuB,EAAE;MACtEgC,cAAc,GAAGD,MAAM;MAEvB,IAAI,CAACjC,SAAS,CAAC4B,OAAO,CAAC,CAACN,KAAK,EAAED,GAAG,KAAK;QACnC,MAAMe,KAAK,GAAG,IAAIC,MAAM,CAAC,MAAM,IAAI,CAACC,WAAW,CAACjB,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;QAC/DY,MAAM,GAAGA,MAAM,CAACf,OAAO,CAACkB,KAAK,EAAEd,KAAK,CAAC;MACzC,CAAC,CAAC;MAEFa,KAAK,EAAE;IACX;;IAEA;IACA,IAAIA,KAAK,KAAK,IAAI,CAACjC,uBAAuB,IAAI+B,MAAM,KAAKC,cAAc,EAAE;MACrEK,OAAO,CAACC,IAAI,CACR,4EACJ,CAAC;IACL;IAEA,OAAOP,MAAM;EACjB;EAEQK,WAAWA,CAACG,GAAW,EAAU;IACrC,OAAOA,GAAG,CAACvB,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;EACrD;EAEAwB,KAAKA,CAACC,QAAQ,GAAG,IAAI,EAAU;IAC3B,MAAMnC,OAAO,GAAG,IAAI,CAACT,QAAQ,CAAC6C,GAAG,CAAChC,CAAC,IAAIA,CAAC,CAACJ,OAAO,CAAC,CAACqC,IAAI,CAACF,QAAQ,CAAC;IAChE,OAAO,IAAI,CAACZ,mBAAmB,CAACvB,OAAO,CAAC;EAC5C;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"features/nextjs/MarkdownContentBuilder.js","sources":["../../../src/features/nextjs/MarkdownContentBuilder.ts"],"sourcesContent":["export interface ISection {\n id: string;\n content: string;\n}\n\nexport interface IPositionOptions {\n before?: string;\n after?: string;\n}\nexport interface IMarkdownContentBuilder {\n add(id: string, text: string, position?: IPositionOptions): this;\n remove(id: string): this;\n replace(id: string, markdown: string | ((currentContent: string) => string)): this;\n setVariable(key: string, value: string): this;\n setVariables(vars: Record<string, string>): this;\n getVariable(key: string): string | undefined;\n build(joinWith?: string): string;\n}\n\nexport class MarkdownContentBuilder implements IMarkdownContentBuilder {\n private sections: ISection[] = [];\n private variables: Map<string, string> = new Map();\n private readonly MAX_INTERPOLATION_DEPTH = 10; // Prevent infinite loops\n\n add(id: string, markdown: string, position?: IPositionOptions): this {\n const section: ISection = { id, content: markdown };\n\n if (position?.before) {\n const index = this.sections.findIndex(s => s.id === position.before);\n if (index !== -1) {\n this.sections.splice(index, 0, section);\n return this;\n }\n }\n\n if (position?.after) {\n const index = this.sections.findIndex(s => s.id === position.after);\n if (index !== -1) {\n this.sections.splice(index + 1, 0, section);\n return this;\n }\n }\n\n this.sections.push(section);\n return this;\n }\n\n remove(id: string): this {\n this.sections = this.sections.filter(s => s.id !== id);\n return this;\n }\n\n replace(id: string, markdown: string | ((currentContent: string) => string)): this {\n const section = this.sections.find(s => s.id === id);\n if (section) {\n if (typeof markdown === \"function\") {\n section.content = markdown(section.content);\n } else {\n section.content = markdown;\n }\n }\n return this;\n }\n\n setVariable(key: string, value: string): this {\n this.variables.set(key, value);\n return this;\n }\n\n setVariables(vars: Record<string, string>): this {\n Object.entries(vars).forEach(([key, value]) => {\n this.variables.set(key, value);\n });\n return this;\n }\n\n getVariable(key: string): string | undefined {\n return this.variables.get(key);\n }\n\n private substituteVariables(text: string): string {\n let result = text;\n let previousResult = \"\";\n let depth = 0;\n\n // Keep substituting until no more changes occur or max depth reached\n while (result !== previousResult && depth < this.MAX_INTERPOLATION_DEPTH) {\n previousResult = result;\n\n this.variables.forEach((value, key) => {\n const regex = new RegExp(`\\\\{${this.escapeRegex(key)}\\\\}`, \"g\");\n result = result.replace(regex, value);\n });\n\n depth++;\n }\n\n // Warn about potential circular reference if max depth reached\n if (depth === this.MAX_INTERPOLATION_DEPTH && result !== previousResult) {\n console.warn(\n \"Maximum interpolation depth reached. Possible circular variable reference.\"\n );\n }\n\n return result;\n }\n\n private escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n\n build(joinWith = \"\\n\"): string {\n const content = this.sections.map(s => s.content).join(joinWith);\n return this.substituteVariables(content);\n }\n}\n"],"names":["MarkdownContentBuilder","id","markdown","position","section","index","s","key","value","vars","Object","text","result","previousResult","depth","regex","RegExp","console","str","joinWith","content","Map"],"mappings":"AAmBO,MAAMA;IAKT,IAAIC,EAAU,EAAEC,QAAgB,EAAEC,QAA2B,EAAQ;QACjE,MAAMC,UAAoB;YAAEH;YAAI,SAASC;QAAS;QAElD,IAAIC,UAAU,QAAQ;YAClB,MAAME,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAACC,CAAAA,IAAKA,EAAE,EAAE,KAAKH,SAAS,MAAM;YACnE,IAAIE,AAAU,OAAVA,OAAc;gBACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACA,OAAO,GAAGD;gBAC/B,OAAO,IAAI;YACf;QACJ;QAEA,IAAID,UAAU,OAAO;YACjB,MAAME,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAACC,CAAAA,IAAKA,EAAE,EAAE,KAAKH,SAAS,KAAK;YAClE,IAAIE,AAAU,OAAVA,OAAc;gBACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACA,QAAQ,GAAG,GAAGD;gBACnC,OAAO,IAAI;YACf;QACJ;QAEA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA;QACnB,OAAO,IAAI;IACf;IAEA,OAAOH,EAAU,EAAQ;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACK,CAAAA,IAAKA,EAAE,EAAE,KAAKL;QACnD,OAAO,IAAI;IACf;IAEA,QAAQA,EAAU,EAAEC,QAAuD,EAAQ;QAC/E,MAAME,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACE,CAAAA,IAAKA,EAAE,EAAE,KAAKL;QACjD,IAAIG,SACA,IAAI,AAAoB,cAApB,OAAOF,UACPE,QAAQ,OAAO,GAAGF,SAASE,QAAQ,OAAO;aAE1CA,QAAQ,OAAO,GAAGF;QAG1B,OAAO,IAAI;IACf;IAEA,YAAYK,GAAW,EAAEC,KAAa,EAAQ;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAACD,KAAKC;QACxB,OAAO,IAAI;IACf;IAEA,aAAaC,IAA4B,EAAQ;QAC7CC,OAAO,OAAO,CAACD,MAAM,OAAO,CAAC,CAAC,CAACF,KAAKC,MAAM;YACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAACD,KAAKC;QAC5B;QACA,OAAO,IAAI;IACf;IAEA,YAAYD,GAAW,EAAsB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAACA;IAC9B;IAEQ,oBAAoBI,IAAY,EAAU;QAC9C,IAAIC,SAASD;QACb,IAAIE,iBAAiB;QACrB,IAAIC,QAAQ;QAGZ,MAAOF,WAAWC,kBAAkBC,QAAQ,IAAI,CAAC,uBAAuB,CAAE;YACtED,iBAAiBD;YAEjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAACJ,OAAOD;gBAC3B,MAAMQ,QAAQ,IAAIC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAACT,KAAK,GAAG,CAAC,EAAE;gBAC3DK,SAASA,OAAO,OAAO,CAACG,OAAOP;YACnC;YAEAM;QACJ;QAGA,IAAIA,UAAU,IAAI,CAAC,uBAAuB,IAAIF,WAAWC,gBACrDI,QAAQ,IAAI,CACR;QAIR,OAAOL;IACX;IAEQ,YAAYM,GAAW,EAAU;QACrC,OAAOA,IAAI,OAAO,CAAC,uBAAuB;IAC9C;IAEA,MAAMC,WAAW,IAAI,EAAU;QAC3B,MAAMC,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACd,CAAAA,IAAKA,EAAE,OAAO,EAAE,IAAI,CAACa;QACvD,OAAO,IAAI,CAAC,mBAAmB,CAACC;IACpC;;aA9FQ,QAAQ,GAAe,EAAE;aACzB,SAAS,GAAwB,IAAIC;aAC5B,uBAAuB,GAAG;;AA6F/C"}