kempo 4.2.5 → 4.2.8

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 (247) hide show
  1. package/bin/cli.js +8 -1
  2. package/dist/admin/components/AddGroupControl.js +1 -1
  3. package/dist/admin/components/AddGroupControl.js.map +1 -1
  4. package/dist/admin/components/ClearExpiredSessionsControl.js +1 -1
  5. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
  6. package/dist/admin/components/FragmentEditor.js +1 -1
  7. package/dist/admin/components/FragmentEditor.js.map +1 -1
  8. package/dist/admin/components/GlobalContentEditor.js +1 -1
  9. package/dist/admin/components/GlobalContentEditor.js.map +1 -1
  10. package/dist/admin/components/GroupDeleteSelected.js +1 -1
  11. package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
  12. package/dist/admin/components/GroupRemoveRecord.js +1 -1
  13. package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
  14. package/dist/admin/components/Monaco.js +1 -1
  15. package/dist/admin/components/Monaco.js.map +1 -1
  16. package/dist/admin/components/PageEditor.js +1 -1
  17. package/dist/admin/components/PageEditor.js.map +1 -1
  18. package/dist/admin/components/TableRowDelete.js +1 -1
  19. package/dist/admin/components/TableRowDelete.js.map +1 -1
  20. package/dist/admin/components/TableRowLink.js +1 -1
  21. package/dist/admin/components/TableRowLink.js.map +1 -1
  22. package/dist/admin/components/TemplateEditor.js +1 -1
  23. package/dist/admin/components/TemplateEditor.js.map +1 -1
  24. package/dist/admin/components/ValueEditor.js +1 -1
  25. package/dist/admin/components/ValueEditor.js.map +1 -1
  26. package/dist/admin/components/tableControls/AddMember.js +1 -1
  27. package/dist/admin/components/tableControls/AddMember.js.map +1 -1
  28. package/dist/admin/components/tableControls/AddPermission.js +1 -1
  29. package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
  30. package/dist/admin/components/tableControls/InstallExtension.js +1 -1
  31. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
  32. package/dist/admin/components/tableControls/UninstallExtension.js +1 -1
  33. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
  34. package/dist/admin/init.js +1 -1
  35. package/dist/admin/init.js.map +1 -1
  36. package/dist/kempo/api/admin-globals/DELETE.js +1 -1
  37. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
  38. package/dist/kempo/api/admin-globals/GET.js +1 -1
  39. package/dist/kempo/api/admin-globals/GET.js.map +1 -1
  40. package/dist/kempo/api/admin-globals/POST.js +1 -1
  41. package/dist/kempo/api/admin-globals/POST.js.map +1 -1
  42. package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
  43. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
  44. package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
  45. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
  46. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
  47. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
  48. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
  49. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
  50. package/dist/kempo/api/auth/change-password/POST.js +1 -1
  51. package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
  52. package/dist/kempo/api/auth/login/email/POST.js +1 -1
  53. package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
  54. package/dist/kempo/api/auth/logout/POST.js +1 -1
  55. package/dist/kempo/api/auth/logout/POST.js.map +1 -1
  56. package/dist/kempo/api/auth/register/email/POST.js +1 -1
  57. package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
  58. package/dist/kempo/api/auth/reset-password/POST.js +1 -1
  59. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
  60. package/dist/kempo/api/auth/session/GET.js +1 -1
  61. package/dist/kempo/api/auth/session/GET.js.map +1 -1
  62. package/dist/kempo/api/auth/verify-email/POST.js +1 -1
  63. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
  64. package/dist/kempo/api/extensions/DELETE.js +1 -1
  65. package/dist/kempo/api/extensions/DELETE.js.map +1 -1
  66. package/dist/kempo/api/extensions/GET.js +1 -1
  67. package/dist/kempo/api/extensions/GET.js.map +1 -1
  68. package/dist/kempo/api/extensions/POST.js +1 -1
  69. package/dist/kempo/api/extensions/POST.js.map +1 -1
  70. package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
  71. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
  72. package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
  73. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
  74. package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
  75. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
  76. package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
  77. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
  78. package/dist/kempo/api/extensions/available/GET.js +1 -1
  79. package/dist/kempo/api/extensions/available/GET.js.map +1 -1
  80. package/dist/kempo/api/extensions/known/GET.js +1 -1
  81. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  82. package/dist/kempo/api/forgot-password/POST.js +1 -1
  83. package/dist/kempo/api/forgot-password/POST.js.map +1 -1
  84. package/dist/kempo/api/fragments/DELETE.js +1 -1
  85. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  86. package/dist/kempo/api/fragments/GET.js +1 -1
  87. package/dist/kempo/api/fragments/GET.js.map +1 -1
  88. package/dist/kempo/api/fragments/POST.js +1 -1
  89. package/dist/kempo/api/fragments/POST.js.map +1 -1
  90. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  91. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  92. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  93. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  94. package/dist/kempo/api/fragments/file/GET.js +1 -1
  95. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  96. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  97. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  98. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  99. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  100. package/dist/kempo/api/globals/DELETE.js +1 -1
  101. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  102. package/dist/kempo/api/globals/GET.js +1 -1
  103. package/dist/kempo/api/globals/GET.js.map +1 -1
  104. package/dist/kempo/api/globals/POST.js +1 -1
  105. package/dist/kempo/api/globals/POST.js.map +1 -1
  106. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  107. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  108. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  109. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  110. package/dist/kempo/api/globals/entry/GET.js +1 -1
  111. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  112. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  113. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  114. package/dist/kempo/api/groups/DELETE.js +1 -1
  115. package/dist/kempo/api/groups/DELETE.js.map +1 -1
  116. package/dist/kempo/api/groups/GET.js +1 -1
  117. package/dist/kempo/api/groups/GET.js.map +1 -1
  118. package/dist/kempo/api/groups/PATCH.js +1 -1
  119. package/dist/kempo/api/groups/PATCH.js.map +1 -1
  120. package/dist/kempo/api/groups/POST.js +1 -1
  121. package/dist/kempo/api/groups/POST.js.map +1 -1
  122. package/dist/kempo/api/groups/[name]/GET.js +1 -1
  123. package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
  124. package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
  125. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
  126. package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
  127. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
  128. package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
  129. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
  130. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
  131. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
  132. package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
  133. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
  134. package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
  135. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
  136. package/dist/kempo/api/pages/DELETE.js +1 -1
  137. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  138. package/dist/kempo/api/pages/GET.js +1 -1
  139. package/dist/kempo/api/pages/GET.js.map +1 -1
  140. package/dist/kempo/api/pages/POST.js +1 -1
  141. package/dist/kempo/api/pages/POST.js.map +1 -1
  142. package/dist/kempo/api/pages/directories/GET.js +1 -1
  143. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  144. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  145. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  146. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  147. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  148. package/dist/kempo/api/pages/file/GET.js +1 -1
  149. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  150. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  151. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  152. package/dist/kempo/api/pages/file/PUT.js +1 -1
  153. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  154. package/dist/kempo/api/pages/templates/GET.js +1 -1
  155. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  156. package/dist/kempo/api/permissions/DELETE.js +1 -1
  157. package/dist/kempo/api/permissions/DELETE.js.map +1 -1
  158. package/dist/kempo/api/permissions/GET.js +1 -1
  159. package/dist/kempo/api/permissions/GET.js.map +1 -1
  160. package/dist/kempo/api/permissions/PATCH.js +1 -1
  161. package/dist/kempo/api/permissions/PATCH.js.map +1 -1
  162. package/dist/kempo/api/permissions/POST.js +1 -1
  163. package/dist/kempo/api/permissions/POST.js.map +1 -1
  164. package/dist/kempo/api/settings/[owner]/GET.js +1 -1
  165. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
  166. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
  167. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
  168. package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
  169. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
  170. package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
  171. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
  172. package/dist/kempo/api/settings/public/GET.js +1 -1
  173. package/dist/kempo/api/settings/public/GET.js.map +1 -1
  174. package/dist/kempo/api/templates/DELETE.js +1 -1
  175. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  176. package/dist/kempo/api/templates/GET.js +1 -1
  177. package/dist/kempo/api/templates/GET.js.map +1 -1
  178. package/dist/kempo/api/templates/POST.js +1 -1
  179. package/dist/kempo/api/templates/POST.js.map +1 -1
  180. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  181. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  182. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  183. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  184. package/dist/kempo/api/templates/file/GET.js +1 -1
  185. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  186. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  187. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  188. package/dist/kempo/api/templates/file/PUT.js +1 -1
  189. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  190. package/dist/kempo/api/user/DELETE.js +1 -1
  191. package/dist/kempo/api/user/DELETE.js.map +1 -1
  192. package/dist/kempo/api/user/GET.js +1 -1
  193. package/dist/kempo/api/user/GET.js.map +1 -1
  194. package/dist/kempo/api/user/PATCH.js +1 -1
  195. package/dist/kempo/api/user/PATCH.js.map +1 -1
  196. package/dist/kempo/api/user/[userid]/GET.js +1 -1
  197. package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
  198. package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
  199. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
  200. package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
  201. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
  202. package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
  203. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
  204. package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
  205. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
  206. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
  207. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
  208. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
  209. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
  210. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
  211. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
  212. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
  213. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
  214. package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
  215. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
  216. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
  217. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
  218. package/dist/kempo/api/user/create/POST.js +1 -1
  219. package/dist/kempo/api/user/create/POST.js.map +1 -1
  220. package/dist/kempo/api/user/search/GET.js +1 -1
  221. package/dist/kempo/api/user/search/GET.js.map +1 -1
  222. package/dist/kempo/components/LogoutBtn.js +1 -1
  223. package/dist/kempo/components/LogoutBtn.js.map +1 -1
  224. package/dist/kempo/components/Menu.js +1 -1
  225. package/dist/kempo/components/Menu.js.map +1 -1
  226. package/dist/kempo/components/Permission.js +1 -1
  227. package/dist/kempo/components/Permission.js.map +1 -1
  228. package/dist/kempo/components/Role.js +1 -1
  229. package/dist/kempo/components/Role.js.map +1 -1
  230. package/dist/kempo/components/UserCreatedAt.js +1 -1
  231. package/dist/kempo/components/UserCreatedAt.js.map +1 -1
  232. package/dist/kempo/components/UserEmail.js +1 -1
  233. package/dist/kempo/components/UserEmail.js.map +1 -1
  234. package/dist/kempo/components/UserEmailVerified.js +1 -1
  235. package/dist/kempo/components/UserEmailVerified.js.map +1 -1
  236. package/dist/kempo/components/UserName.js +1 -1
  237. package/dist/kempo/components/UserName.js.map +1 -1
  238. package/dist/kempo/fetch.js +1 -1
  239. package/dist/kempo/fetch.js.map +1 -1
  240. package/dist/kempo/sdk.js +1 -1
  241. package/dist/kempo/sdk.js.map +1 -1
  242. package/package.json +5 -2
  243. package/server/db/migrations/0000_initial.sql +0 -91
  244. package/server/db/migrations/0001_soft_master_chief.sql +0 -1
  245. package/server/db/migrations/meta/0000_snapshot.json +0 -588
  246. package/server/db/migrations/meta/0001_snapshot.json +0 -594
  247. package/server/db/migrations/meta/_journal.json +0 -20
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listTemplates from"../../../../../server/utils/pages/listTemplates.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listTemplates({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\templates\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/pages/templates/GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport listTemplates from '../../../../../server/utils/pages/listTemplates.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst [error, data] = await listTemplates({ rootDir });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,kBAAmB,qDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,cAAc,CAAEC,kBAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,kBAAmB,qDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,cAAc,CAAEC,kBAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deletePermission from"../../../../server/utils/permissions/deletePermission.js";export default async(s,e)=>{const r=s.cookies.session_token,{names:n}=s.body;if(!n||!Array.isArray(n)||0===n.length)return e.status(400).json({error:"Names array is required"});const[t,i]=await currentUserHasPermission(r,"system:permissions:manage");if(t)return e.status(t.code).json({error:t.msg});if(!i)return e.status(403).json({error:"Insufficient permissions"});const o=n.filter(s=>{const e=s.includes(":")?s.split(":")[0]:null;return e&&"admin"!==e});if(o.length)return e.status(403).json({error:`Cannot delete non-admin permissions: ${o.join(", ")}`});const a=[],m=[];for(const s of n){const[e,r]=await deletePermission(s);e?m.push({name:s,error:e.msg}):a.push(r)}if(m.length>0)return e.status(207).json({deleted:a,errors:m});e.json({deleted:a})};
2
- //# sourceMappingURL=DELETE.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/permissions/DELETE.js","names":["currentUserHasPermission","deletePermission","async","request","response","token","cookies","session_token","names","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","nonAdmin","filter","n","owner","includes","split","join","deleted","errors","name","result","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport deletePermission from '../../../../server/utils/permissions/deletePermission.js';\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst { names } = request.body;\n\n\tif(!names || !Array.isArray(names) || names.length === 0){\n\t\treturn response.status(400).json({ error: 'Names array is required' });\n\t}\n\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst nonAdmin = names.filter(n => {\n\t\tconst owner = n.includes(':') ? n.split(':')[0] : null;\n\t\treturn owner && owner !== 'admin';\n\t});\n\tif(nonAdmin.length){\n\t\treturn response.status(403).json({ error: `Cannot delete non-admin permissions: ${nonAdmin.join(', ')}` });\n\t}\n\n\tconst deleted = [];\n\tconst errors = [];\n\n\tfor(const name of names){\n\t\tconst [error, result] = await deletePermission(name);\n\t\tif(error){\n\t\t\terrors.push({ name, error: error.msg });\n\t\t} else {\n\t\t\tdeleted.push(result);\n\t\t}\n\t}\n\n\tif(errors.length > 0){\n\t\treturn response.status(207).json({ deleted, errors });\n\t}\n\n\tresponse.json({ deleted });\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,MAAEA,GAAUL,EAAQM,KAE1B,IAAID,IAAUE,MAAMC,QAAQH,IAA2B,IAAjBA,EAAMI,OAC3C,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,4BAG3C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,6BAEzE,GAAGW,EACF,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,EAAWZ,EAAMa,OAAOC,IAC7B,MAAMC,EAAQD,EAAEE,SAAS,KAAOF,EAAEG,MAAM,KAAK,GAAK,KAClD,OAAOF,GAAmB,UAAVA,IAEjB,GAAGH,EAASR,OACX,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,wCAAwCK,EAASM,KAAK,UAGjG,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,iBAAiB4B,GAC5Cd,EACFa,EAAOG,KAAK,CAAEF,OAAMd,MAAOA,EAAMI,MAEjCQ,EAAQI,KAAKD,EAEf,CAEA,GAAGF,EAAOhB,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEa,UAASC,WAG7CxB,EAASU,KAAK,CAAEa","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\DELETE.js","names":["currentUserHasPermission","deletePermission","async","request","response","token","cookies","session_token","names","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","nonAdmin","filter","n","owner","includes","split","join","deleted","errors","name","result","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePermission from '../../../../server/utils/permissions/deletePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { names } = request.body;\r\n\r\n\tif(!names || !Array.isArray(names) || names.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Names array is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst nonAdmin = names.filter(n => {\r\n\t\tconst owner = n.includes(':') ? n.split(':')[0] : null;\r\n\t\treturn owner && owner !== 'admin';\r\n\t});\r\n\tif(nonAdmin.length){\r\n\t\treturn response.status(403).json({ error: `Cannot delete non-admin permissions: ${nonAdmin.join(', ')}` });\r\n\t}\r\n\r\n\tconst deleted = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const name of names){\r\n\t\tconst [error, result] = await deletePermission(name);\r\n\t\tif(error){\r\n\t\t\terrors.push({ name, error: error.msg });\r\n\t\t} else {\r\n\t\t\tdeleted.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ deleted, errors });\r\n\t}\r\n\r\n\tresponse.json({ deleted });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,MAAEA,GAAUL,EAAQM,KAE1B,IAAID,IAAUE,MAAMC,QAAQH,IAA2B,IAAjBA,EAAMI,OAC3C,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,4BAG3C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,6BAEzE,GAAGW,EACF,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,EAAWZ,EAAMa,OAAOC,IAC7B,MAAMC,EAAQD,EAAEE,SAAS,KAAOF,EAAEG,MAAM,KAAK,GAAK,KAClD,OAAOF,GAAmB,UAAVA,IAEjB,GAAGH,EAASR,OACX,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,wCAAwCK,EAASM,KAAK,UAGjG,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,iBAAiB4B,GAC5Cd,EACFa,EAAOG,KAAK,CAAEF,OAAMd,MAAOA,EAAMI,MAEjCQ,EAAQI,KAAKD,EAEf,CAEA,GAAGF,EAAOhB,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEa,UAASC,WAG7CxB,EAASU,KAAK,CAAEa","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getAllPermissions from"../../../../server/utils/permissions/getAllPermissions.js";export default async(s,r)=>{const e=s.cookies.session_token,[i,o]=await currentUserHasPermission(e,"system:permissions:read");if(i)return r.status(i.code).json({error:i.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const t=parseInt(s.query.limit)||50,n=parseInt(s.query.offset)||0,m=s.query.owner,[u,a]=await getAllPermissions({limit:t,offset:n,owner:m});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/permissions/GET.js","names":["currentUserHasPermission","getAllPermissions","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","owner","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getAllPermissions from '../../../../server/utils/permissions/getAllPermissions.js';\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst limit = parseInt(request.query.limit) || 50;\n\tconst offset = parseInt(request.query.offset) || 0;\n\tconst owner = request.query.owner;\n\tconst [error, data] = await getAllPermissions({ limit, offset, owner });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,sBAAuB,2EAEfC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,kBAAkB,CAAEc,QAAOG,SAAQC,UAE/D,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\GET.js","names":["currentUserHasPermission","getAllPermissions","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","owner","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAllPermissions from '../../../../server/utils/permissions/getAllPermissions.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst owner = request.query.owner;\r\n\tconst [error, data] = await getAllPermissions({ limit, offset, owner });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,sBAAuB,2EAEfC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,kBAAkB,CAAEc,QAAOG,SAAQC,UAE/D,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updatePermission from"../../../../server/utils/permissions/updatePermission.js";export default async(s,r)=>{const e=s.cookies.session_token,{name:i,description:o}=s.body;if(!i)return r.status(400).json({error:"Permission name is required"});if(i.startsWith("system:"))return r.status(403).json({error:"System permissions cannot be modified"});const[t,n]=await currentUserHasPermission(e,"system:permissions:manage");if(t)return r.status(t.code).json({error:t.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const m={};void 0!==o&&(m.description=o);const[a,u]=await updatePermission(i,m);if(a)return r.status(a.code).json({error:a.msg});r.json(u)};
2
- //# sourceMappingURL=PATCH.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/permissions/PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.js';\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst { name, description } = request.body;\n\n\tif(!name){\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\n\t}\n\n\tif(name.startsWith('system:')){\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\n\t}\n\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst updates = {};\n\tif(description !== undefined) updates.description = description;\n\n\tconst [error, result] = await updatePermission(name, updates);\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(result);\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,yBAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,iBAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,yBAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,iBAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import createPermission from"../../../../server/utils/permissions/createPermission.js";export default async(r,s)=>{const e=r.cookies.session_token,{permissions:o}=r.body;if(!o||!Array.isArray(o)||0===o.length)return s.status(400).json({error:"Permissions array is required"});for(const r of o){if(!r.resource||r.resource.includes(":"))return s.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return s.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[n,t]=await currentUserHasPermission(e,"system:permissions:manage");if(n)return s.status(n.code).json({error:n.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const i=[],a=[];for(const r of o){const[s,e]=await createPermission({resource:r.resource,action:r.action,description:r.description,owner:"custom"});s?a.push({resource:r.resource,action:r.action,error:s.msg}):i.push(e)}if(a.length>0)return s.status(207).json({created:i,errors:a});s.json({created:i})};
2
- //# sourceMappingURL=POST.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/permissions/POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst { permissions } = request.body;\n\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\n\t}\n\n\tfor(const p of permissions){\n\t\tif(!p.resource || p.resource.includes(':')){\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\n\t\t}\n\t\tif(!p.action || p.action.includes(':')){\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\n\t\t}\n\t}\n\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst created = [];\n\tconst errors = [];\n\n\tfor(const p of permissions){\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\n\t\tif(error){\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\n\t\t} else {\n\t\t\tcreated.push(result);\n\t\t}\n\t}\n\n\tif(errors.length > 0){\n\t\treturn response.status(207).json({ created, errors });\n\t}\n\n\tresponse.json({ created });\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,yBAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,iBAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,yBAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,iBAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listSettings from"../../../../../server/utils/settings/listSettings.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,i]=await currentUserHasPermission(e,"system:settings:read");if(t)return r.status(t.code).json({error:t.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{owner:n}=s.params,o=parseInt(s.query.limit)||50,a=parseInt(s.query.offset)||0,[m,u]=await listSettings({owner:n,limit:o,offset:a});if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/settings/[owner]/GET.js","names":["currentUserHasPermission","listSettings","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","owner","params","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport listSettings from '../../../../../server/utils/settings/listSettings.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:settings:read');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { owner } = request.params;\n const limit = parseInt(request.query.limit) || 50;\n const offset = parseInt(request.query.offset) || 0;\n const [error, data] = await listSettings({ owner, limit, offset });\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(data);\n};\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,iBAAkB,sEAEVC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,wBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,MAAEA,GAAUZ,EAAQa,OACpBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,aAAa,CAAEc,QAAOE,QAAOG,WAEzD,GAAGP,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\GET.js","names":["currentUserHasPermission","listSettings","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","owner","params","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listSettings from '../../../../../server/utils/settings/listSettings.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:settings: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 { owner } = request.params;\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await listSettings({ owner, limit, offset });\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,6EAC9BC,iBAAkB,sEAEVC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,wBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,MAAEA,GAAUZ,EAAQa,OACpBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,aAAa,CAAEc,QAAOE,QAAOG,WAEzD,GAAGP,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import getSession from"../../../../../../server/utils/auth/getSession.js";import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import deleteSetting from"../../../../../../server/utils/settings/deleteSetting.js";export default async(e,s)=>{const t=e.cookies.session_token,[r,n]=await getSession({token:t});if(r||!n)return s.status(401).json({error:"Unauthorized"});const[o,i]=await currentUserHasPermission(t,"system:custom-settings:manage");if(o||!i)return s.status(403).json({error:"Forbidden: Cannot delete settings"});const{owner:a,name:m}=e.params,[u,g]=await deleteSetting(a,m);if(u)return s.status(u.code).json({error:u.msg});s.json(g)};
2
- //# sourceMappingURL=DELETE.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/settings/[owner]/[name]/DELETE.js","names":["getSession","currentUserHasPermission","deleteSetting","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","permError","hasPermission","owner","name","params","result","code","msg"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport deleteSetting from '../../../../../../server/utils/settings/deleteSetting.js';\n\nexport default async (request, response) => {\n const sessionToken = request.cookies.session_token;\n const [sessionError, session] = await getSession({ token: sessionToken });\n if(sessionError || !session){\n return response.status(401).json({ error: 'Unauthorized' });\n }\n\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\n if(permError || !hasPermission){\n return response.status(403).json({ error: 'Forbidden: Cannot delete settings' });\n }\n\n const { owner, name } = request.params;\n\n const [error, result] = await deleteSetting(owner, name);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(result);\n};\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,kBAAmB,0EAEXC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBV,WAAW,CAAEW,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAOC,EAAWC,SAAuBf,yBAAyBK,EAAc,iCAChF,GAAGS,IAAcC,EACf,OAAOX,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sCAG5C,MAAMG,MAAEA,EAAKC,KAAEA,GAASd,EAAQe,QAEzBL,EAAOM,SAAgBlB,cAAce,EAAOC,GAEnD,GAAGJ,EACD,OAAOT,EAASO,OAAOE,EAAMO,MAAMR,KAAK,CAAEC,MAAOA,EAAMQ,MAGzDjB,EAASQ,KAAKO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\DELETE.js","names":["getSession","currentUserHasPermission","deleteSetting","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","permError","hasPermission","owner","name","params","result","code","msg"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteSetting from '../../../../../../server/utils/settings/deleteSetting.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot delete settings' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n const [error, result] = await deleteSetting(owner, name);\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(result);\r\n};\r\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,kBAAmB,0EAEXC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBV,WAAW,CAAEW,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAOC,EAAWC,SAAuBf,yBAAyBK,EAAc,iCAChF,GAAGS,IAAcC,EACf,OAAOX,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sCAG5C,MAAMG,MAAEA,EAAKC,KAAEA,GAASd,EAAQe,QAEzBL,EAAOM,SAAgBlB,cAAce,EAAOC,GAEnD,GAAGJ,EACD,OAAOT,EAASO,OAAOE,EAAMO,MAAMR,KAAK,CAAEC,MAAOA,EAAMQ,MAGzDjB,EAASQ,KAAKO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import getSession from"../../../../../../server/utils/auth/getSession.js";import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getSettingWithMetadata from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(s,t)=>{const{owner:e,name:r}=s.params,[i,n]=await getSettingWithMetadata(e,r);if(i)return t.status(i.code).json({error:i.msg});if(!n.isPublic){const e=s.cookies.session_token,[r,i]=await getSession({token:e});if(r||!i)return t.status(401).json({error:"Unauthorized"});const[n,o]=await currentUserHasPermission(e,"system:settings:read");if(n||!o)return t.status(403).json({error:"Forbidden"})}t.json(n)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/settings/[owner]/[name]/GET.js","names":["getSession","currentUserHasPermission","getSettingWithMetadata","async","request","response","owner","name","params","error","setting","status","code","json","msg","isPublic","sessionToken","cookies","session_token","sessionError","session","token","permError","hasPermission"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\n\nexport default async (request, response) => {\n const { owner, name } = request.params;\n\n const [error, setting] = await getSettingWithMetadata(owner, name);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n if(!setting.isPublic){\n const sessionToken = request.cookies.session_token;\n const [sessionError, session] = await getSession({ token: sessionToken });\n if(sessionError || !session){\n return response.status(401).json({ error: 'Unauthorized' });\n }\n\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:read');\n if(permError || !hasPermission){\n return response.status(403).json({ error: 'Forbidden' });\n }\n }\n\n response.json(setting);\n};\n\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,2BAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,MAAEA,EAAKC,KAAEA,GAASH,EAAQI,QAEzBC,EAAOC,SAAiBR,uBAAuBI,EAAOC,GAE7D,GAAGE,EACD,OAAOJ,EAASM,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzD,IAAIJ,EAAQK,SAAS,CACnB,MAAMC,EAAeZ,EAAQa,QAAQC,eAC9BC,EAAcC,SAAiBpB,WAAW,CAAEqB,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,iBAG5C,MAAOa,EAAWC,SAAuBtB,yBAAyBe,EAAc,wBAChF,GAAGM,IAAcC,EACf,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,aAE9C,CAEAJ,EAASQ,KAAKH","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\GET.js","names":["getSession","currentUserHasPermission","getSettingWithMetadata","async","request","response","owner","name","params","error","setting","status","code","json","msg","isPublic","sessionToken","cookies","session_token","sessionError","session","token","permError","hasPermission"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const { owner, name } = request.params;\r\n\r\n const [error, setting] = await getSettingWithMetadata(owner, name);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n if(!setting.isPublic){\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:read');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden' });\r\n }\r\n }\r\n\r\n response.json(setting);\r\n};\r\n\r\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,2BAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,MAAEA,EAAKC,KAAEA,GAASH,EAAQI,QAEzBC,EAAOC,SAAiBR,uBAAuBI,EAAOC,GAE7D,GAAGE,EACD,OAAOJ,EAASM,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzD,IAAIJ,EAAQK,SAAS,CACnB,MAAMC,EAAeZ,EAAQa,QAAQC,eAC9BC,EAAcC,SAAiBpB,WAAW,CAAEqB,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,iBAG5C,MAAOa,EAAWC,SAAuBtB,yBAAyBe,EAAc,wBAChF,GAAGM,IAAcC,EACf,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,aAE9C,CAEAJ,EAASQ,KAAKH","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import getSession from"../../../../../../server/utils/auth/getSession.js";import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import setSetting from"../../../../../../server/utils/settings/setSetting.js";import getSettingWithMetadata from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(s,t)=>{const e=s.cookies.session_token,[r,n]=await getSession({token:e});if(r||!n)return t.status(401).json({error:"Unauthorized"});const{owner:i,name:o}=s.params;if("system"===i){const[s,r]=await currentUserHasPermission(e,"system:settings:update");if(s||!r)return t.status(403).json({error:"Forbidden: Cannot modify system settings"})}else if("custom"===i){const[s,r]=await currentUserHasPermission(e,"system:custom-settings:manage");if(s||!r)return t.status(403).json({error:"Forbidden: Cannot manage custom settings"})}else{const[s,r]=await currentUserHasPermission(e,"system:extension:configure");if(s||!r)return t.status(403).json({error:"Forbidden: Cannot modify extension settings"})}const{value:a,type:u,isPublic:m,description:c}=s.body;if(void 0===a)return t.status(400).json({error:"Value is required"});if("custom"!==i){const[s,e]=await getSettingWithMetadata(i,o);if(s)return t.status(s.code).json({error:s.msg});const[r,n]=await setSetting(i,o,a,e.type,e.isPublic,e.description);return r?t.status(r.code).json({error:r.msg}):t.json(n)}const[g,d]=await setSetting(i,o,a,u,m,c);if(g)return t.status(g.code).json({error:g.msg});t.json(d)};
2
- //# sourceMappingURL=POST.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/settings/[owner]/[name]/POST.js","names":["getSession","currentUserHasPermission","setSetting","getSettingWithMetadata","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","owner","name","params","permError","hasPermission","value","type","isPublic","description","body","undefined","existingError","existing","code","msg","result"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport setSetting from '../../../../../../server/utils/settings/setSetting.js';\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\n\nexport default async (request, response) => {\n const sessionToken = request.cookies.session_token;\n const [sessionError, session] = await getSession({ token: sessionToken });\n if(sessionError || !session){\n return response.status(401).json({ error: 'Unauthorized' });\n }\n\n const { owner, name } = request.params;\n\n if(owner === 'system'){\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:update');\n if(permError || !hasPermission){\n return response.status(403).json({ error: 'Forbidden: Cannot modify system settings' });\n }\n } else if(owner === 'custom'){\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\n if(permError || !hasPermission){\n return response.status(403).json({ error: 'Forbidden: Cannot manage custom settings' });\n }\n } else {\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:extension:configure');\n if(permError || !hasPermission){\n return response.status(403).json({ error: 'Forbidden: Cannot modify extension settings' });\n }\n }\n\n const { value, type, isPublic, description } = request.body;\n\n if(value === undefined){\n return response.status(400).json({ error: 'Value is required' });\n }\n\n /*\n System and extension settings: only value can change, metadata is preserved\n */\n\n if(owner !== 'custom'){\n const [existingError, existing] = await getSettingWithMetadata(owner, name);\n if(existingError){\n return response.status(existingError.code).json({ error: existingError.msg });\n }\n const [error, result] = await setSetting(owner, name, value, existing.type, existing.isPublic, existing.description);\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n return response.json(result);\n }\n\n const [error, result] = await setSetting(owner, name, value, type, isPublic, description);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(result);\n};\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,eAAgB,+DAChBC,2BAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBX,WAAW,CAAEY,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAMC,MAAEA,EAAKC,KAAEA,GAASZ,EAAQa,OAEhC,GAAa,WAAVF,EAAmB,CACpB,MAAOG,EAAWC,SAAuBnB,yBAAyBM,EAAc,0BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,MAAO,GAAa,WAAVC,EAAmB,CAC3B,MAAOG,EAAWC,SAAuBnB,yBAAyBM,EAAc,iCAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,KAAO,CACL,MAAOI,EAAWC,SAAuBnB,yBAAyBM,EAAc,8BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,+CAE9C,CAEA,MAAMM,MAAEA,EAAKC,KAAEA,EAAIC,SAAEA,EAAQC,YAAEA,GAAgBnB,EAAQoB,KAEvD,QAAaC,IAAVL,EACD,OAAOf,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sBAO5C,GAAa,WAAVC,EAAmB,CACpB,MAAOW,EAAeC,SAAkBzB,uBAAuBa,EAAOC,GACtE,GAAGU,EACD,OAAOrB,EAASO,OAAOc,EAAcE,MAAMf,KAAK,CAAEC,MAAOY,EAAcG,MAEzE,MAAOf,EAAOgB,SAAgB7B,WAAWc,EAAOC,EAAMI,EAAOO,EAASN,KAAMM,EAASL,SAAUK,EAASJ,aACxG,OAAGT,EACMT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAElDxB,EAASQ,KAAKiB,EACvB,CAEA,MAAOhB,EAAOgB,SAAgB7B,WAAWc,EAAOC,EAAMI,EAAOC,EAAMC,EAAUC,GAE7E,GAAGT,EACD,OAAOT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAGzDxB,EAASQ,KAAKiB","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\settings\\[owner]\\[name]\\POST.js","names":["getSession","currentUserHasPermission","setSetting","getSettingWithMetadata","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","status","json","error","owner","name","params","permError","hasPermission","value","type","isPublic","description","body","undefined","existingError","existing","code","msg","result"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../../server/utils/auth/getSession.js';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setSetting from '../../../../../../server/utils/settings/setSetting.js';\r\nimport getSettingWithMetadata from '../../../../../../server/utils/settings/getSettingWithMetadata.js';\r\n\r\nexport default async (request, response) => {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n if(sessionError || !session){\r\n return response.status(401).json({ error: 'Unauthorized' });\r\n }\r\n\r\n const { owner, name } = request.params;\r\n\r\n if(owner === 'system'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:settings:update');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify system settings' });\r\n }\r\n } else if(owner === 'custom'){\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:custom-settings:manage');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot manage custom settings' });\r\n }\r\n } else {\r\n const [permError, hasPermission] = await currentUserHasPermission(sessionToken, 'system:extension:configure');\r\n if(permError || !hasPermission){\r\n return response.status(403).json({ error: 'Forbidden: Cannot modify extension settings' });\r\n }\r\n }\r\n\r\n const { value, type, isPublic, description } = request.body;\r\n\r\n if(value === undefined){\r\n return response.status(400).json({ error: 'Value is required' });\r\n }\r\n\r\n /*\r\n System and extension settings: only value can change, metadata is preserved\r\n */\r\n\r\n if(owner !== 'custom'){\r\n const [existingError, existing] = await getSettingWithMetadata(owner, name);\r\n if(existingError){\r\n return response.status(existingError.code).json({ error: existingError.msg });\r\n }\r\n const [error, result] = await setSetting(owner, name, value, existing.type, existing.isPublic, existing.description);\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n return response.json(result);\r\n }\r\n\r\n const [error, result] = await setSetting(owner, name, value, type, isPublic, description);\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(result);\r\n};\r\n"],"mappings":"OAAOA,eAAgB,2DAChBC,6BAA8B,gFAC9BC,eAAgB,+DAChBC,2BAA4B,mFAEpBC,MAAOC,EAASC,KAC7B,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBX,WAAW,CAAEY,MAAOL,IAC1D,GAAGG,IAAiBC,EAClB,OAAOL,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,iBAG5C,MAAMC,MAAEA,EAAKC,KAAEA,GAASZ,EAAQa,OAEhC,GAAa,WAAVF,EAAmB,CACpB,MAAOG,EAAWC,SAAuBnB,yBAAyBM,EAAc,0BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,MAAO,GAAa,WAAVC,EAAmB,CAC3B,MAAOG,EAAWC,SAAuBnB,yBAAyBM,EAAc,iCAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,4CAE9C,KAAO,CACL,MAAOI,EAAWC,SAAuBnB,yBAAyBM,EAAc,8BAChF,GAAGY,IAAcC,EACf,OAAOd,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,+CAE9C,CAEA,MAAMM,MAAEA,EAAKC,KAAEA,EAAIC,SAAEA,EAAQC,YAAEA,GAAgBnB,EAAQoB,KAEvD,QAAaC,IAAVL,EACD,OAAOf,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,sBAO5C,GAAa,WAAVC,EAAmB,CACpB,MAAOW,EAAeC,SAAkBzB,uBAAuBa,EAAOC,GACtE,GAAGU,EACD,OAAOrB,EAASO,OAAOc,EAAcE,MAAMf,KAAK,CAAEC,MAAOY,EAAcG,MAEzE,MAAOf,EAAOgB,SAAgB7B,WAAWc,EAAOC,EAAMI,EAAOO,EAASN,KAAMM,EAASL,SAAUK,EAASJ,aACxG,OAAGT,EACMT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAElDxB,EAASQ,KAAKiB,EACvB,CAEA,MAAOhB,EAAOgB,SAAgB7B,WAAWc,EAAOC,EAAMI,EAAOC,EAAMC,EAAUC,GAE7E,GAAGT,EACD,OAAOT,EAASO,OAAOE,EAAMc,MAAMf,KAAK,CAAEC,MAAOA,EAAMe,MAGzDxB,EAASQ,KAAKiB","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import getPublicSettings from"../../../../../server/utils/settings/getPublicSettings.js";export default async e=>{const[t,s]=await getPublicSettings();return t?new Response(JSON.stringify({error:t.msg}),{status:t.code,headers:{"Content-Type":"application/json"}}):new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json"}})};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\public\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/settings/public/GET.js","names":["getPublicSettings","async","request","error","settings","Response","JSON","stringify","msg","status","code","headers"],"sources":["0"],"sourcesContent":["import getPublicSettings from '../../../../../server/utils/settings/getPublicSettings.js';\n\nexport default async (request) => {\n const [error, settings] = await getPublicSettings();\n\n if(error){\n return new Response(JSON.stringify({ error: error.msg }), {\n status: error.code,\n headers: { 'Content-Type': 'application/json' }\n });\n }\n\n return new Response(JSON.stringify(settings), {\n headers: { 'Content-Type': 'application/json' }\n });\n};\n"],"mappings":"OAAOA,sBAAuB,2EAEfC,MAAOC,IACpB,MAAOC,EAAOC,SAAkBJ,oBAEhC,OAAGG,EACM,IAAIE,SAASC,KAAKC,UAAU,CAAEJ,MAAOA,EAAMK,MAAQ,CACxDC,OAAQN,EAAMO,KACdC,QAAS,CAAE,eAAgB,sBAIxB,IAAIN,SAASC,KAAKC,UAAUH,GAAW,CAC5CO,QAAS,CAAE,eAAgB","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\settings\\public\\GET.js","names":["getPublicSettings","async","request","error","settings","Response","JSON","stringify","msg","status","code","headers"],"sources":["0"],"sourcesContent":["import getPublicSettings from '../../../../../server/utils/settings/getPublicSettings.js';\r\n\r\nexport default async (request) => {\r\n const [error, settings] = await getPublicSettings();\r\n\r\n if(error){\r\n return new Response(JSON.stringify({ error: error.msg }), {\r\n status: error.code,\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n return new Response(JSON.stringify(settings), {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n};\r\n"],"mappings":"OAAOA,sBAAuB,2EAEfC,MAAOC,IACpB,MAAOC,EAAOC,SAAkBJ,oBAEhC,OAAGG,EACM,IAAIE,SAASC,KAAKC,UAAU,CAAEJ,MAAOA,EAAMK,MAAQ,CACxDC,OAAQN,EAAMO,KACdC,QAAS,CAAE,eAAgB,sBAIxB,IAAIN,SAASC,KAAKC,UAAUH,GAAW,CAC5CO,QAAS,CAAE,eAAgB","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deleteTemplate from"../../../../server/utils/templates/deleteTemplate.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,s)=>{const r=e.cookies.session_token,[t,o]=await currentUserHasPermission(r,"system:pages:delete");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{files:i}=e.body;if(!i?.length)return s.status(400).json({error:"No files specified"});const[n,a]=await deleteTemplate({rootDir:rootDir,files:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
2
- //# sourceMappingURL=DELETE.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/DELETE.js","names":["resolve","currentUserHasPermission","deleteTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport deleteTemplate from '../../../../server/utils/templates/deleteTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { files } = request.body;\n\n\tif(!files?.length){\n\t\treturn response.status(400).json({ error: 'No files specified' });\n\t}\n\n\tconst [error, data] = await deleteTemplate({ rootDir, files });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,mBAAoB,uDAE3B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,KAE1B,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,MAAOA,EAAOK,SAAcnB,eAAe,CAAEC,gBAASe,UAEtD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\templates\\DELETE.js","names":["resolve","currentUserHasPermission","deleteTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteTemplate from '../../../../server/utils/templates/deleteTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body;\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tconst [error, data] = await deleteTemplate({ 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(data);\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,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,KAE1B,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,MAAOA,EAAOK,SAAcnB,eAAe,CAAEC,gBAASe,UAEtD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import listTemplates from"../../../../server/utils/pages/listTemplates.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listTemplates({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport listTemplates from '../../../../server/utils/pages/listTemplates.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst [error, data] = await listTemplates({ rootDir });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,kBAAmB,kDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,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\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,kBAAmB,kDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,cAAc,CAAEC,kBAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getSession from"../../../../server/utils/auth/getSession.js";import createTemplate from"../../../../server/utils/templates/createTemplate.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:create");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{directory:i,name:a,copyFrom:n}=e.body;if(!a)return r.status(400).json({error:"Template name is required"});const[,m]=await getSession({token:s}),u=m?.user?.name||"",[c,p]=await createTemplate({rootDir:rootDir,directory:i,name:a,author:u,copyFrom:n});if(c)return r.status(c.code).json({error:c.msg});r.status(201).json(p)};
2
- //# sourceMappingURL=POST.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/POST.js","names":["resolve","currentUserHasPermission","getSession","createTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","copyFrom","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getSession from '../../../../server/utils/auth/getSession.js';\nimport createTemplate from '../../../../server/utils/templates/createTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { directory, name, copyFrom } = request.body;\n\n\tif(!name){\n\t\treturn response.status(400).json({ error: 'Template name is required' });\n\t}\n\n\tconst [, sessionData] = await getSession({ token });\n\tconst author = sessionData?.user?.name || '';\n\n\tconst [error, data] = await createTemplate({ rootDir, directory, name, author, copyFrom });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.status(201).json(data);\n};\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,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,GAAad,EAAQe,KAE9C,IAAIF,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEM,SAAqBrB,WAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAML,MAAQ,IAEnCH,EAAOS,SAAcvB,eAAe,CAAEC,gBAASe,YAAWC,OAAMI,SAAQH,aAE/E,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\templates\\POST.js","names":["resolve","currentUserHasPermission","getSession","createTemplate","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","copyFrom","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 createTemplate from '../../../../server/utils/templates/createTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, copyFrom } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Template 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 createTemplate({ rootDir, directory, name, author, copyFrom });\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,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,GAAad,EAAQe,KAE9C,IAAIF,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEM,SAAqBrB,WAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAML,MAAQ,IAEnCH,EAAOS,SAAcvB,eAAe,CAAEC,gBAASe,YAAWC,OAAMI,SAAQH,aAE/E,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import disableTemplate from"../../../../../server/utils/templates/disableTemplate.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:update");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{file:i}=s.body||{};if(!i)return r.status(400).json({error:"File path is required"});const[a,n]=await disableTemplate({rootDir:rootDir,file:i});if(a)return r.status(a.code).json({error:a.msg});r.json(n)};
2
- //# sourceMappingURL=PUT.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/disable/PUT.js","names":["resolve","currentUserHasPermission","disableTemplate","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';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport disableTemplate from '../../../../../server/utils/templates/disableTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file } = request.body || {};\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tconst [error, result] = await disableTemplate({ rootDir, file });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(result);\n};\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\\templates\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableTemplate","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 disableTemplate from '../../../../../server/utils/templates/disableTemplate.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 disableTemplate({ 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,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import enableTemplate from"../../../../../server/utils/templates/enableTemplate.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:update");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{file:i}=e.body||{};if(!i)return r.status(400).json({error:"File path is required"});const[n,a]=await enableTemplate({rootDir:rootDir,file:i});if(n)return r.status(n.code).json({error:n.msg});r.json(a)};
2
- //# sourceMappingURL=PUT.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/enable/PUT.js","names":["resolve","currentUserHasPermission","enableTemplate","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';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport enableTemplate from '../../../../../server/utils/templates/enableTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file } = request.body || {};\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tconst [error, result] = await enableTemplate({ rootDir, file });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(result);\n};\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\\templates\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableTemplate","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 enableTemplate from '../../../../../server/utils/templates/enableTemplate.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 enableTemplate({ 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,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getTemplate from"../../../../../server/utils/templates/getTemplate.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:read");if(t)return e.status(t.code).json({error:t.msg});if(!o)return e.status(403).json({error:"Insufficient permissions"});const{file:i}=r.query;if(!i)return e.status(400).json({error:"File path is required"});const[n,a]=await getTemplate({rootDir:rootDir,file:i});if(n)return e.status(n.code).json({error:n.msg});e.json(a)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/file/GET.js","names":["resolve","currentUserHasPermission","getTemplate","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';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getTemplate from '../../../../../server/utils/templates/getTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file } = request.query;\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tconst [error, data] = await getTemplate({ rootDir, file });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,gBAAiB,uDAExB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,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\\templates\\file\\GET.js","names":["resolve","currentUserHasPermission","getTemplate","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 getTemplate from '../../../../../server/utils/templates/getTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getTemplate({ 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,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,YAAY,CAAEC,gBAASe,SAEnD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import moveTemplate from"../../../../../server/utils/templates/moveTemplate.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:update");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{file:i,newFile:n}=e.body;if(!i)return r.status(400).json({error:"File path is required"});if(!n)return r.status(400).json({error:"New file path is required"});const[a,m]=await moveTemplate({rootDir:rootDir,file:i,newFile:n});if(a)return r.status(a.code).json({error:a.msg});r.json(m)};
2
- //# sourceMappingURL=PATCH.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/file/PATCH.js","names":["resolve","currentUserHasPermission","moveTemplate","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';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport moveTemplate from '../../../../../server/utils/templates/moveTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file, newFile } = request.body;\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tif(!newFile){\n\t\treturn response.status(400).json({ error: 'New file path is required' });\n\t}\n\n\tconst [error, data] = await moveTemplate({ rootDir, file, newFile });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,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\\templates\\file\\PATCH.js","names":["resolve","currentUserHasPermission","moveTemplate","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 moveTemplate from '../../../../../server/utils/templates/moveTemplate.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 moveTemplate({ 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,2 +1,2 @@
1
1
  import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import updateTemplate from"../../../../../server/utils/templates/updateTemplate.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,name:a,author:n,markup:m}=r.body;if(!i)return e.status(400).json({error:"File path is required"});const[u,p]=await updateTemplate({rootDir:rootDir,file:i,name:a,author:n,markup:m});if(u)return e.status(u.code).json({error:u.msg});e.json(p)};
