kempo 4.2.15 → 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 (306) hide show
  1. package/app-public/account/split2.template.html +1 -0
  2. package/app-public/test.page.html +1 -0
  3. package/bin/cli.js +21 -4
  4. package/dist/admin/components/AddGroupControl.js +2 -2
  5. package/dist/admin/components/AddGroupControl.js.map +1 -1
  6. package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
  7. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
  8. package/dist/admin/components/FragmentEditor.js +15 -15
  9. package/dist/admin/components/FragmentEditor.js.map +1 -1
  10. package/dist/admin/components/GlobalContentEditor.js +12 -12
  11. package/dist/admin/components/GlobalContentEditor.js.map +1 -1
  12. package/dist/admin/components/GroupDeleteSelected.js +2 -2
  13. package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
  14. package/dist/admin/components/GroupRemoveRecord.js +2 -2
  15. package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
  16. package/dist/admin/components/Monaco.js +1 -1
  17. package/dist/admin/components/Monaco.js.map +1 -1
  18. package/dist/admin/components/PageEditor.js +42 -28
  19. package/dist/admin/components/PageEditor.js.map +1 -1
  20. package/dist/admin/components/TableRowDelete.js +2 -2
  21. package/dist/admin/components/TableRowDelete.js.map +1 -1
  22. package/dist/admin/components/TableRowLink.js +2 -2
  23. package/dist/admin/components/TableRowLink.js.map +1 -1
  24. package/dist/admin/components/TemplateEditor.js +18 -18
  25. package/dist/admin/components/TemplateEditor.js.map +1 -1
  26. package/dist/admin/components/ValueEditor.js +17 -17
  27. package/dist/admin/components/ValueEditor.js.map +1 -1
  28. package/dist/admin/components/tableControls/AddMember.js +2 -2
  29. package/dist/admin/components/tableControls/AddMember.js.map +1 -1
  30. package/dist/admin/components/tableControls/AddPermission.js +2 -2
  31. package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
  32. package/dist/admin/components/tableControls/InstallExtension.js +2 -2
  33. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  34. package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
  35. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  36. package/dist/admin/extensions/index.page.html +49 -15
  37. package/dist/admin/icons/open_in_new.svg +1 -0
  38. package/dist/admin/nav.fragment.html +1 -1
  39. package/dist/kempo/api/admin-globals/DELETE.js +1 -1
  40. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
  41. package/dist/kempo/api/admin-globals/GET.js +1 -1
  42. package/dist/kempo/api/admin-globals/GET.js.map +1 -1
  43. package/dist/kempo/api/admin-globals/POST.js +1 -1
  44. package/dist/kempo/api/admin-globals/POST.js.map +1 -1
  45. package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
  46. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
  47. package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
  48. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
  49. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
  50. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
  51. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
  52. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
  53. package/dist/kempo/api/auth/change-password/POST.js +1 -1
  54. package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
  55. package/dist/kempo/api/auth/login/email/POST.js +1 -1
  56. package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
  57. package/dist/kempo/api/auth/logout/POST.js +1 -1
  58. package/dist/kempo/api/auth/logout/POST.js.map +1 -1
  59. package/dist/kempo/api/auth/register/email/POST.js +1 -1
  60. package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
  61. package/dist/kempo/api/auth/reset-password/POST.js +1 -1
  62. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
  63. package/dist/kempo/api/auth/session/GET.js +1 -1
  64. package/dist/kempo/api/auth/session/GET.js.map +1 -1
  65. package/dist/kempo/api/auth/verify-email/POST.js +1 -1
  66. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
  67. package/dist/kempo/api/extensions/DELETE.js +1 -1
  68. package/dist/kempo/api/extensions/DELETE.js.map +1 -1
  69. package/dist/kempo/api/extensions/GET.js +1 -1
  70. package/dist/kempo/api/extensions/GET.js.map +1 -1
  71. package/dist/kempo/api/extensions/POST.js +1 -1
  72. package/dist/kempo/api/extensions/POST.js.map +1 -1
  73. package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
  74. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
  75. package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
  76. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
  77. package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
  78. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
  79. package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
  80. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
  81. package/dist/kempo/api/extensions/available/GET.js +1 -1
  82. package/dist/kempo/api/extensions/available/GET.js.map +1 -1
  83. package/dist/kempo/api/extensions/known/GET.js +1 -1
  84. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  85. package/dist/kempo/api/forgot-password/POST.js +1 -1
  86. package/dist/kempo/api/forgot-password/POST.js.map +1 -1
  87. package/dist/kempo/api/fragments/DELETE.js +1 -1
  88. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  89. package/dist/kempo/api/fragments/GET.js +1 -1
  90. package/dist/kempo/api/fragments/GET.js.map +1 -1
  91. package/dist/kempo/api/fragments/POST.js +1 -1
  92. package/dist/kempo/api/fragments/POST.js.map +1 -1
  93. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  94. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  95. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  96. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  97. package/dist/kempo/api/fragments/file/GET.js +1 -1
  98. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  99. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  100. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  101. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  102. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  103. package/dist/kempo/api/fragments/lock/PUT.js +2 -0
  104. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -0
  105. package/dist/kempo/api/globals/DELETE.js +1 -1
  106. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  107. package/dist/kempo/api/globals/GET.js +1 -1
  108. package/dist/kempo/api/globals/GET.js.map +1 -1
  109. package/dist/kempo/api/globals/POST.js +1 -1
  110. package/dist/kempo/api/globals/POST.js.map +1 -1
  111. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  112. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  113. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  114. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  115. package/dist/kempo/api/globals/entry/GET.js +1 -1
  116. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  117. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  118. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  119. package/dist/kempo/api/globals/lock/PUT.js +2 -0
  120. package/dist/kempo/api/globals/lock/PUT.js.map +1 -0
  121. package/dist/kempo/api/groups/DELETE.js +1 -1
  122. package/dist/kempo/api/groups/DELETE.js.map +1 -1
  123. package/dist/kempo/api/groups/GET.js +1 -1
  124. package/dist/kempo/api/groups/GET.js.map +1 -1
  125. package/dist/kempo/api/groups/PATCH.js +1 -1
  126. package/dist/kempo/api/groups/PATCH.js.map +1 -1
  127. package/dist/kempo/api/groups/POST.js +1 -1
  128. package/dist/kempo/api/groups/POST.js.map +1 -1
  129. package/dist/kempo/api/groups/[name]/GET.js +1 -1
  130. package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
  131. package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
  132. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
  133. package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
  134. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
  135. package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
  136. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
  137. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
  138. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
  139. package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
  140. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
  141. package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
  142. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
  143. package/dist/kempo/api/pages/DELETE.js +1 -1
  144. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  145. package/dist/kempo/api/pages/GET.js +1 -1
  146. package/dist/kempo/api/pages/GET.js.map +1 -1
  147. package/dist/kempo/api/pages/POST.js +1 -1
  148. package/dist/kempo/api/pages/POST.js.map +1 -1
  149. package/dist/kempo/api/pages/directories/GET.js +1 -1
  150. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  151. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  152. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  153. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  154. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  155. package/dist/kempo/api/pages/file/GET.js +1 -1
  156. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  157. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  158. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  159. package/dist/kempo/api/pages/file/PUT.js +1 -1
  160. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  161. package/dist/kempo/api/pages/lock/PUT.js +2 -0
  162. package/dist/kempo/api/pages/lock/PUT.js.map +1 -0
  163. package/dist/kempo/api/pages/search/GET.js +2 -0
  164. package/dist/kempo/api/pages/search/GET.js.map +1 -0
  165. package/dist/kempo/api/pages/templates/GET.js +1 -1
  166. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  167. package/dist/kempo/api/permissions/DELETE.js +1 -1
  168. package/dist/kempo/api/permissions/DELETE.js.map +1 -1
  169. package/dist/kempo/api/permissions/GET.js +1 -1
  170. package/dist/kempo/api/permissions/GET.js.map +1 -1
  171. package/dist/kempo/api/permissions/PATCH.js +1 -1
  172. package/dist/kempo/api/permissions/PATCH.js.map +1 -1
  173. package/dist/kempo/api/permissions/POST.js +1 -1
  174. package/dist/kempo/api/permissions/POST.js.map +1 -1
  175. package/dist/kempo/api/settings/[owner]/GET.js +1 -1
  176. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
  177. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
  178. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
  179. package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
  180. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
  181. package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
  182. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
  183. package/dist/kempo/api/settings/public/GET.js +1 -1
  184. package/dist/kempo/api/settings/public/GET.js.map +1 -1
  185. package/dist/kempo/api/templates/DELETE.js +1 -1
  186. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  187. package/dist/kempo/api/templates/GET.js +1 -1
  188. package/dist/kempo/api/templates/GET.js.map +1 -1
  189. package/dist/kempo/api/templates/POST.js +1 -1
  190. package/dist/kempo/api/templates/POST.js.map +1 -1
  191. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  192. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  193. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  194. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  195. package/dist/kempo/api/templates/file/GET.js +1 -1
  196. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  197. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  198. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  199. package/dist/kempo/api/templates/file/PUT.js +1 -1
  200. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  201. package/dist/kempo/api/templates/lock/PUT.js +2 -0
  202. package/dist/kempo/api/templates/lock/PUT.js.map +1 -0
  203. package/dist/kempo/api/user/DELETE.js +1 -1
  204. package/dist/kempo/api/user/DELETE.js.map +1 -1
  205. package/dist/kempo/api/user/GET.js +1 -1
  206. package/dist/kempo/api/user/GET.js.map +1 -1
  207. package/dist/kempo/api/user/PATCH.js +1 -1
  208. package/dist/kempo/api/user/PATCH.js.map +1 -1
  209. package/dist/kempo/api/user/[userid]/GET.js +1 -1
  210. package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
  211. package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
  212. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
  213. package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
  214. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
  215. package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
  216. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
  217. package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
  218. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
  219. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
  220. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
  221. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
  222. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
  223. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
  224. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
  225. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
  226. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
  227. package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
  228. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
  229. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
  230. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
  231. package/dist/kempo/api/user/create/POST.js +1 -1
  232. package/dist/kempo/api/user/create/POST.js.map +1 -1
  233. package/dist/kempo/api/user/search/GET.js +1 -1
  234. package/dist/kempo/api/user/search/GET.js.map +1 -1
  235. package/dist/kempo/components/LogoutBtn.js +1 -1
  236. package/dist/kempo/components/LogoutBtn.js.map +1 -1
  237. package/dist/kempo/components/Menu.js +9 -9
  238. package/dist/kempo/components/Menu.js.map +1 -1
  239. package/dist/kempo/components/Permission.js +1 -1
  240. package/dist/kempo/components/Permission.js.map +1 -1
  241. package/dist/kempo/components/Role.js +1 -1
  242. package/dist/kempo/components/Role.js.map +1 -1
  243. package/dist/kempo/components/UserCreatedAt.js +1 -1
  244. package/dist/kempo/components/UserCreatedAt.js.map +1 -1
  245. package/dist/kempo/components/UserEmail.js +1 -1
  246. package/dist/kempo/components/UserEmail.js.map +1 -1
  247. package/dist/kempo/components/UserEmailVerified.js +1 -1
  248. package/dist/kempo/components/UserEmailVerified.js.map +1 -1
  249. package/dist/kempo/components/UserName.js +1 -1
  250. package/dist/kempo/components/UserName.js.map +1 -1
  251. package/dist/kempo/fetch.js +1 -1
  252. package/dist/kempo/fetch.js.map +1 -1
  253. package/dist/kempo/sdk.js +1 -1
  254. package/dist/kempo/sdk.js.map +1 -1
  255. package/middleware/kempo.js +36 -6
  256. package/package.json +3 -3
  257. package/server/sdk.js +5 -0
  258. package/server/utils/extensions/installExtension.js +19 -13
  259. package/server/utils/extensions/uninstallExtension.js +6 -10
  260. package/server/utils/fragments/createFragment.js +5 -1
  261. package/server/utils/fragments/deleteFragment.js +2 -3
  262. package/server/utils/fragments/disableFragment.js +0 -3
  263. package/server/utils/fragments/getFragmentMetadata.js +32 -0
  264. package/server/utils/fragments/moveFragment.js +0 -3
  265. package/server/utils/fragments/setFragmentLocked.js +48 -0
  266. package/server/utils/fragments/updateFragment.js +3 -3
  267. package/server/utils/fs/isResourceLocked.js +22 -0
  268. package/server/utils/global-content/createGlobalContent.js +3 -0
  269. package/server/utils/global-content/deleteGlobalContent.js +3 -3
  270. package/server/utils/global-content/getGlobalContentMetadata.js +37 -0
  271. package/server/utils/global-content/setGlobalContentLocked.js +44 -0
  272. package/server/utils/global-content/updateGlobalContent.js +3 -4
  273. package/server/utils/pages/createPage.js +19 -7
  274. package/server/utils/pages/deletePage.js +4 -13
  275. package/server/utils/pages/disablePage.js +0 -3
  276. package/server/utils/pages/getPage.js +7 -0
  277. package/server/utils/pages/getPageMetadata.js +32 -0
  278. package/server/utils/pages/listPages.js +11 -3
  279. package/server/utils/pages/movePage.js +0 -3
  280. package/server/utils/pages/searchByMetadata.js +61 -0
  281. package/server/utils/pages/setPageLocked.js +48 -0
  282. package/server/utils/pages/updatePage.js +19 -3
  283. package/server/utils/templates/createTemplate.js +5 -1
  284. package/server/utils/templates/deleteTemplate.js +2 -3
  285. package/server/utils/templates/disableTemplate.js +0 -3
  286. package/server/utils/templates/getTemplateMetadata.js +32 -0
  287. package/server/utils/templates/moveTemplate.js +0 -3
  288. package/server/utils/templates/setTemplateLocked.js +48 -0
  289. package/server/utils/templates/updateTemplate.js +3 -3
  290. package/dist/admin/accounts/groups/[name]/index.html +0 -518
  291. package/dist/admin/accounts/groups/index.html +0 -378
  292. package/dist/admin/accounts/permissions/index.html +0 -397
  293. package/dist/admin/accounts/users/[id]/index.html +0 -541
  294. package/dist/admin/accounts/users/index.html +0 -396
  295. package/dist/admin/content/fragments/edit/index.html +0 -132
  296. package/dist/admin/content/fragments/index.html +0 -375
  297. package/dist/admin/content/globals/edit/index.html +0 -132
  298. package/dist/admin/content/globals/index.html +0 -358
  299. package/dist/admin/content/pages/edit/index.html +0 -132
  300. package/dist/admin/content/pages/index.html +0 -509
  301. package/dist/admin/content/templates/edit/index.html +0 -132
  302. package/dist/admin/content/templates/index.html +0 -429
  303. package/dist/admin/extensions/index.html +0 -222
  304. package/dist/admin/index.html +0 -130
  305. package/dist/admin/settings/[owner]/[name]/index.html +0 -449
  306. package/dist/admin/settings/index.html +0 -410
