kempo 4.8.0 → 4.9.1
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/README.md +7 -3
- package/bin/cli.js +23 -1
- package/dist/admin/component-overrides.js +1 -1
- package/dist/admin/components/AddGroupControl.js +1 -1
- package/dist/admin/components/AdminTableControl.js +1 -1
- package/dist/admin/components/ClearExpiredSessionsControl.js +1 -1
- package/dist/admin/components/Dashboard.js +1 -1
- package/dist/admin/components/EmailTemplates.js +1 -1
- package/dist/admin/components/Emails.js +1 -1
- package/dist/admin/components/FragmentEditor.js +1 -1
- package/dist/admin/components/GlobalContentEditor.js +1 -1
- package/dist/admin/components/GroupDeleteSelected.js +1 -1
- package/dist/admin/components/GroupRemoveRecord.js +1 -1
- package/dist/admin/components/Menus.js +1 -1
- package/dist/admin/components/Monaco.js +1 -1
- package/dist/admin/components/PageEditor.js +1 -1
- package/dist/admin/components/TableRowDelete.js +1 -1
- package/dist/admin/components/TableRowLink.js +1 -1
- package/dist/admin/components/TemplateEditor.js +1 -1
- package/dist/admin/components/Updates.js +117 -0
- package/dist/admin/components/Updates.js.map +1 -0
- package/dist/admin/components/ValueEditor.js +1 -1
- package/dist/admin/components/dashboardLayout.js +1 -1
- package/dist/admin/components/settings/AdminSettings.js +1 -1
- package/dist/admin/components/settings/BooleanSetting.js +1 -1
- package/dist/admin/components/settings/JsonSetting.js +1 -1
- package/dist/admin/components/settings/NumberSetting.js +1 -1
- package/dist/admin/components/settings/SecretSetting.js +1 -1
- package/dist/admin/components/settings/Setting.js +1 -1
- package/dist/admin/components/settings/SettingEditor.js +1 -1
- package/dist/admin/components/settings/SettingsPanel.js +1 -1
- package/dist/admin/components/settings/StringSetting.js +1 -1
- package/dist/admin/components/settings/humanize.js +1 -1
- package/dist/admin/components/tableControls/AddMember.js +1 -1
- package/dist/admin/components/tableControls/AddPermission.js +1 -1
- package/dist/admin/components/tableControls/ExtensionDetails.js +1 -1
- package/dist/admin/components/tableControls/InstallExtension.js +1 -1
- package/dist/admin/components/tableControls/ToggleExtension.js +1 -1
- package/dist/admin/components/tableControls/UninstallExtension.js +1 -1
- package/dist/admin/components/widgets/Content.js +1 -1
- package/dist/admin/components/widgets/Extensions.js +1 -1
- package/dist/admin/components/widgets/Notifications.js +1 -1
- package/dist/admin/components/widgets/Pages.js +1 -1
- package/dist/admin/components/widgets/Users.js +1 -1
- package/dist/admin/init.js +1 -1
- package/dist/admin/nav.fragment.html +6 -0
- package/dist/admin/updates/index.page.html +14 -0
- package/dist/kempo/api/admin-globals/DELETE.js +1 -1
- package/dist/kempo/api/admin-globals/GET.js +1 -1
- package/dist/kempo/api/admin-globals/POST.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/GET.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/disable/PUT.js +1 -1
- package/dist/kempo/api/admin-globals/[id]/enable/PUT.js +1 -1
- package/dist/kempo/api/auth/change-password/POST.js +1 -1
- package/dist/kempo/api/auth/login/email/POST.js +1 -1
- package/dist/kempo/api/auth/logout/POST.js +1 -1
- package/dist/kempo/api/auth/register/email/POST.js +1 -1
- package/dist/kempo/api/auth/reset-password/POST.js +1 -1
- package/dist/kempo/api/auth/session/GET.js +1 -1
- package/dist/kempo/api/auth/verify-email/POST.js +1 -1
- package/dist/kempo/api/dashboard/widgets/GET.js +1 -1
- package/dist/kempo/api/email-templates/GET.js +1 -1
- package/dist/kempo/api/email-templates/file/DELETE.js +1 -1
- package/dist/kempo/api/email-templates/file/GET.js +1 -1
- package/dist/kempo/api/email-templates/file/PUT.js +1 -1
- package/dist/kempo/api/email-templates/preview/GET.js +1 -1
- package/dist/kempo/api/emails/GET.js +1 -1
- package/dist/kempo/api/emails/[id]/GET.js +1 -1
- package/dist/kempo/api/emails/[id]/retry/POST.js +1 -1
- package/dist/kempo/api/emails/test/POST.js +1 -1
- package/dist/kempo/api/extensions/DELETE.js +1 -1
- package/dist/kempo/api/extensions/GET.js +1 -1
- package/dist/kempo/api/extensions/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/dependents/GET.js +1 -1
- package/dist/kempo/api/extensions/[name]/disable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/enable/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/requirements/GET.js +1 -1
- package/dist/kempo/api/extensions/[name]/update/POST.js +1 -1
- package/dist/kempo/api/extensions/[name]/update-check/GET.js +1 -1
- package/dist/kempo/api/extensions/available/GET.js +1 -1
- package/dist/kempo/api/extensions/known/GET.js +1 -1
- package/dist/kempo/api/extensions/rating/PUT.js +1 -1
- package/dist/kempo/api/forgot-password/POST.js +1 -1
- package/dist/kempo/api/fragments/DELETE.js +1 -1
- package/dist/kempo/api/fragments/GET.js +1 -1
- package/dist/kempo/api/fragments/POST.js +1 -1
- package/dist/kempo/api/fragments/disable/PUT.js +1 -1
- package/dist/kempo/api/fragments/enable/PUT.js +1 -1
- package/dist/kempo/api/fragments/file/GET.js +1 -1
- package/dist/kempo/api/fragments/file/PATCH.js +1 -1
- package/dist/kempo/api/fragments/file/PUT.js +1 -1
- package/dist/kempo/api/fragments/lock/PUT.js +1 -1
- package/dist/kempo/api/globals/DELETE.js +1 -1
- package/dist/kempo/api/globals/GET.js +1 -1
- package/dist/kempo/api/globals/POST.js +1 -1
- package/dist/kempo/api/globals/disable/PUT.js +1 -1
- package/dist/kempo/api/globals/enable/PUT.js +1 -1
- package/dist/kempo/api/globals/entry/GET.js +1 -1
- package/dist/kempo/api/globals/entry/PUT.js +1 -1
- package/dist/kempo/api/globals/lock/PUT.js +1 -1
- package/dist/kempo/api/groups/DELETE.js +1 -1
- package/dist/kempo/api/groups/GET.js +1 -1
- package/dist/kempo/api/groups/PATCH.js +1 -1
- package/dist/kempo/api/groups/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/members/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/members/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/members/POST.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/DELETE.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/GET.js +1 -1
- package/dist/kempo/api/groups/[name]/permissions/POST.js +1 -1
- package/dist/kempo/api/menus/DELETE.js +1 -1
- package/dist/kempo/api/menus/GET.js +1 -1
- package/dist/kempo/api/menus/POST.js +1 -1
- package/dist/kempo/api/menus/adopt/PUT.js +1 -1
- package/dist/kempo/api/menus/items/DELETE.js +1 -1
- package/dist/kempo/api/menus/items/POST.js +1 -1
- package/dist/kempo/api/menus/items/enabled/PUT.js +1 -1
- package/dist/kempo/api/menus/items/order/PUT.js +1 -1
- package/dist/kempo/api/menus/location/PUT.js +1 -1
- package/dist/kempo/api/notifications/GET.js +1 -1
- package/dist/kempo/api/notifications/[id]/DELETE.js +1 -1
- package/dist/kempo/api/notifications/[id]/handled/POST.js +1 -1
- package/dist/kempo/api/notifications/[id]/read/POST.js +1 -1
- package/dist/kempo/api/notifications/count/GET.js +1 -1
- package/dist/kempo/api/notifications/read-all/POST.js +1 -1
- package/dist/kempo/api/pages/DELETE.js +1 -1
- package/dist/kempo/api/pages/GET.js +1 -1
- package/dist/kempo/api/pages/POST.js +1 -1
- package/dist/kempo/api/pages/directories/GET.js +1 -1
- package/dist/kempo/api/pages/disable/PUT.js +1 -1
- package/dist/kempo/api/pages/enable/PUT.js +1 -1
- package/dist/kempo/api/pages/file/GET.js +1 -1
- package/dist/kempo/api/pages/file/PATCH.js +1 -1
- package/dist/kempo/api/pages/file/PUT.js +1 -1
- package/dist/kempo/api/pages/lock/PUT.js +1 -1
- package/dist/kempo/api/pages/rescan/POST.js +1 -1
- package/dist/kempo/api/pages/search/GET.js +1 -1
- package/dist/kempo/api/pages/templates/GET.js +1 -1
- package/dist/kempo/api/permissions/DELETE.js +1 -1
- package/dist/kempo/api/permissions/GET.js +1 -1
- package/dist/kempo/api/permissions/PATCH.js +1 -1
- package/dist/kempo/api/permissions/POST.js +1 -1
- package/dist/kempo/api/realtime/WS.js +1 -1
- package/dist/kempo/api/realtime/connections/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/DELETE.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/GET.js +1 -1
- package/dist/kempo/api/settings/[owner]/[name]/POST.js +1 -1
- package/dist/kempo/api/settings/public/GET.js +1 -1
- package/dist/kempo/api/templates/DELETE.js +1 -1
- package/dist/kempo/api/templates/GET.js +1 -1
- package/dist/kempo/api/templates/POST.js +1 -1
- package/dist/kempo/api/templates/disable/PUT.js +1 -1
- package/dist/kempo/api/templates/enable/PUT.js +1 -1
- package/dist/kempo/api/templates/file/GET.js +1 -1
- package/dist/kempo/api/templates/file/PATCH.js +1 -1
- package/dist/kempo/api/templates/file/PUT.js +1 -1
- package/dist/kempo/api/templates/lock/PUT.js +1 -1
- package/dist/kempo/api/updates/GET.js +2 -0
- package/dist/kempo/api/updates/GET.js.map +1 -0
- package/dist/kempo/api/updates/apply/POST.js +2 -0
- package/dist/kempo/api/updates/apply/POST.js.map +1 -0
- package/dist/kempo/api/updates/check/POST.js +2 -0
- package/dist/kempo/api/updates/check/POST.js.map +1 -0
- package/dist/kempo/api/updates/discard/POST.js +2 -0
- package/dist/kempo/api/updates/discard/POST.js.map +1 -0
- package/dist/kempo/api/updates/prepare/POST.js +2 -0
- package/dist/kempo/api/updates/prepare/POST.js.map +1 -0
- package/dist/kempo/api/updates/rollback/POST.js +2 -0
- package/dist/kempo/api/updates/rollback/POST.js.map +1 -0
- package/dist/kempo/api/user/DELETE.js +1 -1
- package/dist/kempo/api/user/GET.js +1 -1
- package/dist/kempo/api/user/PATCH.js +1 -1
- package/dist/kempo/api/user/[userid]/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/groups/POST.js +1 -1
- package/dist/kempo/api/user/[userid]/name/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/all/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/list/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/permissions/some/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/DELETE.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/GET.js +1 -1
- package/dist/kempo/api/user/[userid]/sessions/expired/DELETE.js +1 -1
- package/dist/kempo/api/user/create/POST.js +1 -1
- package/dist/kempo/api/user/search/GET.js +1 -1
- package/dist/kempo/components/AdminNavFooter.js +1 -1
- package/dist/kempo/components/DashboardWidget.js +1 -1
- package/dist/kempo/components/Login.js +1 -1
- package/dist/kempo/components/LogoutBtn.js +1 -1
- package/dist/kempo/components/Menu.js +1 -1
- package/dist/kempo/components/NotificationBell.js +1 -1
- package/dist/kempo/components/NotificationList.js +1 -1
- package/dist/kempo/components/Permission.js +1 -1
- package/dist/kempo/components/PermissionTarget.js +1 -1
- package/dist/kempo/components/Register.js +1 -1
- package/dist/kempo/components/Role.js +1 -1
- package/dist/kempo/components/UserCreatedAt.js +1 -1
- package/dist/kempo/components/UserDisplayName.js +1 -1
- package/dist/kempo/components/UserEmail.js +1 -1
- package/dist/kempo/components/UserEmailVerified.js +1 -1
- package/dist/kempo/components/UserName.js +1 -1
- package/dist/kempo/fetch.js +2 -2
- package/dist/kempo/fetch.js.map +1 -1
- package/dist/kempo/realtime.js +1 -1
- package/dist/kempo/sdk.js +2 -2
- package/dist/kempo/sdk.js.map +1 -1
- package/dist/kempo/utils/safeNext.js +1 -1
- package/docker/.dockerignore +9 -0
- package/docker/Dockerfile +25 -0
- package/docker/docker-compose.prod.yml +39 -0
- package/docker/entrypoint.mjs +96 -0
- package/middleware/kempo.js +53 -3
- package/package.json +3 -1
- package/server/db/schema.js +12 -0
- package/server/db/upgrades/README.md +20 -0
- package/server/sdk.js +3 -0
- package/server/utils/extensions/checkExtensionUpdate.js +9 -36
- package/server/utils/extensions/reconcileExtensions.js +90 -0
- package/server/utils/extensions/updateExtension.js +14 -153
- package/server/utils/extensions/upgradeExtension.js +117 -0
- package/server/utils/extensions/writeSiteFile.js +66 -0
- package/server/utils/settings/systemSettings.js +1 -0
- package/server/utils/setup/runUpgrades.js +70 -0
- package/server/utils/setup/seedDatabase.js +1 -1
- package/server/utils/setup/seedIfNew.js +21 -0
- package/server/utils/setup/syncCoreSchema.js +130 -0
- package/server/utils/setup/systemPermissions.js +2 -0
- package/server/utils/updates/applyStagedUpdate.js +95 -0
- package/server/utils/updates/applyUpdate.js +76 -0
- package/server/utils/updates/backupDatabase.js +35 -0
- package/server/utils/updates/discardUpdate.js +11 -0
- package/server/utils/updates/extensionTargets.js +101 -0
- package/server/utils/updates/fetchManifest.js +26 -0
- package/server/utils/updates/getExtensionUpdates.js +70 -0
- package/server/utils/updates/getInstallInfo.js +25 -0
- package/server/utils/updates/getUpdateStatus.js +57 -0
- package/server/utils/updates/helpers.js +30 -0
- package/server/utils/updates/notifySchemaAttention.js +35 -0
- package/server/utils/updates/npm.js +41 -0
- package/server/utils/updates/prepareUpdate.js +109 -0
- package/server/utils/updates/releaseStatus.js +23 -0
- package/server/utils/updates/restart.js +64 -0
- package/server/utils/updates/rollbackUpdate.js +56 -0
- package/server/utils/updates/runUpdateCheck.js +52 -0
- package/server/utils/updates/runtime.js +15 -0
- package/server/utils/updates/siteLayout.js +200 -0
- package/server/utils/updates/starterFiles.js +118 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as e,join as r}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/auth/getSession.js";import i from"../../../../../server/utils/menus/saveMenuItem.js";const n=s(r(process.cwd(),"public"))?r(process.cwd(),"public"):e(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const r=s.cookies.session_token,{id:a,menuId:m,location:u,navItem:c,label:p,href:l,icon:f,newTab:d}=s.body||{},[b,j]=await o(r,a?"system:globals:update":"system:globals:create");if(b)return e.status(b.code).json({error:b.msg});if(!j)return e.status(403).json({error:"Insufficient permissions"});const[,w]=await t({token:r}),v=w?.user?.name||"",[I,g]=await i({rootDir:n,id:a,menuId:m,location:u,navItem:c,label:p,href:l,icon:f,newTab:!0===d,author:v});if(I)return e.status(I.code).json({error:I.msg});e.status(a?200:201).json(g)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\menus\items\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../../server/utils/menus/setMenuItemEnabled.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:globals:update");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{id:m,enabled:p}=s.body||{},[u,c]=await t({rootDir:i,id:m,enabled:p});if(u)return r.status(u.code).json({error:u.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\menus\items\enabled\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../../server/utils/menus/reorderMenuItems.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,m]=await o(e,"system:globals:update");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const{menuId:u,ids:p}=s.body||{},[a,c]=await t({rootDir:i,menuId:u,ids:p});if(a)return r.status(a.code).json({error:a.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\menus\items\order\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as o,join as r}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/menus/assignMenuLocation.js";const i=s(r(process.cwd(),"public"))?r(process.cwd(),"public"):o(import.meta.dirname,"../../../../../app-public");export default async(s,o)=>{const r=s.cookies.session_token,[n,a]=await t(r,"system:globals:update");if(n)return o.status(n.code).json({error:n.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const{location:m,menuId:c}=s.body||{},[u,p]=await e({rootDir:i,location:m,menuId:c});if(u)return o.status(u.code).json({error:u.msg});o.json(p)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\menus\location\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import t from"../../../../server/utils/auth/getSession.js";import e from"../../../../server/utils/notifications/getNotifications.js";export default async(s,o)=>{const[r,i]=await t({token:s.cookies.session_token});if(r)return o.status(500===r.code?500:401).json({error:500===r.code?r.msg:"Authentication required"});const{unreadOnly:n,limit:u,offset:a}=s.query,[f,c]=await e({userId:i.user.id,unreadOnly:"true"===n,limit:u,offset:a});if(f)return o.status(f.code).json({error:f.msg});o.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import t from"../../../../../server/utils/auth/getSession.js";import o from"../../../../../server/utils/notifications/deleteNotification.js";export default async(s,e)=>{const[i,r]=await t({token:s.cookies.session_token});if(i)return e.status(500===i.code?500:401).json({error:500===i.code?i.msg:"Authentication required"});const[n,a]=await o({userId:r.user.id,notificationId:s.params.id});if(n)return e.status(n.code).json({error:n.msg});e.json(a)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\[id]\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/notifications/markHandled.js";export default async(o,e)=>{const[r,i]=await s({token:o.cookies.session_token});if(r)return e.status(500===r.code?500:401).json({error:500===r.code?r.msg:"Authentication required"});const[n,a]=await t({userId:i.user.id,notificationId:o.params.id});if(n)return e.status(n.code).json({error:n.msg});e.json(a)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\[id]\handled\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/notifications/markRead.js";export default async(o,e)=>{const[r,i]=await s({token:o.cookies.session_token});if(r)return e.status(500===r.code?500:401).json({error:500===r.code?r.msg:"Authentication required"});const[n,a]=await t({userId:i.user.id,notificationId:o.params.id});if(n)return e.status(n.code).json({error:n.msg});e.json(a)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\[id]\read\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/auth/getSession.js";import t from"../../../../../server/utils/notifications/getUnreadCount.js";export default async(e,o)=>{const[r,i]=await s({token:e.cookies.session_token});if(r)return o.status(500===r.code?500:401).json({error:500===r.code?r.msg:"Authentication required"});const[n,u]=await t({userId:i.user.id});if(n)return o.status(n.code).json({error:n.msg});o.json(u)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\count\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/auth/getSession.js";import e from"../../../../../server/utils/notifications/markAllRead.js";export default async(t,o)=>{const[r,i]=await s({token:t.cookies.session_token});if(r)return o.status(500===r.code?500:401).json({error:500===r.code?r.msg:"Authentication required"});const[n,a]=await e({userId:i.user.id});if(n)return o.status(n.code).json({error:n.msg});o.json(a)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\notifications\read-all\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as e}from"fs";import{resolve as s,join as r}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/pages/getPageMetadata.js";import i from"../../../../server/utils/pages/deletePage.js";const n=e(r(process.cwd(),"public"))?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(e,s)=>{const r=e.cookies.session_token,[a,c]=await o(r,"system:pages:delete");if(a)return s.status(a.code).json({error:a.msg});if(!c)return s.status(403).json({error:"Insufficient permissions"});const{files:f}=e.body||{};if(!f?.length)return s.status(400).json({error:"No files specified"});for(const e of f){const[r,o]=await t({rootDir:n,file:e});if(!r){if(o.locked)return s.status(403).json({error:`Cannot delete locked page: ${e}`});if(o.owner&&"custom"!==o.owner)return s.status(403).json({error:`Cannot delete system-owned page: ${e}`})}}const[p,u]=await i({rootDir:n,files:f});if(p)return s.status(p.code).json({error:p.msg});s.json(u)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/pages/listPages.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{owner:p,showHidden:m,offset:c,limit:f}=s.query,[u,d]=await t({rootDir:i,owner:p||void 0,showHidden:"false"!==m,offset:c?parseInt(c,10):0,limit:f?parseInt(f,10):0});if(u)return r.status(u.code).json({error:u.msg});r.json(d)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as e}from"fs";import{resolve as r,join as s}from"path";import t from"../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../server/utils/auth/getSession.js";import a from"../../../../server/utils/pages/createPage.js";const i=e(s(process.cwd(),"public"))?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[n,m]=await t(s,"system:pages:create");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const{directory:c,name:u,template:p,extraMetadata:d,locked:f}=e.body;if(!u)return r.status(400).json({error:"Page name is required"});const[,l]=await o({token:s}),j=l?.user?.name||"",[g,k]=await a({rootDir:i,directory:c,name:u,template:p,author:j,extraMetadata:d,locked:f});if(g)return r.status(g.code).json({error:g.msg});r.status(201).json(k)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as o}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/listDirectories.js";const i=s(o(process.cwd(),"public"))?o(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const o=s.cookies.session_token,[n,p]=await e(o,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!p)return r.status(403).json({error:"Insufficient permissions"});const[a,c]=await t({rootDir:i});if(a)return r.status(a.code).json({error:a.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\directories\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/pages/getPageMetadata.js";import i from"../../../../../server/utils/pages/disablePage.js";const a=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,p]=await t(e,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!p)return r.status(403).json({error:"Insufficient permissions"});const{file:u}=s.body||{};if(!u)return r.status(400).json({error:"File path is required"});const[c,m]=await o({rootDir:a,file:u});if(!c&&m.locked)return r.status(403).json({error:"Cannot disable a locked page"});const[f,l]=await i({rootDir:a,file:u});if(f)return r.status(f.code).json({error:f.msg});r.json(l)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\disable\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{resolve as r}from"path";import{readFile as s}from"fs/promises";import{existsSync as e}from"fs";import{join as o}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import i from"../../../../../server/utils/fs/parseFrontmatter.js";import p from"../../../../../server/utils/pages/enablePage.js";const m=e(o(process.cwd(),"public"))?o(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[o,i]=await t(e,"system:pages:update");if(o)return s.status(o.code).json({error:o.msg});if(!i)return s.status(403).json({error:"Insufficient permissions"});const{file:n}=r.body||{};if(!n)return s.status(400).json({error:"File path is required"});const[a,f]=await p({rootDir:m,file:n});if(a)return s.status(a.code).json({error:a.msg});s.json(f)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\enable\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/getPage.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:p}=s.query;if(!p)return r.status(400).json({error:"File path is required"});const[u,c]=await t({rootDir:i,file:p});if(u)return r.status(u.code).json({error:u.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/movePage.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:p,newFile:u}=s.body;if(!p)return r.status(400).json({error:"File path is required"});if(!u)return r.status(400).json({error:"New file path is required"});const[m,c]=await t({rootDir:i,file:p,newFile:u});if(m)return r.status(m.code).json({error:m.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PATCH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as t}from"fs";import{resolve as e,join as s}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/pages/getPageMetadata.js";import i from"../../../../../server/utils/pages/updatePage.js";const a=t(s(process.cwd(),"public"))?s(process.cwd(),"public"):e(import.meta.dirname,"../../../../../app-public");export default async(t,e)=>{const s=t.cookies.session_token,[n,p]=await r(s,"system:pages:update");if(n)return e.status(n.code).json({error:n.msg});if(!p)return e.status(403).json({error:"Insufficient permissions"});const{file:c,name:u,title:m,description:d,author:f,template:l,contents:g,extraMetadata:j}=t.body;if(!c)return e.status(400).json({error:"File path is required"});const[b,h]=await o({rootDir:a,file:c});if(!b&&h.locked)return e.status(403).json({error:"This page is locked and cannot be edited"});const[w,k]=await i({rootDir:a,file:c,name:u,title:m,description:d,author:f,template:l,contents:g,extraMetadata:j});if(w)return e.status(w.code).json({error:w.msg});e.json(k)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\file\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/setPageLocked.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:c,locked:p}=s.body;if(!c)return r.status(400).json({error:"File path is required"});if("boolean"!=typeof p)return r.status(400).json({error:"locked must be a boolean"});const[u,m]=await t({rootDir:i,file:c,locked:p});if(u)return r.status(u.code).json({error:u.msg});r.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\lock\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/listPages.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await o(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const[c,p]=await t({rootDir:i,forceRescan:!0});if(c)return r.status(c.code).json({error:c.msg});r.json(p)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\rescan\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as r}from"fs";import{resolve as s,join as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/pages/searchByMetadata.js";const i=r(e(process.cwd(),"public"))?e(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[a,u]=await t(e,"system:pages:read");if(a)return s.status(a.code).json({error:a.msg});if(!u)return s.status(403).json({error:"Insufficient permissions"});const{query:n}=r.query;if(!n)return s.status(400).json({error:"query parameter is required"});let c;try{c=JSON.parse(n)}catch{return s.status(400).json({error:"query must be valid JSON"})}if("object"!=typeof c||Array.isArray(c)||!c)return s.status(400).json({error:"query must be a JSON object"});const[p,m]=await o({rootDir:i,query:c});if(p)return s.status(p.code).json({error:p.msg});s.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\search\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/pages/listTemplates.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,p]=await o(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!p)return r.status(403).json({error:"Insufficient permissions"});const[a,m]=await t({rootDir:i});if(a)return r.status(a.code).json({error:a.msg});r.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\pages\templates\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/deletePermission.js";export default async(e,n)=>{const t=e.cookies.session_token,{names:o}=e.body;if(!o||!Array.isArray(o)||0===o.length)return n.status(400).json({error:"Names array is required"});const[i,a]=await s(t,"system:permissions:manage");if(i)return n.status(i.code).json({error:i.msg});if(!a)return n.status(403).json({error:"Insufficient permissions"});const u=o.filter(s=>{const r=s.includes(":")?s.split(":")[0]:null;return r&&"admin"!==r});if(u.length)return n.status(403).json({error:`Cannot delete non-admin permissions: ${u.join(", ")}`});const m=[],l=[];for(const s of o){const[e,n]=await r(s);e?l.push({name:s,error:e.msg}):m.push(n)}if(l.length>0)return n.status(207).json({deleted:m,errors:l});n.json({deleted:m})};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\permissions\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/getAllPermissions.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:permissions:read");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,a=e.query.owner,[f,p]=await r({limit:m,offset:u,owner:a});if(f)return o.status(f.code).json({error:f.msg});o.json(p)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\permissions\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/permissions/updatePermission.js";export default async(e,i)=>{const o=e.cookies.session_token,{name:t,description:n}=e.body;if(!t)return i.status(400).json({error:"Permission name is required"});if(t.startsWith("system:"))return i.status(403).json({error:"System permissions cannot be modified"});const[m,a]=await s(o,"system:permissions:manage");if(m)return i.status(m.code).json({error:m.msg});if(!a)return i.status(403).json({error:"Insufficient permissions"});const u={};void 0!==n&&(u.description=n);const[c,d]=await r(t,u);if(c)return i.status(c.code).json({error:c.msg});i.json(d)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\permissions\PATCH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/permissions/createPermission.js";export default async(e,o)=>{const n=e.cookies.session_token,{permissions:t}=e.body;if(!t||!Array.isArray(t)||0===t.length)return o.status(400).json({error:"Permissions array is required"});for(const r of t){if(!r.resource||r.resource.includes(":"))return o.status(400).json({error:`Invalid resource name: "${r.resource}". Cannot be empty or contain ":"`});if(!r.action||r.action.includes(":"))return o.status(400).json({error:`Invalid action: "${r.action}". Cannot be empty or contain ":"`})}const[i,a]=await r(n,"system:permissions:manage");if(i)return o.status(i.code).json({error:i.msg});if(!a)return o.status(403).json({error:"Insufficient permissions"});const c=[],u=[];for(const r of t){const[e,o]=await s({resource:r.resource,action:r.action,description:r.description,owner:"custom"});e?u.push({resource:r.resource,action:r.action,error:e.msg}):c.push(o)}if(u.length>0)return o.status(207).json({created:c,errors:u});o.json({created:c})};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\permissions\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import e from"../../../../server/utils/auth/getSession.js";import r from"../../../../server/utils/realtime/getHub.js";import{TOO_MANY_CONNECTIONS_CODE as n}from"../../../../server/utils/realtime/constants.js";export default async(t,s)=>{const c=t.cookies.session_token,[a,o]=await e({token:c});if(a)return 500===a.code?s.reject(500,"Failed to verify session"):s.reject(401,"Authentication required");const i=r(),u=(e,r)=>s.send(JSON.stringify(e),r);let d=null;s.on("open",()=>{const[e,r]=i.addSubscriber({token:c,user:o.user,path:t.path,deliver:u,close:(e,r)=>s.close(e,r)});e?s.close(429===e.code?n:1011,e.msg):(d=r.id,s.data.userId=o.user.id,u({type:"ready",userId:o.user.id}))}),s.on("message",async(e,r)=>{if(!d)return;let n;try{n=r?null:JSON.parse(e)}catch(e){n=null}if(!n||"object"!=typeof n)return u({type:"error",code:400,msg:"Frames must be JSON objects"});if(i.touch({id:d}),"subscribe"===n.type){const[e]=await i.subscribe({id:d,channel:n.channel,since:n.since});return void(e&&u({type:"error",channel:n.channel,code:e.code,msg:e.msg}))}if("send"===n.type){const[e,r]=await i.handleMessage({id:d,channel:n.channel,data:n.data});if(e)return u({type:"error",channel:n.channel,ref:n.ref,code:e.code,msg:e.msg});if(void 0===n.ref)return;try{return u({type:"ack",channel:n.channel,ref:n.ref,data:r})}catch(e){return u({type:"error",channel:n.channel,ref:n.ref,code:500,msg:"The handler returned something that cannot be sent"})}}if("unsubscribe"===n.type)return i.unsubscribe({id:d,channel:n.channel}),u({type:"unsubscribed",channel:n.channel});u({type:"error",code:400,msg:`Unknown frame type "${n.type}"`})}),s.on("close",e=>{d&&i.removeSubscriber({id:d,reason:e})})};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\realtime\WS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/realtime/listConnections.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:realtime:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const[m,a]=r();if(m)return t.status(m.code).json({error:m.msg});t.json(a)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\realtime\connections\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/settings/listSettings.js";export default async(e,t)=>{const i=e.cookies.session_token,[o,n]=await s(i,"system:settings:read");if(o)return t.status(o.code).json({error:o.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{owner:a}=e.params,m=parseInt(e.query.limit)||50,u=parseInt(e.query.offset)||0,[f,c]=await r({owner:a,limit:m,offset:u});if(f)return t.status(f.code).json({error:f.msg});t.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../../server/utils/settings/deleteSetting.js";export default async(r,o)=>{const n=r.cookies.session_token,[i,a]=await s({token:n});if(i||!a)return o.status(401).json({error:"Unauthorized"});const[m,u]=await t(n,"system:custom-settings:manage");if(m||!u)return o.status(403).json({error:"Forbidden: Cannot delete settings"});const{owner:c,name:d}=r.params,[f,g]=await e(c,d);if(f)return o.status(f.code).json({error:f.msg});o.json(g)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(e,o)=>{const{owner:i,name:n}=e.params,[a,u]=await r(i,n);if(a)return o.status(a.code).json({error:a.msg});if(!u.isPublic){const r=e.cookies.session_token,[i,n]=await s({token:r});if(i||!n)return o.status(401).json({error:"Unauthorized"});const[a,u]=await t(r,"system:settings:read");if(a||!u)return o.status(403).json({error:"Forbidden"})}o.json(u)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import t from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../../server/utils/settings/setSetting.js";import r from"../../../../../../server/utils/settings/getSettingWithMetadata.js";export default async(o,n)=>{const i=o.cookies.session_token,[a,u]=await s({token:i});if(a||!u)return n.status(401).json({error:"Unauthorized"});const{owner:m,name:c}=o.params;if("system"===m){const[s,e]=await t(i,"system:settings:update");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot modify system settings"})}else if("custom"===m){const[s,e]=await t(i,"system:custom-settings:manage");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot manage custom settings"})}else{const[s,e]=await t(i,"system:extensions:manage");if(s||!e)return n.status(403).json({error:"Forbidden: Cannot modify extension settings"})}const{value:d,type:f,isPublic:g,description:j}=o.body;if(void 0===d)return n.status(400).json({error:"Value is required"});if("custom"!==m){const[s,t]=await r(m,c);if(s)return n.status(s.code).json({error:s.msg});const[o,i]=await e(m,c,d,t.type,t.isPublic,t.description);return o?n.status(o.code).json({error:o.msg}):n.json(i)}const[p,l]=await e(m,c,d,f,g,j);if(p)return n.status(p.code).json({error:p.msg});n.json(l)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\settings\[owner]\[name]\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import t from"../../../../../server/utils/settings/getPublicSettings.js";export default async(s,e)=>{const[r,o]=await t();if(r)return e.status(r.code).json({error:r.msg});e.json(o)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\settings\public\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as e}from"fs";import{resolve as s,join as t}from"path";import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../server/utils/templates/getTemplateMetadata.js";import i from"../../../../server/utils/templates/deleteTemplate.js";const n=e(t(process.cwd(),"public"))?t(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(e,s)=>{const t=e.cookies.session_token,[a,m]=await r(t,"system:pages:delete");if(a)return s.status(a.code).json({error:a.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{files:p}=e.body;if(!p?.length)return s.status(400).json({error:"No files specified"});for(const e of p){const[t,r]=await o({rootDir:n,file:e});if(!t&&r.locked)return s.status(403).json({error:`Cannot delete locked template: ${e}`})}const[c,l]=await i({rootDir:n,files:p});if(c)return s.status(c.code).json({error:c.msg});s.json(l)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/pages/listTemplates.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,p]=await o(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!p)return r.status(403).json({error:"Insufficient permissions"});const[a,m]=await t({rootDir:i});if(a)return r.status(a.code).json({error:a.msg});r.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as r}from"fs";import{resolve as s,join as e}from"path";import t from"../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../server/utils/auth/getSession.js";import i from"../../../../server/utils/templates/createTemplate.js";const a=r(e(process.cwd(),"public"))?e(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const e=r.cookies.session_token,[n,m]=await t(e,"system:pages:create");if(n)return s.status(n.code).json({error:n.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{directory:c,name:p,copyFrom:u}=r.body;if(!p)return s.status(400).json({error:"Template name is required"});const[,f]=await o({token:e}),d=f?.user?.name||"",[l,j]=await i({rootDir:a,directory:c,name:p,author:d,copyFrom:u});if(l)return s.status(l.code).json({error:l.msg});s.status(201).json(j)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as e,join as r}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/templates/getTemplateMetadata.js";import i from"../../../../../server/utils/templates/disableTemplate.js";const a=s(r(process.cwd(),"public"))?r(process.cwd(),"public"):e(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const r=s.cookies.session_token,[n,p]=await t(r,"system:pages:update");if(n)return e.status(n.code).json({error:n.msg});if(!p)return e.status(403).json({error:"Insufficient permissions"});const{file:m}=s.body||{};if(!m)return e.status(400).json({error:"File path is required"});const[u,c]=await o({rootDir:a,file:m});if(!u&&c.locked)return e.status(403).json({error:"Cannot disable a locked template"});const[l,f]=await i({rootDir:a,file:m});if(l)return e.status(l.code).json({error:l.msg});e.json(f)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\disable\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/templates/enableTemplate.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await t(e,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:p}=s.body||{};if(!p)return r.status(400).json({error:"File path is required"});const[m,u]=await o({rootDir:i,file:p});if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\enable\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/templates/getTemplate.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await t(e,"system:pages:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:p}=s.query;if(!p)return r.status(400).json({error:"File path is required"});const[m,u]=await o({rootDir:i,file:p});if(m)return r.status(m.code).json({error:m.msg});r.json(u)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as r,join as e}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/templates/moveTemplate.js";const i=s(e(process.cwd(),"public"))?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const e=s.cookies.session_token,[n,a]=await t(e,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{file:p,newFile:u}=s.body;if(!p)return r.status(400).json({error:"File path is required"});if(!u)return r.status(400).json({error:"New file path is required"});const[m,c]=await o({rootDir:i,file:p,newFile:u});if(m)return r.status(m.code).json({error:m.msg});r.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PATCH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as e}from"fs";import{resolve as r,join as s}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/templates/getTemplateMetadata.js";import i from"../../../../../server/utils/templates/updateTemplate.js";const a=e(s(process.cwd(),"public"))?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(e,r)=>{const s=e.cookies.session_token,[n,m]=await t(s,"system:pages:update");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const{file:p,name:u,author:c,markup:l}=e.body;if(!p)return r.status(400).json({error:"File path is required"});const[f,d]=await o({rootDir:a,file:p});if(!f&&d.locked)return r.status(403).json({error:"This template is locked and cannot be edited"});const[j,k]=await i({rootDir:a,file:p,name:u,author:c,markup:l});if(j)return r.status(j.code).json({error:j.msg});r.json(k)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\file\PUT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as s}from"fs";import{resolve as e,join as r}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/templates/setTemplateLocked.js";const i=s(r(process.cwd(),"public"))?r(process.cwd(),"public"):e(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const r=s.cookies.session_token,[n,a]=await o(r,"system:pages:update");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{file:p,locked:c}=s.body;if(!p)return e.status(400).json({error:"File path is required"});if("boolean"!=typeof c)return e.status(400).json({error:"locked must be a boolean"});const[u,m]=await t({rootDir:i,file:p,locked:c});if(u)return e.status(u.code).json({error:u.msg});e.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\templates\lock\PUT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/updates/getUpdateStatus.js";export default async(r,t)=>{const[o,i]=await s(r.cookies.session_token,"system:updates:manage");if(o)return t.status(o.code).json({error:o.msg});if(!i)return t.status(403).json({error:"Insufficient permissions"});const[n,a]=await e({offline:"true"===r.query.offline});if(n)return t.status(n.code).json({error:n.msg});t.json(a)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\GET.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\GET.js","names":["currentUserHasPermission","getUpdateStatus","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","offline","query"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getUpdateStatus from '../../../../server/utils/updates/getUpdateStatus.js';\n\n/* Where the site stands: what is running, the newest version on npm and whether it can be installed. `?offline=true` never asks npm, which is what the screen polls with while the server restarts. */\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = await getUpdateStatus({ offline: request.query.offline === 'true' });\n\tif(error) return response.status(error.code).json({ error: error.msg });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,0EAC9BC,MAAqB,qEAGbC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBN,EAAyBG,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,SAAcb,EAAgB,CAAEc,QAAmC,SAA1BZ,EAAQa,MAAMD,UACrE,GAAGH,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAEjET,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/updates/applyUpdate.js";import r from"../../../../../server/utils/updates/applyStagedUpdate.js";export default async(t,o)=>{const[i,n]=await s(t.cookies.session_token,"system:updates:manage");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const[a,d]=process.env.KEMPO_SITE_ROOT?await r({confirm:t.body?.confirm||{}}):await e({version:null===t.body?.version?null:t.body?.version||"latest",extensions:Array.isArray(t.body?.extensions)?t.body.extensions:[]});if(a)return o.status(a.code).json({error:a.msg,...a.details?{details:a.details}:{}});o.json(d)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\apply\POST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\apply\\POST.js","names":["currentUserHasPermission","applyUpdate","applyStagedUpdate","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","process","env","KEMPO_SITE_ROOT","confirm","body","version","extensions","Array","isArray","details"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport applyUpdate from '../../../../../server/utils/updates/applyUpdate.js';\nimport applyStagedUpdate from '../../../../../server/utils/updates/applyStagedUpdate.js';\n\n/*\n Updates kempo and restarts the server a second after this answers. A site that runs from a Docker volume switches to the update\n that was prepared (`{ confirm: { forced: true, breaking: true } }` where it needs the owner's word, see applyStagedUpdate); any\n other site installs `{ version, extensions }` (kempo's version, the newest by default, null to leave it; a list of extension names) in place.\n*/\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = process.env.KEMPO_SITE_ROOT\n\t\t? await applyStagedUpdate({ confirm: request.body?.confirm || {} })\n\t\t: await applyUpdate({ version: request.body?.version === null ? null : (request.body?.version || 'latest'), extensions: Array.isArray(request.body?.extensions) ? request.body.extensions : [] });\n\tif(error) return response.status(error.code).json({ error: error.msg, ...(error.details ? { details: error.details } : {}) });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAiB,4DACjBC,MAAuB,0EAOfC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBP,EAAyBI,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,GAAQC,QAAQC,IAAIC,sBACzBhB,EAAkB,CAAEiB,QAASf,EAAQgB,MAAMD,SAAW,CAAC,UACvDlB,EAAY,CAAEoB,QAAmC,OAA1BjB,EAAQgB,MAAMC,QAAmB,KAAQjB,EAAQgB,MAAMC,SAAW,SAAWC,WAAYC,MAAMC,QAAQpB,EAAQgB,MAAME,YAAclB,EAAQgB,KAAKE,WAAa,KAC7L,GAAGT,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,OAASD,EAAMY,QAAU,CAAEA,QAASZ,EAAMY,SAAY,CAAC,IAExHpB,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/updates/getUpdateStatus.js";export default async(e,t)=>{const[o,i]=await s(e.cookies.session_token,"system:updates:manage");if(o)return t.status(o.code).json({error:o.msg});if(!i)return t.status(403).json({error:"Insufficient permissions"});const[n,a]=await r({force:!0});if(n)return t.status(n.code).json({error:n.msg});t.json(a)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\check\POST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\check\\POST.js","names":["currentUserHasPermission","getUpdateStatus","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","force"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getUpdateStatus from '../../../../../server/utils/updates/getUpdateStatus.js';\n\n/* Asks npm for the newest version now, whatever was found earlier. */\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = await getUpdateStatus({ force: true });\n\tif(error) return response.status(error.code).json({ error: error.msg });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAqB,wEAGbC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBN,EAAyBG,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,SAAcb,EAAgB,CAAEc,OAAO,IACrD,GAAGH,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAEjET,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/updates/discardUpdate.js";export default async(r,t)=>{const[i,o]=await s(r.cookies.session_token,"system:updates:manage");if(i)return t.status(i.code).json({error:i.msg});if(!o)return t.status(403).json({error:"Insufficient permissions"});const[a,n]=await e();if(a)return t.status(a.code).json({error:a.msg,...a.details?{details:a.details}:{}});t.json(n)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\discard\POST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\discard\\POST.js","names":["currentUserHasPermission","discardUpdate","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","details"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport discardUpdate from '../../../../../server/utils/updates/discardUpdate.js';\n\n/* Throws away a prepared update that will not be switched to. */\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = await discardUpdate();\n\tif(error) return response.status(error.code).json({ error: error.msg, ...(error.details ? { details: error.details } : {}) });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAmB,sEAGXC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBN,EAAyBG,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,SAAcb,IAC5B,GAAGW,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,OAASD,EAAMG,QAAU,CAAEA,QAASH,EAAMG,SAAY,CAAC,IAExHX,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/updates/prepareUpdate.js";export default async(r,t)=>{const[o,n]=await s(r.cookies.session_token,"system:updates:manage");if(o)return t.status(o.code).json({error:o.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const[i,a]=await e({version:null===r.body?.version?null:r.body?.version||"latest",extensions:Array.isArray(r.body?.extensions)?r.body.extensions:[]});if(i)return t.status(i.code).json({error:i.msg,...i.details?{details:i.details}:{}});t.json(a)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\prepare\POST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\prepare\\POST.js","names":["currentUserHasPermission","prepareUpdate","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","version","body","extensions","Array","isArray","details"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport prepareUpdate from '../../../../../server/utils/updates/prepareUpdate.js';\n\n/*\n Installs a newer kempo and/or newer versions of installed extensions next to the running site (Docker volume sites) and answers\n with what switching to them would change. The site is not touched. `{ version, extensions }`: version is the kempo version (the\n newest by default, null to leave kempo as it is), extensions a list of names.\n*/\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = await prepareUpdate({ version: request.body?.version === null ? null : (request.body?.version || 'latest'), extensions: Array.isArray(request.body?.extensions) ? request.body.extensions : [] });\n\tif(error) return response.status(error.code).json({ error: error.msg, ...(error.details ? { details: error.details } : {}) });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAmB,sEAOXC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBN,EAAyBG,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,SAAcb,EAAc,CAAEc,QAAmC,OAA1BZ,EAAQa,MAAMD,QAAmB,KAAQZ,EAAQa,MAAMD,SAAW,SAAWE,WAAYC,MAAMC,QAAQhB,EAAQa,MAAMC,YAAcd,EAAQa,KAAKC,WAAa,KAClN,GAAGL,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,OAASD,EAAMQ,QAAU,CAAEA,QAASR,EAAMQ,SAAY,CAAC,IAExHhB,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/updates/rollbackUpdate.js";export default async(e,t)=>{const[o,i]=await s(e.cookies.session_token,"system:updates:manage");if(o)return t.status(o.code).json({error:o.msg});if(!i)return t.status(403).json({error:"Insufficient permissions"});const[n,a]=await r({confirm:e.body?.confirm||{}});if(n)return t.status(n.code).json({error:n.msg,...n.details?{details:n.details}:{}});t.json(a)};
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\updates\rollback\POST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src\\kempo\\api\\updates\\rollback\\POST.js","names":["currentUserHasPermission","rollbackUpdate","async","request","response","permError","hasPermission","cookies","session_token","status","code","json","error","msg","data","confirm","body","details"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport rollbackUpdate from '../../../../../server/utils/updates/rollbackUpdate.js';\n\n/* Goes back to the version before the last update and restarts. `{ confirm: { data: true } }` when that also restores the database. */\nexport default async (request, response) => {\n\tconst [permError, hasPermission] = await currentUserHasPermission(request.cookies.session_token, 'system:updates:manage');\n\tif(permError) return response.status(permError.code).json({ error: permError.msg });\n\tif(!hasPermission) return response.status(403).json({ error: 'Insufficient permissions' });\n\n\tconst [error, data] = await rollbackUpdate({ confirm: request.body?.confirm || {} });\n\tif(error) return response.status(error.code).json({ error: error.msg, ...(error.details ? { details: error.details } : {}) });\n\n\tresponse.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAAoB,uEAGZC,MAAOC,EAASC,KAC9B,MAAOC,EAAWC,SAAuBN,EAAyBG,EAAQI,QAAQC,cAAe,yBACjG,GAAGH,EAAW,OAAOD,EAASK,OAAOJ,EAAUK,MAAMC,KAAK,CAAEC,MAAOP,EAAUQ,MAC7E,IAAIP,EAAe,OAAOF,EAASK,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAE7D,MAAOA,EAAOE,SAAcb,EAAe,CAAEc,QAASZ,EAAQa,MAAMD,SAAW,CAAC,IAChF,GAAGH,EAAO,OAAOR,EAASK,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,OAASD,EAAMK,QAAU,CAAEA,QAASL,EAAMK,SAAY,CAAC,IAExHb,EAASO,KAAKG","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/users/deleteUser.js";export default async(e,t)=>{try{const o=e.cookies.session_token,{ids:n}=e.body;if(!n||!Array.isArray(n)||0===n.length)return t.status(400).json({error:"IDs array is required"});const[i,u]=await s(o,"system:user:delete");if(i)return t.status(i.code).json({error:i.msg});if(!u)return t.status(403).json({error:"Insufficient permissions"});const a=[],c=[];for(const s of n){const[e,t]=await r(s);e?c.push({id:s,error:e.msg}):a.push(t)}if(c.length>0)return t.status(207).json({deleted:a,errors:c});t.json({deleted:a})}catch(s){t.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../server/utils/users/getUsers.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:user:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"You do not have permission to view users"});const u=parseInt(e.query.limit)||50,a=parseInt(e.query.offset)||0,[m,f]=await r({limit:u,offset:a});if(m)return t.status(m.code).json({error:m.msg});t.json(f)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/users/updateUser.js";export default async(r,i)=>{const t=r.cookies.session_token,{id:o,name:n,email:a,emailVerified:u,createdAt:d}=r.body;if(!o)return i.status(400).json({error:"User ID is required"});const[m,c]=await e(t,"system:user:update");if(m)return i.status(m.code).json({error:m.msg});if(!c)return i.status(403).json({error:"Insufficient permissions"});const f={};void 0!==n&&(f.name=n),void 0!==a&&(f.email=a),void 0!==u&&(f.emailVerified=u),void 0!==d&&(f.createdAt=new Date(d));const[j,l]=await s(o,f);if(j)return i.status(j.code).json({error:j.msg});i.json(l)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\PATCH.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/users/getUserById.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:user:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,[a,m]=await r(u);if(a)return t.status(a.code).json({error:a.msg});t.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import r from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../../../server/utils/groups/removeUserFromGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await r(t,"system:group:update");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,{groupName:a}=e.body;if(!a)return o.status(400).json({error:"Group name is required"});const[m,p]=await s(u,a);if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/permissions/getUserGroups.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:group:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,[a,m]=await r(u);if(a)return t.status(a.code).json({error:a.msg});const f=parseInt(e.query.limit)||50,p=parseInt(e.query.offset)||0,c=m.length;t.json({groups:m.slice(p,p+f),total:c,limit:f,offset:p})};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/groups/addUserToGroup.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:group:update");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,{groupName:a}=e.body;if(!a)return o.status(400).json({error:"Group name is required"});const[m,p]=await r(u,a);if(m)return o.status(m.code).json({error:m.msg});o.json(p)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\groups\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/users/getUserById.js";export default async(r,e)=>{const{userid:t}=r.params,[a,o]=await s(t);if(a)return e.status(a.code).json({error:a.msg});e.json({name:o.name})};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\name\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/auth/getSession.js";import r from"../../../../../../server/utils/permissions/getUserPermission.js";import e from"../../../../../../server/utils/permissions/getUserPermissions.js";import o from"../../../../../../server/utils/permissions/userHasPermission.js";export default async(i,t)=>{try{const n=i.cookies.session_token,[u,a]=await s({token:n});if(u||!a||!a.user)return t.status(401).json({error:"Unauthorized"});const{userid:m}=i.params,c="current"===m?a.user.id:m;if("current"!==m){const[s,r]=await o(a.user.id,"system:permissions:read");if(s||!r)return t.status(403).json({error:"Forbidden"})}const p=i.query.permission;if(p){const[s,e]=await r(c,p);return s?t.status(s.code).json({error:s.msg}):t.json({hasPermission:e})}const[j,d]=await e(c);if(j)return t.status(j.code).json({error:j.msg});t.json({permissions:d})}catch(s){console.error("Get user permission error:",s),t.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\permissions\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../../server/utils/auth/getSession.js";import r from"../../../../../../../server/utils/permissions/getUserPermissions.js";import e from"../../../../../../../server/utils/permissions/userHasPermission.js";export default async(o,t)=>{try{const i=o.query.permissions;if(!i)return t.status(400).json({error:"permissions parameter required"});const n=o.cookies.session_token,[a,m]=await s({token:n});if(a||!m||!m.user)return t.status(401).json({error:"Unauthorized"});const{userid:u}=o.params,c="current"===u?m.user.id:u;if("current"!==u){const[s,r]=await e(m.user.id,"system:permissions:read");if(s||!r)return t.status(403).json({error:"Forbidden"})}const p=i.split(",").map(s=>s.trim()),[d,f]=await r(c);if(d)return t.status(d.code).json({error:d.msg});const j=new Set(f.map(s=>s.name)),l=p.every(s=>j.has(s));t.json({hasPermission:l})}catch(s){console.error("Check all permissions error:",s),t.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\permissions\all\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../../server/utils/auth/getSession.js";import r from"../../../../../../../server/utils/permissions/getAllPermissions.js";import e from"../../../../../../../server/utils/permissions/getUserPermissions.js";import o from"../../../../../../../server/utils/permissions/getUserGroups.js";export default async(t,i)=>{try{const n=t.cookies.session_token,[a,m]=await s({token:n});if(a||!m||!m.user)return i.status(401).json({error:"Unauthorized"});const u="current"===t.params.userid?m.user.id:parseInt(t.params.userid);if(!u)return i.status(400).json({error:"Invalid user ID"});const[p,c]=await o(u);if(p)return i.status(p.code).json({error:p.msg});if(c.some(s=>"system:Administrators"===s.name)){const[s,e]=await r({limit:1e4,offset:0});return s?i.status(s.code).json({error:s.msg}):i.json({permissions:e.permissions.map(s=>s.name)})}const[f,j]=await e(u);if(f)return i.status(f.code).json({error:f.msg});i.json({permissions:j})}catch(s){console.error("List user permissions error:",s),i.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\permissions\list\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../../server/utils/auth/getSession.js";import r from"../../../../../../../server/utils/permissions/getUserPermissions.js";import e from"../../../../../../../server/utils/permissions/userHasPermission.js";export default async(o,t)=>{try{const i=o.query.permissions;if(!i)return t.status(400).json({error:"permissions parameter required"});const n=o.cookies.session_token,[a,m]=await s({token:n});if(a||!m||!m.user)return t.status(401).json({error:"Unauthorized"});const{userid:u}=o.params,c="current"===u?m.user.id:u;if("current"!==u){const[s,r]=await e(m.user.id,"system:permissions:read");if(s||!r)return t.status(403).json({error:"Forbidden"})}const p=i.split(",").map(s=>s.trim()),[d,f]=await r(c);if(d)return t.status(d.code).json({error:d.msg});const j=new Set(f.map(s=>s.name)),h=p.some(s=>j.has(s));t.json({hasPermission:h})}catch(s){console.error("Check some permissions error:",s),t.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\permissions\some\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../../server/utils/sessions/deleteSession.js";export default async(r,o)=>{const t=r.cookies.session_token,[n,i]=await s(t,"system:user:update");if(n)return o.status(n.code).json({error:n.msg});if(!i)return o.status(403).json({error:"Insufficient permissions"});const{sessionToken:u}=r.body;if(!u)return o.status(400).json({error:"Session token is required"});const[a,m]=await e(u);if(a)return o.status(a.code).json({error:a.msg});o.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\sessions\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../server/utils/sessions/getUserSessions.js";export default async(e,t)=>{const o=e.cookies.session_token,[i,n]=await s(o,"system:user:read");if(i)return t.status(i.code).json({error:i.msg});if(!n)return t.status(403).json({error:"Insufficient permissions"});const{userid:a}=e.params,u=parseInt(e.query.limit)||50,m=parseInt(e.query.offset)||0,[f,c]=await r(a,{limit:u,offset:m});if(f)return t.status(f.code).json({error:f.msg});t.json(c)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\sessions\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../../../server/utils/sessions/deleteExpiredUserSessions.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:user:update");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"Insufficient permissions"});const{userid:u}=e.params,[a,m]=await r(u);if(a)return o.status(a.code).json({error:a.msg});o.json(m)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\[userid]\sessions\expired\DELETE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/users/createUser.js";export default async(r,t)=>{try{const o=r.cookies.session_token,{name:i,email:a,password:n,emailVerified:m}=r.body,[u,c]=await s(o,"system:user:create");if(u)return t.status(u.code).json({error:u.msg});if(!c)return t.status(403).json({error:"Insufficient permissions"});const[f,d]=await e({name:i,email:a,password:n,emailVerified:m});if(f)return t.status(f.code).json({error:f.msg});t.json(d)}catch(s){t.status(500).json({error:s.message})}};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\create\POST.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/users/searchUsers.js";export default async(e,o)=>{const t=e.cookies.session_token,[i,n]=await s(t,"system:user:read");if(i)return o.status(i.code).json({error:i.msg});if(!n)return o.status(403).json({error:"You do not have permission to view users"});const u=e.query.q||"",a=Math.min(parseInt(e.query.limit)||20,100),m=parseInt(e.query.offset)||0,p=e.query.inGroup||void 0,f=e.query.notInGroup||void 0,[c,d]=await r({q:u,limit:a,offset:m,inGroup:p,notInGroup:f});if(c)return o.status(c.code).json({error:c.msg});o.json(d)};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\api\user\search\GET.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export default class e extends HTMLElement{#e=null;connectedCallback(){this.#e=this.closest("k-aside"),this.#e?.addEventListener("aside_state_change",this.handleStateChange),this.applyState(this.#e?.state)}disconnectedCallback(){this.#e?.removeEventListener("aside_state_change",this.handleStateChange),this.#e=null}handleStateChange=e=>this.applyState(e.detail.state);applyState=e=>{const t="collapsed"===e;this.classList.toggle("d-f",!t),this.classList.toggle("d-b",t),this.classList.toggle("ta-center",t),this.style.alignItems=t?"":"center"}}customElements.define("k-admin-nav-footer",e);
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\AdminNavFooter.js.map
|
|
@@ -15,4 +15,4 @@ import e from"/kempo-ui/components/LightComponent.js";import{html as t,nothing a
|
|
|
15
15
|
${this.renderFooter()}
|
|
16
16
|
</div>
|
|
17
17
|
`}}
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\DashboardWidget.js.map
|
|
@@ -15,4 +15,4 @@ import e from"/kempo-ui/components/LightComponent.js";import{html as s}from"/kem
|
|
|
15
15
|
<p class="mt"><a href="/forgot-password">Forgot Password?</a></p>
|
|
16
16
|
<p class="mt">Don't have an account? <a href="/register">Register</a></p>
|
|
17
17
|
`}}customElements.define("k-login",a);
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\Login.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import t from"/kempo-ui/components/LightComponent.js";import{logout as e}from"../sdk.js";export default class o extends t{static get properties(){return{redirect:{type:String},buttonClass:{type:String,attribute:"button-class"}}}connectedCallback(){this.buttonText=this.textContent.trim()||"Logout",this.innerHTML="",super.connectedCallback()}updated(t){super.updated(t)}handleLogout=async()=>{const[t]=await e();t?console.error("Logout failed:",t.msg):this.redirect&&(window.location.href=this.redirect)};renderLightDom(){const t=document.createElement("button");return t.type="button",t.className=this.buttonClass?`kempo-component-logout ${this.buttonClass}`:"kempo-component-logout",t.textContent=this.buttonText,t.addEventListener("click",this.handleLogout),t}}customElements.define("k-logout-btn",o);
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\LogoutBtn.js.map
|
|
@@ -14,4 +14,4 @@ import e from"/kempo-ui/components/LightComponent.js";import{html as t}from"/kem
|
|
|
14
14
|
<ul>${this.menuData.items.map(e=>this.renderItem(e))}</ul>
|
|
15
15
|
</nav>
|
|
16
16
|
`:t``}}customElements.define("k-menu",s);
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\Menu.js.map
|
|
@@ -14,4 +14,4 @@ import t from"/kempo-ui/components/LightComponent.js";import{html as i,nothing a
|
|
|
14
14
|
</div>
|
|
15
15
|
</k-dropdown>
|
|
16
16
|
`}}customElements.define("k-notification-bell",o);
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=c:\Users\dusti\dev\kempo\dist\kempo\components\NotificationBell.js.map
|