kempo 4.2.15 → 4.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/app-public/account/split2.template.html +1 -0
  2. package/app-public/test.page.html +1 -0
  3. package/bin/cli.js +21 -4
  4. package/dist/admin/components/AddGroupControl.js +2 -2
  5. package/dist/admin/components/AddGroupControl.js.map +1 -1
  6. package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
  7. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
  8. package/dist/admin/components/FragmentEditor.js +15 -15
  9. package/dist/admin/components/FragmentEditor.js.map +1 -1
  10. package/dist/admin/components/GlobalContentEditor.js +12 -12
  11. package/dist/admin/components/GlobalContentEditor.js.map +1 -1
  12. package/dist/admin/components/GroupDeleteSelected.js +2 -2
  13. package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
  14. package/dist/admin/components/GroupRemoveRecord.js +2 -2
  15. package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
  16. package/dist/admin/components/Monaco.js +1 -1
  17. package/dist/admin/components/Monaco.js.map +1 -1
  18. package/dist/admin/components/PageEditor.js +42 -28
  19. package/dist/admin/components/PageEditor.js.map +1 -1
  20. package/dist/admin/components/TableRowDelete.js +2 -2
  21. package/dist/admin/components/TableRowDelete.js.map +1 -1
  22. package/dist/admin/components/TableRowLink.js +2 -2
  23. package/dist/admin/components/TableRowLink.js.map +1 -1
  24. package/dist/admin/components/TemplateEditor.js +18 -18
  25. package/dist/admin/components/TemplateEditor.js.map +1 -1
  26. package/dist/admin/components/ValueEditor.js +17 -17
  27. package/dist/admin/components/ValueEditor.js.map +1 -1
  28. package/dist/admin/components/tableControls/AddMember.js +2 -2
  29. package/dist/admin/components/tableControls/AddMember.js.map +1 -1
  30. package/dist/admin/components/tableControls/AddPermission.js +2 -2
  31. package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
  32. package/dist/admin/components/tableControls/InstallExtension.js +2 -2
  33. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  34. package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
  35. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  36. package/dist/admin/extensions/index.page.html +49 -15
  37. package/dist/admin/icons/open_in_new.svg +1 -0
  38. package/dist/admin/nav.fragment.html +1 -1
  39. package/dist/kempo/api/admin-globals/DELETE.js +1 -1
  40. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
  41. package/dist/kempo/api/admin-globals/GET.js +1 -1
  42. package/dist/kempo/api/admin-globals/GET.js.map +1 -1
  43. package/dist/kempo/api/admin-globals/POST.js +1 -1
  44. package/dist/kempo/api/admin-globals/POST.js.map +1 -1
  45. package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
  46. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
  47. package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
  48. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
  49. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
  50. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
  51. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
  52. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
  53. package/dist/kempo/api/auth/change-password/POST.js +1 -1
  54. package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
  55. package/dist/kempo/api/auth/login/email/POST.js +1 -1
  56. package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
  57. package/dist/kempo/api/auth/logout/POST.js +1 -1
  58. package/dist/kempo/api/auth/logout/POST.js.map +1 -1
  59. package/dist/kempo/api/auth/register/email/POST.js +1 -1
  60. package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
  61. package/dist/kempo/api/auth/reset-password/POST.js +1 -1
  62. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
  63. package/dist/kempo/api/auth/session/GET.js +1 -1
  64. package/dist/kempo/api/auth/session/GET.js.map +1 -1
  65. package/dist/kempo/api/auth/verify-email/POST.js +1 -1
  66. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
  67. package/dist/kempo/api/extensions/DELETE.js +1 -1
  68. package/dist/kempo/api/extensions/DELETE.js.map +1 -1
  69. package/dist/kempo/api/extensions/GET.js +1 -1
  70. package/dist/kempo/api/extensions/GET.js.map +1 -1
  71. package/dist/kempo/api/extensions/POST.js +1 -1
  72. package/dist/kempo/api/extensions/POST.js.map +1 -1
  73. package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
  74. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
  75. package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
  76. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
  77. package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
  78. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
  79. package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
  80. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
  81. package/dist/kempo/api/extensions/available/GET.js +1 -1
  82. package/dist/kempo/api/extensions/available/GET.js.map +1 -1
  83. package/dist/kempo/api/extensions/known/GET.js +1 -1
  84. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  85. package/dist/kempo/api/forgot-password/POST.js +1 -1
  86. package/dist/kempo/api/forgot-password/POST.js.map +1 -1
  87. package/dist/kempo/api/fragments/DELETE.js +1 -1
  88. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  89. package/dist/kempo/api/fragments/GET.js +1 -1
  90. package/dist/kempo/api/fragments/GET.js.map +1 -1
  91. package/dist/kempo/api/fragments/POST.js +1 -1
  92. package/dist/kempo/api/fragments/POST.js.map +1 -1
  93. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  94. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  95. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  96. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  97. package/dist/kempo/api/fragments/file/GET.js +1 -1
  98. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  99. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  100. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  101. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  102. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  103. package/dist/kempo/api/fragments/lock/PUT.js +2 -0
  104. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -0
  105. package/dist/kempo/api/globals/DELETE.js +1 -1
  106. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  107. package/dist/kempo/api/globals/GET.js +1 -1
  108. package/dist/kempo/api/globals/GET.js.map +1 -1
  109. package/dist/kempo/api/globals/POST.js +1 -1
  110. package/dist/kempo/api/globals/POST.js.map +1 -1
  111. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  112. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  113. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  114. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  115. package/dist/kempo/api/globals/entry/GET.js +1 -1
  116. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  117. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  118. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  119. package/dist/kempo/api/globals/lock/PUT.js +2 -0
  120. package/dist/kempo/api/globals/lock/PUT.js.map +1 -0
  121. package/dist/kempo/api/groups/DELETE.js +1 -1
  122. package/dist/kempo/api/groups/DELETE.js.map +1 -1
  123. package/dist/kempo/api/groups/GET.js +1 -1
  124. package/dist/kempo/api/groups/GET.js.map +1 -1
  125. package/dist/kempo/api/groups/PATCH.js +1 -1
  126. package/dist/kempo/api/groups/PATCH.js.map +1 -1
  127. package/dist/kempo/api/groups/POST.js +1 -1
  128. package/dist/kempo/api/groups/POST.js.map +1 -1
  129. package/dist/kempo/api/groups/[name]/GET.js +1 -1
  130. package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
  131. package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
  132. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
  133. package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
  134. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
  135. package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
  136. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
  137. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
  138. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
  139. package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
  140. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
  141. package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
  142. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
  143. package/dist/kempo/api/pages/DELETE.js +1 -1
  144. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  145. package/dist/kempo/api/pages/GET.js +1 -1
  146. package/dist/kempo/api/pages/GET.js.map +1 -1
  147. package/dist/kempo/api/pages/POST.js +1 -1
  148. package/dist/kempo/api/pages/POST.js.map +1 -1
  149. package/dist/kempo/api/pages/directories/GET.js +1 -1
  150. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  151. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  152. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  153. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  154. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  155. package/dist/kempo/api/pages/file/GET.js +1 -1
  156. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  157. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  158. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  159. package/dist/kempo/api/pages/file/PUT.js +1 -1
  160. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  161. package/dist/kempo/api/pages/lock/PUT.js +2 -0
  162. package/dist/kempo/api/pages/lock/PUT.js.map +1 -0
  163. package/dist/kempo/api/pages/search/GET.js +2 -0
  164. package/dist/kempo/api/pages/search/GET.js.map +1 -0
  165. package/dist/kempo/api/pages/templates/GET.js +1 -1
  166. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  167. package/dist/kempo/api/permissions/DELETE.js +1 -1
  168. package/dist/kempo/api/permissions/DELETE.js.map +1 -1
  169. package/dist/kempo/api/permissions/GET.js +1 -1
  170. package/dist/kempo/api/permissions/GET.js.map +1 -1
  171. package/dist/kempo/api/permissions/PATCH.js +1 -1
  172. package/dist/kempo/api/permissions/PATCH.js.map +1 -1
  173. package/dist/kempo/api/permissions/POST.js +1 -1
  174. package/dist/kempo/api/permissions/POST.js.map +1 -1
  175. package/dist/kempo/api/settings/[owner]/GET.js +1 -1
  176. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
  177. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
  178. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
  179. package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
  180. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
  181. package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
  182. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
  183. package/dist/kempo/api/settings/public/GET.js +1 -1
  184. package/dist/kempo/api/settings/public/GET.js.map +1 -1
  185. package/dist/kempo/api/templates/DELETE.js +1 -1
  186. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  187. package/dist/kempo/api/templates/GET.js +1 -1
  188. package/dist/kempo/api/templates/GET.js.map +1 -1
  189. package/dist/kempo/api/templates/POST.js +1 -1
  190. package/dist/kempo/api/templates/POST.js.map +1 -1
  191. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  192. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  193. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  194. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  195. package/dist/kempo/api/templates/file/GET.js +1 -1
  196. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  197. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  198. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  199. package/dist/kempo/api/templates/file/PUT.js +1 -1
  200. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  201. package/dist/kempo/api/templates/lock/PUT.js +2 -0
  202. package/dist/kempo/api/templates/lock/PUT.js.map +1 -0
  203. package/dist/kempo/api/user/DELETE.js +1 -1
  204. package/dist/kempo/api/user/DELETE.js.map +1 -1
  205. package/dist/kempo/api/user/GET.js +1 -1
  206. package/dist/kempo/api/user/GET.js.map +1 -1
  207. package/dist/kempo/api/user/PATCH.js +1 -1
  208. package/dist/kempo/api/user/PATCH.js.map +1 -1
  209. package/dist/kempo/api/user/[userid]/GET.js +1 -1
  210. package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
  211. package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
  212. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
  213. package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
  214. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
  215. package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
  216. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
  217. package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
  218. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
  219. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
  220. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
  221. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
  222. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
  223. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
  224. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
  225. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
  226. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
  227. package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
  228. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
  229. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
  230. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
  231. package/dist/kempo/api/user/create/POST.js +1 -1
  232. package/dist/kempo/api/user/create/POST.js.map +1 -1
  233. package/dist/kempo/api/user/search/GET.js +1 -1
  234. package/dist/kempo/api/user/search/GET.js.map +1 -1
  235. package/dist/kempo/components/LogoutBtn.js +1 -1
  236. package/dist/kempo/components/LogoutBtn.js.map +1 -1
  237. package/dist/kempo/components/Menu.js +9 -9
  238. package/dist/kempo/components/Menu.js.map +1 -1
  239. package/dist/kempo/components/Permission.js +1 -1
  240. package/dist/kempo/components/Permission.js.map +1 -1
  241. package/dist/kempo/components/Role.js +1 -1
  242. package/dist/kempo/components/Role.js.map +1 -1
  243. package/dist/kempo/components/UserCreatedAt.js +1 -1
  244. package/dist/kempo/components/UserCreatedAt.js.map +1 -1
  245. package/dist/kempo/components/UserEmail.js +1 -1
  246. package/dist/kempo/components/UserEmail.js.map +1 -1
  247. package/dist/kempo/components/UserEmailVerified.js +1 -1
  248. package/dist/kempo/components/UserEmailVerified.js.map +1 -1
  249. package/dist/kempo/components/UserName.js +1 -1
  250. package/dist/kempo/components/UserName.js.map +1 -1
  251. package/dist/kempo/fetch.js +1 -1
  252. package/dist/kempo/fetch.js.map +1 -1
  253. package/dist/kempo/sdk.js +1 -1
  254. package/dist/kempo/sdk.js.map +1 -1
  255. package/middleware/kempo.js +36 -6
  256. package/package.json +3 -3
  257. package/server/sdk.js +5 -0
  258. package/server/utils/extensions/installExtension.js +19 -13
  259. package/server/utils/extensions/uninstallExtension.js +6 -10
  260. package/server/utils/fragments/createFragment.js +5 -1
  261. package/server/utils/fragments/deleteFragment.js +2 -3
  262. package/server/utils/fragments/disableFragment.js +0 -3
  263. package/server/utils/fragments/getFragmentMetadata.js +32 -0
  264. package/server/utils/fragments/moveFragment.js +0 -3
  265. package/server/utils/fragments/setFragmentLocked.js +48 -0
  266. package/server/utils/fragments/updateFragment.js +3 -3
  267. package/server/utils/fs/isResourceLocked.js +22 -0
  268. package/server/utils/global-content/createGlobalContent.js +3 -0
  269. package/server/utils/global-content/deleteGlobalContent.js +3 -3
  270. package/server/utils/global-content/getGlobalContentMetadata.js +37 -0
  271. package/server/utils/global-content/setGlobalContentLocked.js +44 -0
  272. package/server/utils/global-content/updateGlobalContent.js +3 -4
  273. package/server/utils/pages/createPage.js +19 -7
  274. package/server/utils/pages/deletePage.js +4 -13
  275. package/server/utils/pages/disablePage.js +0 -3
  276. package/server/utils/pages/getPage.js +7 -0
  277. package/server/utils/pages/getPageMetadata.js +32 -0
  278. package/server/utils/pages/listPages.js +11 -3
  279. package/server/utils/pages/movePage.js +0 -3
  280. package/server/utils/pages/searchByMetadata.js +61 -0
  281. package/server/utils/pages/setPageLocked.js +48 -0
  282. package/server/utils/pages/updatePage.js +19 -3
  283. package/server/utils/templates/createTemplate.js +5 -1
  284. package/server/utils/templates/deleteTemplate.js +2 -3
  285. package/server/utils/templates/disableTemplate.js +0 -3
  286. package/server/utils/templates/getTemplateMetadata.js +32 -0
  287. package/server/utils/templates/moveTemplate.js +0 -3
  288. package/server/utils/templates/setTemplateLocked.js +48 -0
  289. package/server/utils/templates/updateTemplate.js +3 -3
  290. package/dist/admin/accounts/groups/[name]/index.html +0 -518
  291. package/dist/admin/accounts/groups/index.html +0 -378
  292. package/dist/admin/accounts/permissions/index.html +0 -397
  293. package/dist/admin/accounts/users/[id]/index.html +0 -541
  294. package/dist/admin/accounts/users/index.html +0 -396
  295. package/dist/admin/content/fragments/edit/index.html +0 -132
  296. package/dist/admin/content/fragments/index.html +0 -375
  297. package/dist/admin/content/globals/edit/index.html +0 -132
  298. package/dist/admin/content/globals/index.html +0 -358
  299. package/dist/admin/content/pages/edit/index.html +0 -132
  300. package/dist/admin/content/pages/index.html +0 -509
  301. package/dist/admin/content/templates/edit/index.html +0 -132
  302. package/dist/admin/content/templates/index.html +0 -429
  303. package/dist/admin/extensions/index.html +0 -222
  304. package/dist/admin/index.html +0 -130
  305. package/dist/admin/settings/[owner]/[name]/index.html +0 -449
  306. package/dist/admin/settings/index.html +0 -410
