kempo 4.2.4 → 4.2.7

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 (856) hide show
  1. package/LICENSE.md +60 -0
  2. package/README.md +427 -0
  3. package/app-drizzle.config.js +14 -0
  4. package/app-public/.config.json +25 -0
  5. package/app-public/account/index.page.html +110 -0
  6. package/app-public/account/split2.template.html +36 -0
  7. package/app-public/default.template.html +24 -0
  8. package/app-public/forgot-password/index.page.html +79 -0
  9. package/app-public/index.page.html +16 -0
  10. package/app-public/init.js +2 -0
  11. package/app-public/kempo-global.global-disabled.html +0 -0
  12. package/app-public/kempo-global.global.html +6 -0
  13. package/app-public/login/index.page.html +51 -0
  14. package/app-public/manifest.json +87 -0
  15. package/app-public/media/hexagon.svg +22 -0
  16. package/app-public/media/icon-maskable.png +0 -0
  17. package/app-public/media/icon.svg +1 -0
  18. package/app-public/media/icon128.png +0 -0
  19. package/app-public/media/icon144.png +0 -0
  20. package/app-public/media/icon152.png +0 -0
  21. package/app-public/media/icon16-48.svg +19 -0
  22. package/app-public/media/icon16.png +0 -0
  23. package/app-public/media/icon192.png +0 -0
  24. package/app-public/media/icon256.png +0 -0
  25. package/app-public/media/icon32.png +0 -0
  26. package/app-public/media/icon384.png +0 -0
  27. package/app-public/media/icon48.png +0 -0
  28. package/app-public/media/icon512.png +0 -0
  29. package/app-public/media/icon64.png +0 -0
  30. package/app-public/media/icon72.png +0 -0
  31. package/app-public/media/icon96.png +0 -0
  32. package/app-public/media/kempo-fist.svg +21 -0
  33. package/app-public/media/nsx.jpg +0 -0
  34. package/app-public/nav.fragment.html +41 -0
  35. package/app-public/new-page.page.html +17 -0
  36. package/app-public/register/index.page.html +60 -0
  37. package/app-public/reset-password/[token]/index.html +123 -0
  38. package/app-public/reset-password/[token]/index.page.html +75 -0
  39. package/app-public/styles.css +1 -0
  40. package/app-public/test.page.html +20 -0
  41. package/app-public/verify-email/[token]/index.html +107 -0
  42. package/app-public/verify-email/[token]/index.page.html +59 -0
  43. package/app-public/verify-email/index.page.html +21 -0
  44. package/app-server/db/schema.js +19 -0
  45. package/bin/cli.js +468 -0
  46. package/dist/admin/accounts/groups/[name]/index.page.html +286 -0
  47. package/dist/admin/accounts/groups/index.page.html +171 -0
  48. package/dist/admin/accounts/permissions/index.page.html +193 -0
  49. package/dist/admin/accounts/users/[id]/index.page.html +314 -0
  50. package/dist/admin/accounts/users/index.page.html +160 -0
  51. package/dist/admin/components/AddGroupControl.js +6 -0
  52. package/dist/admin/components/AddGroupControl.js.map +1 -0
  53. package/dist/admin/components/ClearExpiredSessionsControl.js +6 -0
  54. package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -0
  55. package/dist/admin/components/FragmentEditor.js +101 -0
  56. package/dist/admin/components/FragmentEditor.js.map +1 -0
  57. package/dist/admin/components/GlobalContentEditor.js +85 -0
  58. package/dist/admin/components/GlobalContentEditor.js.map +1 -0
  59. package/dist/admin/components/GroupDeleteSelected.js +6 -0
  60. package/dist/admin/components/GroupDeleteSelected.js.map +1 -0
  61. package/dist/admin/components/GroupRemoveRecord.js +6 -0
  62. package/dist/admin/components/GroupRemoveRecord.js.map +1 -0
  63. package/dist/admin/components/Monaco.js +2 -0
  64. package/dist/admin/components/Monaco.js.map +1 -0
  65. package/dist/admin/components/PageEditor.js +138 -0
  66. package/dist/admin/components/PageEditor.js.map +1 -0
  67. package/dist/admin/components/TableRowDelete.js +4 -0
  68. package/dist/admin/components/TableRowDelete.js.map +1 -0
  69. package/dist/admin/components/TableRowLink.js +8 -0
  70. package/dist/admin/components/TableRowLink.js.map +1 -0
  71. package/dist/admin/components/TemplateEditor.js +125 -0
  72. package/dist/admin/components/TemplateEditor.js.map +1 -0
  73. package/dist/admin/components/ValueEditor.js +40 -0
  74. package/dist/admin/components/ValueEditor.js.map +1 -0
  75. package/dist/admin/components/tableControls/AddMember.js +6 -0
  76. package/dist/admin/components/tableControls/AddMember.js.map +1 -0
  77. package/dist/admin/components/tableControls/AddPermission.js +6 -0
  78. package/dist/admin/components/tableControls/AddPermission.js.map +1 -0
  79. package/dist/admin/components/tableControls/InstallExtension.js +6 -0
  80. package/dist/admin/components/tableControls/InstallExtension.js.map +1 -0
  81. package/dist/admin/components/tableControls/UninstallExtension.js +6 -0
  82. package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -0
  83. package/dist/admin/content/fragments/edit/index.page.html +4 -0
  84. package/dist/admin/content/fragments/index.page.html +169 -0
  85. package/dist/admin/content/globals/edit/index.page.html +4 -0
  86. package/dist/admin/content/globals/index.page.html +152 -0
  87. package/dist/admin/content/pages/edit/index.page.html +4 -0
  88. package/dist/admin/content/pages/index.page.html +218 -0
  89. package/dist/admin/content/templates/edit/index.page.html +4 -0
  90. package/dist/admin/content/templates/index.page.html +193 -0
  91. package/dist/admin/default.template.html +9 -0
  92. package/dist/admin/extensions/index.page.html +32 -0
  93. package/dist/admin/icons/article.svg +1 -0
  94. package/dist/admin/icons/browse.svg +1 -0
  95. package/dist/admin/icons/cards_stack.svg +1 -0
  96. package/dist/admin/icons/content.svg +1 -0
  97. package/dist/admin/icons/docs.svg +1 -0
  98. package/dist/admin/icons/drive_file_move.svg +1 -0
  99. package/dist/admin/icons/extension.svg +1 -0
  100. package/dist/admin/icons/globe.svg +1 -0
  101. package/dist/admin/icons/group.svg +1 -0
  102. package/dist/admin/icons/lock.svg +1 -0
  103. package/dist/admin/icons/lock_add.svg +1 -0
  104. package/dist/admin/icons/manage-accounts.svg +1 -0
  105. package/dist/admin/icons/person.svg +1 -0
  106. package/dist/admin/icons/person_add.svg +1 -0
  107. package/dist/admin/icons/preview.svg +1 -0
  108. package/dist/admin/icons/save.svg +1 -0
  109. package/dist/admin/icons/segment.svg +1 -0
  110. package/dist/admin/icons/timer_off.svg +1 -0
  111. package/dist/admin/icons/web.svg +1 -0
  112. package/dist/admin/index.page.html +4 -0
  113. package/dist/admin/init.js +2 -0
  114. package/dist/admin/init.js.map +1 -0
  115. package/dist/admin/known-extensions.json +1 -0
  116. package/dist/admin/nav.fragment.html +20 -0
  117. package/dist/admin/settings/[owner]/[name]/index.page.html +260 -0
  118. package/dist/admin/settings/index.page.html +203 -0
  119. package/dist/kempo/api/admin-globals/DELETE.js +2 -0
  120. package/dist/kempo/api/admin-globals/DELETE.js.map +1 -0
  121. package/dist/kempo/api/admin-globals/GET.js +2 -0
  122. package/dist/kempo/api/admin-globals/GET.js.map +1 -0
  123. package/dist/kempo/api/admin-globals/POST.js +2 -0
  124. package/dist/kempo/api/admin-globals/POST.js.map +1 -0
  125. package/dist/kempo/api/admin-globals/[id]/GET.js +2 -0
  126. package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -0
  127. package/dist/kempo/api/admin-globals/[id]/PUT.js +2 -0
  128. package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -0
  129. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +2 -0
  130. package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -0
  131. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +2 -0
  132. package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -0
  133. package/dist/kempo/api/auth/change-password/POST.js +2 -0
  134. package/dist/kempo/api/auth/change-password/POST.js.map +1 -0
  135. package/dist/kempo/api/auth/login/email/POST.js +2 -0
  136. package/dist/kempo/api/auth/login/email/POST.js.map +1 -0
  137. package/dist/kempo/api/auth/logout/POST.js +2 -0
  138. package/dist/kempo/api/auth/logout/POST.js.map +1 -0
  139. package/dist/kempo/api/auth/register/email/POST.js +2 -0
  140. package/dist/kempo/api/auth/register/email/POST.js.map +1 -0
  141. package/dist/kempo/api/auth/reset-password/POST.js +2 -0
  142. package/dist/kempo/api/auth/reset-password/POST.js.map +1 -0
  143. package/dist/kempo/api/auth/session/GET.js +2 -0
  144. package/dist/kempo/api/auth/session/GET.js.map +1 -0
  145. package/dist/kempo/api/auth/verify-email/POST.js +2 -0
  146. package/dist/kempo/api/auth/verify-email/POST.js.map +1 -0
  147. package/dist/kempo/api/extensions/DELETE.js +2 -0
  148. package/dist/kempo/api/extensions/DELETE.js.map +1 -0
  149. package/dist/kempo/api/extensions/GET.js +2 -0
  150. package/dist/kempo/api/extensions/GET.js.map +1 -0
  151. package/dist/kempo/api/extensions/POST.js +2 -0
  152. package/dist/kempo/api/extensions/POST.js.map +1 -0
  153. package/dist/kempo/api/extensions/[name]/disable/POST.js +2 -0
  154. package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -0
  155. package/dist/kempo/api/extensions/[name]/enable/POST.js +2 -0
  156. package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -0
  157. package/dist/kempo/api/extensions/[name]/update/POST.js +2 -0
  158. package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -0
  159. package/dist/kempo/api/extensions/[name]/update-check/GET.js +2 -0
  160. package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -0
  161. package/dist/kempo/api/extensions/available/GET.js +2 -0
  162. package/dist/kempo/api/extensions/available/GET.js.map +1 -0
  163. package/dist/kempo/api/extensions/known/GET.js +2 -0
  164. package/dist/kempo/api/extensions/known/GET.js.map +1 -0
  165. package/dist/kempo/api/forgot-password/POST.js +2 -0
  166. package/dist/kempo/api/forgot-password/POST.js.map +1 -0
  167. package/dist/kempo/api/fragments/DELETE.js +2 -0
  168. package/dist/kempo/api/fragments/DELETE.js.map +1 -0
  169. package/dist/kempo/api/fragments/GET.js +2 -0
  170. package/dist/kempo/api/fragments/GET.js.map +1 -0
  171. package/dist/kempo/api/fragments/POST.js +2 -0
  172. package/dist/kempo/api/fragments/POST.js.map +1 -0
  173. package/dist/kempo/api/fragments/disable/PUT.js +2 -0
  174. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -0
  175. package/dist/kempo/api/fragments/enable/PUT.js +2 -0
  176. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -0
  177. package/dist/kempo/api/fragments/file/GET.js +2 -0
  178. package/dist/kempo/api/fragments/file/GET.js.map +1 -0
  179. package/dist/kempo/api/fragments/file/PATCH.js +2 -0
  180. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -0
  181. package/dist/kempo/api/fragments/file/PUT.js +2 -0
  182. package/dist/kempo/api/fragments/file/PUT.js.map +1 -0
  183. package/dist/kempo/api/globals/DELETE.js +2 -0
  184. package/dist/kempo/api/globals/DELETE.js.map +1 -0
  185. package/dist/kempo/api/globals/GET.js +2 -0
  186. package/dist/kempo/api/globals/GET.js.map +1 -0
  187. package/dist/kempo/api/globals/POST.js +2 -0
  188. package/dist/kempo/api/globals/POST.js.map +1 -0
  189. package/dist/kempo/api/globals/disable/PUT.js +2 -0
  190. package/dist/kempo/api/globals/disable/PUT.js.map +1 -0
  191. package/dist/kempo/api/globals/enable/PUT.js +2 -0
  192. package/dist/kempo/api/globals/enable/PUT.js.map +1 -0
  193. package/dist/kempo/api/globals/entry/GET.js +2 -0
  194. package/dist/kempo/api/globals/entry/GET.js.map +1 -0
  195. package/dist/kempo/api/globals/entry/PUT.js +2 -0
  196. package/dist/kempo/api/globals/entry/PUT.js.map +1 -0
  197. package/dist/kempo/api/groups/DELETE.js +2 -0
  198. package/dist/kempo/api/groups/DELETE.js.map +1 -0
  199. package/dist/kempo/api/groups/GET.js +2 -0
  200. package/dist/kempo/api/groups/GET.js.map +1 -0
  201. package/dist/kempo/api/groups/PATCH.js +2 -0
  202. package/dist/kempo/api/groups/PATCH.js.map +1 -0
  203. package/dist/kempo/api/groups/POST.js +2 -0
  204. package/dist/kempo/api/groups/POST.js.map +1 -0
  205. package/dist/kempo/api/groups/[name]/GET.js +2 -0
  206. package/dist/kempo/api/groups/[name]/GET.js.map +1 -0
  207. package/dist/kempo/api/groups/[name]/members/DELETE.js +2 -0
  208. package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -0
  209. package/dist/kempo/api/groups/[name]/members/GET.js +2 -0
  210. package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -0
  211. package/dist/kempo/api/groups/[name]/members/POST.js +2 -0
  212. package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -0
  213. package/dist/kempo/api/groups/[name]/permissions/DELETE.js +2 -0
  214. package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -0
  215. package/dist/kempo/api/groups/[name]/permissions/GET.js +2 -0
  216. package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -0
  217. package/dist/kempo/api/groups/[name]/permissions/POST.js +2 -0
  218. package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -0
  219. package/dist/kempo/api/pages/DELETE.js +2 -0
  220. package/dist/kempo/api/pages/DELETE.js.map +1 -0
  221. package/dist/kempo/api/pages/GET.js +2 -0
  222. package/dist/kempo/api/pages/GET.js.map +1 -0
  223. package/dist/kempo/api/pages/POST.js +2 -0
  224. package/dist/kempo/api/pages/POST.js.map +1 -0
  225. package/dist/kempo/api/pages/directories/GET.js +2 -0
  226. package/dist/kempo/api/pages/directories/GET.js.map +1 -0
  227. package/dist/kempo/api/pages/disable/PUT.js +2 -0
  228. package/dist/kempo/api/pages/disable/PUT.js.map +1 -0
  229. package/dist/kempo/api/pages/enable/PUT.js +2 -0
  230. package/dist/kempo/api/pages/enable/PUT.js.map +1 -0
  231. package/dist/kempo/api/pages/file/GET.js +2 -0
  232. package/dist/kempo/api/pages/file/GET.js.map +1 -0
  233. package/dist/kempo/api/pages/file/PATCH.js +2 -0
  234. package/dist/kempo/api/pages/file/PATCH.js.map +1 -0
  235. package/dist/kempo/api/pages/file/PUT.js +2 -0
  236. package/dist/kempo/api/pages/file/PUT.js.map +1 -0
  237. package/dist/kempo/api/pages/templates/GET.js +2 -0
  238. package/dist/kempo/api/pages/templates/GET.js.map +1 -0
  239. package/dist/kempo/api/permissions/DELETE.js +2 -0
  240. package/dist/kempo/api/permissions/DELETE.js.map +1 -0
  241. package/dist/kempo/api/permissions/GET.js +2 -0
  242. package/dist/kempo/api/permissions/GET.js.map +1 -0
  243. package/dist/kempo/api/permissions/PATCH.js +2 -0
  244. package/dist/kempo/api/permissions/PATCH.js.map +1 -0
  245. package/dist/kempo/api/permissions/POST.js +2 -0
  246. package/dist/kempo/api/permissions/POST.js.map +1 -0
  247. package/dist/kempo/api/settings/[owner]/GET.js +2 -0
  248. package/dist/kempo/api/settings/[owner]/GET.js.map +1 -0
  249. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +2 -0
  250. package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -0
  251. package/dist/kempo/api/settings/[owner]/[name]/GET.js +2 -0
  252. package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -0
  253. package/dist/kempo/api/settings/[owner]/[name]/POST.js +2 -0
  254. package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -0
  255. package/dist/kempo/api/settings/public/GET.js +2 -0
  256. package/dist/kempo/api/settings/public/GET.js.map +1 -0
  257. package/dist/kempo/api/templates/DELETE.js +2 -0
  258. package/dist/kempo/api/templates/DELETE.js.map +1 -0
  259. package/dist/kempo/api/templates/GET.js +2 -0
  260. package/dist/kempo/api/templates/GET.js.map +1 -0
  261. package/dist/kempo/api/templates/POST.js +2 -0
  262. package/dist/kempo/api/templates/POST.js.map +1 -0
  263. package/dist/kempo/api/templates/disable/PUT.js +2 -0
  264. package/dist/kempo/api/templates/disable/PUT.js.map +1 -0
  265. package/dist/kempo/api/templates/enable/PUT.js +2 -0
  266. package/dist/kempo/api/templates/enable/PUT.js.map +1 -0
  267. package/dist/kempo/api/templates/file/GET.js +2 -0
  268. package/dist/kempo/api/templates/file/GET.js.map +1 -0
  269. package/dist/kempo/api/templates/file/PATCH.js +2 -0
  270. package/dist/kempo/api/templates/file/PATCH.js.map +1 -0
  271. package/dist/kempo/api/templates/file/PUT.js +2 -0
  272. package/dist/kempo/api/templates/file/PUT.js.map +1 -0
  273. package/dist/kempo/api/user/DELETE.js +2 -0
  274. package/dist/kempo/api/user/DELETE.js.map +1 -0
  275. package/dist/kempo/api/user/GET.js +2 -0
  276. package/dist/kempo/api/user/GET.js.map +1 -0
  277. package/dist/kempo/api/user/PATCH.js +2 -0
  278. package/dist/kempo/api/user/PATCH.js.map +1 -0
  279. package/dist/kempo/api/user/[userid]/GET.js +2 -0
  280. package/dist/kempo/api/user/[userid]/GET.js.map +1 -0
  281. package/dist/kempo/api/user/[userid]/groups/DELETE.js +2 -0
  282. package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -0
  283. package/dist/kempo/api/user/[userid]/groups/GET.js +2 -0
  284. package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -0
  285. package/dist/kempo/api/user/[userid]/groups/POST.js +2 -0
  286. package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -0
  287. package/dist/kempo/api/user/[userid]/permissions/GET.js +2 -0
  288. package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -0
  289. package/dist/kempo/api/user/[userid]/permissions/all/GET.js +2 -0
  290. package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -0
  291. package/dist/kempo/api/user/[userid]/permissions/list/GET.js +2 -0
  292. package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -0
  293. package/dist/kempo/api/user/[userid]/permissions/some/GET.js +2 -0
  294. package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -0
  295. package/dist/kempo/api/user/[userid]/sessions/DELETE.js +2 -0
  296. package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -0
  297. package/dist/kempo/api/user/[userid]/sessions/GET.js +2 -0
  298. package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -0
  299. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +2 -0
  300. package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -0
  301. package/dist/kempo/api/user/create/POST.js +2 -0
  302. package/dist/kempo/api/user/create/POST.js.map +1 -0
  303. package/dist/kempo/api/user/search/GET.js +2 -0
  304. package/dist/kempo/api/user/search/GET.js.map +1 -0
  305. package/dist/kempo/components/LogoutBtn.js +2 -0
  306. package/dist/kempo/components/LogoutBtn.js.map +1 -0
  307. package/dist/kempo/components/Menu.js +17 -0
  308. package/dist/kempo/components/Menu.js.map +1 -0
  309. package/dist/kempo/components/Permission.js +2 -0
  310. package/dist/kempo/components/Permission.js.map +1 -0
  311. package/dist/kempo/components/Role.js +2 -0
  312. package/dist/kempo/components/Role.js.map +1 -0
  313. package/dist/kempo/components/UserCreatedAt.js +2 -0
  314. package/dist/kempo/components/UserCreatedAt.js.map +1 -0
  315. package/dist/kempo/components/UserEmail.js +2 -0
  316. package/dist/kempo/components/UserEmail.js.map +1 -0
  317. package/dist/kempo/components/UserEmailVerified.js +2 -0
  318. package/dist/kempo/components/UserEmailVerified.js.map +1 -0
  319. package/dist/kempo/components/UserName.js +2 -0
  320. package/dist/kempo/components/UserName.js.map +1 -0
  321. package/dist/kempo/fetch.js +2 -0
  322. package/dist/kempo/fetch.js.map +1 -0
  323. package/dist/kempo/icons/format_indent_decrease.svg +1 -0
  324. package/dist/kempo/icons/format_indent_increase.svg +1 -0
  325. package/dist/kempo/icons/format_quote.svg +1 -0
  326. package/dist/kempo/icons/redo.svg +1 -0
  327. package/dist/kempo/icons/restart_alt.svg +1 -0
  328. package/dist/kempo/icons/subscript.svg +1 -0
  329. package/dist/kempo/icons/superscript.svg +1 -0
  330. package/dist/kempo/icons/undo.svg +1 -0
  331. package/dist/kempo/sdk.js +2 -0
  332. package/dist/kempo/sdk.js.map +1 -0
  333. package/middleware/extension-scope-router.js +255 -0
  334. package/middleware/kempo-auth.js +26 -0
  335. package/package.json +46 -19
  336. package/scripts/init-db.js +211 -0
  337. package/server/db/index.js +24 -0
  338. package/server/db/schema.js +173 -0
  339. package/server/sdk.js +192 -0
  340. package/server/utils/admin-global-content/createAdminGlobalContent.js +43 -0
  341. package/server/utils/admin-global-content/deleteAdminGlobalContent.js +34 -0
  342. package/server/utils/admin-global-content/deleteAdminGlobalContentByOwner.js +26 -0
  343. package/server/utils/admin-global-content/disableAdminGlobalContent.js +33 -0
  344. package/server/utils/admin-global-content/enableAdminGlobalContent.js +33 -0
  345. package/server/utils/admin-global-content/getAdminGlobalContent.js +28 -0
  346. package/server/utils/admin-global-content/helpers.js +47 -0
  347. package/server/utils/admin-global-content/listAdminGlobalContent.js +20 -0
  348. package/server/utils/admin-global-content/updateAdminGlobalContent.js +41 -0
  349. package/server/utils/auth/changePassword.js +27 -0
  350. package/server/utils/auth/getSession.js +35 -0
  351. package/server/utils/auth/loginEmail.js +66 -0
  352. package/server/utils/auth/logout.js +16 -0
  353. package/server/utils/auth/registerEmail.js +105 -0
  354. package/server/utils/auth/requestPasswordReset.js +62 -0
  355. package/server/utils/auth/resetPassword.js +58 -0
  356. package/server/utils/auth/sendVerificationEmail.js +57 -0
  357. package/server/utils/auth/verifyEmail.js +46 -0
  358. package/server/utils/email/sendEmail.js +42 -0
  359. package/server/utils/email/sendEmailFromTemplate.js +45 -0
  360. package/server/utils/extensions/checkExtensionUpdate.js +56 -0
  361. package/server/utils/extensions/createTablesFromSchema.js +57 -0
  362. package/server/utils/extensions/disableExtension.js +26 -0
  363. package/server/utils/extensions/enableExtension.js +26 -0
  364. package/server/utils/extensions/getExtension.js +34 -0
  365. package/server/utils/extensions/installExtension.js +134 -0
  366. package/server/utils/extensions/listExtensions.js +36 -0
  367. package/server/utils/extensions/scopeCache.js +18 -0
  368. package/server/utils/extensions/uninstallExtension.js +88 -0
  369. package/server/utils/extensions/updateExtension.js +159 -0
  370. package/server/utils/fragments/createFragment.js +57 -0
  371. package/server/utils/fragments/deleteFragment.js +35 -0
  372. package/server/utils/fragments/disableFragment.js +37 -0
  373. package/server/utils/fragments/enableFragment.js +30 -0
  374. package/server/utils/fragments/getFragment.js +36 -0
  375. package/server/utils/fragments/listFragments.js +32 -0
  376. package/server/utils/fragments/moveFragment.js +54 -0
  377. package/server/utils/fragments/updateFragment.js +58 -0
  378. package/server/utils/fs/parseFrontmatter.js +13 -0
  379. package/server/utils/fs/scanDir.js +26 -0
  380. package/server/utils/global-content/createGlobalContent.js +58 -0
  381. package/server/utils/global-content/deleteGlobalContent.js +52 -0
  382. package/server/utils/global-content/disableGlobalContent.js +57 -0
  383. package/server/utils/global-content/enableGlobalContent.js +53 -0
  384. package/server/utils/global-content/getGlobalContent.js +28 -0
  385. package/server/utils/global-content/helpers.js +33 -0
  386. package/server/utils/global-content/listGlobalContent.js +24 -0
  387. package/server/utils/global-content/updateGlobalContent.js +56 -0
  388. package/server/utils/groups/addUserToGroup.js +46 -0
  389. package/server/utils/groups/createGroup.js +32 -0
  390. package/server/utils/groups/deleteGroup.js +29 -0
  391. package/server/utils/groups/getGroup.js +25 -0
  392. package/server/utils/groups/getGroupMembers.js +33 -0
  393. package/server/utils/groups/listGroups.js +21 -0
  394. package/server/utils/groups/removeUserFromGroup.js +31 -0
  395. package/server/utils/groups/updateGroup.js +54 -0
  396. package/server/utils/hooks/createHook.js +29 -0
  397. package/server/utils/hooks/deleteHook.js +19 -0
  398. package/server/utils/hooks/getHook.js +19 -0
  399. package/server/utils/hooks/listHooks.js +30 -0
  400. package/server/utils/hooks/triggerHook.js +61 -0
  401. package/server/utils/hooks/updateHook.js +27 -0
  402. package/server/utils/pages/createPage.js +60 -0
  403. package/server/utils/pages/deletePage.js +35 -0
  404. package/server/utils/pages/disablePage.js +37 -0
  405. package/server/utils/pages/enablePage.js +30 -0
  406. package/server/utils/pages/getPage.js +53 -0
  407. package/server/utils/pages/listDirectories.js +18 -0
  408. package/server/utils/pages/listPages.js +40 -0
  409. package/server/utils/pages/listTemplates.js +52 -0
  410. package/server/utils/pages/movePage.js +54 -0
  411. package/server/utils/pages/updatePage.js +74 -0
  412. package/server/utils/permissions/addPermissionToGroup.js +43 -0
  413. package/server/utils/permissions/createPermission.js +43 -0
  414. package/server/utils/permissions/currentUserHasAllPermissions.js +24 -0
  415. package/server/utils/permissions/currentUserHasPermission.js +24 -0
  416. package/server/utils/permissions/currentUserHasSomePermissions.js +24 -0
  417. package/server/utils/permissions/deletePermission.js +29 -0
  418. package/server/utils/permissions/getAllPermissions.js +21 -0
  419. package/server/utils/permissions/getPermissionsForGroups.js +26 -0
  420. package/server/utils/permissions/getUserGroups.js +31 -0
  421. package/server/utils/permissions/getUserPermission.js +30 -0
  422. package/server/utils/permissions/getUserPermissions.js +16 -0
  423. package/server/utils/permissions/removePermissionFromGroup.js +31 -0
  424. package/server/utils/permissions/updatePermission.js +33 -0
  425. package/server/utils/permissions/userHasAllPermissions.js +31 -0
  426. package/server/utils/permissions/userHasPermission.js +13 -0
  427. package/server/utils/permissions/userHasSomePermissions.js +31 -0
  428. package/server/utils/sessions/createSession.js +36 -0
  429. package/server/utils/sessions/deleteExpiredUserSessions.js +22 -0
  430. package/server/utils/sessions/deleteSession.js +16 -0
  431. package/server/utils/sessions/deleteUserSessions.js +16 -0
  432. package/server/utils/sessions/getSessionById.js +21 -0
  433. package/server/utils/sessions/getSessionByToken.js +21 -0
  434. package/server/utils/sessions/getSessions.js +19 -0
  435. package/server/utils/sessions/getUserSessions.js +30 -0
  436. package/server/utils/settings/deleteSetting.js +24 -0
  437. package/server/utils/settings/getPublicSettings.js +22 -0
  438. package/server/utils/settings/getSetting.js +25 -0
  439. package/server/utils/settings/getSettingWithMetadata.js +33 -0
  440. package/server/utils/settings/getSettingsByOwner.js +23 -0
  441. package/server/utils/settings/helpers.js +29 -0
  442. package/server/utils/settings/listSettings.js +25 -0
  443. package/server/utils/settings/setSetting.js +49 -0
  444. package/server/utils/templates/createTemplate.js +71 -0
  445. package/server/utils/templates/deleteTemplate.js +35 -0
  446. package/server/utils/templates/disableTemplate.js +37 -0
  447. package/server/utils/templates/enableTemplate.js +30 -0
  448. package/server/utils/templates/getTemplate.js +30 -0
  449. package/server/utils/templates/moveTemplate.js +54 -0
  450. package/server/utils/templates/updateTemplate.js +46 -0
  451. package/server/utils/users/createUser.js +60 -0
  452. package/server/utils/users/deleteUser.js +19 -0
  453. package/server/utils/users/findUsersByEmail.js +35 -0
  454. package/server/utils/users/findUsersByName.js +35 -0
  455. package/server/utils/users/getUserByEmail.js +26 -0
  456. package/server/utils/users/getUserById.js +27 -0
  457. package/server/utils/users/getUsers.js +26 -0
  458. package/server/utils/users/searchUsers.js +53 -0
  459. package/server/utils/users/updateUser.js +38 -0
  460. package/.gitattributes +0 -2
  461. package/LICENSE +0 -21
  462. package/dist/components/Accordion.js +0 -1
  463. package/dist/components/Card.js +0 -1
  464. package/dist/components/Collapsible.js +0 -1
  465. package/dist/components/Component.js +0 -1
  466. package/dist/components/ContentSlider.js +0 -1
  467. package/dist/components/Dialog.js +0 -1
  468. package/dist/components/DirectoryViewer.js +0 -1
  469. package/dist/components/FocusCapture.js +0 -1
  470. package/dist/components/Icon.js +0 -1
  471. package/dist/components/Import.js +0 -1
  472. package/dist/components/LazyComponent.js +0 -1
  473. package/dist/components/PersistantCollapsible.js +0 -1
  474. package/dist/components/PhotoViewer.js +0 -1
  475. package/dist/components/ReactiveComponent.js +0 -1
  476. package/dist/components/ReactiveLazyComponent.js +0 -1
  477. package/dist/components/Resize.js +0 -1
  478. package/dist/components/Search.js +0 -1
  479. package/dist/components/ShowMore.js +0 -1
  480. package/dist/components/SideMenu.js +0 -1
  481. package/dist/components/Sortable.js +0 -1
  482. package/dist/components/Split.js +0 -1
  483. package/dist/components/Stacks.js +0 -1
  484. package/dist/components/Table.js +0 -1
  485. package/dist/components/Tabs.js +0 -1
  486. package/dist/components/Tags.js +0 -1
  487. package/dist/components/ThemeSwitcher.js +0 -1
  488. package/dist/components/Timestamp.js +0 -1
  489. package/dist/components/Toast.js +0 -1
  490. package/dist/components/Toggle.js +0 -1
  491. package/dist/components/tableControls/DeleteRecord.js +0 -1
  492. package/dist/components/tableControls/DeleteSelected.js +0 -1
  493. package/dist/components/tableControls/Edit.js +0 -1
  494. package/dist/components/tableControls/ExportCSV.js +0 -1
  495. package/dist/components/tableControls/ExportJson.js +0 -1
  496. package/dist/components/tableControls/FieldSortHide.js +0 -1
  497. package/dist/components/tableControls/Filters.js +0 -1
  498. package/dist/components/tableControls/FirstPage.js +0 -1
  499. package/dist/components/tableControls/HiddenCount.js +0 -1
  500. package/dist/components/tableControls/Hide.js +0 -1
  501. package/dist/components/tableControls/LastPage.js +0 -1
  502. package/dist/components/tableControls/NextPage.js +0 -1
  503. package/dist/components/tableControls/PageSelect.js +0 -1
  504. package/dist/components/tableControls/PageSize.js +0 -1
  505. package/dist/components/tableControls/PrevPage.js +0 -1
  506. package/dist/components/tableControls/Search.js +0 -1
  507. package/dist/components/tableControls/SelectCount.js +0 -1
  508. package/dist/components/tableControls/ShowAll.js +0 -1
  509. package/dist/components/tableControls/ShowHideFields.js +0 -1
  510. package/dist/components/tableControls/TableControl.js +0 -1
  511. package/dist/kempo-hljs.css +0 -1
  512. package/dist/kempo-styles.css +0 -1
  513. package/dist/kempo-vars.css +0 -1
  514. package/dist/utils/Server.js +0 -1
  515. package/dist/utils/cli.js +0 -1
  516. package/dist/utils/cookie.js +0 -1
  517. package/dist/utils/debounce.js +0 -1
  518. package/dist/utils/drag.js +0 -1
  519. package/dist/utils/element.js +0 -1
  520. package/dist/utils/files.js +0 -1
  521. package/dist/utils/formatTimestamp.js +0 -1
  522. package/dist/utils/fs-utils.js +0 -1
  523. package/dist/utils/fuzzyMatch.js +0 -1
  524. package/dist/utils/getPreferredTheme.js +0 -1
  525. package/dist/utils/loadCss.js +0 -1
  526. package/dist/utils/loadScript.js +0 -1
  527. package/dist/utils/minify.js +0 -1
  528. package/dist/utils/object.js +0 -1
  529. package/dist/utils/raf.js +0 -1
  530. package/dist/utils/string.js +0 -1
  531. package/dist/utils/toFunction.js +0 -1
  532. package/dist/utils/type.js +0 -1
  533. package/dist/utils/waitFrames.js +0 -1
  534. package/dist/utils/watchDirectoryHandle.js +0 -1
  535. package/dist/utils/watchWindowSize.js +0 -1
  536. package/docs/components/_template.html +0 -77
  537. package/docs/components/accordion.html +0 -124
  538. package/docs/components/card.html +0 -93
  539. package/docs/components/component.html +0 -92
  540. package/docs/components/content-slider.html +0 -195
  541. package/docs/components/dialog.html +0 -247
  542. package/docs/components/directory-viewer.html +0 -92
  543. package/docs/components/focus-capture.html +0 -70
  544. package/docs/components/icon.html +0 -160
  545. package/docs/components/import.html +0 -79
  546. package/docs/components/lazy-component.html +0 -86
  547. package/docs/components/reactive-component.html +0 -71
  548. package/docs/components/reactive-lazy-component.html +0 -71
  549. package/docs/components/resize.html +0 -154
  550. package/docs/components/search.html +0 -104
  551. package/docs/components/show-more.html +0 -125
  552. package/docs/components/side-menu.html +0 -148
  553. package/docs/components/sortable.html +0 -98
  554. package/docs/components/split.html +0 -128
  555. package/docs/components/table.html +0 -314
  556. package/docs/components/tableControls.html +0 -79
  557. package/docs/components/tableCustomFields.html +0 -115
  558. package/docs/components/tableFetchRecords.html +0 -116
  559. package/docs/components/tableFieldSortHide.html +0 -77
  560. package/docs/components/tablePagination.html +0 -102
  561. package/docs/components/tableRecordEditing.html +0 -146
  562. package/docs/components/tableRecordFiltering.html +0 -77
  563. package/docs/components/tableRecordHiding.html +0 -82
  564. package/docs/components/tableRecordSearching.html +0 -77
  565. package/docs/components/tableRecordSelection.html +0 -77
  566. package/docs/components/tableRowControls.html +0 -80
  567. package/docs/components/tableSorting.html +0 -75
  568. package/docs/components/tabs.html +0 -165
  569. package/docs/components/tags.html +0 -96
  570. package/docs/components/theme-switcher.html +0 -76
  571. package/docs/components/timestamp.html +0 -88
  572. package/docs/components/toast.html +0 -330
  573. package/docs/components/toggle.html +0 -157
  574. package/docs/icons/add.svg +0 -1
  575. package/docs/icons/arrow-back.svg +0 -1
  576. package/docs/icons/arrow-down-double.svg +0 -1
  577. package/docs/icons/arrow-down.svg +0 -1
  578. package/docs/icons/arrow-forward.svg +0 -1
  579. package/docs/icons/arrow-up-double.svg +0 -1
  580. package/docs/icons/arrow-up.svg +0 -1
  581. package/docs/icons/cards.svg +0 -1
  582. package/docs/icons/check.svg +0 -1
  583. package/docs/icons/chevron-left.svg +0 -1
  584. package/docs/icons/chevron-right.svg +0 -1
  585. package/docs/icons/close.svg +0 -2
  586. package/docs/icons/compare.svg +0 -1
  587. package/docs/icons/delete.svg +0 -1
  588. package/docs/icons/drag-handle.svg +0 -1
  589. package/docs/icons/drawing2.svg +0 -124
  590. package/docs/icons/edit.svg +0 -1
  591. package/docs/icons/error.svg +0 -1
  592. package/docs/icons/export-file.svg +0 -1
  593. package/docs/icons/file-text.svg +0 -1
  594. package/docs/icons/file.svg +0 -1
  595. package/docs/icons/filter-off.svg +0 -1
  596. package/docs/icons/filter.svg +0 -1
  597. package/docs/icons/first.svg +0 -1
  598. package/docs/icons/folder-clear.svg +0 -1
  599. package/docs/icons/folder-create.svg +0 -1
  600. package/docs/icons/folder-open.svg +0 -1
  601. package/docs/icons/folder.svg +0 -1
  602. package/docs/icons/hide.svg +0 -1
  603. package/docs/icons/image.svg +0 -1
  604. package/docs/icons/label-add.svg +0 -1
  605. package/docs/icons/label.svg +0 -1
  606. package/docs/icons/last.svg +0 -1
  607. package/docs/icons/menu.svg +0 -1
  608. package/docs/icons/mode-auto.svg +0 -1
  609. package/docs/icons/mode-dark.svg +0 -1
  610. package/docs/icons/mode-light.svg +0 -1
  611. package/docs/icons/open-in-browser.svg +0 -1
  612. package/docs/icons/pause.svg +0 -1
  613. package/docs/icons/play.svg +0 -1
  614. package/docs/icons/refresh.svg +0 -1
  615. package/docs/icons/remove.svg +0 -1
  616. package/docs/icons/save.svg +0 -1
  617. package/docs/icons/search.svg +0 -1
  618. package/docs/icons/settings.svg +0 -1
  619. package/docs/icons/storage.svg +0 -1
  620. package/docs/icons/table-visibility.svg +0 -1
  621. package/docs/icons/tag.svg +0 -1
  622. package/docs/icons/tools.svg +0 -1
  623. package/docs/icons/trash-x.svg +0 -1
  624. package/docs/icons/warning.svg +0 -1
  625. package/docs/index.html +0 -21
  626. package/docs/js/nav.inc.js +0 -4
  627. package/docs/kempo/components/Accordion.js +0 -1
  628. package/docs/kempo/components/Card.js +0 -1
  629. package/docs/kempo/components/Collapsible.js +0 -1
  630. package/docs/kempo/components/Component.js +0 -1
  631. package/docs/kempo/components/ContentSlider.js +0 -1
  632. package/docs/kempo/components/Dialog.js +0 -1
  633. package/docs/kempo/components/DirectoryViewer.js +0 -1
  634. package/docs/kempo/components/FocusCapture.js +0 -1
  635. package/docs/kempo/components/Icon.js +0 -1
  636. package/docs/kempo/components/Import.js +0 -1
  637. package/docs/kempo/components/LazyComponent.js +0 -1
  638. package/docs/kempo/components/PersistantCollapsible.js +0 -1
  639. package/docs/kempo/components/PhotoViewer.js +0 -1
  640. package/docs/kempo/components/ReactiveComponent.js +0 -1
  641. package/docs/kempo/components/ReactiveLazyComponent.js +0 -1
  642. package/docs/kempo/components/Resize.js +0 -1
  643. package/docs/kempo/components/Search.js +0 -1
  644. package/docs/kempo/components/ShowMore.js +0 -1
  645. package/docs/kempo/components/SideMenu.js +0 -1
  646. package/docs/kempo/components/Sortable.js +0 -1
  647. package/docs/kempo/components/Split.js +0 -1
  648. package/docs/kempo/components/Stacks.js +0 -1
  649. package/docs/kempo/components/Table.js +0 -1
  650. package/docs/kempo/components/Tabs.js +0 -1
  651. package/docs/kempo/components/Tags.js +0 -1
  652. package/docs/kempo/components/ThemeSwitcher.js +0 -1
  653. package/docs/kempo/components/Timestamp.js +0 -1
  654. package/docs/kempo/components/Toast.js +0 -1
  655. package/docs/kempo/components/Toggle.js +0 -1
  656. package/docs/kempo/components/tableControls/DeleteRecord.js +0 -1
  657. package/docs/kempo/components/tableControls/DeleteSelected.js +0 -1
  658. package/docs/kempo/components/tableControls/Edit.js +0 -1
  659. package/docs/kempo/components/tableControls/ExportCSV.js +0 -1
  660. package/docs/kempo/components/tableControls/ExportJson.js +0 -1
  661. package/docs/kempo/components/tableControls/FieldSortHide.js +0 -1
  662. package/docs/kempo/components/tableControls/Filters.js +0 -1
  663. package/docs/kempo/components/tableControls/FirstPage.js +0 -1
  664. package/docs/kempo/components/tableControls/HiddenCount.js +0 -1
  665. package/docs/kempo/components/tableControls/Hide.js +0 -1
  666. package/docs/kempo/components/tableControls/LastPage.js +0 -1
  667. package/docs/kempo/components/tableControls/NextPage.js +0 -1
  668. package/docs/kempo/components/tableControls/PageSelect.js +0 -1
  669. package/docs/kempo/components/tableControls/PageSize.js +0 -1
  670. package/docs/kempo/components/tableControls/PrevPage.js +0 -1
  671. package/docs/kempo/components/tableControls/Search.js +0 -1
  672. package/docs/kempo/components/tableControls/SelectCount.js +0 -1
  673. package/docs/kempo/components/tableControls/ShowAll.js +0 -1
  674. package/docs/kempo/components/tableControls/ShowHideFields.js +0 -1
  675. package/docs/kempo/components/tableControls/TableControl.js +0 -1
  676. package/docs/kempo/index.js +0 -1
  677. package/docs/kempo/kempo-hljs.css +0 -1
  678. package/docs/kempo/kempo-styles.css +0 -1
  679. package/docs/kempo/kempo-vars.css +0 -1
  680. package/docs/kempo/utils/Server.js +0 -1
  681. package/docs/kempo/utils/cli.js +0 -1
  682. package/docs/kempo/utils/cookie.js +0 -1
  683. package/docs/kempo/utils/debounce.js +0 -1
  684. package/docs/kempo/utils/drag.js +0 -1
  685. package/docs/kempo/utils/element.js +0 -1
  686. package/docs/kempo/utils/files.js +0 -1
  687. package/docs/kempo/utils/formatTimestamp.js +0 -1
  688. package/docs/kempo/utils/fs-utils.js +0 -1
  689. package/docs/kempo/utils/fuzzyMatch.js +0 -1
  690. package/docs/kempo/utils/getPreferredTheme.js +0 -1
  691. package/docs/kempo/utils/loadCss.js +0 -1
  692. package/docs/kempo/utils/loadScript.js +0 -1
  693. package/docs/kempo/utils/minify.js +0 -1
  694. package/docs/kempo/utils/object.js +0 -1
  695. package/docs/kempo/utils/raf.js +0 -1
  696. package/docs/kempo/utils/string.js +0 -1
  697. package/docs/kempo/utils/toFunction.js +0 -1
  698. package/docs/kempo/utils/type.js +0 -1
  699. package/docs/kempo/utils/waitFrames.js +0 -1
  700. package/docs/kempo/utils/watchDirectoryHandle.js +0 -1
  701. package/docs/kempo/utils/watchWindowSize.js +0 -1
  702. package/docs/nav.inc.html +0 -74
  703. package/docs/search.json +0 -400
  704. package/docs/styles/_template.html +0 -26
  705. package/docs/styles/borders-spacing.html +0 -197
  706. package/docs/styles/buttons.html +0 -117
  707. package/docs/styles/colors.html +0 -69
  708. package/docs/styles/displays-layouts.html +0 -162
  709. package/docs/styles/embed-1.html +0 -40
  710. package/docs/styles/inputs.html +0 -93
  711. package/docs/styles/tables.html +0 -147
  712. package/docs/styles/typography.html +0 -120
  713. package/docs/utils/Server.html +0 -119
  714. package/docs/utils/_template.html +0 -77
  715. package/docs/utils/cli.html +0 -86
  716. package/docs/utils/cookie.html +0 -89
  717. package/docs/utils/debounce.html +0 -63
  718. package/docs/utils/drag.html +0 -87
  719. package/docs/utils/element.html +0 -126
  720. package/docs/utils/format-timestamp.html +0 -66
  721. package/docs/utils/fuzzy-match.html +0 -60
  722. package/icons/add.svg +0 -1
  723. package/icons/arrow-back.svg +0 -1
  724. package/icons/arrow-down-double.svg +0 -1
  725. package/icons/arrow-down.svg +0 -1
  726. package/icons/arrow-forward.svg +0 -1
  727. package/icons/arrow-up-double.svg +0 -1
  728. package/icons/arrow-up.svg +0 -1
  729. package/icons/cards.svg +0 -1
  730. package/icons/check.svg +0 -1
  731. package/icons/chevron-left.svg +0 -1
  732. package/icons/chevron-right.svg +0 -1
  733. package/icons/close.svg +0 -2
  734. package/icons/compare.svg +0 -1
  735. package/icons/delete.svg +0 -1
  736. package/icons/drag-handle.svg +0 -1
  737. package/icons/drawing2.svg +0 -124
  738. package/icons/edit.svg +0 -1
  739. package/icons/error.svg +0 -1
  740. package/icons/export-file.svg +0 -1
  741. package/icons/file-text.svg +0 -1
  742. package/icons/file.svg +0 -1
  743. package/icons/filter-off.svg +0 -1
  744. package/icons/filter.svg +0 -1
  745. package/icons/first.svg +0 -1
  746. package/icons/folder-clear.svg +0 -1
  747. package/icons/folder-create.svg +0 -1
  748. package/icons/folder-open.svg +0 -1
  749. package/icons/folder.svg +0 -1
  750. package/icons/hide.svg +0 -1
  751. package/icons/image.svg +0 -1
  752. package/icons/label-add.svg +0 -1
  753. package/icons/label.svg +0 -1
  754. package/icons/last.svg +0 -1
  755. package/icons/menu.svg +0 -1
  756. package/icons/mode-auto.svg +0 -1
  757. package/icons/mode-dark.svg +0 -1
  758. package/icons/mode-light.svg +0 -1
  759. package/icons/open-in-browser.svg +0 -1
  760. package/icons/pause.svg +0 -1
  761. package/icons/play.svg +0 -1
  762. package/icons/refresh.svg +0 -1
  763. package/icons/remove.svg +0 -1
  764. package/icons/save.svg +0 -1
  765. package/icons/search.svg +0 -1
  766. package/icons/settings.svg +0 -1
  767. package/icons/show.svg +0 -1
  768. package/icons/storage.svg +0 -1
  769. package/icons/table-visibility.svg +0 -1
  770. package/icons/tag.svg +0 -1
  771. package/icons/tools.svg +0 -1
  772. package/icons/trash-x.svg +0 -1
  773. package/icons/warning.svg +0 -1
  774. package/scripts/build.js +0 -154
  775. package/scripts/docs.js +0 -47
  776. package/src/components/Accordion.js +0 -182
  777. package/src/components/Card.js +0 -62
  778. package/src/components/Collapsible.js +0 -104
  779. package/src/components/Component.js +0 -110
  780. package/src/components/ContentSlider.js +0 -192
  781. package/src/components/Dialog.js +0 -338
  782. package/src/components/DirectoryViewer.js +0 -363
  783. package/src/components/FocusCapture.js +0 -31
  784. package/src/components/Icon.js +0 -119
  785. package/src/components/Import.js +0 -48
  786. package/src/components/LazyComponent.js +0 -65
  787. package/src/components/PersistantCollapsible.js +0 -44
  788. package/src/components/PhotoViewer.js +0 -358
  789. package/src/components/ReactiveComponent.js +0 -11
  790. package/src/components/ReactiveLazyComponent.js +0 -11
  791. package/src/components/Resize.js +0 -168
  792. package/src/components/Search.js +0 -140
  793. package/src/components/ShowMore.js +0 -102
  794. package/src/components/SideMenu.js +0 -150
  795. package/src/components/Sortable.js +0 -169
  796. package/src/components/Split.js +0 -164
  797. package/src/components/Table.js +0 -935
  798. package/src/components/Tabs.js +0 -349
  799. package/src/components/Tags.js +0 -224
  800. package/src/components/ThemeSwitcher.js +0 -100
  801. package/src/components/Timestamp.js +0 -28
  802. package/src/components/Toast.js +0 -424
  803. package/src/components/Toggle.js +0 -137
  804. package/src/components/tableControls/DeleteRecord.js +0 -43
  805. package/src/components/tableControls/DeleteSelected.js +0 -70
  806. package/src/components/tableControls/Edit.js +0 -84
  807. package/src/components/tableControls/ExportCSV.js +0 -91
  808. package/src/components/tableControls/ExportJson.js +0 -62
  809. package/src/components/tableControls/FieldSortHide.js +0 -77
  810. package/src/components/tableControls/Filters.js +0 -129
  811. package/src/components/tableControls/FirstPage.js +0 -69
  812. package/src/components/tableControls/HiddenCount.js +0 -37
  813. package/src/components/tableControls/Hide.js +0 -40
  814. package/src/components/tableControls/LastPage.js +0 -67
  815. package/src/components/tableControls/NextPage.js +0 -69
  816. package/src/components/tableControls/PageSelect.js +0 -89
  817. package/src/components/tableControls/PageSize.js +0 -70
  818. package/src/components/tableControls/PrevPage.js +0 -69
  819. package/src/components/tableControls/Search.js +0 -49
  820. package/src/components/tableControls/SelectCount.js +0 -42
  821. package/src/components/tableControls/ShowAll.js +0 -37
  822. package/src/components/tableControls/TableControl.js +0 -51
  823. package/src/kempo-hljs.css +0 -146
  824. package/src/kempo-styles.css +0 -952
  825. package/src/kempo-vars.css +0 -159
  826. package/src/utils/Server.js +0 -189
  827. package/src/utils/cli.js +0 -119
  828. package/src/utils/cookie.js +0 -20
  829. package/src/utils/debounce.js +0 -9
  830. package/src/utils/drag.js +0 -74
  831. package/src/utils/element.js +0 -81
  832. package/src/utils/formatTimestamp.js +0 -27
  833. package/src/utils/fs-utils.js +0 -41
  834. package/src/utils/fuzzyMatch.js +0 -60
  835. package/src/utils/getPreferredTheme.js +0 -1
  836. package/src/utils/loadCss.js +0 -10
  837. package/src/utils/loadScript.js +0 -10
  838. package/src/utils/object.js +0 -198
  839. package/src/utils/raf.js +0 -10
  840. package/src/utils/string.js +0 -66
  841. package/src/utils/toFunction.js +0 -24
  842. package/src/utils/type.js +0 -13
  843. package/src/utils/waitFrames.js +0 -17
  844. package/src/utils/watchDirectoryHandle.js +0 -18
  845. package/src/utils/watchWindowSize.js +0 -15
  846. package/test/components/SuiteList.js +0 -26
  847. package/test/components/Test.js +0 -357
  848. package/test/index.html +0 -49
  849. package/test/index.js +0 -36
  850. package/test/suite.html +0 -45
  851. package/test/suites.inc.html +0 -4
  852. package/test/tests/components/Component.test.js +0 -138
  853. package/test/tests/utils/cli.test.js +0 -113
  854. package/test/tests/utils/cookie.test.js +0 -87
  855. package/test/tests/utils/debounce.test.js +0 -71
  856. /package/{docs/icons/show.svg → dist/admin/icons/visibility.svg} +0 -0
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updateGroup from"../../../../server/utils/groups/updateGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{name:o,newName:t,description:n}=s.body;if(!o)return r.status(400).json({error:"Group name is required"});if(o.startsWith("system:"))return r.status(403).json({error:"Permission denied: Cannot edit system-owned groups"});const[i,u]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!u)return r.status(403).json({error:"Insufficient permissions"});const a={};void 0!==n&&(a.description=n),void 0!==t&&(a.name=t);const[m,p]=await updateGroup(o,a);if(m)return r.status(m.code).json({error:m.msg});r.json(p)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\PATCH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\PATCH.js","names":["currentUserHasPermission","updateGroup","async","request","response","token","cookies","session_token","name","newName","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateGroup from '../../../../server/utils/groups/updateGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, newName, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'Permission denied: Cannot edit system-owned groups' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\tif(newName !== undefined) updates.name = newName;\r\n\r\n\tconst [error, result] = await updateGroup(name, updates);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,gBAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,QAAEA,EAAOC,YAAEA,GAAgBP,EAAQQ,KAE/C,IAAIH,EACH,OAAOJ,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,WAAW,WAClB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,uDAG3C,MAAOE,EAAWC,SAAuBjB,yBAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,QACrCW,IAAZZ,IAAuBW,EAAQZ,KAAOC,GAEzC,MAAOK,EAAOQ,SAAgBrB,YAAYO,EAAMY,GAEhD,GAAGN,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import createGroup from"../../../../server/utils/groups/createGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,{name:o,description:t}=r.body;if(!o||!o.trim())return s.status(400).json({error:"Group name is required"});if(o.includes(":"))return s.status(400).json({error:'Group name cannot contain ":"'});const[n,i]=await currentUserHasPermission(e,"system:group:create");if(n)return s.status(n.code).json({error:n.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const[u,a]=await createGroup({name:`custom:${o}`,description:t,owner:"custom"});if(u)return s.status(u.code).json({error:u.msg});s.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\POST.js","names":["currentUserHasPermission","createGroup","async","request","response","token","cookies","session_token","name","description","body","trim","status","json","error","includes","permError","hasPermission","code","msg","result","owner"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createGroup from '../../../../server/utils/groups/createGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name || !name.trim()){\r\n\t\treturn response.status(400).json({ error: 'Group name is required' });\r\n\t}\r\n\r\n\tif(name.includes(':')){\r\n\t\treturn response.status(400).json({ error: 'Group name cannot contain \":\"' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, result] = await createGroup({ name: `custom:${name}`, description, owner: 'custom' });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,gBAAiB,gEAETC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,IAASA,EAAKG,OACjB,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAG3C,GAAGN,EAAKO,SAAS,KAChB,OAAOX,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,MAAOE,EAAWC,SAAuBjB,yBAAyBK,EAAO,uBAEzE,GAAGW,EACF,OAAOZ,EAASQ,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOM,SAAgBnB,YAAY,CAAEO,KAAM,UAAUA,IAAQC,cAAaY,MAAO,WAExF,GAAGP,EACF,OAAOV,EAASQ,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDf,EAASS,KAAKO","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getGroup from"../../../../../server/utils/groups/getGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{name:n}=s.params,[i,u]=await getGroup(decodeURIComponent(n));if(i)return r.status(i.code).json({error:i.msg});r.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\GET.js","names":["currentUserHasPermission","getGroup","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","group","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroup from '../../../../../server/utils/groups/getGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, group] = await getGroup(decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(group);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,6EAC9BC,aAAc,gEAENC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,QAClBH,EAAOI,SAAehB,SAASiB,mBAAmBH,IAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import removeUserFromGroup from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(r,s)=>{const e=r.cookies.session_token,{userId:o}=r.body;if(!o)return s.status(400).json({error:"User ID is required"});const[t,n]=await currentUserHasPermission(e,"system:group:update");if(t)return s.status(t.code).json({error:t.msg});if(!n)return s.status(403).json({error:"Insufficient permissions"});const{name:i}=r.params,[u,m]=await removeUserFromGroup(o,decodeURIComponent(i));if(u)return s.status(u.code).json({error:u.msg});s.json(m)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\DELETE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\DELETE.js","names":["currentUserHasPermission","removeUserFromGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removeUserFromGroup from '../../../../../../server/utils/groups/removeUserFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removeUserFromGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,wBAAyB,8EAEjBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,oBAAoBO,EAAQY,mBAAmBH,IAE7E,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getGroupMembers from"../../../../../../server/utils/groups/getGroupMembers.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:group:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const{name:i}=s.params,n=parseInt(s.query.limit)||50,m=parseInt(s.query.offset)||0,[u,a]=await getGroupMembers(decodeURIComponent(i),{limit:n,offset:m});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\GET.js","names":["currentUserHasPermission","getGroupMembers","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","limit","parseInt","query","offset","data","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGroupMembers from '../../../../../../server/utils/groups/getGroupMembers.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst [error, data] = await getGroupMembers(decodeURIComponent(name), { limit, offset });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,oBAAqB,0EAEbC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAQC,SAASf,EAAQgB,MAAMF,QAAU,GACzCG,EAASF,SAASf,EAAQgB,MAAMC,SAAW,GAC1CP,EAAOQ,SAAcpB,gBAAgBqB,mBAAmBP,GAAO,CAAEE,QAAOG,WAE/E,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import addUserToGroup from"../../../../../../server/utils/groups/addUserToGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{userId:o}=s.body;if(!o)return r.status(400).json({error:"User ID is required"});const[t,n]=await currentUserHasPermission(e,"system:group:update");if(t)return r.status(t.code).json({error:t.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:i}=s.params,[u,a]=await addUserToGroup(o,decodeURIComponent(i));if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\members\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\members\\POST.js","names":["currentUserHasPermission","addUserToGroup","async","request","response","token","cookies","session_token","userId","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addUserToGroup from '../../../../../../server/utils/groups/addUserToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { userId } = request.body;\r\n\r\n\tif(!userId){\r\n\t\treturn response.status(400).json({ error: 'User ID is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addUserToGroup(userId, decodeURIComponent(name));\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,mBAAoB,yEAEZC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,OAAEA,GAAWL,EAAQM,KAE3B,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,wBAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,eAAeO,EAAQY,mBAAmBH,IAExE,GAAGL,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import removePermissionFromGroup from"../../../../../../server/utils/permissions/removePermissionFromGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{permissionName:o}=s.body;if(!o)return r.status(400).json({error:"Permission name is required"});const[i,n]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:t}=s.params,[m,u]=await removePermissionFromGroup(decodeURIComponent(t),o);if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\DELETE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\DELETE.js","names":["currentUserHasPermission","removePermissionFromGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport removePermissionFromGroup from '../../../../../../server/utils/permissions/removePermissionFromGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await removePermissionFromGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,8BAA+B,yFAEvBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,0BAA0BmB,mBAAmBH,GAAOT,GAElF,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import getPermissionsForGroups from"../../../../../../server/utils/permissions/getPermissionsForGroups.js";export default async(s,r)=>{const e=s.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:permissions:read");if(o)return r.status(o.code).json({error:o.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{name:n}=s.params,t=decodeURIComponent(n),[m,a]=await getPermissionsForGroups([{name:t}]);if(m)return r.status(m.code).json({error:m.msg});r.json({permissions:a})};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\GET.js","names":["currentUserHasPermission","getPermissionsForGroups","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","groupName","decodeURIComponent","permissions"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPermissionsForGroups from '../../../../../../server/utils/permissions/getPermissionsForGroups.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst groupName = decodeURIComponent(name);\r\n\tconst [error, permissions] = await getPermissionsForGroups([{ name: groupName }]);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json({ permissions });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,4BAA6B,uFAErBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,OACnBC,EAAYC,mBAAmBH,IAC9BF,EAAOM,SAAqBlB,wBAAwB,CAAC,CAAEc,KAAME,KAEpE,GAAGJ,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAK,CAAEO","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import addPermissionToGroup from"../../../../../../server/utils/permissions/addPermissionToGroup.js";export default async(s,r)=>{const e=s.cookies.session_token,{permissionName:o}=s.body;if(!o)return r.status(400).json({error:"Permission name is required"});const[i,n]=await currentUserHasPermission(e,"system:group:update");if(i)return r.status(i.code).json({error:i.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const{name:t}=s.params,[m,a]=await addPermissionToGroup(decodeURIComponent(t),o);if(m)return r.status(m.code).json({error:m.msg});r.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\groups\[name]\permissions\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\groups\\[name]\\permissions\\POST.js","names":["currentUserHasPermission","addPermissionToGroup","async","request","response","token","cookies","session_token","permissionName","body","status","json","error","permError","hasPermission","code","msg","name","params","result","decodeURIComponent"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport addPermissionToGroup from '../../../../../../server/utils/permissions/addPermissionToGroup.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissionName } = request.body;\r\n\r\n\tif(!permissionName){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:group:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name } = request.params;\r\n\tconst [error, result] = await addPermissionToGroup(decodeURIComponent(name), permissionName);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,gFAC9BC,yBAA0B,oFAElBC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,eAAEA,GAAmBL,EAAQM,KAEnC,IAAID,EACH,OAAOJ,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,MAAOC,EAAWC,SAAuBd,yBAAyBK,EAAO,uBAEzE,GAAGQ,EACF,OAAOT,EAASM,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOV,EAASM,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,KAAEA,GAASd,EAAQe,QAClBN,EAAOO,SAAgBlB,qBAAqBmB,mBAAmBH,GAAOT,GAE7E,GAAGI,EACF,OAAOR,EAASM,OAAOE,EAAMG,MAAMJ,KAAK,CAAEC,MAAOA,EAAMI,MAGxDZ,EAASO,KAAKQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deletePage from"../../../../server/utils/pages/deletePage.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,s)=>{const r=e.cookies.session_token,[o,t]=await currentUserHasPermission(r,"system:pages:delete");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{files:i}=e.body||{};if(!i?.length)return s.status(400).json({error:"No files specified"});const[n,a]=await deletePage({rootDir:rootDir,files:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\DELETE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\DELETE.js","names":["resolve","currentUserHasPermission","deletePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePage from '../../../../server/utils/pages/deletePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body || {};\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tconst [error, result] = await deletePage({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,eAAgB,+CAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,MAAOA,EAAOK,SAAgBnB,WAAW,CAAEC,gBAASe,UAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import listPages from"../../../../server/utils/pages/listPages.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:pages:read");if(o)return r.status(o.code).json({error:o.msg});if(!t)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listPages({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\GET.js","names":["resolve","currentUserHasPermission","listPages","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listPages from '../../../../server/utils/pages/listPages.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listPages({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,cAAe,8CAEtB,MAAMC,QAAUH,oBAAoBI,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,UAAU,CAAEC,kBAExC,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getSession from"../../../../server/utils/auth/getSession.js";import createPage from"../../../../server/utils/pages/createPage.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:create");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{directory:i,name:a,template:n}=e.body;if(!a)return r.status(400).json({error:"Page name is required"});const[,m]=await getSession({token:s}),u=m?.user?.name||"",[c,p]=await createPage({rootDir:rootDir,directory:i,name:a,template:n,author:u});if(c)return r.status(c.code).json({error:c.msg});r.status(201).json(p)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\POST.js","names":["resolve","currentUserHasPermission","getSession","createPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","template","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createPage from '../../../../server/utils/pages/createPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name, template } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Page name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createPage({ rootDir, directory, name, template, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,0EAC9BC,eAAgB,qDAChBC,eAAgB,+CAEvB,MAAMC,QAAUJ,oBAAoBK,QAAS,yCAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBZ,yBAAyBQ,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,EAAIC,SAAEA,GAAad,EAAQe,KAE9C,IAAIF,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAO,CAAEM,SAAqBrB,WAAW,CAAEO,UACrCe,EAASD,GAAaE,MAAML,MAAQ,IAEnCH,EAAOS,SAAcvB,WAAW,CAAEC,gBAASe,YAAWC,OAAMC,WAAUG,WAE7E,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listDirectories from"../../../../../server/utils/pages/listDirectories.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:pages:read");if(o)return s.status(o.code).json({error:o.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const[t,n]=await listDirectories({rootDir:rootDir});if(t)return s.status(t.code).json({error:t.msg});s.json(n)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\directories\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\directories\\GET.js","names":["resolve","currentUserHasPermission","listDirectories","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listDirectories from '../../../../../server/utils/pages/listDirectories.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listDirectories({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,oBAAqB,uDAE5B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,gBAAgB,CAAEC,kBAE9C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import disablePage from"../../../../../server/utils/pages/disablePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[o,i]=await currentUserHasPermission(e,"system:pages:update");if(o)return r.status(o.code).json({error:o.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{file:t}=s.body||{};if(!t)return r.status(400).json({error:"File path is required"});const[a,n]=await disablePage({rootDir:rootDir,file:t});if(a)return r.status(a.code).json({error:a.msg});r.json(n)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\disable\PUT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disablePage from '../../../../../server/utils/pages/disablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,gBAAiB,mDAExB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,YAAY,CAAEC,gBAASe,SAErD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import enablePage from"../../../../../server/utils/pages/enablePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[o,t]=await currentUserHasPermission(e,"system:pages:update");if(o)return s.status(o.code).json({error:o.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const{file:i}=r.body||{};if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await enablePage({rootDir:rootDir,file:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\enable\PUT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enablePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enablePage from '../../../../../server/utils/pages/enablePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enablePage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,eAAgB,kDAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBlB,WAAW,CAAEC,gBAASe,SAEpD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import getPage from"../../../../../server/utils/pages/getPage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return s.status(t.code).json({error:t.msg});if(!o)return s.status(403).json({error:"Insufficient permissions"});const{file:i}=r.query;if(!i)return s.status(400).json({error:"File path is required"});const[n,a]=await getPage({rootDir:rootDir,file:i});if(n)return s.status(n.code).json({error:n.msg});s.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\GET.js","names":["resolve","currentUserHasPermission","getPage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getPage from '../../../../../server/utils/pages/getPage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getPage({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,YAAa,+CAEpB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAclB,QAAQ,CAAEC,gBAASe,SAE/C,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import movePage from"../../../../../server/utils/pages/movePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const s=r.cookies.session_token,[o,t]=await currentUserHasPermission(s,"system:pages:update");if(o)return e.status(o.code).json({error:o.msg});if(!t)return e.status(403).json({error:"Insufficient permissions"});const{file:i,newFile:n}=r.body;if(!i)return e.status(400).json({error:"File path is required"});if(!n)return e.status(400).json({error:"New file path is required"});const[a,u]=await movePage({rootDir:rootDir,file:i,newFile:n});if(a)return e.status(a.code).json({error:a.msg});e.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PATCH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\PATCH.js","names":["resolve","currentUserHasPermission","movePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport movePage from '../../../../../server/utils/pages/movePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await movePage({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,aAAc,gDAErB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAAcnB,SAAS,CAAEC,gBAASe,OAAMC,YAEtD,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import updatePage from"../../../../../server/utils/pages/updatePage.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[t,o]=await currentUserHasPermission(s,"system:pages:update");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const{file:i,name:n,title:a,description:u,author:p,template:m,contents:c}=e.body;if(!i)return r.status(400).json({error:"File path is required"});const[l,d]=await updatePage({rootDir:rootDir,file:i,name:n,title:a,description:u,author:p,template:m,contents:c});if(l)return r.status(l.code).json({error:l.msg});r.json(d)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PUT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\file\\PUT.js","names":["resolve","currentUserHasPermission","updatePage","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","title","description","author","template","contents","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePage from '../../../../../server/utils/pages/updatePage.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, title, description, author, template, contents } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await updatePage({ rootDir, file, name, title, description, author, template, contents });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,eAAgB,kDAEvB,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,MAAEA,EAAKC,YAAEA,EAAWC,OAAEA,EAAMC,SAAEA,EAAQC,SAAEA,GAAalB,EAAQmB,KAE/E,IAAIP,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOU,SAAcxB,WAAW,CAAEC,gBAASe,OAAMC,OAAMC,QAAOC,cAAaC,SAAQC,WAAUC,aAEpG,GAAGR,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listTemplates from"../../../../../server/utils/pages/listTemplates.js";const rootDir=resolve(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listTemplates({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\pages\templates\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\pages\\templates\\GET.js","names":["resolve","currentUserHasPermission","listTemplates","rootDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listTemplates from '../../../../../server/utils/pages/listTemplates.js';\r\n\r\nconst rootDir = resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listTemplates({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAASA,YAAe,cACjBC,6BAA8B,6EAC9BC,kBAAmB,qDAE1B,MAAMC,QAAUH,oBAAoBI,QAAS,4CAE9BC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,yBAAyBO,EAAO,qBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAchB,cAAc,CAAEC,kBAE5C,GAAGa,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import deletePermission from"../../../../server/utils/permissions/deletePermission.js";export default async(s,e)=>{const r=s.cookies.session_token,{names:n}=s.body;if(!n||!Array.isArray(n)||0===n.length)return e.status(400).json({error:"Names array is required"});const[t,i]=await currentUserHasPermission(r,"system:permissions:manage");if(t)return e.status(t.code).json({error:t.msg});if(!i)return e.status(403).json({error:"Insufficient permissions"});const o=n.filter(s=>{const e=s.includes(":")?s.split(":")[0]:null;return e&&"admin"!==e});if(o.length)return e.status(403).json({error:`Cannot delete non-admin permissions: ${o.join(", ")}`});const a=[],m=[];for(const s of n){const[e,r]=await deletePermission(s);e?m.push({name:s,error:e.msg}):a.push(r)}if(m.length>0)return e.status(207).json({deleted:a,errors:m});e.json({deleted:a})};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\DELETE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\DELETE.js","names":["currentUserHasPermission","deletePermission","async","request","response","token","cookies","session_token","names","body","Array","isArray","length","status","json","error","permError","hasPermission","code","msg","nonAdmin","filter","n","owner","includes","split","join","deleted","errors","name","result","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport deletePermission from '../../../../server/utils/permissions/deletePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { names } = request.body;\r\n\r\n\tif(!names || !Array.isArray(names) || names.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Names array is required' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst nonAdmin = names.filter(n => {\r\n\t\tconst owner = n.includes(':') ? n.split(':')[0] : null;\r\n\t\treturn owner && owner !== 'admin';\r\n\t});\r\n\tif(nonAdmin.length){\r\n\t\treturn response.status(403).json({ error: `Cannot delete non-admin permissions: ${nonAdmin.join(', ')}` });\r\n\t}\r\n\r\n\tconst deleted = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const name of names){\r\n\t\tconst [error, result] = await deletePermission(name);\r\n\t\tif(error){\r\n\t\t\terrors.push({ name, error: error.msg });\r\n\t\t} else {\r\n\t\t\tdeleted.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ deleted, errors });\r\n\t}\r\n\r\n\tresponse.json({ deleted });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,MAAEA,GAAUL,EAAQM,KAE1B,IAAID,IAAUE,MAAMC,QAAQH,IAA2B,IAAjBA,EAAMI,OAC3C,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,4BAG3C,MAAOC,EAAWC,SAAuBjB,yBAAyBK,EAAO,6BAEzE,GAAGW,EACF,OAAOZ,EAASS,OAAOG,EAAUE,MAAMJ,KAAK,CAAEC,MAAOC,EAAUG,MAGhE,IAAIF,EACH,OAAOb,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMK,EAAWZ,EAAMa,OAAOC,IAC7B,MAAMC,EAAQD,EAAEE,SAAS,KAAOF,EAAEG,MAAM,KAAK,GAAK,KAClD,OAAOF,GAAmB,UAAVA,IAEjB,GAAGH,EAASR,OACX,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,wCAAwCK,EAASM,KAAK,UAGjG,MAAMC,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMC,KAAQrB,EAAM,CACvB,MAAOO,EAAOe,SAAgB7B,iBAAiB4B,GAC5Cd,EACFa,EAAOG,KAAK,CAAEF,OAAMd,MAAOA,EAAMI,MAEjCQ,EAAQI,KAAKD,EAEf,CAEA,GAAGF,EAAOhB,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEa,UAASC,WAG7CxB,EAASU,KAAK,CAAEa","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import getAllPermissions from"../../../../server/utils/permissions/getAllPermissions.js";export default async(s,r)=>{const e=s.cookies.session_token,[i,o]=await currentUserHasPermission(e,"system:permissions:read");if(i)return r.status(i.code).json({error:i.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const t=parseInt(s.query.limit)||50,n=parseInt(s.query.offset)||0,m=s.query.owner,[u,a]=await getAllPermissions({limit:t,offset:n,owner:m});if(u)return r.status(u.code).json({error:u.msg});r.json(a)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\GET.js","names":["currentUserHasPermission","getAllPermissions","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","limit","parseInt","query","offset","owner","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAllPermissions from '../../../../server/utils/permissions/getAllPermissions.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst limit = parseInt(request.query.limit) || 50;\r\n\tconst offset = parseInt(request.query.offset) || 0;\r\n\tconst owner = request.query.owner;\r\n\tconst [error, data] = await getAllPermissions({ limit, offset, owner });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,sBAAuB,2EAEfC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,yBAAyBK,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,EAC3CC,EAAQhB,EAAQc,MAAME,OACrBN,EAAOO,SAAcnB,kBAAkB,CAAEc,QAAOG,SAAQC,UAE/D,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import updatePermission from"../../../../server/utils/permissions/updatePermission.js";export default async(s,r)=>{const e=s.cookies.session_token,{name:i,description:o}=s.body;if(!i)return r.status(400).json({error:"Permission name is required"});if(i.startsWith("system:"))return r.status(403).json({error:"System permissions cannot be modified"});const[t,n]=await currentUserHasPermission(e,"system:permissions:manage");if(t)return r.status(t.code).json({error:t.msg});if(!n)return r.status(403).json({error:"Insufficient permissions"});const m={};void 0!==o&&(m.description=o);const[a,u]=await updatePermission(i,m);if(a)return r.status(a.code).json({error:a.msg});r.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\PATCH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\PATCH.js","names":["currentUserHasPermission","updatePermission","async","request","response","token","cookies","session_token","name","description","body","status","json","error","startsWith","permError","hasPermission","code","msg","updates","undefined","result"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updatePermission from '../../../../server/utils/permissions/updatePermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { name, description } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Permission name is required' });\r\n\t}\r\n\r\n\tif(name.startsWith('system:')){\r\n\t\treturn response.status(403).json({ error: 'System permissions cannot be modified' });\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst updates = {};\r\n\tif(description !== undefined) updates.description = description;\r\n\r\n\tconst [error, result] = await updatePermission(name, updates);\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,KAAEA,EAAIC,YAAEA,GAAgBN,EAAQO,KAEtC,IAAIF,EACH,OAAOJ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,gCAG3C,GAAGL,EAAKM,WAAW,WAClB,OAAOV,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,0CAG3C,MAAOE,EAAWC,SAAuBhB,yBAAyBK,EAAO,6BAEzE,GAAGU,EACF,OAAOX,EAASO,OAAOI,EAAUE,MAAML,KAAK,CAAEC,MAAOE,EAAUG,MAGhE,IAAIF,EACH,OAAOZ,EAASO,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMM,EAAU,CAAC,OACEC,IAAhBX,IAA2BU,EAAQV,YAAcA,GAEpD,MAAOI,EAAOQ,SAAgBpB,iBAAiBO,EAAMW,GAErD,GAAGN,EACF,OAAOT,EAASO,OAAOE,EAAMI,MAAML,KAAK,CAAEC,MAAOA,EAAMK,MAGxDd,EAASQ,KAAKS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import createPermission from"../../../../server/utils/permissions/createPermission.js";export default async(r,s)=>{const e=r.cookies.session_token,{permissions:o}=r.body;if(!o||!Array.isArray(o)||0===o.length)return s.status(400).json({error:"Permissions array is required"});for(const r of o){if(!r.resource||r.resource.includes(":"))return s.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return s.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[n,t]=await currentUserHasPermission(e,"system:permissions:manage");if(n)return s.status(n.code).json({error:n.msg});if(!t)return s.status(403).json({error:"Insufficient permissions"});const i=[],a=[];for(const r of o){const[s,e]=await createPermission({resource:r.resource,action:r.action,description:r.description,owner:"custom"});s?a.push({resource:r.resource,action:r.action,error:s.msg}):i.push(e)}if(a.length>0)return s.status(207).json({created:i,errors:a});s.json({created:i})};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\permissions\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\permissions\\POST.js","names":["currentUserHasPermission","createPermission","async","request","response","token","cookies","session_token","permissions","body","Array","isArray","length","status","json","error","p","resource","includes","action","permError","hasPermission","code","msg","created","errors","result","description","owner","push"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createPermission from '../../../../server/utils/permissions/createPermission.js';\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst { permissions } = request.body;\r\n\r\n\tif(!permissions || !Array.isArray(permissions) || permissions.length === 0){\r\n\t\treturn response.status(400).json({ error: 'Permissions array is required' });\r\n\t}\r\n\r\n\tfor(const p of permissions){\r\n\t\tif(!p.resource || p.resource.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid resource name: \"${p.resource}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t\tif(!p.action || p.action.includes(':')){\r\n\t\t\treturn response.status(400).json({ error: `Invalid action: \"${p.action}\". Cannot be empty or contain \":\"` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:permissions:manage');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst created = [];\r\n\tconst errors = [];\r\n\r\n\tfor(const p of permissions){\r\n\t\tconst [error, result] = await createPermission({ resource: p.resource, action: p.action, description: p.description, owner: 'custom' });\r\n\t\tif(error){\r\n\t\t\terrors.push({ resource: p.resource, action: p.action, error: error.msg });\r\n\t\t} else {\r\n\t\t\tcreated.push(result);\r\n\t\t}\r\n\t}\r\n\r\n\tif(errors.length > 0){\r\n\t\treturn response.status(207).json({ created, errors });\r\n\t}\r\n\r\n\tresponse.json({ created });\r\n};\r\n"],"mappings":"OAAOA,6BAA8B,0EAC9BC,qBAAsB,0EAEdC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,YAAEA,GAAgBL,EAAQM,KAEhC,IAAID,IAAgBE,MAAMC,QAAQH,IAAuC,IAAvBA,EAAYI,OAC7D,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG3C,IAAI,MAAMC,KAAKR,EAAY,CAC1B,IAAIQ,EAAEC,UAAYD,EAAEC,SAASC,SAAS,KACrC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,2BAA2BC,EAAEC,8CAExE,IAAID,EAAEG,QAAUH,EAAEG,OAAOD,SAAS,KACjC,OAAOd,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,oBAAoBC,EAAEG,2CAElE,CAEA,MAAOC,EAAWC,SAAuBrB,yBAAyBK,EAAO,6BAEzE,GAAGe,EACF,OAAOhB,EAASS,OAAOO,EAAUE,MAAMR,KAAK,CAAEC,MAAOK,EAAUG,MAGhE,IAAIF,EACH,OAAOjB,EAASS,OAAO,KAAKC,KAAK,CAAEC,MAAO,6BAG3C,MAAMS,EAAU,GACVC,EAAS,GAEf,IAAI,MAAMT,KAAKR,EAAY,CAC1B,MAAOO,EAAOW,SAAgBzB,iBAAiB,CAAEgB,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQQ,YAAaX,EAAEW,YAAaC,MAAO,WACzHb,EACFU,EAAOI,KAAK,CAAEZ,SAAUD,EAAEC,SAAUE,OAAQH,EAAEG,OAAQJ,MAAOA,EAAMQ,MAEnEC,EAAQK,KAAKH,EAEf,CAEA,GAAGD,EAAOb,OAAS,EAClB,OAAOR,EAASS,OAAO,KAAKC,KAAK,CAAEU,UAASC,WAG7CrB,EAASU,KAAK,CAAEU","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import currentUserHasPermission from"../../../../../server/utils/permissions/currentUserHasPermission.js";import listSettings from"../../../../../server/utils/settings/listSettings.js";export default async(s,r)=>{const e=s.cookies.session_token,[t,i]=await currentUserHasPermission(e,"system:settings:read");if(t)return r.status(t.code).json({error:t.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{owner:n}=s.params,o=parseInt(s.query.limit)||50,a=parseInt(s.query.offset)||0,[m,u]=await listSettings({owner:n,limit:o,offset:a});if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\GET.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\DELETE.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\GET.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\POST.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\settings\public\GET.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\DELETE.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
1
+ import{resolve}from"path";import currentUserHasPermission from"../../../../server/utils/permissions/currentUserHasPermission.js";import listTemplates from"../../../../server/utils/pages/listTemplates.js";const rootDir=resolve(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[t,o]=await currentUserHasPermission(e,"system:pages:read");if(t)return r.status(t.code).json({error:t.msg});if(!o)return r.status(403).json({error:"Insufficient permissions"});const[i,n]=await listTemplates({rootDir:rootDir});if(i)return r.status(i.code).json({error:i.msg});r.json(n)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\GET.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\POST.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\disable\PUT.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\enable\PUT.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\GET.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PATCH.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PUT.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\user\DELETE.js.map
@@ -0,0 +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';\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":[]}
@@ -0,0 +1,2 @@
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=C:\Users\dusti\dev\kempo\dist\kempo\api\user\GET.js.map
@@ -0,0 +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';\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":[]}