kempo 4.2.16 → 4.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +21 -4
- package/dist/admin/components/AddGroupControl.js +2 -2
- package/dist/admin/components/AddGroupControl.js.map +1 -1
- package/dist/admin/components/ClearExpiredSessionsControl.js +2 -2
- package/dist/admin/components/ClearExpiredSessionsControl.js.map +1 -1
- package/dist/admin/components/FragmentEditor.js +15 -15
- package/dist/admin/components/FragmentEditor.js.map +1 -1
- package/dist/admin/components/GlobalContentEditor.js +12 -12
- package/dist/admin/components/GlobalContentEditor.js.map +1 -1
- package/dist/admin/components/GroupDeleteSelected.js +2 -2
- package/dist/admin/components/GroupDeleteSelected.js.map +1 -1
- package/dist/admin/components/GroupRemoveRecord.js +2 -2
- package/dist/admin/components/GroupRemoveRecord.js.map +1 -1
- package/dist/admin/components/Monaco.js +1 -1
- package/dist/admin/components/Monaco.js.map +1 -1
- package/dist/admin/components/PageEditor.js +42 -28
- package/dist/admin/components/PageEditor.js.map +1 -1
- package/dist/admin/components/TableRowDelete.js +2 -2
- package/dist/admin/components/TableRowDelete.js.map +1 -1
- package/dist/admin/components/TableRowLink.js +2 -2
- package/dist/admin/components/TableRowLink.js.map +1 -1
- package/dist/admin/components/TemplateEditor.js +18 -18
- package/dist/admin/components/TemplateEditor.js.map +1 -1
- package/dist/admin/components/ValueEditor.js +17 -17
- package/dist/admin/components/ValueEditor.js.map +1 -1
- package/dist/admin/components/tableControls/AddMember.js +2 -2
- package/dist/admin/components/tableControls/AddMember.js.map +1 -1
- package/dist/admin/components/tableControls/AddPermission.js +2 -2
- package/dist/admin/components/tableControls/AddPermission.js.map +1 -1
- package/dist/admin/components/tableControls/InstallExtension.js +2 -2
- package/dist/admin/components/tableControls/InstallExtension.js.map +1 -1
- package/dist/admin/components/tableControls/UninstallExtension.js +2 -2
- package/dist/admin/components/tableControls/UninstallExtension.js.map +1 -1
- package/dist/admin/extensions/index.page.html +49 -15
- package/dist/admin/icons/open_in_new.svg +1 -0
- package/dist/admin/nav.fragment.html +1 -1
- package/dist/kempo/api/admin-globals/DELETE.js +1 -1
- package/dist/kempo/api/admin-globals/DELETE.js.map +1 -1
- package/dist/kempo/api/admin-globals/GET.js +1 -1
- package/dist/kempo/api/admin-globals/GET.js.map +1 -1
- package/dist/kempo/api/admin-globals/POST.js +1 -1
- package/dist/kempo/api/admin-globals/POST.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/GET.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/PUT.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/disable/PUT.js.map +1 -1
- package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/enable/PUT.js.map +1 -1
- package/dist/kempo/api/auth/change-password/POST.js +1 -1
- package/dist/kempo/api/auth/change-password/POST.js.map +1 -1
- package/dist/kempo/api/auth/login/email/POST.js +1 -1
- package/dist/kempo/api/auth/login/email/POST.js.map +1 -1
- package/dist/kempo/api/auth/logout/POST.js +1 -1
- package/dist/kempo/api/auth/logout/POST.js.map +1 -1
- package/dist/kempo/api/auth/register/email/POST.js +1 -1
- package/dist/kempo/api/auth/register/email/POST.js.map +1 -1
- package/dist/kempo/api/auth/reset-password/POST.js +1 -1
- package/dist/kempo/api/auth/reset-password/POST.js.map +1 -1
- package/dist/kempo/api/auth/session/GET.js +1 -1
- package/dist/kempo/api/auth/session/GET.js.map +1 -1
- package/dist/kempo/api/auth/verify-email/POST.js +1 -1
- package/dist/kempo/api/auth/verify-email/POST.js.map +1 -1
- package/dist/kempo/api/extensions/DELETE.js +1 -1
- package/dist/kempo/api/extensions/DELETE.js.map +1 -1
- package/dist/kempo/api/extensions/GET.js +1 -1
- package/dist/kempo/api/extensions/GET.js.map +1 -1
- package/dist/kempo/api/extensions/POST.js +1 -1
- package/dist/kempo/api/extensions/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/disable/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/enable/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/update/POST.js.map +1 -1
- package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
- package/dist/kempo/api/extensions/[name]/update-check/GET.js.map +1 -1
- package/dist/kempo/api/extensions/available/GET.js +1 -1
- package/dist/kempo/api/extensions/available/GET.js.map +1 -1
- package/dist/kempo/api/extensions/known/GET.js +1 -1
- package/dist/kempo/api/extensions/known/GET.js.map +1 -1
- package/dist/kempo/api/forgot-password/POST.js +1 -1
- package/dist/kempo/api/forgot-password/POST.js.map +1 -1
- package/dist/kempo/api/fragments/DELETE.js +1 -1
- package/dist/kempo/api/fragments/DELETE.js.map +1 -1
- package/dist/kempo/api/fragments/GET.js +1 -1
- package/dist/kempo/api/fragments/GET.js.map +1 -1
- package/dist/kempo/api/fragments/POST.js +1 -1
- package/dist/kempo/api/fragments/POST.js.map +1 -1
- package/dist/kempo/api/fragments/disable/PUT.js +1 -1
- package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/enable/PUT.js +1 -1
- package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/file/GET.js +1 -1
- package/dist/kempo/api/fragments/file/GET.js.map +1 -1
- package/dist/kempo/api/fragments/file/PATCH.js +1 -1
- package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
- package/dist/kempo/api/fragments/file/PUT.js +1 -1
- package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
- package/dist/kempo/api/fragments/lock/PUT.js +2 -2
- package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
- package/dist/kempo/api/globals/DELETE.js +1 -1
- package/dist/kempo/api/globals/DELETE.js.map +1 -1
- package/dist/kempo/api/globals/GET.js +1 -1
- package/dist/kempo/api/globals/GET.js.map +1 -1
- package/dist/kempo/api/globals/POST.js +1 -1
- package/dist/kempo/api/globals/POST.js.map +1 -1
- package/dist/kempo/api/globals/disable/PUT.js +1 -1
- package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
- package/dist/kempo/api/globals/enable/PUT.js +1 -1
- package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
- package/dist/kempo/api/globals/entry/GET.js +1 -1
- package/dist/kempo/api/globals/entry/GET.js.map +1 -1
- package/dist/kempo/api/globals/entry/PUT.js +1 -1
- package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
- package/dist/kempo/api/globals/lock/PUT.js +2 -2
- package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
- package/dist/kempo/api/groups/DELETE.js +1 -1
- package/dist/kempo/api/groups/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/GET.js +1 -1
- package/dist/kempo/api/groups/GET.js.map +1 -1
- package/dist/kempo/api/groups/PATCH.js +1 -1
- package/dist/kempo/api/groups/PATCH.js.map +1 -1
- package/dist/kempo/api/groups/POST.js +1 -1
- package/dist/kempo/api/groups/POST.js.map +1 -1
- package/dist/kempo/api/groups/[name]/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/members/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/members/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/members/POST.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/DELETE.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/GET.js.map +1 -1
- package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/POST.js.map +1 -1
- package/dist/kempo/api/pages/DELETE.js +1 -1
- package/dist/kempo/api/pages/DELETE.js.map +1 -1
- package/dist/kempo/api/pages/GET.js +1 -1
- package/dist/kempo/api/pages/GET.js.map +1 -1
- package/dist/kempo/api/pages/POST.js +1 -1
- package/dist/kempo/api/pages/POST.js.map +1 -1
- package/dist/kempo/api/pages/directories/GET.js +1 -1
- package/dist/kempo/api/pages/directories/GET.js.map +1 -1
- package/dist/kempo/api/pages/disable/PUT.js +1 -1
- package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
- package/dist/kempo/api/pages/enable/PUT.js +1 -1
- package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
- package/dist/kempo/api/pages/file/GET.js +1 -1
- package/dist/kempo/api/pages/file/GET.js.map +1 -1
- package/dist/kempo/api/pages/file/PATCH.js +1 -1
- package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
- package/dist/kempo/api/pages/file/PUT.js +1 -1
- package/dist/kempo/api/pages/file/PUT.js.map +1 -1
- package/dist/kempo/api/pages/lock/PUT.js +2 -2
- package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
- package/dist/kempo/api/pages/search/GET.js +2 -2
- package/dist/kempo/api/pages/search/GET.js.map +1 -1
- package/dist/kempo/api/pages/templates/GET.js +1 -1
- package/dist/kempo/api/pages/templates/GET.js.map +1 -1
- package/dist/kempo/api/permissions/DELETE.js +1 -1
- package/dist/kempo/api/permissions/DELETE.js.map +1 -1
- package/dist/kempo/api/permissions/GET.js +1 -1
- package/dist/kempo/api/permissions/GET.js.map +1 -1
- package/dist/kempo/api/permissions/PATCH.js +1 -1
- package/dist/kempo/api/permissions/PATCH.js.map +1 -1
- package/dist/kempo/api/permissions/POST.js +1 -1
- package/dist/kempo/api/permissions/POST.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/GET.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/DELETE.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/GET.js.map +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/POST.js.map +1 -1
- package/dist/kempo/api/settings/public/GET.js +1 -1
- package/dist/kempo/api/settings/public/GET.js.map +1 -1
- package/dist/kempo/api/templates/DELETE.js +1 -1
- package/dist/kempo/api/templates/DELETE.js.map +1 -1
- package/dist/kempo/api/templates/GET.js +1 -1
- package/dist/kempo/api/templates/GET.js.map +1 -1
- package/dist/kempo/api/templates/POST.js +1 -1
- package/dist/kempo/api/templates/POST.js.map +1 -1
- package/dist/kempo/api/templates/disable/PUT.js +1 -1
- package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
- package/dist/kempo/api/templates/enable/PUT.js +1 -1
- package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
- package/dist/kempo/api/templates/file/GET.js +1 -1
- package/dist/kempo/api/templates/file/GET.js.map +1 -1
- package/dist/kempo/api/templates/file/PATCH.js +1 -1
- package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
- package/dist/kempo/api/templates/file/PUT.js +1 -1
- package/dist/kempo/api/templates/file/PUT.js.map +1 -1
- package/dist/kempo/api/templates/lock/PUT.js +2 -2
- package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
- package/dist/kempo/api/user/DELETE.js +1 -1
- package/dist/kempo/api/user/DELETE.js.map +1 -1
- package/dist/kempo/api/user/GET.js +1 -1
- package/dist/kempo/api/user/GET.js.map +1 -1
- package/dist/kempo/api/user/PATCH.js +1 -1
- package/dist/kempo/api/user/PATCH.js.map +1 -1
- package/dist/kempo/api/user/[userid]/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/DELETE.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/POST.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/all/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/list/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/some/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/DELETE.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/GET.js.map +1 -1
- package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js.map +1 -1
- package/dist/kempo/api/user/create/POST.js +1 -1
- package/dist/kempo/api/user/create/POST.js.map +1 -1
- package/dist/kempo/api/user/search/GET.js +1 -1
- package/dist/kempo/api/user/search/GET.js.map +1 -1
- package/dist/kempo/components/LogoutBtn.js +1 -1
- package/dist/kempo/components/LogoutBtn.js.map +1 -1
- package/dist/kempo/components/Menu.js +9 -9
- package/dist/kempo/components/Menu.js.map +1 -1
- package/dist/kempo/components/Permission.js +1 -1
- package/dist/kempo/components/Permission.js.map +1 -1
- package/dist/kempo/components/Role.js +1 -1
- package/dist/kempo/components/Role.js.map +1 -1
- package/dist/kempo/components/UserCreatedAt.js +1 -1
- package/dist/kempo/components/UserCreatedAt.js.map +1 -1
- package/dist/kempo/components/UserEmail.js +1 -1
- package/dist/kempo/components/UserEmail.js.map +1 -1
- package/dist/kempo/components/UserEmailVerified.js +1 -1
- package/dist/kempo/components/UserEmailVerified.js.map +1 -1
- package/dist/kempo/components/UserName.js +1 -1
- package/dist/kempo/components/UserName.js.map +1 -1
- package/dist/kempo/fetch.js +1 -1
- package/dist/kempo/fetch.js.map +1 -1
- package/dist/kempo/sdk.js +1 -1
- package/dist/kempo/sdk.js.map +1 -1
- package/middleware/kempo.js +36 -6
- package/package.json +2 -2
- package/server/utils/extensions/installExtension.js +19 -13
- package/server/utils/extensions/uninstallExtension.js +6 -10
- package/server/utils/pages/deletePage.js +2 -10
- package/dist/admin/accounts/groups/[name]/index.html +0 -518
- package/dist/admin/accounts/groups/index.html +0 -378
- package/dist/admin/accounts/permissions/index.html +0 -397
- package/dist/admin/accounts/users/[id]/index.html +0 -541
- package/dist/admin/accounts/users/index.html +0 -396
- package/dist/admin/content/fragments/edit/index.html +0 -132
- package/dist/admin/content/fragments/index.html +0 -375
- package/dist/admin/content/globals/edit/index.html +0 -132
- package/dist/admin/content/globals/index.html +0 -358
- package/dist/admin/content/pages/edit/index.html +0 -132
- package/dist/admin/content/pages/index.html +0 -509
- package/dist/admin/content/templates/edit/index.html +0 -132
- package/dist/admin/content/templates/index.html +0 -429
- package/dist/admin/extensions/index.html +0 -222
- package/dist/admin/index.html +0 -130
- package/dist/admin/settings/[owner]/[name]/index.html +0 -449
- package/dist/admin/settings/index.html +0 -410
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as r}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/admin-global-content/createAdminGlobalContent.js";const t=r(import.meta.dirname,"../../../../dist/admin");export default async(r,e)=>{const i=r.cookies.session_token,[n,a]=await o(i,"system:globals:create");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{name:m,location:c,priority:u,owner:p,markup:l}=r.body,[d,f]=await s({adminDir:t,name:m,location:c,priority:u,owner:p,markup:l});if(d)return e.status(d.code).json({error:d.msg});e.json(f)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\admin-globals\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\admin-globals\\POST.js","names":["resolve","currentUserHasPermission","createAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","owner","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createAdminGlobalContent from '../../../../server/utils/admin-global-content/createAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../dist/admin');\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:globals:create');\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 { name, location, priority, owner, markup } = request.body;\r\n const [error, data] = await createAdminGlobalContent({ adminDir, name, location, priority, owner, markup });\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":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\admin-globals\\POST.js","names":["resolve","currentUserHasPermission","createAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","owner","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport createAdminGlobalContent from '../../../../server/utils/admin-global-content/createAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../dist/admin');\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:globals:create');\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 { name, location, priority, owner, markup } = request.body;\r\n const [error, data] = await createAdminGlobalContent({ adminDir, name, location, priority, owner, markup });\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":"kBAASA,MAAe,cACjBC,MAA8B,0EAC9BC,MAA8B,4EAErC,MAAMC,EAAWH,cAAoBI,QAAS,yCAE/BC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,MAAEA,EAAKC,OAAEA,GAAWhB,EAAQiB,MACrDP,EAAOQ,SAActB,EAAyB,CAAEC,WAAUe,OAAMC,WAAUC,WAAUC,QAAOC,WAElG,GAAGN,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKS","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/admin-global-content/getAdminGlobalContent.js";const o=s(import.meta.dirname,"../../../../../dist/admin");export default async(s,e)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:globals:read");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const m=s.params.id,[d,u]=await t({adminDir:o,id:m});if(d)return e.status(d.code).json({error:d.msg});e.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\admin-globals\[id]\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\GET.js","names":["resolve","currentUserHasPermission","getAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAdminGlobalContent from '../../../../../server/utils/admin-global-content/getAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../dist/admin');\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:globals: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 id = request.params.id;\r\n const [error, data] = await getAdminGlobalContent({ adminDir, id });\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":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\GET.js","names":["resolve","currentUserHasPermission","getAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getAdminGlobalContent from '../../../../../server/utils/admin-global-content/getAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../dist/admin');\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:globals: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 id = request.params.id;\r\n const [error, data] = await getAdminGlobalContent({ adminDir, id });\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":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAA2B,4EAElC,MAAMC,EAAWH,cAAoBI,QAAS,4CAE/BC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,uBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAKZ,EAAQa,OAAOD,IACnBF,EAAOI,SAAclB,EAAsB,CAAEC,WAAUe,OAE9D,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/admin-global-content/updateAdminGlobalContent.js";const t=r(import.meta.dirname,"../../../../../dist/admin");export default async(r,i)=>{const e=r.cookies.session_token,[n,a]=await s(e,"system:globals:update");if(n)return i.status(n.code).json({error:n.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const m=r.params.id,{name:p,location:u,priority:d,markup:c}=r.body,[l,f]=await o({adminDir:t,id:m,name:p,location:u,priority:d,markup:c});if(l)return i.status(l.code).json({error:l.msg});i.json(f)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\admin-globals\[id]\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\PUT.js","names":["resolve","currentUserHasPermission","updateAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","name","location","priority","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateAdminGlobalContent from '../../../../../server/utils/admin-global-content/updateAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const { name, location, priority, markup } = request.body;\r\n const [error, data] = await updateAdminGlobalContent({ adminDir, id, name, location, priority, markup });\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":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\PUT.js","names":["resolve","currentUserHasPermission","updateAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","name","location","priority","markup","body","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateAdminGlobalContent from '../../../../../server/utils/admin-global-content/updateAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const { name, location, priority, markup } = request.body;\r\n const [error, data] = await updateAdminGlobalContent({ adminDir, id, name, location, priority, markup });\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":"kBAASA,MAAe,cACjBC,MAA8B,6EAC9BC,MAA8B,+EAErC,MAAMC,EAAWH,cAAoBI,QAAS,4CAE/BC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAKZ,EAAQa,OAAOD,IACpBE,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,OAAEA,GAAWjB,EAAQkB,MAC9CR,EAAOS,SAAcvB,EAAyB,CAAEC,WAAUe,KAAIE,OAAMC,WAAUC,WAAUC,WAE/F,GAAGP,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKU","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../../server/utils/admin-global-content/disableAdminGlobalContent.js";const o=s(import.meta.dirname,"../../../../../../dist/admin");export default async(s,i)=>{const e=s.cookies.session_token,[n,a]=await r(e,"system:globals:update");if(n)return i.status(n.code).json({error:n.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const m=s.params.id,[d,u]=await t({adminDir:o,id:m});if(d)return i.status(d.code).json({error:d.msg});i.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\admin-globals\[id]\disable\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableAdminGlobalContent from '../../../../../../server/utils/admin-global-content/disableAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const [error, data] = await disableAdminGlobalContent({ adminDir, id });\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":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\disable\\PUT.js","names":["resolve","currentUserHasPermission","disableAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableAdminGlobalContent from '../../../../../../server/utils/admin-global-content/disableAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const [error, data] = await disableAdminGlobalContent({ adminDir, id });\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":"kBAASA,MAAe,cACjBC,MAA8B,gFAC9BC,MAA+B,mFAEtC,MAAMC,EAAWH,cAAoBI,QAAS,+CAE/BC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAKZ,EAAQa,OAAOD,IACnBF,EAAOI,SAAclB,EAA0B,CAAEC,WAAUe,OAElE,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolve}from"path";import
|
|
1
|
+
import{resolve as s}from"path";import r from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../../server/utils/admin-global-content/enableAdminGlobalContent.js";const o=s(import.meta.dirname,"../../../../../../dist/admin");export default async(s,e)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:globals:update");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const m=s.params.id,[d,u]=await t({adminDir:o,id:m});if(d)return e.status(d.code).json({error:d.msg});e.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\admin-globals\[id]\enable\PUT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableAdminGlobalContent from '../../../../../../server/utils/admin-global-content/enableAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const [error, data] = await enableAdminGlobalContent({ adminDir, id });\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":"
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\admin-globals\\[id]\\enable\\PUT.js","names":["resolve","currentUserHasPermission","enableAdminGlobalContent","adminDir","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","params","data"],"sources":["0"],"sourcesContent":["import { resolve } from 'path';\r\nimport currentUserHasPermission from '../../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableAdminGlobalContent from '../../../../../../server/utils/admin-global-content/enableAdminGlobalContent.js';\r\n\r\nconst adminDir = resolve(import.meta.dirname, '../../../../../../dist/admin');\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:globals:update');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const id = request.params.id;\r\n const [error, data] = await enableAdminGlobalContent({ adminDir, id });\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":"kBAASA,MAAe,cACjBC,MAA8B,gFAC9BC,MAA8B,kFAErC,MAAMC,EAAWH,cAAoBI,QAAS,+CAE/BC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,EAAO,yBAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAKZ,EAAQa,OAAOD,IACnBF,EAAOI,SAAclB,EAAyB,CAAEC,WAAUe,OAEjE,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/auth/changePassword.js";import r from"../../../../../server/utils/auth/getSession.js";import e from"bcrypt";export default async(t,o)=>{try{const a=t.cookies.session_token,[n,u]=await r({token:a});if(n||!u||!u.user)return o.status(401).json({error:"Not authenticated"});const{currentPassword:c,newPassword:i}=t.body;if(!c||!i)return o.status(400).json({error:"Current password and new password are required"});if(i.length<8)return o.status(400).json({error:"New password must be at least 8 characters"});if(!await e.compare(c,u.user.passwordHash))return o.status(400).json({error:"Current password is incorrect"});const[d,w]=await s(u.user.id,i);if(d)return o.status(d.code).json({error:d.msg});o.json({success:!0,message:"Password changed successfully"})}catch(s){console.error("Change password error:",s),o.status(500).json({error:s.message||"Failed to change password"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\change-password\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\change-password\\POST.js","names":["changePassword","getSession","bcrypt","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","user","status","json","error","currentPassword","newPassword","body","length","compare","passwordHash","changeError","result","id","code","msg","success","message","console"],"sources":["0"],"sourcesContent":["import changePassword from '../../../../../server/utils/auth/changePassword.js';\r\nimport getSession from '../../../../../server/utils/auth/getSession.js';\r\nimport bcrypt from 'bcrypt';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n \r\n if(sessionError || !session || !session.user){\r\n return response.status(401).json({ error: 'Not authenticated' });\r\n }\r\n \r\n const { currentPassword, newPassword } = request.body;\r\n\r\n if(!currentPassword || !newPassword){\r\n return response.status(400).json({ error: 'Current password and new password are required' });\r\n }\r\n\r\n if(newPassword.length < 8){\r\n return response.status(400).json({ error: 'New password must be at least 8 characters' });\r\n }\r\n\r\n const isValid = await bcrypt.compare(currentPassword, session.user.passwordHash);\r\n \r\n if(!isValid){\r\n return response.status(400).json({ error: 'Current password is incorrect' });\r\n }\r\n\r\n const [changeError, result] = await changePassword(session.user.id, newPassword);\r\n\r\n if(changeError){\r\n return response.status(changeError.code).json({ error: changeError.msg });\r\n }\r\n\r\n response.json({ success: true, message: 'Password changed successfully' });\r\n } catch(error){\r\n console.error('Change password error:', error);\r\n response.status(500).json({ \r\n error: error.message || 'Failed to change password'\r\n });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\change-password\\POST.js","names":["changePassword","getSession","bcrypt","async","request","response","sessionToken","cookies","session_token","sessionError","session","token","user","status","json","error","currentPassword","newPassword","body","length","compare","passwordHash","changeError","result","id","code","msg","success","message","console"],"sources":["0"],"sourcesContent":["import changePassword from '../../../../../server/utils/auth/changePassword.js';\r\nimport getSession from '../../../../../server/utils/auth/getSession.js';\r\nimport bcrypt from 'bcrypt';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const sessionToken = request.cookies.session_token;\r\n const [sessionError, session] = await getSession({ token: sessionToken });\r\n \r\n if(sessionError || !session || !session.user){\r\n return response.status(401).json({ error: 'Not authenticated' });\r\n }\r\n \r\n const { currentPassword, newPassword } = request.body;\r\n\r\n if(!currentPassword || !newPassword){\r\n return response.status(400).json({ error: 'Current password and new password are required' });\r\n }\r\n\r\n if(newPassword.length < 8){\r\n return response.status(400).json({ error: 'New password must be at least 8 characters' });\r\n }\r\n\r\n const isValid = await bcrypt.compare(currentPassword, session.user.passwordHash);\r\n \r\n if(!isValid){\r\n return response.status(400).json({ error: 'Current password is incorrect' });\r\n }\r\n\r\n const [changeError, result] = await changePassword(session.user.id, newPassword);\r\n\r\n if(changeError){\r\n return response.status(changeError.code).json({ error: changeError.msg });\r\n }\r\n\r\n response.json({ success: true, message: 'Password changed successfully' });\r\n } catch(error){\r\n console.error('Change password error:', error);\r\n response.status(500).json({ \r\n error: error.message || 'Failed to change password'\r\n });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAoB,4DACpBC,MAAgB,wDAChBC,MAAY,wBAEJC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAcC,SAAiBT,EAAW,CAAEU,MAAOL,IAE1D,GAAGG,IAAiBC,IAAYA,EAAQE,KACtC,OAAOP,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,sBAG5C,MAAMC,gBAAEA,EAAeC,YAAEA,GAAgBb,EAAQc,KAEjD,IAAIF,IAAoBC,EACtB,OAAOZ,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,mDAG5C,GAAGE,EAAYE,OAAS,EACtB,OAAOd,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,+CAK5C,UAFsBb,EAAOkB,QAAQJ,EAAiBN,EAAQE,KAAKS,cAGjE,OAAOhB,EAASQ,OAAO,KAAKC,KAAK,CAAEC,MAAO,kCAG5C,MAAOO,EAAaC,SAAgBvB,EAAeU,EAAQE,KAAKY,GAAIP,GAEpE,GAAGK,EACD,OAAOjB,EAASQ,OAAOS,EAAYG,MAAMX,KAAK,CAAEC,MAAOO,EAAYI,MAGrErB,EAASS,KAAK,CAAEa,SAAS,EAAMC,QAAS,iCAC1C,CAAE,MAAMb,GACNc,QAAQd,MAAM,yBAA0BA,GACxCV,EAASQ,OAAO,KAAKC,KAAK,CACxBC,MAAOA,EAAMa,SAAW,6BAE5B","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../../../../../../server/utils/auth/loginEmail.js";export default async(r,s)=>{try{const{email:o,password:t}=r.body,[n,a]=await e(o,t);if(n)return s.status(n.code).json({error:n.msg});s.cookie("session_token",a.sessionToken,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,sameSite:"lax",path:"/",maxAge:a.expiresAt.getTime()-Date.now()}),s.json({user:a.user})}catch(e){console.error("Login error:",e),s.status(500).json({error:"Internal server error"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\login\email\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\login\\email\\POST.js","names":["loginEmail","async","request","response","email","password","body","error","result","status","code","json","msg","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","expiresAt","getTime","Date","now","user","console"],"sources":["0"],"sourcesContent":["import loginEmail from '../../../../../../server/utils/auth/loginEmail.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email, password } = request.body;\r\n \r\n const [error, result] = await loginEmail(email, password);\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.cookie('session_token', result.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: result.expiresAt.getTime() - Date.now()\r\n });\r\n \r\n response.json({ user: result.user });\r\n } catch(error){\r\n console.error('Login error:', error);\r\n response.status(500).json({ error: 'Internal server error' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\login\\email\\POST.js","names":["loginEmail","async","request","response","email","password","body","error","result","status","code","json","msg","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","expiresAt","getTime","Date","now","user","console"],"sources":["0"],"sourcesContent":["import loginEmail from '../../../../../../server/utils/auth/loginEmail.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email, password } = request.body;\r\n \r\n const [error, result] = await loginEmail(email, password);\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.cookie('session_token', result.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: result.expiresAt.getTime() - Date.now()\r\n });\r\n \r\n response.json({ user: result.user });\r\n } catch(error){\r\n console.error('Login error:', error);\r\n response.status(500).json({ error: 'Internal server error' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAgB,mEAERC,MAAOC,EAASC,KAC7B,IACE,MAAMC,MAAEA,EAAKC,SAAEA,GAAaH,EAAQI,MAE7BC,EAAOC,SAAgBR,EAAWI,EAAOC,GAEhD,GAAGE,EACD,OAAOJ,EAASM,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzDT,EAASU,OAAO,gBAAiBL,EAAOM,aAAc,CACpDC,UAAU,EACVC,OAAiC,eAAzBC,QAAQC,IAAIC,SACpBC,SAAU,MACVC,KAAM,IACNC,OAAQd,EAAOe,UAAUC,UAAYC,KAAKC,QAG5CvB,EAASQ,KAAK,CAAEgB,KAAMnB,EAAOmB,MAC/B,CAAE,MAAMpB,GACNqB,QAAQrB,MAAM,eAAgBA,GAC9BJ,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAO,yBACrC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../../../../../server/utils/auth/logout.js";export default async(t,s)=>{try{const o=t.cookies.session_token,[r,a]=await e({token:o});if(r)return s.status(r.code).json({error:r.msg});s.setHeader("Set-Cookie","session_token=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=0"),s.json(a)}catch(e){s.status(500).json({error:e.message})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\logout\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\logout\\POST.js","names":["logout","async","request","response","token","cookies","session_token","error","result","status","code","json","msg","setHeader","message"],"sources":["0"],"sourcesContent":["import logout from '../../../../../server/utils/auth/logout.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const token = request.cookies.session_token;\r\n const [error, result] = await logout({ token });\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n \r\n response.setHeader('Set-Cookie', 'session_token=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=0');\r\n response.json(result);\r\n } catch(error) {\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\logout\\POST.js","names":["logout","async","request","response","token","cookies","session_token","error","result","status","code","json","msg","setHeader","message"],"sources":["0"],"sourcesContent":["import logout from '../../../../../server/utils/auth/logout.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const token = request.cookies.session_token;\r\n const [error, result] = await logout({ token });\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n \r\n response.setHeader('Set-Cookie', 'session_token=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=0');\r\n response.json(result);\r\n } catch(error) {\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAY,4DAEJC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAOC,SAAgBR,EAAO,CAAEI,UAEvC,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzDT,EAASU,UAAU,aAAc,wEACjCV,EAASQ,KAAKH,EAChB,CAAE,MAAMD,GACNJ,EAASM,OAAO,KAAKE,KAAK,CAAEJ,MAAOA,EAAMO,SAC3C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"../../../../../../server/utils/auth/registerEmail.js";export default async(r,s)=>{try{const{email:o,password:t,name:i}=r.body,[a,n]=await e({email:o,password:t,name:i});if(a)return s.status(a.code).json({error:a.msg});if(n.requiresVerification)return s.json({user:n.user,requiresVerification:n.requiresVerification});s.cookie("session_token",n.sessionToken,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,sameSite:"lax",path:"/",maxAge:n.expiresAt.getTime()-Date.now()}),s.json({user:n.user})}catch(e){console.error("Registration error:",e),s.status(500).json({error:"Internal server error"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\register\email\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\register\\email\\POST.js","names":["registerEmail","async","request","response","email","password","name","body","error","result","status","code","json","msg","requiresVerification","user","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","expiresAt","getTime","Date","now","console"],"sources":["0"],"sourcesContent":["import registerEmail from '../../../../../../server/utils/auth/registerEmail.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email, password, name } = request.body;\r\n \r\n const [error, result] = await registerEmail({ email, password, 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(result.requiresVerification){\r\n return response.json({ user: result.user, requiresVerification: result.requiresVerification });\r\n }\r\n\r\n response.cookie('session_token', result.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: result.expiresAt.getTime() - Date.now()\r\n });\r\n \r\n response.json({ user: result.user });\r\n } catch(error){\r\n console.error('Registration error:', error);\r\n response.status(500).json({ error: 'Internal server error' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\register\\email\\POST.js","names":["registerEmail","async","request","response","email","password","name","body","error","result","status","code","json","msg","requiresVerification","user","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","expiresAt","getTime","Date","now","console"],"sources":["0"],"sourcesContent":["import registerEmail from '../../../../../../server/utils/auth/registerEmail.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email, password, name } = request.body;\r\n \r\n const [error, result] = await registerEmail({ email, password, 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(result.requiresVerification){\r\n return response.json({ user: result.user, requiresVerification: result.requiresVerification });\r\n }\r\n\r\n response.cookie('session_token', result.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: result.expiresAt.getTime() - Date.now()\r\n });\r\n \r\n response.json({ user: result.user });\r\n } catch(error){\r\n console.error('Registration error:', error);\r\n response.status(500).json({ error: 'Internal server error' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAmB,sEAEXC,MAAOC,EAASC,KAC7B,IACE,MAAMC,MAAEA,EAAKC,SAAEA,EAAQC,KAAEA,GAASJ,EAAQK,MAEnCC,EAAOC,SAAgBT,EAAc,CAAEI,QAAOC,WAAUC,SAE/D,GAAGE,EACD,OAAOL,EAASO,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzD,GAAGJ,EAAOK,qBACR,OAAOX,EAASS,KAAK,CAAEG,KAAMN,EAAOM,KAAMD,qBAAsBL,EAAOK,uBAGzEX,EAASa,OAAO,gBAAiBP,EAAOQ,aAAc,CACpDC,UAAU,EACVC,OAAiC,eAAzBC,QAAQC,IAAIC,SACpBC,SAAU,MACVC,KAAM,IACNC,OAAQhB,EAAOiB,UAAUC,UAAYC,KAAKC,QAG5C1B,EAASS,KAAK,CAAEG,KAAMN,EAAOM,MAC/B,CAAE,MAAMP,GACNsB,QAAQtB,MAAM,sBAAuBA,GACrCL,EAASO,OAAO,KAAKE,KAAK,CAAEJ,MAAO,yBACrC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/auth/resetPassword.js";import r from"../../../../../server/utils/auth/loginEmail.js";import e from"../../../../../server/db/index.js";import{user as o}from"../../../../../server/db/schema.js";import{eq as t}from"drizzle-orm";export default async(a,n)=>{try{const{token:i,newPassword:u,logoutAll:l=!1}=a.body;console.log("Password reset request - Token:",i);const[d,m]=await s({token:i,password:u,logoutAll:l});if(d)return n.status(d.code).json({error:d.msg});const c=await e.select().from(o).where(t(o.id,m.userId)).limit(1);if(0===c.length)return n.status(500).json({error:"User not found after password reset"});const[p,f]=await r(c[0].email,u);if(p)return n.status(p.code).json({error:p.msg});n.cookie("session_token",f.sessionToken,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,sameSite:"lax",path:"/",maxAge:24*(f.sessionDurationDays||7)*60*60*1e3}),n.json({success:!0,user:f.user})}catch(s){console.error("Password reset error:",s),n.status(500).json({error:"Failed to reset password"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\reset-password\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\reset-password\\POST.js","names":["resetPassword","loginEmail","db","user","eq","async","request","response","token","newPassword","logoutAll","body","console","log","resetError","result","password","status","code","json","error","msg","userData","select","from","where","id","userId","limit","length","loginError","loginResult","email","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","sessionDurationDays","success"],"sources":["0"],"sourcesContent":["import resetPassword from '../../../../../server/utils/auth/resetPassword.js';\r\nimport loginEmail from '../../../../../server/utils/auth/loginEmail.js';\r\nimport db from '../../../../../server/db/index.js';\r\nimport { user } from '../../../../../server/db/schema.js';\r\nimport { eq } from 'drizzle-orm';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { token, newPassword, logoutAll = false } = request.body;\r\n \r\n console.log('Password reset request - Token:', token);\r\n \r\n const [resetError, result] = await resetPassword({ token, password: newPassword, logoutAll });\r\n \r\n if(resetError){\r\n return response.status(resetError.code).json({ error: resetError.msg });\r\n }\r\n \r\n const userData = await db.select().from(user).where(eq(user.id, result.userId)).limit(1);\r\n \r\n if(userData.length === 0){\r\n return response.status(500).json({ error: 'User not found after password reset' });\r\n }\r\n\r\n const [loginError, loginResult] = await loginEmail(userData[0].email, newPassword);\r\n \r\n if(loginError){\r\n return response.status(loginError.code).json({ error: loginError.msg });\r\n }\r\n \r\n response.cookie('session_token', loginResult.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: (loginResult.sessionDurationDays || 7) * 24 * 60 * 60 * 1000\r\n });\r\n \r\n response.json({ success: true, user: loginResult.user });\r\n } catch(error){\r\n console.error('Password reset error:', error);\r\n response.status(500).json({ error: 'Failed to reset password' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\reset-password\\POST.js","names":["resetPassword","loginEmail","db","user","eq","async","request","response","token","newPassword","logoutAll","body","console","log","resetError","result","password","status","code","json","error","msg","userData","select","from","where","id","userId","limit","length","loginError","loginResult","email","cookie","sessionToken","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","sessionDurationDays","success"],"sources":["0"],"sourcesContent":["import resetPassword from '../../../../../server/utils/auth/resetPassword.js';\r\nimport loginEmail from '../../../../../server/utils/auth/loginEmail.js';\r\nimport db from '../../../../../server/db/index.js';\r\nimport { user } from '../../../../../server/db/schema.js';\r\nimport { eq } from 'drizzle-orm';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { token, newPassword, logoutAll = false } = request.body;\r\n \r\n console.log('Password reset request - Token:', token);\r\n \r\n const [resetError, result] = await resetPassword({ token, password: newPassword, logoutAll });\r\n \r\n if(resetError){\r\n return response.status(resetError.code).json({ error: resetError.msg });\r\n }\r\n \r\n const userData = await db.select().from(user).where(eq(user.id, result.userId)).limit(1);\r\n \r\n if(userData.length === 0){\r\n return response.status(500).json({ error: 'User not found after password reset' });\r\n }\r\n\r\n const [loginError, loginResult] = await loginEmail(userData[0].email, newPassword);\r\n \r\n if(loginError){\r\n return response.status(loginError.code).json({ error: loginError.msg });\r\n }\r\n \r\n response.cookie('session_token', loginResult.sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: (loginResult.sessionDurationDays || 7) * 24 * 60 * 60 * 1000\r\n });\r\n \r\n response.json({ success: true, user: loginResult.user });\r\n } catch(error){\r\n console.error('Password reset error:', error);\r\n response.status(500).json({ error: 'Failed to reset password' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAmB,2DACnBC,MAAgB,wDAChBC,MAAQ,mDACNC,MAAY,kDACZC,MAAU,6BAEJC,MAAOC,EAASC,KAC7B,IACE,MAAMC,MAAEA,EAAKC,YAAEA,EAAWC,UAAEA,GAAY,GAAUJ,EAAQK,KAE1DC,QAAQC,IAAI,kCAAmCL,GAE/C,MAAOM,EAAYC,SAAgBf,EAAc,CAAEQ,QAAOQ,SAAUP,EAAaC,cAEjF,GAAGI,EACD,OAAOP,EAASU,OAAOH,EAAWI,MAAMC,KAAK,CAAEC,MAAON,EAAWO,MAGnE,MAAMC,QAAiBpB,EAAGqB,SAASC,KAAKrB,GAAMsB,MAAMrB,EAAGD,EAAKuB,GAAIX,EAAOY,SAASC,MAAM,GAEtF,GAAuB,IAApBN,EAASO,OACV,OAAOtB,EAASU,OAAO,KAAKE,KAAK,CAAEC,MAAO,wCAG5C,MAAOU,EAAYC,SAAqB9B,EAAWqB,EAAS,GAAGU,MAAOvB,GAEtE,GAAGqB,EACD,OAAOvB,EAASU,OAAOa,EAAWZ,MAAMC,KAAK,CAAEC,MAAOU,EAAWT,MAGnEd,EAAS0B,OAAO,gBAAiBF,EAAYG,aAAc,CACzDC,UAAU,EACVC,OAAiC,eAAzBC,QAAQC,IAAIC,SACpBC,SAAU,MACVC,KAAM,IACNC,OAAiD,IAAxCX,EAAYY,qBAAuB,GAAU,GAAK,GAAK,MAGlEpC,EAASY,KAAK,CAAEyB,SAAS,EAAMzC,KAAM4B,EAAY5B,MACnD,CAAE,MAAMiB,GACNR,QAAQQ,MAAM,wBAAyBA,GACvCb,EAASU,OAAO,KAAKE,KAAK,CAAEC,MAAO,4BACrC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/auth/getSession.js";export default async(e,o)=>{try{const r=e.cookies.session_token,[n,t]=await s({token:r});if(n||!t||!t.user)return o.json({session:null,user:null});const{passwordHash:i,...u}=t.user;o.json({session:t.session,user:u})}catch(s){console.log("Session API error:",s),o.status(500).json({error:s.message})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\session\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\session\\GET.js","names":["getSession","async","request","response","sessionToken","cookies","session_token","error","sessionData","token","user","json","session","passwordHash","userWithoutPassword","console","log","status","message"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../server/utils/auth/getSession.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const sessionToken = request.cookies.session_token;\r\n const [error, sessionData] = await getSession({ token: sessionToken });\r\n \r\n if(error || !sessionData || !sessionData.user){\r\n return response.json({ session: null, user: null });\r\n }\r\n \r\n const { passwordHash, ...userWithoutPassword } = sessionData.user;\r\n \r\n response.json({\r\n session: sessionData.session,\r\n user: userWithoutPassword\r\n });\r\n } catch(error){\r\n console.log('Session API error:', error);\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\session\\GET.js","names":["getSession","async","request","response","sessionToken","cookies","session_token","error","sessionData","token","user","json","session","passwordHash","userWithoutPassword","console","log","status","message"],"sources":["0"],"sourcesContent":["import getSession from '../../../../../server/utils/auth/getSession.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const sessionToken = request.cookies.session_token;\r\n const [error, sessionData] = await getSession({ token: sessionToken });\r\n \r\n if(error || !sessionData || !sessionData.user){\r\n return response.json({ session: null, user: null });\r\n }\r\n \r\n const { passwordHash, ...userWithoutPassword } = sessionData.user;\r\n \r\n response.json({\r\n session: sessionData.session,\r\n user: userWithoutPassword\r\n });\r\n } catch(error){\r\n console.log('Session API error:', error);\r\n response.status(500).json({ error: error.message });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAgB,gEAERC,MAAOC,EAASC,KAC7B,IACE,MAAMC,EAAeF,EAAQG,QAAQC,eAC9BC,EAAOC,SAAqBR,EAAW,CAAES,MAAOL,IAEvD,GAAGG,IAAUC,IAAgBA,EAAYE,KACvC,OAAOP,EAASQ,KAAK,CAAEC,QAAS,KAAMF,KAAM,OAG9C,MAAMG,aAAEA,KAAiBC,GAAwBN,EAAYE,KAE7DP,EAASQ,KAAK,CACZC,QAASJ,EAAYI,QACrBF,KAAMI,GAEV,CAAE,MAAMP,GACNQ,QAAQC,IAAI,qBAAsBT,GAClCJ,EAASc,OAAO,KAAKN,KAAK,CAAEJ,MAAOA,EAAMW,SAC3C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"crypto";import r from"../../../../../server/utils/auth/verifyEmail.js";import t from"../../../../../server/db/index.js";import{session as s,user as o}from"../../../../../server/db/schema.js";import{eq as i}from"drizzle-orm";import n from"../../../../../server/utils/settings/getSetting.js";export default async(a,m)=>{try{const{token:d}=a.body,[c,u]=await r({token:d});if(c)return m.status(c.code).json({error:c.msg});const l=await t.select().from(o).where(i(o.id,u.userId)).limit(1);if(0===l.length)return m.status(500).json({error:"User not found"});const f=e.randomBytes(32).toString("hex"),[p,j]=await n("system","session_duration_days",7);if(p)return m.status(p.code).json({error:p.msg});const v=new Date(Date.now()+24*j*60*60*1e3),y=new Date;await t.insert(s).values({token:f,userId:u.userId,expiresAt:v,createdAt:y}),m.cookie("session_token",f,{httpOnly:!0,secure:"production"===process.env.NODE_ENV,sameSite:"lax",path:"/",maxAge:24*j*60*60*1e3}),m.json({success:!0,user:{id:l[0].id,email:l[0].email,name:l[0].name,emailVerified:l[0].emailVerified}})}catch(e){console.error("Email verification error:",e),m.status(500).json({error:"Internal server error"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\auth\verify-email\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\auth\\verify-email\\POST.js","names":["crypto","verifyEmail","db","session","user","eq","getSetting","
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\auth\\verify-email\\POST.js","names":["crypto","verifyEmail","db","session","user","eq","getSetting","async","request","response","token","body","error","result","status","code","json","msg","userRecord","select","from","where","id","userId","limit","length","sessionToken","randomBytes","toString","settingError","sessionDurationDays","expiresAt","Date","now","insert","values","createdAt","cookie","httpOnly","secure","process","env","NODE_ENV","sameSite","path","maxAge","success","email","name","emailVerified","console"],"sources":["0"],"sourcesContent":["import crypto from 'crypto';\r\nimport verifyEmail from '../../../../../server/utils/auth/verifyEmail.js';\r\nimport db from '../../../../../server/db/index.js';\r\nimport { session, user } from '../../../../../server/db/schema.js';\r\nimport { eq } from 'drizzle-orm';\r\nimport getSetting from '../../../../../server/utils/settings/getSetting.js';\r\n\r\nconst generateToken = () => crypto.randomBytes(32).toString('hex');\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { token } = request.body;\r\n \r\n const [error, result] = await verifyEmail({ token });\r\n \r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n const userRecord = await db\r\n .select()\r\n .from(user)\r\n .where(eq(user.id, result.userId))\r\n .limit(1);\r\n\r\n if(userRecord.length === 0){\r\n return response.status(500).json({ error: 'User not found' });\r\n }\r\n\r\n const sessionToken = generateToken();\r\n const [settingError, sessionDurationDays] = await getSetting('system', 'session_duration_days', 7);\r\n \r\n if(settingError){\r\n return response.status(settingError.code).json({ error: settingError.msg });\r\n }\r\n \r\n const expiresAt = new Date(Date.now() + sessionDurationDays * 24 * 60 * 60 * 1000);\r\n const now = new Date();\r\n\r\n await db.insert(session).values({\r\n token: sessionToken,\r\n userId: result.userId,\r\n expiresAt,\r\n createdAt: now,\r\n });\r\n\r\n response.cookie('session_token', sessionToken, {\r\n httpOnly: true,\r\n secure: process.env.NODE_ENV === 'production',\r\n sameSite: 'lax',\r\n path: '/',\r\n maxAge: sessionDurationDays * 24 * 60 * 60 * 1000\r\n });\r\n\r\n response.json({ \r\n success: true,\r\n user: {\r\n id: userRecord[0].id,\r\n email: userRecord[0].email,\r\n name: userRecord[0].name,\r\n emailVerified: userRecord[0].emailVerified,\r\n }\r\n });\r\n } catch(error){\r\n console.error('Email verification error:', error);\r\n response.status(500).json({ error: 'Internal server error' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAAY,gBACZC,MAAiB,yDACjBC,MAAQ,sDACNC,UAASC,MAAY,kDACrBC,MAAU,qBACZC,MAAgB,oEAIRC,MAAOC,EAASC,KAC7B,IACE,MAAMC,MAAEA,GAAUF,EAAQG,MAEnBC,EAAOC,SAAgBZ,EAAY,CAAES,UAE5C,GAAGE,EACD,OAAOH,EAASK,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzD,MAAMC,QAAmBhB,EACtBiB,SACAC,KAAKhB,GACLiB,MAAMhB,EAAGD,EAAKkB,GAAIT,EAAOU,SACzBC,MAAM,GAET,GAAyB,IAAtBN,EAAWO,OACZ,OAAOhB,EAASK,OAAO,KAAKE,KAAK,CAAEJ,MAAO,mBAG5C,MAAMc,EAtBkB1B,EAAO2B,YAAY,IAAIC,SAAS,QAuBjDC,EAAcC,SAA6BxB,EAAW,SAAU,wBAAyB,GAEhG,GAAGuB,EACD,OAAOpB,EAASK,OAAOe,EAAad,MAAMC,KAAK,CAAEJ,MAAOiB,EAAaZ,MAGvE,MAAMc,EAAY,IAAIC,KAAKA,KAAKC,MAA8B,GAAtBH,EAA2B,GAAK,GAAK,KACvEG,EAAM,IAAID,WAEV9B,EAAGgC,OAAO/B,GAASgC,OAAO,CAC9BzB,MAAOgB,EACPH,OAAQV,EAAOU,OACfQ,YACAK,UAAWH,IAGbxB,EAAS4B,OAAO,gBAAiBX,EAAc,CAC7CY,UAAU,EACVC,OAAiC,eAAzBC,QAAQC,IAAIC,SACpBC,SAAU,MACVC,KAAM,IACNC,OAA8B,GAAtBf,EAA2B,GAAK,GAAK,MAG/CrB,EAASO,KAAK,CACZ8B,SAAS,EACT1C,KAAM,CACJkB,GAAIJ,EAAW,GAAGI,GAClByB,MAAO7B,EAAW,GAAG6B,MACrBC,KAAM9B,EAAW,GAAG8B,KACpBC,cAAe/B,EAAW,GAAG+B,gBAGnC,CAAE,MAAMrC,GACNsC,QAAQtC,MAAM,4BAA6BA,GAC3CH,EAASK,OAAO,KAAKE,KAAK,CAAEJ,MAAO,yBACrC","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/extensions/uninstallExtension.js";export default async(n,r)=>{const t=n.cookies.session_token,[o,i]=await s(t,"system:extensions:uninstall");if(o)return r.status(o.code).json({error:o.msg});if(!i)return r.status(403).json({error:"Insufficient permissions"});const{name:a}=n.body,[u,m]=await e({name:a});if(u)return r.status(u.code).json({error:u.msg});r.json(m)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\DELETE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\DELETE.js","names":["currentUserHasPermission","uninstallExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","body","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport uninstallExtension from '../../../../server/utils/extensions/uninstallExtension.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:extensions:uninstall');\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 { name } = request.body;\r\n const [error, data] = await uninstallExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\DELETE.js","names":["currentUserHasPermission","uninstallExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","body","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport uninstallExtension from '../../../../server/utils/extensions/uninstallExtension.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:extensions:uninstall');\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 { name } = request.body;\r\n const [error, data] = await uninstallExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAwB,2EAEhBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,+BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,KAAEA,GAASZ,EAAQa,MAClBH,EAAOI,SAAchB,EAAmB,CAAEc,SAEjD,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/extensions/listExtensions.js";export default async(r,t)=>{const o=r.cookies.session_token,[i,n]=await s(o,"system:extensions:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const a=parseInt(r.query.limit)||50,u=parseInt(r.query.offset)||0,[f,m]=await e({limit:a,offset:u});if(f)return t.status(f.code).json({error:f.msg});t.json(m)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\GET.js","names":["currentUserHasPermission","listExtensions","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 listExtensions from '../../../../server/utils/extensions/listExtensions.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:extensions:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await listExtensions({ 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,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\GET.js","names":["currentUserHasPermission","listExtensions","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 listExtensions from '../../../../server/utils/extensions/listExtensions.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:extensions:read');\r\n\r\n if(permError){\r\n return response.status(permError.code).json({ error: permError.msg });\r\n }\r\n\r\n if(!hasPermission){\r\n return response.status(403).json({ error: 'Insufficient permissions' });\r\n }\r\n\r\n const limit = parseInt(request.query.limit) || 50;\r\n const offset = parseInt(request.query.offset) || 0;\r\n const [error, data] = await listExtensions({ 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,MAA8B,0EAC9BC,MAAoB,uEAEZC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,0BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAQC,SAASb,EAAQc,MAAMF,QAAU,GACzCG,EAASF,SAASb,EAAQc,MAAMC,SAAW,GAC1CL,EAAOM,SAAclB,EAAe,CAAEc,QAAOG,WAEpD,GAAGL,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";export default async(e,t)=>{const r=e.cookies.session_token,[n,o]=await s(r,"system:extensions:install");if(n)return t.status(n.code).json({error:n.msg});if(!o)return t.status(403).json({error:"Insufficient permissions"});const{name:i}=e.body,{default:a}=await import("../../../../server/utils/extensions/installExtension.js"),[u,m]=await a({name:i});if(u)return t.status(u.code).json({error:u.msg});t.json(m)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\POST.js","names":["currentUserHasPermission","
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\POST.js","names":["currentUserHasPermission","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","body","default","installExtension","import","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.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:extensions:install');\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 { name } = request.body;\r\n const { default: installExtension } = await import('../../../../server/utils/extensions/installExtension.js');\r\n const [error, data] = await installExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,kFAEtBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBR,EAAyBI,EAAO,6BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,KAAEA,GAASZ,EAAQa,MACjBC,QAASC,SAA2BC,OAAO,4DAC5CN,EAAOO,SAAcF,EAAiB,CAAEH,SAE/C,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKQ","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/extensions/disableExtension.js";export default async(r,n)=>{const o=r.cookies.session_token,[t,i]=await s(o,"system:extensions:manage");if(t)return n.status(t.code).json({error:t.msg});if(!i)return n.status(403).json({error:"Insufficient permissions"});const a=r.params.name,[m,u]=await e({name:a});if(m)return n.status(m.code).json({error:m.msg});n.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\[name]\disable\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\disable\\POST.js","names":["currentUserHasPermission","disableExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableExtension from '../../../../../server/utils/extensions/disableExtension.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await disableExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\disable\\POST.js","names":["currentUserHasPermission","disableExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableExtension from '../../../../../server/utils/extensions/disableExtension.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await disableExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAsB,4EAEdC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,4BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAOZ,EAAQa,OAAOD,MACrBF,EAAOI,SAAchB,EAAiB,CAAEc,SAE/C,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/extensions/enableExtension.js";export default async(r,n)=>{const o=r.cookies.session_token,[t,i]=await s(o,"system:extensions:manage");if(t)return n.status(t.code).json({error:t.msg});if(!i)return n.status(403).json({error:"Insufficient permissions"});const a=r.params.name,[m,u]=await e({name:a});if(m)return n.status(m.code).json({error:m.msg});n.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\[name]\enable\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\enable\\POST.js","names":["currentUserHasPermission","enableExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableExtension from '../../../../../server/utils/extensions/enableExtension.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await enableExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\enable\\POST.js","names":["currentUserHasPermission","enableExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableExtension from '../../../../../server/utils/extensions/enableExtension.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await enableExtension({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAqB,2EAEbC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,4BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAOZ,EAAQa,OAAOD,MACrBF,EAAOI,SAAchB,EAAgB,CAAEc,SAE9C,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/extensions/updateExtension.js";export default async(r,n)=>{const o=r.cookies.session_token,[t,i]=await s(o,"system:extensions:manage");if(t)return n.status(t.code).json({error:t.msg});if(!i)return n.status(403).json({error:"Insufficient permissions"});const a=r.params.name,m=r.body?.version||"latest",[u,c]=await e({name:a,version:m});if(u)return n.status(u.code).json({error:u.msg});n.json(c)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\[name]\update\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\update\\POST.js","names":["currentUserHasPermission","updateExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","version","body","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateExtension from '../../../../../server/utils/extensions/updateExtension.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:extensions:manage');\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 name = request.params.name;\r\n const version = request.body?.version || 'latest';\r\n const [error, data] = await updateExtension({ name, version });\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,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\update\\POST.js","names":["currentUserHasPermission","updateExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","version","body","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport updateExtension from '../../../../../server/utils/extensions/updateExtension.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:extensions:manage');\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 name = request.params.name;\r\n const version = request.body?.version || 'latest';\r\n const [error, data] = await updateExtension({ name, version });\r\n\r\n if(error){\r\n return response.status(error.code).json({ error: error.msg });\r\n }\r\n\r\n response.json(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAqB,2EAEbC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,4BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAOZ,EAAQa,OAAOD,KACtBE,EAAUd,EAAQe,MAAMD,SAAW,UAClCJ,EAAOM,SAAclB,EAAgB,CAAEc,OAAME,YAEpD,GAAGJ,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKO","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/extensions/checkExtensionUpdate.js";export default async(r,n)=>{const t=r.cookies.session_token,[o,i]=await s(t,"system:extensions:manage");if(o)return n.status(o.code).json({error:o.msg});if(!i)return n.status(403).json({error:"Insufficient permissions"});const a=r.params.name,[m,u]=await e({name:a});if(m)return n.status(m.code).json({error:m.msg});n.json(u)};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\[name]\update-check\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\update-check\\GET.js","names":["currentUserHasPermission","checkExtensionUpdate","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport checkExtensionUpdate from '../../../../../server/utils/extensions/checkExtensionUpdate.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await checkExtensionUpdate({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\[name]\\update-check\\GET.js","names":["currentUserHasPermission","checkExtensionUpdate","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","params","data"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport checkExtensionUpdate from '../../../../../server/utils/extensions/checkExtensionUpdate.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:extensions:manage');\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 name = request.params.name;\r\n const [error, data] = await checkExtensionUpdate({ 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(data);\r\n};\r\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAA0B,gFAElBC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBT,EAAyBK,EAAO,4BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,MAAME,EAAOZ,EAAQa,OAAOD,MACrBF,EAAOI,SAAchB,EAAqB,CAAEc,SAEnD,GAAGF,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKK","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import{readFile as e}from"fs/promises";import{existsSync as o}from"fs";import{join as t}from"path";const n=t(import.meta.dirname,"../../../admin/known-extensions.json");export default async(r,i)=>{const a=r.cookies.session_token,[c,p]=await s(a,"system:extensions:read");if(c)return i.status(c.code).json({error:c.msg});if(!p)return i.status(403).json({error:"Insufficient permissions"});let m=[];o(n)&&(m=JSON.parse(await e(n,"utf-8")));const f=t(process.cwd(),"package.json"),d=JSON.parse(await e(f,"utf-8")),u={...d.dependencies,...d.devDependencies},j=t(process.cwd(),"node_modules"),h=[];for(const[s]of Object.entries(u))try{const n=t(j,s,"kempo-config.json");if(!o(n))continue;const r=t(j,s,"package.json"),i=JSON.parse(await e(r,"utf-8")),a=m.find(e=>e.name===s);h.push({name:s,version:i.version,description:i.description||a?.description||"",author:i.author||a?.author||""})}catch{}i.json({items:h,total:h.length})};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\available\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\available\\GET.js","names":["currentUserHasPermission","readFile","existsSync","join","
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\available\\GET.js","names":["currentUserHasPermission","readFile","existsSync","join","knownExtensionsPath","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","knownExtensions","JSON","parse","pkgPath","process","cwd","projectPkg","allDeps","dependencies","devDependencies","nodeModulesPath","available","depName","Object","entries","kempoConfigPath","depPkgPath","depPkg","known","find","k","name","push","version","description","author","items","total","length"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport { readFile } from 'fs/promises';\r\nimport { existsSync } from 'fs';\r\nimport { join } from 'path';\r\n\r\nconst knownExtensionsPath = join(import.meta.dirname, '../../../admin/known-extensions.json');\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:extensions: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 let knownExtensions = [];\r\n if(existsSync(knownExtensionsPath)){\r\n knownExtensions = JSON.parse(await readFile(knownExtensionsPath, 'utf-8'));\r\n }\r\n\r\n const pkgPath = join(process.cwd(), 'package.json');\r\n const projectPkg = JSON.parse(await readFile(pkgPath, 'utf-8'));\r\n const allDeps = {\r\n ...projectPkg.dependencies,\r\n ...projectPkg.devDependencies,\r\n };\r\n\r\n const nodeModulesPath = join(process.cwd(), 'node_modules');\r\n const available = [];\r\n\r\n for(const [depName] of Object.entries(allDeps)){\r\n try {\r\n const kempoConfigPath = join(nodeModulesPath, depName, 'kempo-config.json');\r\n if(!existsSync(kempoConfigPath)) continue;\r\n const depPkgPath = join(nodeModulesPath, depName, 'package.json');\r\n const depPkg = JSON.parse(await readFile(depPkgPath, 'utf-8'));\r\n const known = knownExtensions.find(k => k.name === depName);\r\n available.push({\r\n name: depName,\r\n version: depPkg.version,\r\n description: depPkg.description || known?.description || '',\r\n author: depPkg.author || known?.author || '',\r\n });\r\n } catch {}\r\n }\r\n\r\n response.json({ items: available, total: available.length });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,yFAC5BC,MAAgB,mCAChBC,MAAkB,oBAClBC,MAAY,OAErB,MAAMC,EAAsBD,cAAiBE,QAAS,uDAEvCC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,0BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,IAAIE,EAAkB,GACnBjB,EAAWE,KACZe,EAAkBC,KAAKC,YAAYpB,EAASG,EAAqB,WAGnE,MAAMkB,EAAUnB,EAAKoB,QAAQC,MAAO,gBAC9BC,EAAaL,KAAKC,YAAYpB,EAASqB,EAAS,UAChDI,EAAU,IACXD,EAAWE,gBACXF,EAAWG,iBAGVC,EAAkB1B,EAAKoB,QAAQC,MAAO,gBACtCM,EAAY,GAElB,IAAI,MAAOC,KAAYC,OAAOC,QAAQP,GACpC,IACE,MAAMQ,EAAkB/B,EAAK0B,EAAiBE,EAAS,qBACvD,IAAI7B,EAAWgC,GAAkB,SACjC,MAAMC,EAAahC,EAAK0B,EAAiBE,EAAS,gBAC5CK,EAAShB,KAAKC,YAAYpB,EAASkC,EAAY,UAC/CE,EAAQlB,EAAgBmB,KAAKC,GAAKA,EAAEC,OAAST,GACnDD,EAAUW,KAAK,CACbD,KAAMT,EACNW,QAASN,EAAOM,QAChBC,YAAaP,EAAOO,aAAeN,GAAOM,aAAe,GACzDC,OAAQR,EAAOQ,QAAUP,GAAOO,QAAU,IAE9C,CAAE,MAAO,CAGXpC,EAASQ,KAAK,CAAE6B,MAAOf,EAAWgB,MAAOhB,EAAUiB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import{readFile as t}from"fs/promises";import{existsSync as o}from"fs";import{join as r}from"path";const e=r(import.meta.dirname,"../../../admin/known-extensions.json");export default async(r,n)=>{const i=r.cookies.session_token,[m,a]=await s(i,"system:extensions:read");if(m)return n.status(m.code).json({error:m.msg});if(!a)return n.status(403).json({error:"Insufficient permissions"});if(!o(e))return n.json({items:[],total:0});const f=JSON.parse(await t(e,"utf-8"));n.json({items:f,total:f.length})};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\extensions\known\GET.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\extensions\\known\\GET.js","names":["currentUserHasPermission","readFile","existsSync","join","knownExtensionsPath","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","items","total","JSON","parse","length"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport { readFile } from 'fs/promises';\r\nimport { existsSync } from 'fs';\r\nimport { join } from 'path';\r\n\r\nconst knownExtensionsPath = join(import.meta.dirname, '../../../admin/known-extensions.json');\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:extensions: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 if(!existsSync(knownExtensionsPath)){\r\n return response.json({ items: [], total: 0 });\r\n }\r\n\r\n const items = JSON.parse(await readFile(knownExtensionsPath, 'utf-8'));\r\n response.json({ items, total: items.length });\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\extensions\\known\\GET.js","names":["currentUserHasPermission","readFile","existsSync","join","knownExtensionsPath","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","items","total","JSON","parse","length"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport { readFile } from 'fs/promises';\r\nimport { existsSync } from 'fs';\r\nimport { join } from 'path';\r\n\r\nconst knownExtensionsPath = join(import.meta.dirname, '../../../admin/known-extensions.json');\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:extensions: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 if(!existsSync(knownExtensionsPath)){\r\n return response.json({ items: [], total: 0 });\r\n }\r\n\r\n const items = JSON.parse(await readFile(knownExtensionsPath, 'utf-8'));\r\n response.json({ items, total: items.length });\r\n};\r\n"],"mappings":"OAAOA,MAA8B,yFAC5BC,MAAgB,mCAChBC,MAAkB,oBAClBC,MAAY,OAErB,MAAMC,EAAsBD,cAAiBE,QAAS,uDAEvCC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,0BAEzE,GAAGG,EACD,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGjE,IAAIL,EACF,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG5C,IAAIf,EAAWE,GACb,OAAOI,EAASQ,KAAK,CAAEG,MAAO,GAAIC,MAAO,IAG3C,MAAMD,EAAQE,KAAKC,YAAYrB,EAASG,EAAqB,UAC7DI,EAASQ,KAAK,CAAEG,QAAOC,MAAOD,EAAMI","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from"../../../../server/utils/auth/requestPasswordReset.js";export default async(e,r)=>{try{const{email:o}=e.body,[t,a]=await s({email:o});if(t)return r.status(t.code).json({error:t.msg});r.json({success:!0,message:"Password reset email sent"})}catch(s){console.error("Forgot password error:",s),r.status(500).json({error:"Failed to send password reset email"})}};
|
|
2
2
|
//# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\forgot-password\POST.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src\\kempo\\api\\forgot-password\\POST.js","names":["requestPasswordReset","async","request","response","email","body","error","result","status","code","json","msg","success","message","console"],"sources":["0"],"sourcesContent":["import requestPasswordReset from '../../../../server/utils/auth/requestPasswordReset.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email } = request.body;\r\n \r\n const [error, result] = await requestPasswordReset({ email });\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({ success: true, message: 'Password reset email sent' });\r\n } catch(error){\r\n console.error('Forgot password error:', error);\r\n response.status(500).json({ error: 'Failed to send password reset email' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\forgot-password\\POST.js","names":["requestPasswordReset","async","request","response","email","body","error","result","status","code","json","msg","success","message","console"],"sources":["0"],"sourcesContent":["import requestPasswordReset from '../../../../server/utils/auth/requestPasswordReset.js';\r\n\r\nexport default async (request, response) => {\r\n try {\r\n const { email } = request.body;\r\n \r\n const [error, result] = await requestPasswordReset({ email });\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({ success: true, message: 'Password reset email sent' });\r\n } catch(error){\r\n console.error('Forgot password error:', error);\r\n response.status(500).json({ error: 'Failed to send password reset email' });\r\n }\r\n};\r\n"],"mappings":"OAAOA,MAA0B,uEAElBC,MAAOC,EAASC,KAC7B,IACE,MAAMC,MAAEA,GAAUF,EAAQG,MAEnBC,EAAOC,SAAgBP,EAAqB,CAAEI,UAErD,GAAGE,EACD,OAAOH,EAASK,OAAOF,EAAMG,MAAMC,KAAK,CAAEJ,MAAOA,EAAMK,MAGzDR,EAASO,KAAK,CAAEE,SAAS,EAAMC,QAAS,6BAC1C,CAAE,MAAMP,GACNQ,QAAQR,MAAM,yBAA0BA,GACxCH,EAASK,OAAO,KAAKE,KAAK,CAAEJ,MAAO,uCACrC","ignoreList":[]}
|