@@ -1,2 +1,2 @@
1
- import{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":[]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +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';\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
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\POST.js","names":["currentUserHasPermission","createGroup","async","request","response","token","cookies","session_token","name","description","body","trim","status","json","error","includes","permError","hasPermission","code","msg","result","owner"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createGroup from '../../../../server/utils/groups/createGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name || !name.trim()){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.includes(':')){\r\n\t\treturn response.status(400).json({ error: 'Group name cannot contain \":\"' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, result] = await createGroup({ name: `custom:${name}`, description, owner: 'custom' });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,gBAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,IAASA,EAAKG,OACjB,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,SAAS,KAChB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,MAAOE,EAAWC,SAAuBjB,yBAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOM,SAAgBnB,YAAY,CAAEO,KAAM,UAAUA,IAAQC,cAAaY,MAAO,WAExF,GAAGP,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\POST.js","names":["currentUserHasPermission","createGroup","async","request","response","token","cookies","session_token","name","description","body","trim","status","json","error","includes","permError","hasPermission","code","msg","result","owner"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createGroup from '../../../../server/utils/groups/createGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name || !name.trim()){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.includes(':')){\r\n\t\treturn response.status(400).json({ error: 'Group name cannot contain \":\"' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, result] = await createGroup({ name: `custom:${name}`, description, owner: 'custom' });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,IAASA,EAAKG,OACjB,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,SAAS,KAChB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,MAAOE,EAAWC,SAAuBjB,EAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOM,SAAgBnB,EAAY,CAAEO,KAAM,UAAUA,IAAQC,cAAaY,MAAO,WAExF,GAAGP,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getGroup from"../../../../../server/utils/groups/getGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{name:n}=s.params,[i,u]=await getGroup(decodeURIComponent(n));if(i)return r.status(i.code).json({error:i.msg});r.json(u)};
1
+ import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/groups/getGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,[n,i]=await s(t,"system:group:read");if(n)return o.status(n.code).json({error:n.msg});if(!i)return o.status(403).json({error:"Insufficient permissions"});const{name:a}=e.params,[u,m]=await r(decodeURIComponent(a));if(u)return o.status(u.code).json({error:u.msg});o.json(m)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\GET.js","names":["currentUserHasPermission","getGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","group","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroup from '../../../../../server/utils/groups/getGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, group] = await getGroup(decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(group);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,aAAc,gEAENC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,QAClBH,EAAOI,SAAehB,SAASiB,mBAAmBH,IAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\GET.js","names":["currentUserHasPermission","getGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","group","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroup from '../../../../../server/utils/groups/getGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, group] = await getGroup(decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(group);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAc,gEAENC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,QAClBH,EAAOI,SAAehB,EAASiB,mBAAmBH,IAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}