kempo 4.2.16 → 4.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/bin/cli.js +21 -4
  2. package/dist/admin/components/AddGroupControl.js +2 -2
  3. package/dist/admin/components/AddGroupControl.js.map +1 -1
  4. package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
  5. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
  6. package/dist/admin/components/FragmentEditor.js +15 -15
  7. package/dist/admin/components/FragmentEditor.js.map +1 -1
  8. package/dist/admin/components/GlobalContentEditor.js +12 -12
  9. package/dist/admin/components/GlobalContentEditor.js.map +1 -1
  10. package/dist/admin/components/GroupDeleteSelected.js +2 -2
  11. package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
  12. package/dist/admin/components/GroupRemoveRecord.js +2 -2
  13. package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
  14. package/dist/admin/components/Monaco.js +1 -1
  15. package/dist/admin/components/Monaco.js.map +1 -1
  16. package/dist/admin/components/PageEditor.js +42 -28
  17. package/dist/admin/components/PageEditor.js.map +1 -1
  18. package/dist/admin/components/TableRowDelete.js +2 -2
  19. package/dist/admin/components/TableRowDelete.js.map +1 -1
  20. package/dist/admin/components/TableRowLink.js +2 -2
  21. package/dist/admin/components/TableRowLink.js.map +1 -1
  22. package/dist/admin/components/TemplateEditor.js +18 -18
  23. package/dist/admin/components/TemplateEditor.js.map +1 -1
  24. package/dist/admin/components/ValueEditor.js +17 -17
  25. package/dist/admin/components/ValueEditor.js.map +1 -1
  26. package/dist/admin/components/tableControls/AddMember.js +2 -2
  27. package/dist/admin/components/tableControls/AddMember.js.map +1 -1
  28. package/dist/admin/components/tableControls/AddPermission.js +2 -2
  29. package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
  30. package/dist/admin/components/tableControls/InstallExtension.js +2 -2
  31. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  32. package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
  33. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  34. package/dist/admin/extensions/index.page.html +49 -15
  35. package/dist/admin/icons/open_in_new.svg +1 -0
  36. package/dist/admin/nav.fragment.html +1 -1
  37. package/dist/kempo/api/admin-globals/DELETE.js +1 -1
  38. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
  39. package/dist/kempo/api/admin-globals/GET.js +1 -1
  40. package/dist/kempo/api/admin-globals/GET.js.map +1 -1
  41. package/dist/kempo/api/admin-globals/POST.js +1 -1
  42. package/dist/kempo/api/admin-globals/POST.js.map +1 -1
  43. package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
  44. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
  45. package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
  46. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
  47. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
  48. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
  49. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
  50. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
  51. package/dist/kempo/api/auth/change-password/POST.js +1 -1
  52. package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
  53. package/dist/kempo/api/auth/login/email/POST.js +1 -1
  54. package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
  55. package/dist/kempo/api/auth/logout/POST.js +1 -1
  56. package/dist/kempo/api/auth/logout/POST.js.map +1 -1
  57. package/dist/kempo/api/auth/register/email/POST.js +1 -1
  58. package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
  59. package/dist/kempo/api/auth/reset-password/POST.js +1 -1
  60. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
  61. package/dist/kempo/api/auth/session/GET.js +1 -1
  62. package/dist/kempo/api/auth/session/GET.js.map +1 -1
  63. package/dist/kempo/api/auth/verify-email/POST.js +1 -1
  64. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
  65. package/dist/kempo/api/extensions/DELETE.js +1 -1
  66. package/dist/kempo/api/extensions/DELETE.js.map +1 -1
  67. package/dist/kempo/api/extensions/GET.js +1 -1
  68. package/dist/kempo/api/extensions/GET.js.map +1 -1
  69. package/dist/kempo/api/extensions/POST.js +1 -1
  70. package/dist/kempo/api/extensions/POST.js.map +1 -1
  71. package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
  72. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
  73. package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
  74. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
  75. package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
  76. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
  77. package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
  78. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
  79. package/dist/kempo/api/extensions/available/GET.js +1 -1
  80. package/dist/kempo/api/extensions/available/GET.js.map +1 -1
  81. package/dist/kempo/api/extensions/known/GET.js +1 -1
  82. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  83. package/dist/kempo/api/forgot-password/POST.js +1 -1
  84. package/dist/kempo/api/forgot-password/POST.js.map +1 -1
  85. package/dist/kempo/api/fragments/DELETE.js +1 -1
  86. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  87. package/dist/kempo/api/fragments/GET.js +1 -1
  88. package/dist/kempo/api/fragments/GET.js.map +1 -1
  89. package/dist/kempo/api/fragments/POST.js +1 -1
  90. package/dist/kempo/api/fragments/POST.js.map +1 -1
  91. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  92. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  93. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  94. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  95. package/dist/kempo/api/fragments/file/GET.js +1 -1
  96. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  97. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  98. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  99. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  100. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  101. package/dist/kempo/api/fragments/lock/PUT.js +2 -2
  102. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
  103. package/dist/kempo/api/globals/DELETE.js +1 -1
  104. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  105. package/dist/kempo/api/globals/GET.js +1 -1
  106. package/dist/kempo/api/globals/GET.js.map +1 -1
  107. package/dist/kempo/api/globals/POST.js +1 -1
  108. package/dist/kempo/api/globals/POST.js.map +1 -1
  109. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  110. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  111. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  112. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  113. package/dist/kempo/api/globals/entry/GET.js +1 -1
  114. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  115. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  116. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  117. package/dist/kempo/api/globals/lock/PUT.js +2 -2
  118. package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
  119. package/dist/kempo/api/groups/DELETE.js +1 -1
  120. package/dist/kempo/api/groups/DELETE.js.map +1 -1
  121. package/dist/kempo/api/groups/GET.js +1 -1
  122. package/dist/kempo/api/groups/GET.js.map +1 -1
  123. package/dist/kempo/api/groups/PATCH.js +1 -1
  124. package/dist/kempo/api/groups/PATCH.js.map +1 -1
  125. package/dist/kempo/api/groups/POST.js +1 -1
  126. package/dist/kempo/api/groups/POST.js.map +1 -1
  127. package/dist/kempo/api/groups/[name]/GET.js +1 -1
  128. package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
  129. package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
  130. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
  131. package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
  132. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
  133. package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
  134. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
  135. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
  136. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
  137. package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
  138. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
  139. package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
  140. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
  141. package/dist/kempo/api/pages/DELETE.js +1 -1
  142. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  143. package/dist/kempo/api/pages/GET.js +1 -1
  144. package/dist/kempo/api/pages/GET.js.map +1 -1
  145. package/dist/kempo/api/pages/POST.js +1 -1
  146. package/dist/kempo/api/pages/POST.js.map +1 -1
  147. package/dist/kempo/api/pages/directories/GET.js +1 -1
  148. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  149. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  150. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  151. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  152. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  153. package/dist/kempo/api/pages/file/GET.js +1 -1
  154. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  155. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  156. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  157. package/dist/kempo/api/pages/file/PUT.js +1 -1
  158. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  159. package/dist/kempo/api/pages/lock/PUT.js +2 -2
  160. package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
  161. package/dist/kempo/api/pages/search/GET.js +2 -2
  162. package/dist/kempo/api/pages/search/GET.js.map +1 -1
  163. package/dist/kempo/api/pages/templates/GET.js +1 -1
  164. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  165. package/dist/kempo/api/permissions/DELETE.js +1 -1
  166. package/dist/kempo/api/permissions/DELETE.js.map +1 -1
  167. package/dist/kempo/api/permissions/GET.js +1 -1
  168. package/dist/kempo/api/permissions/GET.js.map +1 -1
  169. package/dist/kempo/api/permissions/PATCH.js +1 -1
  170. package/dist/kempo/api/permissions/PATCH.js.map +1 -1
  171. package/dist/kempo/api/permissions/POST.js +1 -1
  172. package/dist/kempo/api/permissions/POST.js.map +1 -1
  173. package/dist/kempo/api/settings/[owner]/GET.js +1 -1
  174. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
  175. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
  176. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
  177. package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
  178. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
  179. package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
  180. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
  181. package/dist/kempo/api/settings/public/GET.js +1 -1
  182. package/dist/kempo/api/settings/public/GET.js.map +1 -1
  183. package/dist/kempo/api/templates/DELETE.js +1 -1
  184. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  185. package/dist/kempo/api/templates/GET.js +1 -1
  186. package/dist/kempo/api/templates/GET.js.map +1 -1
  187. package/dist/kempo/api/templates/POST.js +1 -1
  188. package/dist/kempo/api/templates/POST.js.map +1 -1
  189. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  190. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  191. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  192. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  193. package/dist/kempo/api/templates/file/GET.js +1 -1
  194. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  195. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  196. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  197. package/dist/kempo/api/templates/file/PUT.js +1 -1
  198. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  199. package/dist/kempo/api/templates/lock/PUT.js +2 -2
  200. package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
  201. package/dist/kempo/api/user/DELETE.js +1 -1
  202. package/dist/kempo/api/user/DELETE.js.map +1 -1
  203. package/dist/kempo/api/user/GET.js +1 -1
  204. package/dist/kempo/api/user/GET.js.map +1 -1
  205. package/dist/kempo/api/user/PATCH.js +1 -1
  206. package/dist/kempo/api/user/PATCH.js.map +1 -1
  207. package/dist/kempo/api/user/[userid]/GET.js +1 -1
  208. package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
  209. package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
  210. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
  211. package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
  212. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
  213. package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
  214. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
  215. package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
  216. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
  217. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
  218. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
  219. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
  220. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
  221. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
  222. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
  223. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
  224. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
  225. package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
  226. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
  227. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
  228. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
  229. package/dist/kempo/api/user/create/POST.js +1 -1
  230. package/dist/kempo/api/user/create/POST.js.map +1 -1
  231. package/dist/kempo/api/user/search/GET.js +1 -1
  232. package/dist/kempo/api/user/search/GET.js.map +1 -1
  233. package/dist/kempo/components/LogoutBtn.js +1 -1
  234. package/dist/kempo/components/LogoutBtn.js.map +1 -1
  235. package/dist/kempo/components/Menu.js +9 -9
  236. package/dist/kempo/components/Menu.js.map +1 -1
  237. package/dist/kempo/components/Permission.js +1 -1
  238. package/dist/kempo/components/Permission.js.map +1 -1
  239. package/dist/kempo/components/Role.js +1 -1
  240. package/dist/kempo/components/Role.js.map +1 -1
  241. package/dist/kempo/components/UserCreatedAt.js +1 -1
  242. package/dist/kempo/components/UserCreatedAt.js.map +1 -1
  243. package/dist/kempo/components/UserEmail.js +1 -1
  244. package/dist/kempo/components/UserEmail.js.map +1 -1
  245. package/dist/kempo/components/UserEmailVerified.js +1 -1
  246. package/dist/kempo/components/UserEmailVerified.js.map +1 -1
  247. package/dist/kempo/components/UserName.js +1 -1
  248. package/dist/kempo/components/UserName.js.map +1 -1
  249. package/dist/kempo/fetch.js +1 -1
  250. package/dist/kempo/fetch.js.map +1 -1
  251. package/dist/kempo/sdk.js +1 -1
  252. package/dist/kempo/sdk.js.map +1 -1
  253. package/middleware/kempo.js +36 -6
  254. package/package.json +2 -2
  255. package/server/utils/extensions/installExtension.js +19 -13
  256. package/server/utils/extensions/uninstallExtension.js +6 -10
  257. package/server/utils/pages/deletePage.js +2 -10
  258. package/dist/admin/accounts/groups/[name]/index.html +0 -518
  259. package/dist/admin/accounts/groups/index.html +0 -378
  260. package/dist/admin/accounts/permissions/index.html +0 -397
  261. package/dist/admin/accounts/users/[id]/index.html +0 -541
  262. package/dist/admin/accounts/users/index.html +0 -396
  263. package/dist/admin/content/fragments/edit/index.html +0 -132
  264. package/dist/admin/content/fragments/index.html +0 -375
  265. package/dist/admin/content/globals/edit/index.html +0 -132
  266. package/dist/admin/content/globals/index.html +0 -358
  267. package/dist/admin/content/pages/edit/index.html +0 -132
  268. package/dist/admin/content/pages/index.html +0 -509
  269. package/dist/admin/content/templates/edit/index.html +0 -132
  270. package/dist/admin/content/templates/index.html +0 -429
  271. package/dist/admin/extensions/index.html +0 -222
  272. package/dist/admin/index.html +0 -130
  273. package/dist/admin/settings/[owner]/[name]/index.html +0 -449
  274. package/dist/admin/settings/index.html +0 -410
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deleteFragment from"../../../../server/utils/fragments/deleteFragment.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:fragments:delete");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{files:i}=e.body||{};if(!i?.length)return r.status(400).json({error:"No files specified"});const[n,a]=await deleteFragment({rootDir:rootDir,files:i});if(n)return r.status(n.code).json({error:n.msg});r.json(a)};
1
+ import{resolve as r}from"path";import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/fragments/getFragmentMetadata.js";import t from"../../../../server/utils/fragments/deleteFragment.js";const o=r(import.meta.dirname,"../../../../app-public");export default async(r,i)=>{const n=r.cookies.session_token,[a,f]=await e(n,"system:fragments:delete");if(a)return i.status(a.code).json({error:a.msg});if(!f)return i.status(403).json({error:"Insufficient permissions"});const{files:m}=r.body||{};if(!m?.length)return i.status(400).json({error:"No files specified"});for(const r of m){const[e,t]=await s({rootDir:o,file:r});if(!e&&t.locked)return i.status(403).json({error:`Cannot delete locked fragment: ${r}`})}const[u,c]=await t({rootDir:o,files:m});if(u)return i.status(u.code).json({error:u.msg});i.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\DELETE.js","names":["resolve","currentUserHasPermission","deleteFragment","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 deleteFragment from '../../../../server/utils/fragments/deleteFragment.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:fragments: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 deleteFragment({ 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,mBAAoB,uDAE3B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,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,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,MAAOA,EAAOK,SAAgBnB,eAAe,CAAEC,gBAASe,UAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\DELETE.js","names":["resolve","currentUserHasPermission","getFragmentMetadata","deleteFragment","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","file","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport deleteFragment from '../../../../server/utils/fragments/deleteFragment.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:fragments: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 getFragmentMetadata({ rootDir, file });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked fragment: ${file}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteFragment({ 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,MAAyB,mEACzBC,MAAoB,uDAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,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,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,EAAoB,CAAEE,UAASkB,SACnE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAAkCK,KAE9E,CAEA,MAAOL,EAAOS,SAAgBvB,EAAe,CAAEC,UAASe,UAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import listFragments from"../../../../server/utils/fragments/listFragments.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:fragments: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 listFragments({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 t from"../../../../server/utils/fragments/listFragments.js";const e=s(import.meta.dirname,"../../../../app-public");export default async(s,o)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:fragments:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[m,u]=await t({rootDir:e});if(m)return o.status(m.code).json({error:m.msg});o.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\GET.js","names":["resolve","currentUserHasPermission","listFragments","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 listFragments from '../../../../server/utils/fragments/listFragments.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:fragments: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 listFragments({ 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,kBAAmB,sDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,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\\fragments\\GET.js","names":["resolve","currentUserHasPermission","listFragments","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 listFragments from '../../../../server/utils/fragments/listFragments.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:fragments: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 listFragments({ 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,MAAmB,sDAE1B,MAAMC,EAAUH,cAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,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{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getSession from"../../../../server/utils/auth/getSession.js";import createFragment from"../../../../server/utils/fragments/createFragment.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(r,e)=>{const s=r.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:fragments:create");if(t)return e.status(t.code).json({error:t.msg});if(!o)return e.status(403).json({error:"Insufficient permissions"});const{directory:i,name:n}=r.body;if(!n)return e.status(400).json({error:"Fragment name is required"});const[,a]=await getSession({token:s}),m=a?.user?.name||"",[u,c]=await createFragment({rootDir:rootDir,directory:i,name:n,author:m});if(u)return e.status(u.code).json({error:u.msg});e.status(201).json(c)};
1
+ import{resolve as r}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/auth/getSession.js";import t from"../../../../server/utils/fragments/createFragment.js";const o=r(import.meta.dirname,"../../../../app-public");export default async(r,i)=>{const n=r.cookies.session_token,[a,m]=await s(n,"system:fragments:create");if(a)return i.status(a.code).json({error:a.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{directory:u,name:c}=r.body;if(!c)return i.status(400).json({error:"Fragment name is required"});const[,f]=await e({token:n}),p=f?.user?.name||"",[d,j]=await t({rootDir:o,directory:u,name:c,author:p});if(d)return i.status(d.code).json({error:d.msg});i.status(201).json(j)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\POST.js","names":["resolve","currentUserHasPermission","getSession","createFragment","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","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 createFragment from '../../../../server/utils/fragments/createFragment.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:fragments: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 } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Fragment 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 createFragment({ rootDir, directory, name, 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,mBAAoB,uDAE3B,MAAMC,QAAUJ,oBAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,yBAAyBQ,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,UAAEA,EAASC,KAAEA,GAASb,EAAQc,KAEpC,IAAID,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEK,SAAqBpB,WAAW,CAAEO,UACrCc,EAASD,GAAaE,MAAMJ,MAAQ,IAEnCH,EAAOQ,SAActB,eAAe,CAAEC,gBAASe,YAAWC,OAAMG,WAEvE,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\POST.js","names":["resolve","currentUserHasPermission","getSession","createFragment","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","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 createFragment from '../../../../server/utils/fragments/createFragment.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:fragments: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 } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Fragment 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 createFragment({ rootDir, directory, name, 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":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAoB,uDAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,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,UAAEA,EAASC,KAAEA,GAASb,EAAQc,KAEpC,IAAID,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEK,SAAqBpB,EAAW,CAAEO,UACrCc,EAASD,GAAaE,MAAMJ,MAAQ,IAEnCH,EAAOQ,SAActB,EAAe,CAAEC,UAASe,YAAWC,OAAMG,WAEvE,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import disableFragment from"../../../../../server/utils/fragments/disableFragment.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:update");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.body||{};if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await disableFragment({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 s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/getFragmentMetadata.js";import e from"../../../../../server/utils/fragments/disableFragment.js";const o=r(import.meta.dirname,"../../../../../app-public");export default async(r,i)=>{const a=r.cookies.session_token,[n,m]=await s(a,"system:pages:update");if(n)return i.status(n.code).json({error:n.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{file:u}=r.body||{};if(!u)return i.status(400).json({error:"File path is required"});const[f,p]=await t({rootDir:o,file:u});if(!f&&p.locked)return i.status(403).json({error:"Cannot disable a locked fragment"});const[c,l]=await e({rootDir:o,file:u});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\fragments\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableFragment","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 disableFragment from '../../../../../server/utils/fragments/disableFragment.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 disableFragment({ 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,oBAAqB,2DAE5B,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,gBAAgB,CAAEC,gBAASe,SAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\disable\\PUT.js","names":["resolve","currentUserHasPermission","getFragmentMetadata","disableFragment","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 getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport disableFragment from '../../../../../server/utils/fragments/disableFragment.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 getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'Cannot disable a locked fragment' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableFragment({ 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,MAAyB,sEACzBC,MAAqB,2DAE5B,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,EAAoB,CAAEE,UAASe,SACnE,IAAIE,GAAaC,EAASC,OACzB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qCAG3C,MAAOA,EAAOO,SAAgBrB,EAAgB,CAAEC,UAASe,SAEzD,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 enableFragment from"../../../../../server/utils/fragments/enableFragment.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:update");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.body||{};if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await enableFragment({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/fragments/enableFragment.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:update");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{file:m}=s.body||{};if(!m)return o.status(400).json({error:"File path is required"});const[u,p]=await e({rootDir:t,file:m});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\fragments\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableFragment","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 enableFragment from '../../../../../server/utils/fragments/enableFragment.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 enableFragment({ 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,mBAAoB,0DAE3B,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,eAAe,CAAEC,gBAASe,SAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableFragment","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 enableFragment from '../../../../../server/utils/fragments/enableFragment.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 enableFragment({ 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,MAAoB,0DAE3B,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,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,EAAe,CAAEC,UAASe,SAExD,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 getFragment from"../../../../../server/utils/fragments/getFragment.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:fragments: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 getFragment({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 s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/fragments/getFragment.js";const t=r(import.meta.dirname,"../../../../../app-public");export default async(r,o)=>{const i=r.cookies.session_token,[n,a]=await s(i,"system:fragments:read");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{file:m}=r.query;if(!m)return o.status(400).json({error:"File path is required"});const[u,f]=await e({rootDir:t,file:m});if(u)return o.status(u.code).json({error:u.msg});o.json(f)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\GET.js","names":["resolve","currentUserHasPermission","getFragment","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 getFragment from '../../../../../server/utils/fragments/getFragment.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:fragments: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 getFragment({ 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,gBAAiB,uDAExB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,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,YAAY,CAAEC,gBAASe,SAEnD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\GET.js","names":["resolve","currentUserHasPermission","getFragment","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 getFragment from '../../../../../server/utils/fragments/getFragment.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:fragments: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 getFragment({ 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,MAAiB,uDAExB,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,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,EAAY,CAAEC,UAASe,SAEnD,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 moveFragment from"../../../../../server/utils/fragments/moveFragment.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const s=r.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:update");if(t)return e.status(t.code).json({error:t.msg});if(!o)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,m]=await moveFragment({rootDir:rootDir,file:i,newFile:n});if(a)return e.status(a.code).json({error:a.msg});e.json(m)};
1
+ import{resolve as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/fragments/moveFragment.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[f,p]=await e({rootDir:t,file:u,newFile:m});if(f)return i.status(f.code).json({error:f.msg});i.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PATCH.js","names":["resolve","currentUserHasPermission","moveFragment","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 moveFragment from '../../../../../server/utils/fragments/moveFragment.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 moveFragment({ 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,iBAAkB,wDAEzB,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,aAAa,CAAEC,gBAASe,OAAMC,YAE1D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PATCH.js","names":["resolve","currentUserHasPermission","moveFragment","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 moveFragment from '../../../../../server/utils/fragments/moveFragment.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 moveFragment({ 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,MAAkB,wDAEzB,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,EAAa,CAAEC,UAASe,OAAMC,YAE1D,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 updateFragment from"../../../../../server/utils/fragments/updateFragment.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:fragments:update");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{file:i,name:n,author:a,markup:m}=r.body;if(!i)return s.status(400).json({error:"File path is required"});const[u,p]=await updateFragment({rootDir:rootDir,file:i,name:n,author:a,markup:m});if(u)return s.status(u.code).json({error:u.msg});s.json(p)};
1
+ import{resolve as r}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../../server/utils/fragments/getFragmentMetadata.js";import e from"../../../../../server/utils/fragments/updateFragment.js";const o=r(import.meta.dirname,"../../../../../app-public");export default async(r,i)=>{const a=r.cookies.session_token,[n,m]=await t(a,"system:fragments:update");if(n)return i.status(n.code).json({error:n.msg});if(!m)return i.status(403).json({error:"Insufficient permissions"});const{file:u,name:f,author:p,markup:c}=r.body;if(!u)return i.status(400).json({error:"File path is required"});const[d,l]=await s({rootDir:o,file:u});if(!d&&l.locked)return i.status(403).json({error:"This fragment is locked and cannot be edited"});const[g,j]=await e({rootDir:o,file:u,name:f,author:p,markup:c});if(g)return i.status(g.code).json({error:g.msg});i.json(j)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PUT.js","names":["resolve","currentUserHasPermission","updateFragment","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateFragment from '../../../../../server/utils/fragments/updateFragment.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:fragments: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, author, markup } = 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 updateFragment({ rootDir, file, name, author, markup });\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,mBAAoB,0DAE3B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,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,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,OAAEA,GAAWf,EAAQgB,KAE/C,IAAIJ,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOO,SAAcrB,eAAe,CAAEC,gBAASe,OAAMC,OAAMC,SAAQC,WAE1E,GAAGL,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PUT.js","names":["resolve","currentUserHasPermission","getFragmentMetadata","updateFragment","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport updateFragment from '../../../../../server/utils/fragments/updateFragment.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:fragments: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, author, markup } = 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 getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This fragment is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateFragment({ rootDir, file, name, author, markup });\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,MAAyB,sEACzBC,MAAoB,0DAE3B,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,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,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,OAAEA,GAAWf,EAAQgB,KAE/C,IAAIJ,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOO,EAAWC,SAAkBvB,EAAoB,CAAEE,UAASe,SACnE,IAAIK,GAAaC,EAASC,OACzB,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,iDAG3C,MAAOA,EAAOU,SAAcxB,EAAe,CAAEC,UAASe,OAAMC,OAAMC,SAAQC,WAE1E,GAAGL,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 setFragmentLocked from"../../../../../server/utils/fragments/setFragmentLocked.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:fragments: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,locked:n}=r.body;if(!i)return e.status(400).json({error:"File path is required"});if("boolean"!=typeof n)return e.status(400).json({error:"locked must be a boolean"});const[a,m]=await setFragmentLocked({rootDir:rootDir,file:i,locked:n});if(a)return e.status(a.code).json({error:a.msg});e.json(m)};
2
- //# sourceMappingURL=PUT.js.map
1
+ import{resolve as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/fragments/setFragmentLocked.js";const o=r(import.meta.dirname,"../../../../../app-public");export default async(r,t)=>{const i=r.cookies.session_token,[n,a]=await s(i,"system:fragments:update");if(n)return t.status(n.code).json({error:n.msg});if(!a)return t.status(403).json({error:"Insufficient permissions"});const{file:m,locked:u}=r.body;if(!m)return t.status(400).json({error:"File path is required"});if("boolean"!=typeof u)return t.status(400).json({error:"locked must be a boolean"});const[f,c]=await e({rootDir:o,file:m,locked:u});if(f)return t.status(f.code).json({error:f.msg});t.json(c)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\lock\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/fragments/lock/PUT.js","names":["resolve","currentUserHasPermission","setFragmentLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport setFragmentLocked from '../../../../../server/utils/fragments/setFragmentLocked.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file, locked } = request.body;\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tif(typeof locked !== 'boolean'){\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\n\t}\n\n\tconst [error, data] = await setFragmentLocked({ rootDir, file, locked });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,sBAAuB,6DAE9B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,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,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,kBAAkB,CAAEC,gBAASe,OAAMC,WAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\lock\\PUT.js","names":["resolve","currentUserHasPermission","setFragmentLocked","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 setFragmentLocked from '../../../../../server/utils/fragments/setFragmentLocked.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:fragments: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 setFragmentLocked({ 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,MAAuB,6DAE9B,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,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,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,EAAkB,CAAEC,UAASe,OAAMC,WAE/D,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 deleteGlobalContent from"../../../../server/utils/global-content/deleteGlobalContent.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,e)=>{const r=s.cookies.session_token,[o,t]=await currentUserHasPermission(r,"system:globals:delete");if(o)return e.status(o.code).json({error:o.msg});if(!t)return e.status(403).json({error:"Insufficient permissions"});const{ids:n}=s.body||{};if(!n?.length)return e.status(400).json({error:"No IDs specified"});const[i,a]=await deleteGlobalContent({rootDir:rootDir,ids:n});if(i)return e.status(i.code).json({error:i.msg});e.json(a)};
1
+ import{resolve as t}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/global-content/getGlobalContentMetadata.js";import e from"../../../../server/utils/global-content/deleteGlobalContent.js";const r=t(import.meta.dirname,"../../../../app-public");export default async(t,n)=>{const i=t.cookies.session_token,[a,l]=await o(i,"system:globals:delete");if(a)return n.status(a.code).json({error:a.msg});if(!l)return n.status(403).json({error:"Insufficient permissions"});const{ids:c}=t.body||{};if(!c?.length)return n.status(400).json({error:"No IDs specified"});for(const t of c){const[o,e]=await s({rootDir:r,id:t});if(!o&&e.locked)return n.status(403).json({error:`Cannot delete locked global content: ${e.name}`})}const[m,u]=await e({rootDir:r,ids:c});if(m)return n.status(m.code).json({error:m.msg});n.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\DELETE.js","names":["resolve","currentUserHasPermission","deleteGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","ids","body","length","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteGlobalContent from '../../../../server/utils/global-content/deleteGlobalContent.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:globals: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 { ids } = request.body || {};\r\n\r\n\tif(!ids?.length){\r\n\t\treturn response.status(400).json({ error: 'No IDs specified' });\r\n\t}\r\n\r\n\tconst [error, result] = await deleteGlobalContent({ rootDir, ids });\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,wBAAyB,iEAEhC,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,IAAEA,GAAQZ,EAAQa,MAAQ,CAAC,EAEjC,IAAID,GAAKE,OACR,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,MAAOA,EAAOK,SAAgBnB,oBAAoB,CAAEC,gBAASe,QAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\DELETE.js","names":["resolve","currentUserHasPermission","getGlobalContentMetadata","deleteGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","ids","body","length","id","metaError","metadata","locked","name","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport deleteGlobalContent from '../../../../server/utils/global-content/deleteGlobalContent.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:globals: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 { ids } = request.body || {};\r\n\r\n\tif(!ids?.length){\r\n\t\treturn response.status(400).json({ error: 'No IDs specified' });\r\n\t}\r\n\r\n\tfor(const id of ids){\r\n\t\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked global content: ${metadata.name}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteGlobalContent({ rootDir, ids });\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,MAA8B,6EAC9BC,MAAyB,iEAEhC,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,IAAEA,GAAQZ,EAAQa,MAAQ,CAAC,EAEjC,IAAID,GAAKE,OACR,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAI,MAAMK,KAAMH,EAAI,CACnB,MAAOI,EAAWC,SAAkBtB,EAAyB,CAAEE,UAASkB,OACxE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,wCAAwCO,EAASE,QAE7F,CAEA,MAAOT,EAAOU,SAAgBxB,EAAoB,CAAEC,UAASe,QAE7D,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 listGlobalContent from"../../../../server/utils/global-content/listGlobalContent.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const o=s.cookies.session_token,[t,e]=await currentUserHasPermission(o,"system:globals:read");if(t)return r.status(t.code).json({error:t.msg});if(!e)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listGlobalContent({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 o from"../../../../server/utils/global-content/listGlobalContent.js";const t=s(import.meta.dirname,"../../../../app-public");export default async(s,e)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:globals:read");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const[m,u]=await o({rootDir:t});if(m)return e.status(m.code).json({error:m.msg});e.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\GET.js","names":["resolve","currentUserHasPermission","listGlobalContent","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 listGlobalContent from '../../../../server/utils/global-content/listGlobalContent.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:globals: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 listGlobalContent({ 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,sBAAuB,+DAE9B,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,MAAOA,EAAOE,SAAchB,kBAAkB,CAAEC,kBAEhD,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\GET.js","names":["resolve","currentUserHasPermission","listGlobalContent","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 listGlobalContent from '../../../../server/utils/global-content/listGlobalContent.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:globals: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 listGlobalContent({ 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,MAAuB,+DAE9B,MAAMC,EAAUH,cAAoBI,QAAS,yCAE9BC,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,MAAOA,EAAOE,SAAchB,EAAkB,CAAEC,YAEhD,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 createGlobalContent from"../../../../server/utils/global-content/createGlobalContent.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:globals:create");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{name:i,location:n,priority:a}=r.body;if(!i)return s.status(400).json({error:"Name is required"});if(!n)return s.status(400).json({error:"Location is required"});const[,u]=await getSession({token:e}),m=u?.user?.name||"",[c,l]=await createGlobalContent({rootDir:rootDir,name:i,location:n,priority:a,author:m});if(c)return s.status(c.code).json({error:c.msg});s.status(201).json(l)};
1
+ import{resolve as r}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/auth/getSession.js";import o from"../../../../server/utils/global-content/createGlobalContent.js";const e=r(import.meta.dirname,"../../../../app-public");export default async(r,i)=>{const n=r.cookies.session_token,[a,u]=await s(n,"system:globals:create");if(a)return i.status(a.code).json({error:a.msg});if(!u)return i.status(403).json({error:"Insufficient permissions"});const{name:m,location:c,priority:p}=r.body;if(!m)return i.status(400).json({error:"Name is required"});if(!c)return i.status(400).json({error:"Location is required"});const[,l]=await t({token:n}),f=l?.user?.name||"",[j,d]=await o({rootDir:e,name:m,location:c,priority:p,author:f});if(j)return i.status(j.code).json({error:j.msg});i.status(201).json(d)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\POST.js","names":["resolve","currentUserHasPermission","getSession","createGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","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 createGlobalContent from '../../../../server/utils/global-content/createGlobalContent.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:globals: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 { name, location, priority } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Name is required' });\r\n\t}\r\n\r\n\tif(!location){\r\n\t\treturn response.status(400).json({ error: 'Location 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 createGlobalContent({ rootDir, name, location, priority, 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,wBAAyB,iEAEhC,MAAMC,QAAUJ,oBAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,yBAAyBQ,EAAO,yBAEzE,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,SAAEA,EAAQC,SAAEA,GAAad,EAAQe,KAE7C,IAAIH,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,yBAG3C,MAAO,CAAEM,SAAqBrB,WAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAMN,MAAQ,IAEnCF,EAAOS,SAAcvB,oBAAoB,CAAEC,gBAASe,OAAMC,WAAUC,WAAUG,WAErF,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\POST.js","names":["resolve","currentUserHasPermission","getSession","createGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","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 createGlobalContent from '../../../../server/utils/global-content/createGlobalContent.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:globals: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 { name, location, priority } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Name is required' });\r\n\t}\r\n\r\n\tif(!location){\r\n\t\treturn response.status(400).json({ error: 'Location 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 createGlobalContent({ rootDir, name, location, priority, 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":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAyB,iEAEhC,MAAMC,EAAUJ,cAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,yBAEzE,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,SAAEA,EAAQC,SAAEA,GAAad,EAAQe,KAE7C,IAAIH,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,yBAG3C,MAAO,CAAEM,SAAqBrB,EAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAMN,MAAQ,IAEnCF,EAAOS,SAAcvB,EAAoB,CAAEC,UAASe,OAAMC,WAAUC,WAAUG,WAErF,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import disableGlobalContent from"../../../../../server/utils/global-content/disableGlobalContent.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const o=s.cookies.session_token,[e,t]=await currentUserHasPermission(o,"system:globals:update");if(e)return r.status(e.code).json({error:e.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{id:i}=s.body||{};if(!i)return r.status(400).json({error:"Global content ID is required"});const[n,a]=await disableGlobalContent({rootDir:rootDir,id:i});if(n)return r.status(n.code).json({error:n.msg});r.json(a)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/global-content/disableGlobalContent.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:globals:update");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{id:u}=s.body||{};if(!u)return e.status(400).json({error:"Global content ID is required"});const[m,c]=await o({rootDir:t,id:u});if(m)return e.status(m.code).json({error:m.msg});e.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableGlobalContent from '../../../../../server/utils/global-content/disableGlobalContent.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:globals: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 { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableGlobalContent({ rootDir, id });\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,yBAA0B,qEAEjC,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBlB,qBAAqB,CAAEC,gBAASe,OAE9D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableGlobalContent from '../../../../../server/utils/global-content/disableGlobalContent.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:globals: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 { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableGlobalContent({ rootDir, id });\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,MAA0B,qEAEjC,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBlB,EAAqB,CAAEC,UAASe,OAE9D,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 enableGlobalContent from"../../../../../server/utils/global-content/enableGlobalContent.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:globals:update");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{id:n}=r.body||{};if(!n)return s.status(400).json({error:"Global content ID is required"});const[i,a]=await enableGlobalContent({rootDir:rootDir,id:n});if(i)return s.status(i.code).json({error:i.msg});s.json(a)};
1
+ import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/global-content/enableGlobalContent.js";const t=s(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const n=s.cookies.session_token,[i,a]=await r(n,"system:globals:update");if(i)return e.status(i.code).json({error:i.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{id:u}=s.body||{};if(!u)return e.status(400).json({error:"Global content ID is required"});const[m,c]=await o({rootDir:t,id:u});if(m)return e.status(m.code).json({error:m.msg});e.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableGlobalContent from '../../../../../server/utils/global-content/enableGlobalContent.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:globals: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 { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableGlobalContent({ rootDir, id });\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,wBAAyB,oEAEhC,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBlB,oBAAoB,CAAEC,gBAASe,OAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableGlobalContent from '../../../../../server/utils/global-content/enableGlobalContent.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:globals: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 { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableGlobalContent({ rootDir, id });\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,MAAyB,oEAEhC,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBlB,EAAoB,CAAEC,UAASe,OAE7D,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 getGlobalContent from"../../../../../server/utils/global-content/getGlobalContent.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const o=r.cookies.session_token,[e,t]=await currentUserHasPermission(o,"system:globals:read");if(e)return s.status(e.code).json({error:e.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{id:n}=r.query;if(!n)return s.status(400).json({error:"Global content ID is required"});const[i,a]=await getGlobalContent({rootDir:rootDir,id:n});if(i)return s.status(i.code).json({error:i.msg});s.json(a)};
1
+ import{resolve as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/global-content/getGlobalContent.js";const o=r(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const i=r.cookies.session_token,[n,a]=await s(i,"system:globals:read");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{id:u}=r.query;if(!u)return e.status(400).json({error:"Global content ID is required"});const[m,c]=await t({rootDir:o,id:u});if(m)return e.status(m.code).json({error:m.msg});e.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\entry\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\entry\\GET.js","names":["resolve","currentUserHasPermission","getGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContent from '../../../../../server/utils/global-content/getGlobalContent.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:globals: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 { id } = request.query;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getGlobalContent({ rootDir, id });\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,qBAAsB,iEAE7B,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,GAAEA,GAAOZ,EAAQa,MAEvB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAclB,iBAAiB,CAAEC,gBAASe,OAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\entry\\GET.js","names":["resolve","currentUserHasPermission","getGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContent from '../../../../../server/utils/global-content/getGlobalContent.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:globals: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 { id } = request.query;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getGlobalContent({ rootDir, id });\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,MAAsB,iEAE7B,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,GAAEA,GAAOZ,EAAQa,MAEvB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAclB,EAAiB,CAAEC,UAASe,OAExD,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 updateGlobalContent from"../../../../../server/utils/global-content/updateGlobalContent.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,o)=>{const s=r.cookies.session_token,[t,e]=await currentUserHasPermission(s,"system:globals:update");if(t)return o.status(t.code).json({error:t.msg});if(!e)return o.status(403).json({error:"Insufficient permissions"});const{id:i,name:n,location:a,priority:u,markup:m}=r.body;if(!i)return o.status(400).json({error:"Global content ID is required"});const[l,p]=await updateGlobalContent({rootDir:rootDir,id:i,name:n,location:a,priority:u,markup:m});if(l)return o.status(l.code).json({error:l.msg});o.json(p)};
1
+ import{resolve as t}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/global-content/getGlobalContentMetadata.js";import s from"../../../../../server/utils/global-content/updateGlobalContent.js";const e=t(import.meta.dirname,"../../../../../app-public");export default async(t,n)=>{const i=t.cookies.session_token,[a,l]=await o(i,"system:globals:update");if(a)return n.status(a.code).json({error:a.msg});if(!l)return n.status(403).json({error:"Insufficient permissions"});const{id:u,name:c,location:m,priority:p,markup:d}=t.body;if(!u)return n.status(400).json({error:"Global content ID is required"});const[f,b]=await r({rootDir:e,id:u});if(!f&&b.locked)return n.status(403).json({error:"This global content is locked and cannot be edited"});const[j,g]=await s({rootDir:e,id:u,name:c,location:m,priority:p,markup:d});if(j)return n.status(j.code).json({error:j.msg});n.json(g)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\entry\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\entry\\PUT.js","names":["resolve","currentUserHasPermission","updateGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","name","location","priority","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateGlobalContent from '../../../../../server/utils/global-content/updateGlobalContent.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:globals: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 { id, name, location, priority, markup } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateGlobalContent({ rootDir, id, name, location, priority, markup });\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,wBAAyB,oEAEhC,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,OAAEA,GAAWhB,EAAQiB,KAEzD,IAAIL,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOQ,SAActB,oBAAoB,CAAEC,gBAASe,KAAIC,OAAMC,WAAUC,WAAUC,WAEzF,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\entry\\PUT.js","names":["resolve","currentUserHasPermission","getGlobalContentMetadata","updateGlobalContent","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","name","location","priority","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport updateGlobalContent from '../../../../../server/utils/global-content/updateGlobalContent.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:globals: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 { id, name, location, priority, markup } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This global content is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateGlobalContent({ rootDir, id, name, location, priority, markup });\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,MAA8B,gFAC9BC,MAAyB,oEAEhC,MAAMC,EAAUJ,cAAoBK,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,EAAyBQ,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,OAAEA,GAAWhB,EAAQiB,KAEzD,IAAIL,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOQ,EAAWC,SAAkBxB,EAAyB,CAAEE,UAASe,OACxE,IAAIM,GAAaC,EAASC,OACzB,OAAOnB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uDAG3C,MAAOA,EAAOW,SAAczB,EAAoB,CAAEC,UAASe,KAAIC,OAAMC,WAAUC,WAAUC,WAEzF,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKY","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import setGlobalContentLocked from"../../../../../server/utils/global-content/setGlobalContentLocked.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(o,r)=>{const s=o.cookies.session_token,[e,t]=await currentUserHasPermission(s,"system:globals:update");if(e)return r.status(e.code).json({error:e.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{id:n,locked:i}=o.body;if(!n)return r.status(400).json({error:"Global content ID is required"});if("boolean"!=typeof i)return r.status(400).json({error:"locked must be a boolean"});const[a,l]=await setGlobalContentLocked({rootDir:rootDir,id:n,locked:i});if(a)return r.status(a.code).json({error:a.msg});r.json(l)};
2
- //# sourceMappingURL=PUT.js.map
1
+ import{resolve as o}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/global-content/setGlobalContentLocked.js";const t=o(import.meta.dirname,"../../../../../app-public");export default async(o,e)=>{const n=o.cookies.session_token,[i,a]=await s(n,"system:globals:update");if(i)return e.status(i.code).json({error:i.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{id:u,locked:c}=o.body;if(!u)return e.status(400).json({error:"Global content ID is required"});if("boolean"!=typeof c)return e.status(400).json({error:"locked must be a boolean"});const[l,m]=await r({rootDir:t,id:u,locked:c});if(l)return e.status(l.code).json({error:l.msg});e.json(m)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\lock\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/globals/lock/PUT.js","names":["resolve","currentUserHasPermission","setGlobalContentLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport setGlobalContentLocked from '../../../../../server/utils/global-content/setGlobalContentLocked.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { id, locked } = request.body;\n\n\tif(!id){\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\n\t}\n\n\tif(typeof locked !== 'boolean'){\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\n\t}\n\n\tconst [error, data] = await setGlobalContentLocked({ rootDir, id, locked });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,2BAA4B,uEAEnC,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,OAAEA,GAAWb,EAAQc,KAE/B,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcnB,uBAAuB,CAAEC,gBAASe,KAAIC,WAElE,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\lock\\PUT.js","names":["resolve","currentUserHasPermission","setGlobalContentLocked","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setGlobalContentLocked from '../../../../../server/utils/global-content/setGlobalContentLocked.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:globals: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 { id, locked } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID 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 setGlobalContentLocked({ rootDir, id, 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,MAA4B,uEAEnC,MAAMC,EAAUH,cAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,OAAEA,GAAWb,EAAQc,KAE/B,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcnB,EAAuB,CAAEC,UAASe,KAAIC,WAElE,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deleteGroup from"../../../../server/utils/groups/deleteGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,{names:t}=r.body;if(!t||!Array.isArray(t)||0===t.length)return s.status(400).json({error:"Names array is required"});const[n,o]=await currentUserHasPermission(e,"system:group:delete");if(n)return s.status(n.code).json({error:n.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const i=t.filter(r=>{const s=r.includes(":")?r.split(":")[0]:null;return s&&"admin"!==s});if(i.length)return s.status(403).json({error:`Cannot delete non-admin groups: ${i.join(", ")}`});const u=[],a=[];for(const r of t){const[s,e]=await deleteGroup(r);s?a.push({name:r,error:s.msg}):u.push(e)}if(a.length>0)return s.status(207).json({deleted:u,errors:a});s.json({deleted:u})};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/groups/deleteGroup.js";export default async(e,t)=>{const n=e.cookies.session_token,{names:o}=e.body;if(!o||!Array.isArray(o)||0===o.length)return t.status(400).json({error:"Names array is required"});const[i,u]=await s(n,"system:group:delete");if(i)return t.status(i.code).json({error:i.msg});if(!u)return t.status(403).json({error:"Insufficient permissions"});const a=o.filter(s=>{const r=s.includes(":")?s.split(":")[0]:null;return r&&"admin"!==r});if(a.length)return t.status(403).json({error:`Cannot delete non-admin groups: ${a.join(", ")}`});const l=[],m=[];for(const s of o){const[e,t]=await r(s);e?m.push({name:s,error:e.msg}):l.push(t)}if(m.length>0)return t.status(207).json({deleted:l,errors:m});t.json({deleted:l})};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\DELETE.js","names":["currentUserHasPermission","deleteGroup","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 deleteGroup from '../../../../server/utils/groups/deleteGroup.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:group: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 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 groups: ${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 deleteGroup(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,gBAAiB,gEAETC,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,uBAEzE,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,mCAAmCK,EAASM,KAAK,UAG5F,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,YAAY4B,GACvCd,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\\groups\\DELETE.js","names":["currentUserHasPermission","deleteGroup","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 deleteGroup from '../../../../server/utils/groups/deleteGroup.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:group: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 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 groups: ${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 deleteGroup(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,MAAiB,gEAETC,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,uBAEzE,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,mCAAmCK,EAASM,KAAK,UAG5F,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,EAAY4B,GACvCd,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 listGroups from"../../../../server/utils/groups/listGroups.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 i=parseInt(s.query.limit)||50,n=parseInt(s.query.offset)||0,u=s.query.owner,[a,m]=await listGroups({limit:i,offset:n,owner:u});if(a)return r.status(a.code).json({error:a.msg});r.json(m)};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/groups/listGroups.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 u=parseInt(e.query.limit)||50,a=parseInt(e.query.offset)||0,f=e.query.owner,[m,p]=await r({limit:u,offset:a,owner:f});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\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\GET.js","names":["currentUserHasPermission","listGroups","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 listGroups from '../../../../server/utils/groups/listGroups.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const owner = request.query.owner;\r\n const [error, data] = await listGroups({ limit, offset, owner });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,eAAgB,+DAERC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,WAAW,CAAEc,QAAOG,SAAQC,UAExD,GAAGN,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\GET.js","names":["currentUserHasPermission","listGroups","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 listGroups from '../../../../server/utils/groups/listGroups.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const owner = request.query.owner;\r\n const [error, data] = await listGroups({ limit, offset, owner });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAgB,+DAERC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,qBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,EAAW,CAAEc,QAAOG,SAAQC,UAExD,GAAGN,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updateGroup from"../../../../server/utils/groups/updateGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{name:o,newName:t,description:n}=s.body;if(!o)return r.status(400).json({error:"Group name is required"});if(o.startsWith("system:"))return r.status(403).json({error:"Permission denied: Cannot edit system-owned groups"});const[i,u]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!u)return r.status(403).json({error:"Insufficient permissions"});const a={};void 0!==n&&(a.description=n),void 0!==t&&(a.name=t);const[m,p]=await updateGroup(o,a);if(m)return r.status(m.code).json({error:m.msg});r.json(p)};
1
+ import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/groups/updateGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,{name:n,newName:i,description:u}=e.body;if(!n)return o.status(400).json({error:"Group name is required"});if(n.startsWith("system:"))return o.status(403).json({error:"Permission denied: Cannot edit system-owned groups"});const[a,m]=await s(t,"system:group:update");if(a)return o.status(a.code).json({error:a.msg});if(!m)return o.status(403).json({error:"Insufficient permissions"});const d={};void 0!==u&&(d.description=u),void 0!==i&&(d.name=i);const[p,c]=await r(n,d);if(p)return o.status(p.code).json({error:p.msg});o.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\PATCH.js","names":["currentUserHasPermission","updateGroup","async","request","response","token","cookies","session_token","name","newName","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 updateGroup from '../../../../server/utils/groups/updateGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, newName, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'Permission denied: Cannot edit system-owned groups' });\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 updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\tif(newName !== undefined) updates.name = newName;\r\n\r\n\tconst [error, result] = await updateGroup(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,gBAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,QAAEA,EAAOC,YAAEA,GAAgBP,EAAQQ,KAE/C,IAAIH,EACH,OAAOJ,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,WAAW,WAClB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,uDAG3C,MAAOE,EAAWC,SAAuBjB,yBAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,QACrCW,IAAZZ,IAAuBW,EAAQZ,KAAOC,GAEzC,MAAOK,EAAOQ,SAAgBrB,YAAYO,EAAMY,GAEhD,GAAGN,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\PATCH.js","names":["currentUserHasPermission","updateGroup","async","request","response","token","cookies","session_token","name","newName","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 updateGroup from '../../../../server/utils/groups/updateGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, newName, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'Permission denied: Cannot edit system-owned groups' });\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 updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\tif(newName !== undefined) updates.name = newName;\r\n\r\n\tconst [error, result] = await updateGroup(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,MAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,QAAEA,EAAOC,YAAEA,GAAgBP,EAAQQ,KAE/C,IAAIH,EACH,OAAOJ,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,WAAW,WAClB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,uDAG3C,MAAOE,EAAWC,SAAuBjB,EAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,QACrCW,IAAZZ,IAAuBW,EAAQZ,KAAOC,GAEzC,MAAOK,EAAOQ,SAAgBrB,EAAYO,EAAMY,GAEhD,GAAGN,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import createGroup from"../../../../server/utils/groups/createGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,{name:o,description:t}=r.body;if(!o||!o.trim())return s.status(400).json({error:"Group name is required"});if(o.includes(":"))return s.status(400).json({error:'Group name cannot contain ":"'});const[n,i]=await currentUserHasPermission(e,"system:group:create");if(n)return s.status(n.code).json({error:n.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const[u,a]=await createGroup({name:`custom:${o}`,description:t,owner:"custom"});if(u)return s.status(u.code).json({error:u.msg});s.json(a)};
1
+ import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/groups/createGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,{name:n,description:i}=e.body;if(!n||!n.trim())return o.status(400).json({error:"Group name is required"});if(n.includes(":"))return o.status(400).json({error:'Group name cannot contain ":"'});const[u,a]=await r(t,"system:group:create");if(u)return o.status(u.code).json({error:u.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const[c,m]=await s({name:`custom:${n}`,description:i,owner:"custom"});if(c)return o.status(c.code).json({error:c.msg});o.json(m)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\POST.js.map