2
- //# sourceMappingURL=PUT.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/templates/file/PUT.js","names":["resolve","currentUserHasPermission","updateTemplate","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';\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport updateTemplate from '../../../../../server/utils/templates/updateTemplate.js';\n\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { file, name, author, markup } = request.body;\n\n\tif(!file){\n\t\treturn response.status(400).json({ error: 'File path is required' });\n\t}\n\n\tconst [error, data] = await updateTemplate({ rootDir, file, name, author, markup });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,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,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\\templates\\file\\PUT.js","names":["resolve","currentUserHasPermission","updateTemplate","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 updateTemplate from '../../../../../server/utils/templates/updateTemplate.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, 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 updateTemplate({ 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,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,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,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deleteUser from"../../../../server/utils/users/deleteUser.js";export default async(s,r)=>{try{const e=s.cookies.session_token,{ids:t}=s.body;if(!t||!Array.isArray(t)||0===t.length)return r.status(400).json({error:"IDs array is required"});const[o,n]=await currentUserHasPermission(e,"system:user:delete");if(o)return r.status(o.code).json({error:o.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const i=[],u=[];for(const s of t){const[r,e]=await deleteUser(s);r?u.push({id:s,error:r.msg}):i.push(e)}if(u.length>0)return r.status(207).json({deleted:i,errors:u});r.json({deleted:i})}catch(s){r.status(500).json({error:s.message})}};
2
- //# sourceMappingURL=DELETE.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/DELETE.js","names":["currentUserHasPermission","deleteUser","async","request","response","token","cookies","session_token","ids","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","results","errors","id","result","push","deleted","message"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport deleteUser from '../../../../server/utils/users/deleteUser.js';\n\nexport default async (request, response) => {\n try {\n const token = request.cookies.session_token;\n const { ids } = request.body;\n\n if(!ids || !Array.isArray(ids) || ids.length === 0){\n return response.status(400).json({ error: 'IDs array is required' });\n }\n\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:delete');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const results = [];\n const errors = [];\n\n for(const id of ids){\n const [error, result] = await deleteUser(id);\n\n if(error){\n errors.push({ id, error: error.msg });\n } else {\n results.push(result);\n }\n }\n\n if(errors.length > 0){\n return response.status(207).json({ deleted: results, errors });\n }\n\n response.json({ deleted: results });\n } catch(error) {\n response.status(500).json({ error: error.message });\n }\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,eAAgB,8DAERC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,IAAEA,GAAQL,EAAQM,KAExB,IAAID,IAAQE,MAAMC,QAAQH,IAAuB,IAAfA,EAAII,OACpC,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,0BAG5C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,sBAEzE,GAAGW,EACD,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAMd,EAAI,CAClB,MAAOO,EAAOQ,SAAgBtB,WAAWqB,GAEtCP,EACDM,EAAOG,KAAK,CAAEF,KAAIP,MAAOA,EAAMI,MAE/BC,EAAQI,KAAKD,EAEjB,CAEA,GAAGF,EAAOT,OAAS,EACjB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEW,QAASL,EAASC,WAGvDjB,EAASU,KAAK,CAAEW,QAASL,GAC3B,CAAE,MAAML,GACNX,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAOA,EAAMW,SAC3C","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\DELETE.js","names":["currentUserHasPermission","deleteUser","async","request","response","token","cookies","session_token","ids","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","results","errors","id","result","push","deleted","message"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deleteUser from '../../../../server/utils/users/deleteUser.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const token = request.cookies.session_token;\r\n const { ids } = request.body;\r\n\r\n if(!ids || !Array.isArray(ids) || ids.length === 0){\r\n return response.status(400).json({ error: 'IDs array is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:delete');\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 results = [];\r\n const errors = [];\r\n\r\n for(const id of ids){\r\n const [error, result] = await deleteUser(id);\r\n\r\n if(error){\r\n errors.push({ id, error: error.msg });\r\n } else {\r\n results.push(result);\r\n }\r\n }\r\n\r\n if(errors.length > 0){\r\n return response.status(207).json({ deleted: results, errors });\r\n }\r\n\r\n response.json({ deleted: results });\r\n } catch(error) {\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,eAAgB,8DAERC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,IAAEA,GAAQL,EAAQM,KAExB,IAAID,IAAQE,MAAMC,QAAQH,IAAuB,IAAfA,EAAII,OACpC,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,0BAG5C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,sBAEzE,GAAGW,EACD,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAMd,EAAI,CAClB,MAAOO,EAAOQ,SAAgBtB,WAAWqB,GAEtCP,EACDM,EAAOG,KAAK,CAAEF,KAAIP,MAAOA,EAAMI,MAE/BC,EAAQI,KAAKD,EAEjB,CAEA,GAAGF,EAAOT,OAAS,EACjB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEW,QAASL,EAASC,WAGvDjB,EAASU,KAAK,CAAEW,QAASL,GAC3B,CAAE,MAAML,GACNX,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAOA,EAAMW,SAC3C","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getUsers from"../../../../server/utils/users/getUsers.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:user:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"You do not have permission to view users"});const i=parseInt(s.query.limit)||50,n=parseInt(s.query.offset)||0,[u,a]=await getUsers({limit:i,offset:n});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/GET.js","names":["currentUserHasPermission","getUsers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getUsers from '../../../../server/utils/users/getUsers.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'You do not have permission to view users' });\n }\n\n const limit = parseInt(request.query.limit) || 50;\n const offset = parseInt(request.query.offset) || 0;\n const [error, data] = await getUsers({ limit, offset });\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(data);\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,aAAc,4DAENC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6CAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,GAC1CL,EAAOM,SAAclB,SAAS,CAAEc,QAAOG,WAE9C,GAAGL,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\GET.js","names":["currentUserHasPermission","getUsers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUsers from '../../../../server/utils/users/getUsers.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:user: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: 'You do not have permission to view users' });\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 [error, data] = await getUsers({ limit, offset });\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,aAAc,4DAENC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6CAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,GAC1CL,EAAOM,SAAclB,SAAS,CAAEc,QAAOG,WAE9C,GAAGL,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updateUser from"../../../../server/utils/users/updateUser.js";export default async(e,s)=>{const r=e.cookies.session_token,{id:i,name:t,email:o,emailVerified:n,createdAt:a}=e.body;if(!i)return s.status(400).json({error:"User ID is required"});const[u,d]=await currentUserHasPermission(r,"system:user:update");if(u)return s.status(u.code).json({error:u.msg});if(!d)return s.status(403).json({error:"Insufficient permissions"});const m={};void 0!==t&&(m.name=t),void 0!==o&&(m.email=o),void 0!==n&&(m.emailVerified=n),void 0!==a&&(m.createdAt=new Date(a));const[c,f]=await updateUser(i,m);if(c)return s.status(c.code).json({error:c.msg});s.json(f)};
2
- //# sourceMappingURL=PATCH.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/PATCH.js","names":["currentUserHasPermission","updateUser","async","request","response","token","cookies","session_token","id","name","email","emailVerified","createdAt","body","status","json","error","permError","hasPermission","code","msg","updates","undefined","Date","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport updateUser from '../../../../server/utils/users/updateUser.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const { id, name, email, emailVerified, createdAt } = request.body;\n \n if(!id){\n return response.status(400).json({ error: 'User ID is required' });\n }\n\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:update');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n \n const updates = {};\n if(name !== undefined) updates.name = name;\n if(email !== undefined) updates.email = email;\n if(emailVerified !== undefined) updates.emailVerified = emailVerified;\n if(createdAt !== undefined) updates.createdAt = new Date(createdAt);\n \n const [error, result] = await updateUser(id, updates);\n \n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n \n response.json(result);\n};\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,eAAgB,8DAERC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,GAAEA,EAAEC,KAAEA,EAAIC,MAAEA,EAAKC,cAAEA,EAAaC,UAAEA,GAAcT,EAAQU,KAE9D,IAAIL,EACF,OAAOJ,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG5C,MAAOC,EAAWC,SAAuBlB,yBAAyBK,EAAO,sBAEzE,GAAGY,EACD,OAAOb,EAASU,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOd,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,CAAC,OACLC,IAATb,IAAoBY,EAAQZ,KAAOA,QACzBa,IAAVZ,IAAqBW,EAAQX,MAAQA,QACnBY,IAAlBX,IAA6BU,EAAQV,cAAgBA,QACvCW,IAAdV,IAAyBS,EAAQT,UAAY,IAAIW,KAAKX,IAEzD,MAAOI,EAAOQ,SAAgBvB,WAAWO,EAAIa,GAE7C,GAAGL,EACD,OAAOZ,EAASU,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGzDhB,EAASW,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\PATCH.js","names":["currentUserHasPermission","updateUser","async","request","response","token","cookies","session_token","id","name","email","emailVerified","createdAt","body","status","json","error","permError","hasPermission","code","msg","updates","undefined","Date","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateUser from '../../../../server/utils/users/updateUser.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const { id, name, email, emailVerified, createdAt } = request.body;\r\n \r\n if(!id){\r\n return response.status(400).json({ error: 'User ID is required' });\r\n }\r\n\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:update');\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 updates = {};\r\n if(name !== undefined) updates.name = name;\r\n if(email !== undefined) updates.email = email;\r\n if(emailVerified !== undefined) updates.emailVerified = emailVerified;\r\n if(createdAt !== undefined) updates.createdAt = new Date(createdAt);\r\n \r\n const [error, result] = await updateUser(id, updates);\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(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,eAAgB,8DAERC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,GAAEA,EAAEC,KAAEA,EAAIC,MAAEA,EAAKC,cAAEA,EAAaC,UAAEA,GAAcT,EAAQU,KAE9D,IAAIL,EACF,OAAOJ,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG5C,MAAOC,EAAWC,SAAuBlB,yBAAyBK,EAAO,sBAEzE,GAAGY,EACD,OAAOb,EAASU,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGjE,IAAIF,EACF,OAAOd,EAASU,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG5C,MAAMK,EAAU,CAAC,OACLC,IAATb,IAAoBY,EAAQZ,KAAOA,QACzBa,IAAVZ,IAAqBW,EAAQX,MAAQA,QACnBY,IAAlBX,IAA6BU,EAAQV,cAAgBA,QACvCW,IAAdV,IAAyBS,EAAQT,UAAY,IAAIW,KAAKX,IAEzD,MAAOI,EAAOQ,SAAgBvB,WAAWO,EAAIa,GAE7C,GAAGL,EACD,OAAOZ,EAASU,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGzDhB,EAASW,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getUserById from"../../../../../server/utils/users/getUserById.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:user:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{userid:i}=s.params,[n,u]=await getUserById(i);if(n)return r.status(n.code).json({error:n.msg});r.json(u)};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/[userid]/GET.js","names":["currentUserHasPermission","getUserById","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","user"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getUserById from '../../../../../server/utils/users/getUserById.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:user:read');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { userid } = request.params;\n const [error, user] = await getUserById(userid);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(user);\n};\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,gBAAiB,kEAETC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACpBH,EAAOI,SAAchB,YAAYc,GAExC,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\[userid]\\GET.js","names":["currentUserHasPermission","getUserById","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","user"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUserById from '../../../../../server/utils/users/getUserById.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:user: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 { userid } = request.params;\r\n const [error, user] = await getUserById(userid);\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(user);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,gBAAiB,kEAETC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,oBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACpBH,EAAOI,SAAchB,YAAYc,GAExC,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import removeUserFromGroup from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:update");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{userid:i}=r.params,{groupName:n}=r.body;if(!n)return s.status(400).json({error:"Group name is required"});const[u,m]=await removeUserFromGroup(i,n);if(u)return s.status(u.code).json({error:u.msg});s.json(m)};
2
- //# sourceMappingURL=DELETE.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/[userid]/groups/DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","groupName","body","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { userid } = request.params;\n const { groupName } = request.body;\n\n if(!groupName){\n return response.status(400).json({ error: 'Group name is required' });\n }\n\n const [error, result] = await removeUserFromGroup(userid, groupName);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(result);\n};\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,wBAAyB,8EAEjBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,uBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACrBC,UAAEA,GAAcd,EAAQe,KAE9B,IAAID,EACF,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,2BAG5C,MAAOA,EAAOM,SAAgBlB,oBAAoBc,EAAQE,GAE1D,GAAGJ,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\[userid]\\groups\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","groupName","body","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n const token = request.cookies.session_token;\r\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\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 { userid } = request.params;\r\n const { groupName } = request.body;\r\n\r\n if(!groupName){\r\n return response.status(400).json({ error: 'Group name is required' });\r\n }\r\n\r\n const [error, result] = await removeUserFromGroup(userid, groupName);\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(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,wBAAyB,8EAEjBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,uBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,OAAEA,GAAWZ,EAAQa,QACrBC,UAAEA,GAAcd,EAAQe,KAE9B,IAAID,EACF,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,2BAG5C,MAAOA,EAAOM,SAAgBlB,oBAAoBc,EAAQE,GAE1D,GAAGJ,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getUserGroups from"../../../../../../server/utils/permissions/getUserGroups.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:group:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{userid:i}=s.params,[n,u]=await getUserGroups(i);if(n)return r.status(n.code).json({error:n.msg});const a=parseInt(s.query.limit)||50,m=parseInt(s.query.offset)||0,p=u.length;r.json({groups:u.slice(m,m+a),total:p,limit:a,offset:m})};
2
- //# sourceMappingURL=GET.js.map
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src/kempo/api/user/[userid]/groups/GET.js","names":["currentUserHasPermission","getUserGroups","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","allGroups","limit","parseInt","query","offset","total","length","groups","slice"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getUserGroups from '../../../../../../server/utils/permissions/getUserGroups.js';\n\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { userid } = request.params;\n const [error, allGroups] = await getUserGroups(userid);\n\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n const limit = parseInt(request.query.limit) || 50;\n const offset = parseInt(request.query.offset) || 0;\n const total = allGroups.length;\n response.json({ groups: allGroups.slice(offset, offset + limit), total, limit, offset });\n};\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,kBAAmB,6EAEXC,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,OAAEA,GAAWZ,EAAQa,QACpBH,EAAOI,SAAmBhB,cAAcc,GAE/C,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzD,MAAMI,EAAQC,SAAShB,EAAQiB,MAAMF,QAAU,GACzCG,EAASF,SAAShB,EAAQiB,MAAMC,SAAW,EAC3CC,EAAQL,EAAUM,OACxBnB,EAASQ,KAAK,CAAEY,OAAQP,EAAUQ,MAAMJ,EAAQA,EAASH,GAAQI,QAAOJ,QAAOG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\user\\[userid]\\groups\\GET.js","names":["currentUserHasPermission","getUserGroups","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","userid","params","allGroups","limit","parseInt","query","offset","total","length","groups","slice"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getUserGroups from '../../../../../../server/utils/permissions/getUserGroups.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 { userid } = request.params;\r\n const [error, allGroups] = await getUserGroups(userid);\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\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 total = allGroups.length;\r\n response.json({ groups: allGroups.slice(offset, offset + limit), total, limit, offset });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,kBAAmB,6EAEXC,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,OAAEA,GAAWZ,EAAQa,QACpBH,EAAOI,SAAmBhB,cAAcc,GAE/C,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzD,MAAMI,EAAQC,SAAShB,EAAQiB,MAAMF,QAAU,GACzCG,EAASF,SAAShB,EAAQiB,MAAMC,SAAW,EAC3CC,EAAQL,EAAUM,OACxBnB,EAASQ,KAAK,CAAEY,OAAQP,EAAUQ,MAAMJ,EAAQA,EAASH,GAAQI,QAAOJ,QAAOG","ignoreList":[]}