kempo 4.2.16 → 4.2.17

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 (274) hide show
  1. package/bin/cli.js +21 -4
  2. package/dist/admin/components/AddGroupControl.js +2 -2
  3. package/dist/admin/components/AddGroupControl.js.map +1 -1
  4. package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
  5. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
  6. package/dist/admin/components/FragmentEditor.js +15 -15
  7. package/dist/admin/components/FragmentEditor.js.map +1 -1
  8. package/dist/admin/components/GlobalContentEditor.js +12 -12
  9. package/dist/admin/components/GlobalContentEditor.js.map +1 -1
  10. package/dist/admin/components/GroupDeleteSelected.js +2 -2
  11. package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
  12. package/dist/admin/components/GroupRemoveRecord.js +2 -2
  13. package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
  14. package/dist/admin/components/Monaco.js +1 -1
  15. package/dist/admin/components/Monaco.js.map +1 -1
  16. package/dist/admin/components/PageEditor.js +42 -28
  17. package/dist/admin/components/PageEditor.js.map +1 -1
  18. package/dist/admin/components/TableRowDelete.js +2 -2
  19. package/dist/admin/components/TableRowDelete.js.map +1 -1
  20. package/dist/admin/components/TableRowLink.js +2 -2
  21. package/dist/admin/components/TableRowLink.js.map +1 -1
  22. package/dist/admin/components/TemplateEditor.js +18 -18
  23. package/dist/admin/components/TemplateEditor.js.map +1 -1
  24. package/dist/admin/components/ValueEditor.js +17 -17
  25. package/dist/admin/components/ValueEditor.js.map +1 -1
  26. package/dist/admin/components/tableControls/AddMember.js +2 -2
  27. package/dist/admin/components/tableControls/AddMember.js.map +1 -1
  28. package/dist/admin/components/tableControls/AddPermission.js +2 -2
  29. package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
  30. package/dist/admin/components/tableControls/InstallExtension.js +2 -2
  31. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  32. package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
  33. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  34. package/dist/admin/extensions/index.page.html +49 -15
  35. package/dist/admin/icons/open_in_new.svg +1 -0
  36. package/dist/admin/nav.fragment.html +1 -1
  37. package/dist/kempo/api/admin-globals/DELETE.js +1 -1
  38. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
  39. package/dist/kempo/api/admin-globals/GET.js +1 -1
  40. package/dist/kempo/api/admin-globals/GET.js.map +1 -1
  41. package/dist/kempo/api/admin-globals/POST.js +1 -1
  42. package/dist/kempo/api/admin-globals/POST.js.map +1 -1
  43. package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
  44. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
  45. package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
  46. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
  47. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
  48. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
  49. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
  50. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
  51. package/dist/kempo/api/auth/change-password/POST.js +1 -1
  52. package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
  53. package/dist/kempo/api/auth/login/email/POST.js +1 -1
  54. package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
  55. package/dist/kempo/api/auth/logout/POST.js +1 -1
  56. package/dist/kempo/api/auth/logout/POST.js.map +1 -1
  57. package/dist/kempo/api/auth/register/email/POST.js +1 -1
  58. package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
  59. package/dist/kempo/api/auth/reset-password/POST.js +1 -1
  60. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
  61. package/dist/kempo/api/auth/session/GET.js +1 -1
  62. package/dist/kempo/api/auth/session/GET.js.map +1 -1
  63. package/dist/kempo/api/auth/verify-email/POST.js +1 -1
  64. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
  65. package/dist/kempo/api/extensions/DELETE.js +1 -1
  66. package/dist/kempo/api/extensions/DELETE.js.map +1 -1
  67. package/dist/kempo/api/extensions/GET.js +1 -1
  68. package/dist/kempo/api/extensions/GET.js.map +1 -1
  69. package/dist/kempo/api/extensions/POST.js +1 -1
  70. package/dist/kempo/api/extensions/POST.js.map +1 -1
  71. package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
  72. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
  73. package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
  74. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
  75. package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
  76. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
  77. package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
  78. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
  79. package/dist/kempo/api/extensions/available/GET.js +1 -1
  80. package/dist/kempo/api/extensions/available/GET.js.map +1 -1
  81. package/dist/kempo/api/extensions/known/GET.js +1 -1
  82. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  83. package/dist/kempo/api/forgot-password/POST.js +1 -1
  84. package/dist/kempo/api/forgot-password/POST.js.map +1 -1
  85. package/dist/kempo/api/fragments/DELETE.js +1 -1
  86. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  87. package/dist/kempo/api/fragments/GET.js +1 -1
  88. package/dist/kempo/api/fragments/GET.js.map +1 -1
  89. package/dist/kempo/api/fragments/POST.js +1 -1
  90. package/dist/kempo/api/fragments/POST.js.map +1 -1
  91. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  92. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  93. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  94. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  95. package/dist/kempo/api/fragments/file/GET.js +1 -1
  96. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  97. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  98. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  99. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  100. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  101. package/dist/kempo/api/fragments/lock/PUT.js +2 -2
  102. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
  103. package/dist/kempo/api/globals/DELETE.js +1 -1
  104. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  105. package/dist/kempo/api/globals/GET.js +1 -1
  106. package/dist/kempo/api/globals/GET.js.map +1 -1
  107. package/dist/kempo/api/globals/POST.js +1 -1
  108. package/dist/kempo/api/globals/POST.js.map +1 -1
  109. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  110. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  111. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  112. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  113. package/dist/kempo/api/globals/entry/GET.js +1 -1
  114. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  115. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  116. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  117. package/dist/kempo/api/globals/lock/PUT.js +2 -2
  118. package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
  119. package/dist/kempo/api/groups/DELETE.js +1 -1
  120. package/dist/kempo/api/groups/DELETE.js.map +1 -1
  121. package/dist/kempo/api/groups/GET.js +1 -1
  122. package/dist/kempo/api/groups/GET.js.map +1 -1
  123. package/dist/kempo/api/groups/PATCH.js +1 -1
  124. package/dist/kempo/api/groups/PATCH.js.map +1 -1
  125. package/dist/kempo/api/groups/POST.js +1 -1
  126. package/dist/kempo/api/groups/POST.js.map +1 -1
  127. package/dist/kempo/api/groups/[name]/GET.js +1 -1
  128. package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
  129. package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
  130. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
  131. package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
  132. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
  133. package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
  134. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
  135. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
  136. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
  137. package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
  138. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
  139. package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
  140. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
  141. package/dist/kempo/api/pages/DELETE.js +1 -1
  142. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  143. package/dist/kempo/api/pages/GET.js +1 -1
  144. package/dist/kempo/api/pages/GET.js.map +1 -1
  145. package/dist/kempo/api/pages/POST.js +1 -1
  146. package/dist/kempo/api/pages/POST.js.map +1 -1
  147. package/dist/kempo/api/pages/directories/GET.js +1 -1
  148. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  149. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  150. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  151. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  152. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  153. package/dist/kempo/api/pages/file/GET.js +1 -1
  154. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  155. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  156. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  157. package/dist/kempo/api/pages/file/PUT.js +1 -1
  158. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  159. package/dist/kempo/api/pages/lock/PUT.js +2 -2
  160. package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
  161. package/dist/kempo/api/pages/search/GET.js +2 -2
  162. package/dist/kempo/api/pages/search/GET.js.map +1 -1
  163. package/dist/kempo/api/pages/templates/GET.js +1 -1
  164. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  165. package/dist/kempo/api/permissions/DELETE.js +1 -1
  166. package/dist/kempo/api/permissions/DELETE.js.map +1 -1
  167. package/dist/kempo/api/permissions/GET.js +1 -1
  168. package/dist/kempo/api/permissions/GET.js.map +1 -1
  169. package/dist/kempo/api/permissions/PATCH.js +1 -1
  170. package/dist/kempo/api/permissions/PATCH.js.map +1 -1
  171. package/dist/kempo/api/permissions/POST.js +1 -1
  172. package/dist/kempo/api/permissions/POST.js.map +1 -1
  173. package/dist/kempo/api/settings/[owner]/GET.js +1 -1
  174. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
  175. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
  176. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
  177. package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
  178. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
  179. package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
  180. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
  181. package/dist/kempo/api/settings/public/GET.js +1 -1
  182. package/dist/kempo/api/settings/public/GET.js.map +1 -1
  183. package/dist/kempo/api/templates/DELETE.js +1 -1
  184. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  185. package/dist/kempo/api/templates/GET.js +1 -1
  186. package/dist/kempo/api/templates/GET.js.map +1 -1
  187. package/dist/kempo/api/templates/POST.js +1 -1
  188. package/dist/kempo/api/templates/POST.js.map +1 -1
  189. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  190. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  191. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  192. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  193. package/dist/kempo/api/templates/file/GET.js +1 -1
  194. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  195. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  196. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  197. package/dist/kempo/api/templates/file/PUT.js +1 -1
  198. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  199. package/dist/kempo/api/templates/lock/PUT.js +2 -2
  200. package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
  201. package/dist/kempo/api/user/DELETE.js +1 -1
  202. package/dist/kempo/api/user/DELETE.js.map +1 -1
  203. package/dist/kempo/api/user/GET.js +1 -1
  204. package/dist/kempo/api/user/GET.js.map +1 -1
  205. package/dist/kempo/api/user/PATCH.js +1 -1
  206. package/dist/kempo/api/user/PATCH.js.map +1 -1
  207. package/dist/kempo/api/user/[userid]/GET.js +1 -1
  208. package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
  209. package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
  210. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
  211. package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
  212. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
  213. package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
  214. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
  215. package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
  216. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
  217. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
  218. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
  219. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
  220. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
  221. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
  222. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
  223. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
  224. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
  225. package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
  226. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
  227. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
  228. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
  229. package/dist/kempo/api/user/create/POST.js +1 -1
  230. package/dist/kempo/api/user/create/POST.js.map +1 -1
  231. package/dist/kempo/api/user/search/GET.js +1 -1
  232. package/dist/kempo/api/user/search/GET.js.map +1 -1
  233. package/dist/kempo/components/LogoutBtn.js +1 -1
  234. package/dist/kempo/components/LogoutBtn.js.map +1 -1
  235. package/dist/kempo/components/Menu.js +9 -9
  236. package/dist/kempo/components/Menu.js.map +1 -1
  237. package/dist/kempo/components/Permission.js +1 -1
  238. package/dist/kempo/components/Permission.js.map +1 -1
  239. package/dist/kempo/components/Role.js +1 -1
  240. package/dist/kempo/components/Role.js.map +1 -1
  241. package/dist/kempo/components/UserCreatedAt.js +1 -1
  242. package/dist/kempo/components/UserCreatedAt.js.map +1 -1
  243. package/dist/kempo/components/UserEmail.js +1 -1
  244. package/dist/kempo/components/UserEmail.js.map +1 -1
  245. package/dist/kempo/components/UserEmailVerified.js +1 -1
  246. package/dist/kempo/components/UserEmailVerified.js.map +1 -1
  247. package/dist/kempo/components/UserName.js +1 -1
  248. package/dist/kempo/components/UserName.js.map +1 -1
  249. package/dist/kempo/fetch.js +1 -1
  250. package/dist/kempo/fetch.js.map +1 -1
  251. package/dist/kempo/sdk.js +1 -1
  252. package/dist/kempo/sdk.js.map +1 -1
  253. package/middleware/kempo.js +36 -6
  254. package/package.json +2 -2
  255. package/server/utils/extensions/installExtension.js +19 -13
  256. package/server/utils/extensions/uninstallExtension.js +6 -10
  257. package/server/utils/pages/deletePage.js +2 -10
  258. package/dist/admin/accounts/groups/[name]/index.html +0 -518
  259. package/dist/admin/accounts/groups/index.html +0 -378
  260. package/dist/admin/accounts/permissions/index.html +0 -397
  261. package/dist/admin/accounts/users/[id]/index.html +0 -541
  262. package/dist/admin/accounts/users/index.html +0 -396
  263. package/dist/admin/content/fragments/edit/index.html +0 -132
  264. package/dist/admin/content/fragments/index.html +0 -375
  265. package/dist/admin/content/globals/edit/index.html +0 -132
  266. package/dist/admin/content/globals/index.html +0 -358
  267. package/dist/admin/content/pages/edit/index.html +0 -132
  268. package/dist/admin/content/pages/index.html +0 -509
  269. package/dist/admin/content/templates/edit/index.html +0 -132
  270. package/dist/admin/content/templates/index.html +0 -429
  271. package/dist/admin/extensions/index.html +0 -222
  272. package/dist/admin/index.html +0 -130
  273. package/dist/admin/settings/[owner]/[name]/index.html +0 -449
  274. package/dist/admin/settings/index.html +0 -410
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\POST.js","names":["currentUserHasPermission","createGroup","async","request","response","token","cookies","session_token","name","description","body","trim","status","json","error","includes","permError","hasPermission","code","msg","result","owner"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createGroup from '../../../../server/utils/groups/createGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name || !name.trim()){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.includes(':')){\r\n\t\treturn response.status(400).json({ error: 'Group name cannot contain \":\"' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, result] = await createGroup({ name: `custom:${name}`, description, owner: 'custom' });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,gBAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,IAASA,EAAKG,OACjB,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,SAAS,KAChB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,MAAOE,EAAWC,SAAuBjB,yBAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOM,SAAgBnB,YAAY,CAAEO,KAAM,UAAUA,IAAQC,cAAaY,MAAO,WAExF,GAAGP,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\POST.js","names":["currentUserHasPermission","createGroup","async","request","response","token","cookies","session_token","name","description","body","trim","status","json","error","includes","permError","hasPermission","code","msg","result","owner"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createGroup from '../../../../server/utils/groups/createGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name || !name.trim()){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.includes(':')){\r\n\t\treturn response.status(400).json({ error: 'Group name cannot contain \":\"' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, result] = await createGroup({ name: `custom:${name}`, description, owner: 'custom' });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,IAASA,EAAKG,OACjB,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,SAAS,KAChB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,MAAOE,EAAWC,SAAuBjB,EAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOM,SAAgBnB,EAAY,CAAEO,KAAM,UAAUA,IAAQC,cAAaY,MAAO,WAExF,GAAGP,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getGroup from"../../../../../server/utils/groups/getGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{name:n}=s.params,[i,u]=await getGroup(decodeURIComponent(n));if(i)return r.status(i.code).json({error:i.msg});r.json(u)};
1
+ import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/groups/getGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,[n,i]=await s(t,"system:group:read");if(n)return o.status(n.code).json({error:n.msg});if(!i)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[u,m]=await r(decodeURIComponent(a));if(u)return o.status(u.code).json({error:u.msg});o.json(m)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\GET.js","names":["currentUserHasPermission","getGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","group","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroup from '../../../../../server/utils/groups/getGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, group] = await getGroup(decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(group);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,aAAc,gEAENC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,QAClBH,EAAOI,SAAehB,SAASiB,mBAAmBH,IAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\GET.js","names":["currentUserHasPermission","getGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","group","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroup from '../../../../../server/utils/groups/getGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, group] = await getGroup(decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(group);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAc,gEAENC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,QAClBH,EAAOI,SAAehB,EAASiB,mBAAmBH,IAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import removeUserFromGroup from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,{userId:o}=r.body;if(!o)return s.status(400).json({error:"User ID is required"});const[t,n]=await currentUserHasPermission(e,"system:group:update");if(t)return s.status(t.code).json({error:t.msg});if(!n)return s.status(403).json({error:"Insufficient permissions"});const{name:i}=r.params,[u,m]=await removeUserFromGroup(o,decodeURIComponent(i));if(u)return s.status(u.code).json({error:u.msg});s.json(m)};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,{userId:n}=e.body;if(!n)return o.status(400).json({error:"User ID is required"});const[i,u]=await s(t,"system:group:update");if(i)return o.status(i.code).json({error:i.msg});if(!u)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[m,p]=await r(n,decodeURIComponent(a));if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removeUserFromGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,wBAAyB,8EAEjBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,oBAAoBO,EAAQY,mBAAmBH,IAE7E,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removeUserFromGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAAyB,8EAEjBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,EAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,EAAoBO,EAAQY,mBAAmBH,IAE7E,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getGroupMembers from"../../../../../../server/utils/groups/getGroupMembers.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{name:i}=s.params,n=parseInt(s.query.limit)||50,m=parseInt(s.query.offset)||0,[u,a]=await getGroupMembers(decodeURIComponent(i),{limit:n,offset:m});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/groups/getGroupMembers.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:group:read");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,[f,p]=await r(decodeURIComponent(a),{limit:m,offset:u});if(f)return o.status(f.code).json({error:f.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\GET.js","names":["currentUserHasPermission","getGroupMembers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","limit","parseInt","query","offset","data","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroupMembers from '../../../../../../server/utils/groups/getGroupMembers.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst [error, data] = await getGroupMembers(decodeURIComponent(name), { limit, offset });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,oBAAqB,0EAEbC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,gBAAgBqB,mBAAmBP,GAAO,CAAEE,QAAOG,WAE/E,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\GET.js","names":["currentUserHasPermission","getGroupMembers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","limit","parseInt","query","offset","data","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroupMembers from '../../../../../../server/utils/groups/getGroupMembers.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst [error, data] = await getGroupMembers(decodeURIComponent(name), { limit, offset });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAAqB,0EAEbC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,EAAgBqB,mBAAmBP,GAAO,CAAEE,QAAOG,WAE/E,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import addUserToGroup from"../../../../../../server/utils/groups/addUserToGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{userId:o}=s.body;if(!o)return r.status(400).json({error:"User ID is required"});const[t,n]=await currentUserHasPermission(e,"system:group:update");if(t)return r.status(t.code).json({error:t.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:i}=s.params,[u,a]=await addUserToGroup(o,decodeURIComponent(i));if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/groups/addUserToGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,{userId:n}=e.body;if(!n)return o.status(400).json({error:"User ID is required"});const[i,u]=await s(t,"system:group:update");if(i)return o.status(i.code).json({error:i.msg});if(!u)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[m,d]=await r(n,decodeURIComponent(a));if(m)return o.status(m.code).json({error:m.msg});o.json(d)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\POST.js","names":["currentUserHasPermission","addUserToGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addUserToGroup from '../../../../../../server/utils/groups/addUserToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addUserToGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,mBAAoB,yEAEZC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,eAAeO,EAAQY,mBAAmBH,IAExE,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\POST.js","names":["currentUserHasPermission","addUserToGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addUserToGroup from '../../../../../../server/utils/groups/addUserToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addUserToGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAAoB,yEAEZC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,EAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,EAAeO,EAAQY,mBAAmBH,IAExE,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import removePermissionFromGroup from"../../../../../../server/utils/permissions/removePermissionFromGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{permissionName:o}=s.body;if(!o)return r.status(400).json({error:"Permission name is required"});const[i,n]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:t}=s.params,[m,u]=await removePermissionFromGroup(decodeURIComponent(t),o);if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/permissions/removePermissionFromGroup.js";export default async(e,o)=>{const i=e.cookies.session_token,{permissionName:n}=e.body;if(!n)return o.status(400).json({error:"Permission name is required"});const[t,m]=await s(i,"system:group:update");if(t)return o.status(t.code).json({error:t.msg});if(!m)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[u,p]=await r(decodeURIComponent(a),n);if(u)return o.status(u.code).json({error:u.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\DELETE.js","names":["currentUserHasPermission","removePermissionFromGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removePermissionFromGroup from '../../../../../../server/utils/permissions/removePermissionFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removePermissionFromGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,8BAA+B,yFAEvBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,0BAA0BmB,mBAAmBH,GAAOT,GAElF,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\DELETE.js","names":["currentUserHasPermission","removePermissionFromGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removePermissionFromGroup from '../../../../../../server/utils/permissions/removePermissionFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removePermissionFromGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAA+B,yFAEvBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,EAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,EAA0BmB,mBAAmBH,GAAOT,GAElF,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getPermissionsForGroups from"../../../../../../server/utils/permissions/getPermissionsForGroups.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:permissions:read");if(o)return r.status(o.code).json({error:o.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{name:n}=s.params,t=decodeURIComponent(n),[m,a]=await getPermissionsForGroups([{name:t}]);if(m)return r.status(m.code).json({error:m.msg});r.json({permissions:a})};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/permissions/getPermissionsForGroups.js";export default async(e,o)=>{const i=e.cookies.session_token,[n,t]=await s(i,"system:permissions:read");if(n)return o.status(n.code).json({error:n.msg});if(!t)return o.status(403).json({error:"Insufficient permissions"});const{name:m}=e.params,a=decodeURIComponent(m),[u,p]=await r([{name:a}]);if(u)return o.status(u.code).json({error:u.msg});o.json({permissions:p})};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\GET.js","names":["currentUserHasPermission","getPermissionsForGroups","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","groupName","decodeURIComponent","permissions"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPermissionsForGroups from '../../../../../../server/utils/permissions/getPermissionsForGroups.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst groupName = decodeURIComponent(name);\r\n\tconst [error, permissions] = await getPermissionsForGroups([{ name: groupName }]);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json({ permissions });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,4BAA6B,uFAErBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAYC,mBAAmBH,IAC9BF,EAAOM,SAAqBlB,wBAAwB,CAAC,CAAEc,KAAME,KAEpE,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAK,CAAEO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\GET.js","names":["currentUserHasPermission","getPermissionsForGroups","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","groupName","decodeURIComponent","permissions"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPermissionsForGroups from '../../../../../../server/utils/permissions/getPermissionsForGroups.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst groupName = decodeURIComponent(name);\r\n\tconst [error, permissions] = await getPermissionsForGroups([{ name: groupName }]);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json({ permissions });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAA6B,uFAErBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAYC,mBAAmBH,IAC9BF,EAAOM,SAAqBlB,EAAwB,CAAC,CAAEc,KAAME,KAEpE,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAK,CAAEO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import addPermissionToGroup from"../../../../../../server/utils/permissions/addPermissionToGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{permissionName:o}=s.body;if(!o)return r.status(400).json({error:"Permission name is required"});const[i,n]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:t}=s.params,[m,a]=await addPermissionToGroup(decodeURIComponent(t),o);if(m)return r.status(m.code).json({error:m.msg});r.json(a)};
1
+ import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/permissions/addPermissionToGroup.js";export default async(e,o)=>{const i=e.cookies.session_token,{permissionName:n}=e.body;if(!n)return o.status(400).json({error:"Permission name is required"});const[t,m]=await s(i,"system:group:update");if(t)return o.status(t.code).json({error:t.msg});if(!m)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[u,p]=await r(decodeURIComponent(a),n);if(u)return o.status(u.code).json({error:u.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\POST.js","names":["currentUserHasPermission","addPermissionToGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addPermissionToGroup from '../../../../../../server/utils/permissions/addPermissionToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addPermissionToGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,yBAA0B,oFAElBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,qBAAqBmB,mBAAmBH,GAAOT,GAE7E,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\POST.js","names":["currentUserHasPermission","addPermissionToGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addPermissionToGroup from '../../../../../../server/utils/permissions/addPermissionToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addPermissionToGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,gFAC9BC,MAA0B,oFAElBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,EAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,EAAqBmB,mBAAmBH,GAAOT,GAE7E,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deletePage from"../../../../server/utils/pages/deletePage.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,s)=>{const r=e.cookies.session_token,[o,t]=await currentUserHasPermission(r,"system:pages:delete");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{files:i}=e.body||{};if(!i?.length)return s.status(400).json({error:"No files specified"});const[n,a]=await deletePage({rootDir:rootDir,files:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
1
+ import{resolve as e}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/pages/getPageMetadata.js";import t from"../../../../server/utils/pages/deletePage.js";const o=e(import.meta.dirname,"../../../../app-public");export default async(e,i)=>{const n=e.cookies.session_token,[a,f]=await s(n,"system:pages:delete");if(a)return i.status(a.code).json({error:a.msg});if(!f)return i.status(403).json({error:"Insufficient permissions"});const{files:u}=e.body||{};if(!u?.length)return i.status(400).json({error:"No files specified"});for(const e of u){const[s,t]=await r({rootDir:o,file:e});if(!s){if(t.locked)return i.status(403).json({error:`Cannot delete locked page: ${e}`});if(t.owner&&"custom"!==t.owner)return i.status(403).json({error:`Cannot delete system-owned page: ${e}`})}}const[m,p]=await t({rootDir:o,files:u});if(m)return i.status(m.code).json({error:m.msg});i.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\DELETE.js","names":["resolve","currentUserHasPermission","deletePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePage from '../../../../server/utils/pages/deletePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body || {};\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tconst [error, result] = await deletePage({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,eAAgB,+CAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,MAAOA,EAAOK,SAAgBnB,WAAW,CAAEC,gBAASe,UAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\DELETE.js","names":["resolve","currentUserHasPermission","getPageMetadata","deletePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","file","metaError","metadata","locked","owner","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPageMetadata from '../../../../server/utils/pages/getPageMetadata.js';\r\nimport deletePage from '../../../../server/utils/pages/deletePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body || {};\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tfor(const file of files){\r\n\t\tconst [metaError, metadata] = await getPageMetadata({ rootDir, file });\r\n\t\tif(!metaError){\r\n\t\t\tif(metadata.locked){\r\n\t\t\t\treturn response.status(403).json({ error: `Cannot delete locked page: ${file}` });\r\n\t\t\t}\r\n\t\t\tif(metadata.owner && metadata.owner !== 'custom'){\r\n\t\t\t\treturn response.status(403).json({ error: `Cannot delete system-owned page: ${file}` });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deletePage({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAqB,2DACrBC,MAAgB,+CAEvB,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,IAAI,MAAMK,KAAQH,EAAM,CACvB,MAAOI,EAAWC,SAAkBtB,EAAgB,CAAEE,UAASkB,SAC/D,IAAIC,EAAU,CACb,GAAGC,EAASC,OACX,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAA8BK,MAEzE,GAAGE,EAASE,OAA4B,WAAnBF,EAASE,MAC7B,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,oCAAoCK,KAEhF,CACD,CAEA,MAAOL,EAAOU,SAAgBxB,EAAW,CAAEC,UAASe,UAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import listPages from"../../../../server/utils/pages/listPages.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:pages:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listPages({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
1
+ import{resolve as s}from"path";import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/pages/listPages.js";const t=s(import.meta.dirname,"../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[m,p]=await e({rootDir:t});if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\GET.js","names":["resolve","currentUserHasPermission","listPages","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listPages from '../../../../server/utils/pages/listPages.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listPages({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,cAAe,8CAEtB,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,UAAU,CAAEC,kBAExC,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\GET.js","names":["resolve","currentUserHasPermission","listPages","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listPages from '../../../../server/utils/pages/listPages.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listPages({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAe,8CAEtB,MAAMC,EAAUH,cAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,EAAU,CAAEC,YAExC,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getSession from"../../../../server/utils/auth/getSession.js";import createPage from"../../../../server/utils/pages/createPage.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:create");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{directory:i,name:a,template:n}=e.body;if(!a)return r.status(400).json({error:"Page name is required"});const[,m]=await getSession({token:s}),u=m?.user?.name||"",[c,p]=await createPage({rootDir:rootDir,directory:i,name:a,template:n,author:u});if(c)return r.status(c.code).json({error:c.msg});r.status(201).json(p)};
1
+ import{resolve as e}from"path";import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/auth/getSession.js";import s from"../../../../server/utils/pages/createPage.js";const o=e(import.meta.dirname,"../../../../app-public");export default async(e,a)=>{const i=e.cookies.session_token,[n,m]=await r(i,"system:pages:create");if(n)return a.status(n.code).json({error:n.msg});if(!m)return a.status(403).json({error:"Insufficient permissions"});const{directory:u,name:c,template:p,extraMetadata:d,locked:f}=e.body;if(!c)return a.status(400).json({error:"Page name is required"});const[,l]=await t({token:i}),j=l?.user?.name||"",[g,k]=await s({rootDir:o,directory:u,name:c,template:p,author:j,extraMetadata:d,locked:f});if(g)return a.status(g.code).json({error:g.msg});a.status(201).json(k)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\POST.js","names":["resolve","currentUserHasPermission","getSession","createPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","template","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createPage from '../../../../server/utils/pages/createPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, template } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Page name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createPage({ rootDir, directory, name, template, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,eAAgB,qDAChBC,eAAgB,+CAEvB,MAAMC,QAAUJ,oBAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,yBAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,GAAad,EAAQe,KAE9C,IAAIF,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAO,CAAEM,SAAqBrB,WAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAML,MAAQ,IAEnCH,EAAOS,SAAcvB,WAAW,CAAEC,gBAASe,YAAWC,OAAMC,WAAUG,WAE7E,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\POST.js","names":["resolve","currentUserHasPermission","getSession","createPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","template","extraMetadata","locked","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createPage from '../../../../server/utils/pages/createPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, template, extraMetadata, locked } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Page name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createPage({ rootDir, directory, name, template, author, extraMetadata, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAgB,+CAEvB,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,EAAQC,cAAEA,EAAaC,OAAEA,GAAWhB,EAAQiB,KAErE,IAAIJ,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAO,CAAEQ,SAAqBvB,EAAW,CAAEO,UACrCiB,EAASD,GAAaE,MAAMP,MAAQ,IAEnCH,EAAOW,SAAczB,EAAW,CAAEC,UAASe,YAAWC,OAAMC,WAAUK,SAAQJ,gBAAeC,WAEpG,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKY","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listDirectories from"../../../../../server/utils/pages/listDirectories.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:pages:read");if(o)return s.status(o.code).json({error:o.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const[t,n]=await listDirectories({rootDir:rootDir});if(t)return s.status(t.code).json({error:t.msg});s.json(n)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/pages/listDirectories.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[m,p]=await e({rootDir:t});if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\directories\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\directories\\GET.js","names":["resolve","currentUserHasPermission","listDirectories","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listDirectories from '../../../../../server/utils/pages/listDirectories.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listDirectories({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,oBAAqB,uDAE5B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,gBAAgB,CAAEC,kBAE9C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\directories\\GET.js","names":["resolve","currentUserHasPermission","listDirectories","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listDirectories from '../../../../../server/utils/pages/listDirectories.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listDirectories({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAqB,uDAE5B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,EAAgB,CAAEC,YAE9C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import disablePage from"../../../../../server/utils/pages/disablePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:pages:update");if(o)return r.status(o.code).json({error:o.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{file:t}=s.body||{};if(!t)return r.status(400).json({error:"File path is required"});const[a,n]=await disablePage({rootDir:rootDir,file:t});if(a)return r.status(a.code).json({error:a.msg});r.json(n)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/pages/getPageMetadata.js";import t from"../../../../../server/utils/pages/disablePage.js";const o=s(import.meta.dirname,"../../../../../app-public");export default async(s,i)=>{const a=s.cookies.session_token,[n,u]=await r(a,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!u)return i.status(403).json({error:"Insufficient permissions"});const{file:p}=s.body||{};if(!p)return i.status(400).json({error:"File path is required"});const[m,f]=await e({rootDir:o,file:p});if(!m&&f.locked)return i.status(403).json({error:"Cannot disable a locked page"});const[c,l]=await t({rootDir:o,file:p});if(c)return i.status(c.code).json({error:c.msg});i.json(l)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disablePage from '../../../../../server/utils/pages/disablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,gBAAiB,mDAExB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,YAAY,CAAEC,gBAASe,SAErD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\disable\\PUT.js","names":["resolve","currentUserHasPermission","getPageMetadata","disablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPageMetadata from '../../../../../server/utils/pages/getPageMetadata.js';\r\nimport disablePage from '../../../../../server/utils/pages/disablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getPageMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'Cannot disable a locked page' });\r\n\t}\r\n\r\n\tconst [error, result] = await disablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAqB,8DACrBC,MAAiB,mDAExB,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOI,EAAWC,SAAkBpB,EAAgB,CAAEE,UAASe,SAC/D,IAAIE,GAAaC,EAASC,OACzB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,iCAG3C,MAAOA,EAAOO,SAAgBrB,EAAY,CAAEC,UAASe,SAErD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import enablePage from"../../../../../server/utils/pages/enablePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:pages:update");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{file:i}=r.body||{};if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await enablePage({rootDir:rootDir,file:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
1
+ import{resolve as r}from"path";import{readFile as s}from"fs/promises";import{existsSync as e}from"fs";import{join as t}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import i from"../../../../../server/utils/fs/parseFrontmatter.js";import m from"../../../../../server/utils/pages/enablePage.js";const n=r(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[t,i]=await o(e,"system:pages:update");if(t)return s.status(t.code).json({error:t.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const{file:a}=r.body||{};if(!a)return s.status(400).json({error:"File path is required"});const[p,f]=await m({rootDir:n,file:a});if(p)return s.status(p.code).json({error:p.msg});s.json(f)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enablePage from '../../../../../server/utils/pages/enablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,eAAgB,kDAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,WAAW,CAAEC,gBAASe,SAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\enable\\PUT.js","names":["resolve","readFile","existsSync","join","currentUserHasPermission","parseFrontmatter","enablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport { readFile } from 'fs/promises';\r\nimport { existsSync } from 'fs';\r\nimport { join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport parseFrontmatter from '../../../../../server/utils/fs/parseFrontmatter.js';\r\nimport enablePage from '../../../../../server/utils/pages/enablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,MAAe,0BACfC,MAAgB,mCAChBC,MAAkB,oBAClBC,MAAY,cACdC,MAA8B,6EAC9BC,MAAsB,4DACtBC,MAAgB,kDAEvB,MAAMC,EAAUP,cAAoBQ,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,EAAW,CAAEC,UAASe,SAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getPage from"../../../../../server/utils/pages/getPage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{file:i}=r.query;if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await getPage({rootDir:rootDir,file:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/pages/getPage.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{file:u}=s.query;if(!u)return o.status(400).json({error:"File path is required"});const[m,p]=await e({rootDir:t,file:u});if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\file\\GET.js","names":["resolve","currentUserHasPermission","getPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPage from '../../../../../server/utils/pages/getPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getPage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,YAAa,+CAEpB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,QAAQ,CAAEC,gBAASe,SAE/C,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\GET.js","names":["resolve","currentUserHasPermission","getPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPage from '../../../../../server/utils/pages/getPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getPage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAa,+CAEpB,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,EAAQ,CAAEC,UAASe,SAE/C,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import movePage from"../../../../../server/utils/pages/movePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const s=r.cookies.session_token,[o,t]=await currentUserHasPermission(s,"system:pages:update");if(o)return e.status(o.code).json({error:o.msg});if(!t)return e.status(403).json({error:"Insufficient permissions"});const{file:i,newFile:n}=r.body;if(!i)return e.status(400).json({error:"File path is required"});if(!n)return e.status(400).json({error:"New file path is required"});const[a,u]=await movePage({rootDir:rootDir,file:i,newFile:n});if(a)return e.status(a.code).json({error:a.msg});e.json(u)};
1
+ import{resolve as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/pages/movePage.js";const t=r(import.meta.dirname,"../../../../../app-public");export default async(r,i)=>{const o=r.cookies.session_token,[n,a]=await s(o,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const{file:u,newFile:m}=r.body;if(!u)return i.status(400).json({error:"File path is required"});if(!m)return i.status(400).json({error:"New file path is required"});const[p,f]=await e({rootDir:t,file:u,newFile:m});if(p)return i.status(p.code).json({error:p.msg});i.json(f)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\file\\PATCH.js","names":["resolve","currentUserHasPermission","movePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport movePage from '../../../../../server/utils/pages/movePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await movePage({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,aAAc,gDAErB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAAcnB,SAAS,CAAEC,gBAASe,OAAMC,YAEtD,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\PATCH.js","names":["resolve","currentUserHasPermission","movePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport movePage from '../../../../../server/utils/pages/movePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await movePage({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAc,gDAErB,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAAcnB,EAAS,CAAEC,UAASe,OAAMC,YAEtD,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import updatePage from"../../../../../server/utils/pages/updatePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:update");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{file:i,name:n,title:a,description:u,author:p,template:m,contents:c}=e.body;if(!i)return r.status(400).json({error:"File path is required"});const[l,d]=await updatePage({rootDir:rootDir,file:i,name:n,title:a,description:u,author:p,template:m,contents:c});if(l)return r.status(l.code).json({error:l.msg});r.json(d)};
1
+ import{resolve as t}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/pages/getPageMetadata.js";import s from"../../../../../server/utils/pages/updatePage.js";const o=t(import.meta.dirname,"../../../../../app-public");export default async(t,a)=>{const i=t.cookies.session_token,[n,p]=await e(i,"system:pages:update");if(n)return a.status(n.code).json({error:n.msg});if(!p)return a.status(403).json({error:"Insufficient permissions"});const{file:u,name:m,title:c,description:d,author:f,template:l,contents:g,extraMetadata:j}=t.body;if(!u)return a.status(400).json({error:"File path is required"});const[h,k]=await r({rootDir:o,file:u});if(!h&&k.locked)return a.status(403).json({error:"This page is locked and cannot be edited"});const[b,v]=await s({rootDir:o,file:u,name:m,title:c,description:d,author:f,template:l,contents:g,extraMetadata:j});if(b)return a.status(b.code).json({error:b.msg});a.json(v)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\file\\PUT.js","names":["resolve","currentUserHasPermission","updatePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","title","description","author","template","contents","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePage from '../../../../../server/utils/pages/updatePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, title, description, author, template, contents } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await updatePage({ rootDir, file, name, title, description, author, template, contents });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,eAAgB,kDAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,MAAEA,EAAKC,YAAEA,EAAWC,OAAEA,EAAMC,SAAEA,EAAQC,SAAEA,GAAalB,EAAQmB,KAE/E,IAAIP,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOU,SAAcxB,WAAW,CAAEC,gBAASe,OAAMC,OAAMC,QAAOC,cAAaC,SAAQC,WAAUC,aAEpG,GAAGR,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\PUT.js","names":["resolve","currentUserHasPermission","getPageMetadata","updatePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","title","description","author","template","contents","extraMetadata","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPageMetadata from '../../../../../server/utils/pages/getPageMetadata.js';\r\nimport updatePage from '../../../../../server/utils/pages/updatePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, title, description, author, template, contents, extraMetadata } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getPageMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This page is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updatePage({ rootDir, file, name, title, description, author, template, contents, extraMetadata });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAqB,8DACrBC,MAAgB,kDAEvB,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,MAAEA,EAAKC,YAAEA,EAAWC,OAAEA,EAAMC,SAAEA,EAAQC,SAAEA,EAAQC,cAAEA,GAAkBnB,EAAQoB,KAE9F,IAAIR,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOW,EAAWC,SAAkB3B,EAAgB,CAAEE,UAASe,SAC/D,IAAIS,GAAaC,EAASC,OACzB,OAAOtB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6CAG3C,MAAOA,EAAOc,SAAc5B,EAAW,CAAEC,UAASe,OAAMC,OAAMC,QAAOC,cAAaC,SAAQC,WAAUC,WAAUC,kBAE9G,GAAGT,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKe","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import setPageLocked from"../../../../../server/utils/pages/setPageLocked.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(e,s)=>{const r=e.cookies.session_token,[o,t]=await currentUserHasPermission(r,"system:pages:update");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{file:i,locked:n}=e.body;if(!i)return s.status(400).json({error:"File path is required"});if("boolean"!=typeof n)return s.status(400).json({error:"locked must be a boolean"});const[a,u]=await setPageLocked({rootDir:rootDir,file:i,locked:n});if(a)return s.status(a.code).json({error:a.msg});s.json(u)};
2
- //# sourceMappingURL=PUT.js.map
1
+ import{resolve as s}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/pages/setPageLocked.js";const o=s(import.meta.dirname,"../../../../../app-public");export default async(s,t)=>{const i=s.cookies.session_token,[n,a]=await e(i,"system:pages:update");if(n)return t.status(n.code).json({error:n.msg});if(!a)return t.status(403).json({error:"Insufficient permissions"});const{file:u,locked:m}=s.body;if(!u)return t.status(400).json({error:"File path is required"});if("boolean"!=typeof m)return t.status(400).json({error:"locked must be a boolean"});const[p,c]=await r({rootDir:o,file:u,locked:m});if(p)return t.status(p.code).json({error:p.msg});t.json(c)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\lock\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/pages/lock/PUT.js","names":["resolve","currentUserHasPermission","setPageLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport setPageLocked from '../../../../../server/utils/pages/setPageLocked.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file, locked } = request.body;\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tif(typeof locked !== 'boolean'){\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\n\t}\n\n\tconst [error, data] = await setPageLocked({ rootDir, file, locked });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,kBAAmB,qDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,OAAEA,GAAWb,EAAQc,KAEjC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcnB,cAAc,CAAEC,gBAASe,OAAMC,WAE3D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\lock\\PUT.js","names":["resolve","currentUserHasPermission","setPageLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setPageLocked from '../../../../../server/utils/pages/setPageLocked.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, locked } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setPageLocked({ rootDir, file, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAmB,qDAE1B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,OAAEA,GAAWb,EAAQc,KAEjC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcnB,EAAc,CAAEC,UAASe,OAAMC,WAE3D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import searchByMetadata from"../../../../server/utils/pages/searchByMetadata.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{query:a}=r.query;if(!a)return s.status(400).json({error:"query parameter is required"});let i;try{i=JSON.parse(a)}catch{return s.status(400).json({error:"query must be valid JSON"})}if("object"!=typeof i||Array.isArray(i)||!i)return s.status(400).json({error:"query must be a JSON object"});const[n,u]=await searchByMetadata({rootDir:rootDir,query:i});if(n)return s.status(n.code).json({error:n.msg});s.json(u)};
2
- //# sourceMappingURL=GET.js.map
1
+ import{resolve as r}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/pages/searchByMetadata.js";const t=r(import.meta.dirname,"../../../../app-public");export default async(r,o)=>{const a=r.cookies.session_token,[i,n]=await s(a,"system:pages:read");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{query:u}=r.query;if(!u)return o.status(400).json({error:"query parameter is required"});let m;try{m=JSON.parse(u)}catch{return o.status(400).json({error:"query must be valid JSON"})}if("object"!=typeof m||Array.isArray(m)||!m)return o.status(400).json({error:"query must be a JSON object"});const[c,p]=await e({rootDir:t,query:m});if(c)return o.status(c.code).json({error:c.msg});o.json(p)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\search\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/pages/search/GET.js","names":["resolve","currentUserHasPermission","searchByMetadata","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","query","parsedQuery","JSON","parse","Array","isArray","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport searchByMetadata from '../../../../server/utils/pages/searchByMetadata.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { query } = request.query;\n\n\tif(!query){\n\t\treturn response.status(400).json({ error: 'query parameter is required' });\n\t}\n\n\tlet parsedQuery;\n\ttry {\n\t\tparsedQuery = JSON.parse(query);\n\t} catch {\n\t\treturn response.status(400).json({ error: 'query must be valid JSON' });\n\t}\n\n\tif(typeof parsedQuery !== 'object' || Array.isArray(parsedQuery) || !parsedQuery){\n\t\treturn response.status(400).json({ error: 'query must be a JSON object' });\n\t}\n\n\tconst [error, data] = await searchByMetadata({ rootDir, query: parsedQuery });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,qBAAsB,qDAE7B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQY,MAE1B,IAAIA,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,gCAG3C,IAAIG,EACJ,IACCA,EAAcC,KAAKC,MAAMH,EAC1B,CAAE,MACD,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,4BAC3C,CAEA,GAA0B,iBAAhBG,GAA4BG,MAAMC,QAAQJ,KAAiBA,EACpE,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,gCAG3C,MAAOA,EAAOQ,SAActB,iBAAiB,CAAEC,gBAASe,MAAOC,IAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\search\\GET.js","names":["resolve","currentUserHasPermission","searchByMetadata","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","query","parsedQuery","JSON","parse","Array","isArray","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport searchByMetadata from '../../../../server/utils/pages/searchByMetadata.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { query } = request.query;\r\n\r\n\tif(!query){\r\n\t\treturn response.status(400).json({ error: 'query parameter is required' });\r\n\t}\r\n\r\n\tlet parsedQuery;\r\n\ttry {\r\n\t\tparsedQuery = JSON.parse(query);\r\n\t} catch {\r\n\t\treturn response.status(400).json({ error: 'query must be valid JSON' });\r\n\t}\r\n\r\n\tif(typeof parsedQuery !== 'object' || Array.isArray(parsedQuery) || !parsedQuery){\r\n\t\treturn response.status(400).json({ error: 'query must be a JSON object' });\r\n\t}\r\n\r\n\tconst [error, data] = await searchByMetadata({ rootDir, query: parsedQuery });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAsB,qDAE7B,MAAMC,EAAUH,cAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQY,MAE1B,IAAIA,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,gCAG3C,IAAIG,EACJ,IACCA,EAAcC,KAAKC,MAAMH,EAC1B,CAAE,MACD,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,4BAC3C,CAEA,GAA0B,iBAAhBG,GAA4BG,MAAMC,QAAQJ,KAAiBA,EACpE,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,gCAG3C,MAAOA,EAAOQ,SAActB,EAAiB,CAAEC,UAASe,MAAOC,IAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listTemplates from"../../../../../server/utils/pages/listTemplates.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listTemplates({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/pages/listTemplates.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:pages:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[m,p]=await e({rootDir:t});if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\templates\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\pages\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,kBAAmB,qDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,cAAc,CAAEC,kBAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAAmB,qDAE1B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,EAAc,CAAEC,YAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deletePermission from"../../../../server/utils/permissions/deletePermission.js";export default async(s,e)=>{const r=s.cookies.session_token,{names:n}=s.body;if(!n||!Array.isArray(n)||0===n.length)return e.status(400).json({error:"Names array is required"});const[t,i]=await currentUserHasPermission(r,"system:permissions:manage");if(t)return e.status(t.code).json({error:t.msg});if(!i)return e.status(403).json({error:"Insufficient permissions"});const o=n.filter(s=>{const e=s.includes(":")?s.split(":")[0]:null;return e&&"admin"!==e});if(o.length)return e.status(403).json({error:`Cannot delete non-admin permissions: ${o.join(", ")}`});const a=[],m=[];for(const s of n){const[e,r]=await deletePermission(s);e?m.push({name:s,error:e.msg}):a.push(r)}if(m.length>0)return e.status(207).json({deleted:a,errors:m});e.json({deleted:a})};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/deletePermission.js";export default async(e,n)=>{const t=e.cookies.session_token,{names:o}=e.body;if(!o||!Array.isArray(o)||0===o.length)return n.status(400).json({error:"Names array is required"});const[i,a]=await s(t,"system:permissions:manage");if(i)return n.status(i.code).json({error:i.msg});if(!a)return n.status(403).json({error:"Insufficient permissions"});const u=o.filter(s=>{const r=s.includes(":")?s.split(":")[0]:null;return r&&"admin"!==r});if(u.length)return n.status(403).json({error:`Cannot delete non-admin permissions: ${u.join(", ")}`});const m=[],l=[];for(const s of o){const[e,n]=await r(s);e?l.push({name:s,error:e.msg}):m.push(n)}if(l.length>0)return n.status(207).json({deleted:m,errors:l});n.json({deleted:m})};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\permissions\\DELETE.js","names":["currentUserHasPermission","deletePermission","async","request","response","token","cookies","session_token","names","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","nonAdmin","filter","n","owner","includes","split","join","deleted","errors","name","result","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePermission from '../../../../server/utils/permissions/deletePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { names } = request.body;\r\n\r\n\tif(!names || !Array.isArray(names) || names.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Names array is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst nonAdmin = names.filter(n => {\r\n\t\tconst owner = n.includes(':') ? n.split(':')[0] : null;\r\n\t\treturn owner && owner !== 'admin';\r\n\t});\r\n\tif(nonAdmin.length){\r\n\t\treturn response.status(403).json({ error: `Cannot delete non-admin permissions: ${nonAdmin.join(', ')}` });\r\n\t}\r\n\r\n\tconst deleted = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const name of names){\r\n\t\tconst [error, result] = await deletePermission(name);\r\n\t\tif(error){\r\n\t\t\terrors.push({ name, error: error.msg });\r\n\t\t} else {\r\n\t\t\tdeleted.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ deleted, errors });\r\n\t}\r\n\r\n\tresponse.json({ deleted });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,MAAEA,GAAUL,EAAQM,KAE1B,IAAID,IAAUE,MAAMC,QAAQH,IAA2B,IAAjBA,EAAMI,OAC3C,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,4BAG3C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,6BAEzE,GAAGW,EACF,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,EAAWZ,EAAMa,OAAOC,IAC7B,MAAMC,EAAQD,EAAEE,SAAS,KAAOF,EAAEG,MAAM,KAAK,GAAK,KAClD,OAAOF,GAAmB,UAAVA,IAEjB,GAAGH,EAASR,OACX,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,wCAAwCK,EAASM,KAAK,UAGjG,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,iBAAiB4B,GAC5Cd,EACFa,EAAOG,KAAK,CAAEF,OAAMd,MAAOA,EAAMI,MAEjCQ,EAAQI,KAAKD,EAEf,CAEA,GAAGF,EAAOhB,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEa,UAASC,WAG7CxB,EAASU,KAAK,CAAEa","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\DELETE.js","names":["currentUserHasPermission","deletePermission","async","request","response","token","cookies","session_token","names","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","nonAdmin","filter","n","owner","includes","split","join","deleted","errors","name","result","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePermission from '../../../../server/utils/permissions/deletePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { names } = request.body;\r\n\r\n\tif(!names || !Array.isArray(names) || names.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Names array is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst nonAdmin = names.filter(n => {\r\n\t\tconst owner = n.includes(':') ? n.split(':')[0] : null;\r\n\t\treturn owner && owner !== 'admin';\r\n\t});\r\n\tif(nonAdmin.length){\r\n\t\treturn response.status(403).json({ error: `Cannot delete non-admin permissions: ${nonAdmin.join(', ')}` });\r\n\t}\r\n\r\n\tconst deleted = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const name of names){\r\n\t\tconst [error, result] = await deletePermission(name);\r\n\t\tif(error){\r\n\t\t\terrors.push({ name, error: error.msg });\r\n\t\t} else {\r\n\t\t\tdeleted.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ deleted, errors });\r\n\t}\r\n\r\n\tresponse.json({ deleted });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,MAAEA,GAAUL,EAAQM,KAE1B,IAAID,IAAUE,MAAMC,QAAQH,IAA2B,IAAjBA,EAAMI,OAC3C,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,4BAG3C,MAAOC,EAAWC,SAAuBjB,EAAyBK,EAAO,6BAEzE,GAAGW,EACF,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,EAAWZ,EAAMa,OAAOC,IAC7B,MAAMC,EAAQD,EAAEE,SAAS,KAAOF,EAAEG,MAAM,KAAK,GAAK,KAClD,OAAOF,GAAmB,UAAVA,IAEjB,GAAGH,EAASR,OACX,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,wCAAwCK,EAASM,KAAK,UAGjG,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,EAAiB4B,GAC5Cd,EACFa,EAAOG,KAAK,CAAEF,OAAMd,MAAOA,EAAMI,MAEjCQ,EAAQI,KAAKD,EAEf,CAEA,GAAGF,EAAOhB,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEa,UAASC,WAG7CxB,EAASU,KAAK,CAAEa","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getAllPermissions from"../../../../server/utils/permissions/getAllPermissions.js";export default async(s,r)=>{const e=s.cookies.session_token,[i,o]=await currentUserHasPermission(e,"system:permissions:read");if(i)return r.status(i.code).json({error:i.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const t=parseInt(s.query.limit)||50,n=parseInt(s.query.offset)||0,m=s.query.owner,[u,a]=await getAllPermissions({limit:t,offset:n,owner:m});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/getAllPermissions.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:permissions:read");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,a=e.query.owner,[f,p]=await r({limit:m,offset:u,owner:a});if(f)return o.status(f.code).json({error:f.msg});o.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\permissions\\GET.js","names":["currentUserHasPermission","getAllPermissions","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","owner","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAllPermissions from '../../../../server/utils/permissions/getAllPermissions.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst owner = request.query.owner;\r\n\tconst [error, data] = await getAllPermissions({ limit, offset, owner });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,sBAAuB,2EAEfC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,kBAAkB,CAAEc,QAAOG,SAAQC,UAE/D,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\GET.js","names":["currentUserHasPermission","getAllPermissions","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","owner","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAllPermissions from '../../../../server/utils/permissions/getAllPermissions.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst owner = request.query.owner;\r\n\tconst [error, data] = await getAllPermissions({ limit, offset, owner });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAuB,2EAEfC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,EAAkB,CAAEc,QAAOG,SAAQC,UAE/D,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}