@@ -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":[]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +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';\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":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updatePermission from"../../../../server/utils/permissions/updatePermission.js";export default async(s,r)=>{const e=s.cookies.session_token,{name:i,description:o}=s.body;if(!i)return r.status(400).json({error:"Permission name is required"});if(i.startsWith("system:"))return r.status(403).json({error:"System permissions cannot be modified"});const[t,n]=await currentUserHasPermission(e,"system:permissions:manage");if(t)return r.status(t.code).json({error:t.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const m={};void 0!==o&&(m.description=o);const[a,u]=await updatePermission(i,m);if(a)return r.status(a.code).json({error:a.msg});r.json(u)};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/updatePermission.js";export default async(e,i)=>{const o=e.cookies.session_token,{name:t,description:n}=e.body;if(!t)return i.status(400).json({error:"Permission name is required"});if(t.startsWith("system:"))return i.status(403).json({error:"System permissions cannot be modified"});const[m,a]=await s(o,"system:permissions:manage");if(m)return i.status(m.code).json({error:m.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const u={};void 0!==n&&(u.description=n);const[c,d]=await r(t,u);if(c)return i.status(c.code).json({error:c.msg});i.json(d)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.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){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\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 updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\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,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,yBAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,iBAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.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){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\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 updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\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,MAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,EAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,EAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import createPermission from"../../../../server/utils/permissions/createPermission.js";export default async(r,s)=>{const e=r.cookies.session_token,{permissions:o}=r.body;if(!o||!Array.isArray(o)||0===o.length)return s.status(400).json({error:"Permissions array is required"});for(const r of o){if(!r.resource||r.resource.includes(":"))return s.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return s.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[n,t]=await currentUserHasPermission(e,"system:permissions:manage");if(n)return s.status(n.code).json({error:n.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const i=[],a=[];for(const r of o){const[s,e]=await createPermission({resource:r.resource,action:r.action,description:r.description,owner:"custom"});s?a.push({resource:r.resource,action:r.action,error:s.msg}):i.push(e)}if(a.length>0)return s.status(207).json({created:i,errors:a});s.json({created:i})};
1
+ import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/permissions/createPermission.js";export default async(e,o)=>{const n=e.cookies.session_token,{permissions:t}=e.body;if(!t||!Array.isArray(t)||0===t.length)return o.status(400).json({error:"Permissions array is required"});for(const r of t){if(!r.resource||r.resource.includes(":"))return o.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return o.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[i,a]=await r(n,"system:permissions:manage");if(i)return o.status(i.code).json({error:i.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const c=[],u=[];for(const r of t){const[e,o]=await s({resource:r.resource,action:r.action,description:r.description,owner:"custom"});e?u.push({resource:r.resource,action:r.action,error:e.msg}):c.push(o)}if(u.length>0)return o.status(207).json({created:c,errors:u});o.json({created:c})};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\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 created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.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({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,yBAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,iBAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\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 created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.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({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,EAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,EAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listSettings from"../../../../../server/utils/settings/listSettings.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,i]=await currentUserHasPermission(e,"system:settings:read");if(t)return r.status(t.code).json({error:t.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{owner:n}=s.params,o=parseInt(s.query.limit)||50,a=parseInt(s.query.offset)||0,[m,u]=await listSettings({owner:n,limit:o,offset:a});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/settings/listSettings.js";export default async(e,t)=>{const i=e.cookies.session_token,[o,n]=await s(i,"system:settings:read");if(o)return t.status(o.code).json({error:o.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{owner:a}=e.params,m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,[f,c]=await r({owner:a,limit:m,offset:u});if(f)return t.status(f.code).json({error:f.msg});t.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\GET.js.map