kempo 4.6.1 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +5 -0
  2. package/app-public/account/index.page.html +2 -0
  3. package/app-public/nav.fragment.html +2 -1
  4. package/app-templates/emails/email.template.html +14 -0
  5. package/app-templates/emails/reset-password.page.html +19 -0
  6. package/app-templates/emails/test.page.html +21 -0
  7. package/app-templates/emails/verify-email.page.html +18 -0
  8. package/bin/cli.js +3 -0
  9. package/dist/admin/components/Dashboard.js +2 -2
  10. package/dist/admin/components/Dashboard.js.map +1 -1
  11. package/dist/admin/components/Menus.js +103 -0
  12. package/dist/admin/components/Menus.js.map +1 -0
  13. package/dist/admin/components/tableControls/ExtensionDetails.js +1 -1
  14. package/dist/admin/components/tableControls/ExtensionDetails.js.map +1 -1
  15. package/dist/admin/content/menus/index.page.html +11 -0
  16. package/dist/admin/extensions/browse/index.page.html +4 -1
  17. package/dist/admin/extensions/index.page.html +1 -0
  18. package/dist/admin/nav.fragment.html +6 -0
  19. package/dist/kempo/api/extensions/POST.js +1 -1
  20. package/dist/kempo/api/extensions/POST.js.map +1 -1
  21. package/dist/kempo/api/extensions/known/GET.js +1 -1
  22. package/dist/kempo/api/extensions/known/GET.js.map +1 -1
  23. package/dist/kempo/api/extensions/rating/PUT.js +1 -1
  24. package/dist/kempo/api/extensions/rating/PUT.js.map +1 -1
  25. package/dist/kempo/api/fragments/DELETE.js +1 -1
  26. package/dist/kempo/api/fragments/DELETE.js.map +1 -1
  27. package/dist/kempo/api/fragments/GET.js +1 -1
  28. package/dist/kempo/api/fragments/GET.js.map +1 -1
  29. package/dist/kempo/api/fragments/POST.js +1 -1
  30. package/dist/kempo/api/fragments/POST.js.map +1 -1
  31. package/dist/kempo/api/fragments/disable/PUT.js +1 -1
  32. package/dist/kempo/api/fragments/disable/PUT.js.map +1 -1
  33. package/dist/kempo/api/fragments/enable/PUT.js +1 -1
  34. package/dist/kempo/api/fragments/enable/PUT.js.map +1 -1
  35. package/dist/kempo/api/fragments/file/GET.js +1 -1
  36. package/dist/kempo/api/fragments/file/GET.js.map +1 -1
  37. package/dist/kempo/api/fragments/file/PATCH.js +1 -1
  38. package/dist/kempo/api/fragments/file/PATCH.js.map +1 -1
  39. package/dist/kempo/api/fragments/file/PUT.js +1 -1
  40. package/dist/kempo/api/fragments/file/PUT.js.map +1 -1
  41. package/dist/kempo/api/fragments/lock/PUT.js +1 -1
  42. package/dist/kempo/api/fragments/lock/PUT.js.map +1 -1
  43. package/dist/kempo/api/globals/DELETE.js +1 -1
  44. package/dist/kempo/api/globals/DELETE.js.map +1 -1
  45. package/dist/kempo/api/globals/GET.js +1 -1
  46. package/dist/kempo/api/globals/GET.js.map +1 -1
  47. package/dist/kempo/api/globals/POST.js +1 -1
  48. package/dist/kempo/api/globals/POST.js.map +1 -1
  49. package/dist/kempo/api/globals/disable/PUT.js +1 -1
  50. package/dist/kempo/api/globals/disable/PUT.js.map +1 -1
  51. package/dist/kempo/api/globals/enable/PUT.js +1 -1
  52. package/dist/kempo/api/globals/enable/PUT.js.map +1 -1
  53. package/dist/kempo/api/globals/entry/GET.js +1 -1
  54. package/dist/kempo/api/globals/entry/GET.js.map +1 -1
  55. package/dist/kempo/api/globals/entry/PUT.js +1 -1
  56. package/dist/kempo/api/globals/entry/PUT.js.map +1 -1
  57. package/dist/kempo/api/globals/lock/PUT.js +1 -1
  58. package/dist/kempo/api/globals/lock/PUT.js.map +1 -1
  59. package/dist/kempo/api/menus/DELETE.js +2 -0
  60. package/dist/kempo/api/menus/DELETE.js.map +1 -0
  61. package/dist/kempo/api/menus/GET.js +2 -0
  62. package/dist/kempo/api/menus/GET.js.map +1 -0
  63. package/dist/kempo/api/menus/POST.js +2 -0
  64. package/dist/kempo/api/menus/POST.js.map +1 -0
  65. package/dist/kempo/api/menus/adopt/PUT.js +2 -0
  66. package/dist/kempo/api/menus/adopt/PUT.js.map +1 -0
  67. package/dist/kempo/api/menus/items/DELETE.js +2 -0
  68. package/dist/kempo/api/menus/items/DELETE.js.map +1 -0
  69. package/dist/kempo/api/menus/items/POST.js +2 -0
  70. package/dist/kempo/api/menus/items/POST.js.map +1 -0
  71. package/dist/kempo/api/menus/items/enabled/PUT.js +2 -0
  72. package/dist/kempo/api/menus/items/enabled/PUT.js.map +1 -0
  73. package/dist/kempo/api/menus/items/order/PUT.js +2 -0
  74. package/dist/kempo/api/menus/items/order/PUT.js.map +1 -0
  75. package/dist/kempo/api/menus/location/PUT.js +2 -0
  76. package/dist/kempo/api/menus/location/PUT.js.map +1 -0
  77. package/dist/kempo/api/pages/DELETE.js +1 -1
  78. package/dist/kempo/api/pages/DELETE.js.map +1 -1
  79. package/dist/kempo/api/pages/GET.js +1 -1
  80. package/dist/kempo/api/pages/GET.js.map +1 -1
  81. package/dist/kempo/api/pages/POST.js +1 -1
  82. package/dist/kempo/api/pages/POST.js.map +1 -1
  83. package/dist/kempo/api/pages/directories/GET.js +1 -1
  84. package/dist/kempo/api/pages/directories/GET.js.map +1 -1
  85. package/dist/kempo/api/pages/disable/PUT.js +1 -1
  86. package/dist/kempo/api/pages/disable/PUT.js.map +1 -1
  87. package/dist/kempo/api/pages/enable/PUT.js +1 -1
  88. package/dist/kempo/api/pages/enable/PUT.js.map +1 -1
  89. package/dist/kempo/api/pages/file/GET.js +1 -1
  90. package/dist/kempo/api/pages/file/GET.js.map +1 -1
  91. package/dist/kempo/api/pages/file/PATCH.js +1 -1
  92. package/dist/kempo/api/pages/file/PATCH.js.map +1 -1
  93. package/dist/kempo/api/pages/file/PUT.js +1 -1
  94. package/dist/kempo/api/pages/file/PUT.js.map +1 -1
  95. package/dist/kempo/api/pages/lock/PUT.js +1 -1
  96. package/dist/kempo/api/pages/lock/PUT.js.map +1 -1
  97. package/dist/kempo/api/pages/rescan/POST.js +1 -1
  98. package/dist/kempo/api/pages/rescan/POST.js.map +1 -1
  99. package/dist/kempo/api/pages/search/GET.js +1 -1
  100. package/dist/kempo/api/pages/search/GET.js.map +1 -1
  101. package/dist/kempo/api/pages/templates/GET.js +1 -1
  102. package/dist/kempo/api/pages/templates/GET.js.map +1 -1
  103. package/dist/kempo/api/templates/DELETE.js +1 -1
  104. package/dist/kempo/api/templates/DELETE.js.map +1 -1
  105. package/dist/kempo/api/templates/GET.js +1 -1
  106. package/dist/kempo/api/templates/GET.js.map +1 -1
  107. package/dist/kempo/api/templates/POST.js +1 -1
  108. package/dist/kempo/api/templates/POST.js.map +1 -1
  109. package/dist/kempo/api/templates/disable/PUT.js +1 -1
  110. package/dist/kempo/api/templates/disable/PUT.js.map +1 -1
  111. package/dist/kempo/api/templates/enable/PUT.js +1 -1
  112. package/dist/kempo/api/templates/enable/PUT.js.map +1 -1
  113. package/dist/kempo/api/templates/file/GET.js +1 -1
  114. package/dist/kempo/api/templates/file/GET.js.map +1 -1
  115. package/dist/kempo/api/templates/file/PATCH.js +1 -1
  116. package/dist/kempo/api/templates/file/PATCH.js.map +1 -1
  117. package/dist/kempo/api/templates/file/PUT.js +1 -1
  118. package/dist/kempo/api/templates/file/PUT.js.map +1 -1
  119. package/dist/kempo/api/templates/lock/PUT.js +1 -1
  120. package/dist/kempo/api/templates/lock/PUT.js.map +1 -1
  121. package/dist/kempo/components/DashboardWidget.js +4 -4
  122. package/dist/kempo/components/DashboardWidget.js.map +1 -1
  123. package/dist/kempo/icons/campaign.svg +1 -0
  124. package/dist/kempo/icons/fields.svg +1 -0
  125. package/dist/kempo/icons/open_in_new.svg +1 -0
  126. package/dist/kempo/sdk.js +1 -1
  127. package/dist/kempo/sdk.js.map +1 -1
  128. package/middleware/kempo.js +48 -12
  129. package/package.json +2 -2
  130. package/server/db/schema.js +24 -0
  131. package/server/sdk.js +21 -0
  132. package/server/utils/auth/requestPasswordReset.js +9 -3
  133. package/server/utils/auth/verifyEmail.js +10 -1
  134. package/server/utils/dashboard/coreWidgets.js +1 -0
  135. package/server/utils/dashboard/helpers.js +6 -0
  136. package/server/utils/email/renderEmailTemplate.js +63 -0
  137. package/server/utils/email/sendEmailFromTemplate.js +9 -27
  138. package/server/utils/extensions/aliases.js +71 -0
  139. package/server/utils/extensions/checkClaims.js +32 -0
  140. package/server/utils/extensions/claims.js +54 -0
  141. package/server/utils/extensions/createTablesFromSchema.js +13 -20
  142. package/server/utils/extensions/enableExtensionTree.js +8 -0
  143. package/server/utils/extensions/{getMarketplaceClient.js → getSiteMarketplaceClient.js} +1 -1
  144. package/server/utils/extensions/installExtension.js +32 -0
  145. package/server/utils/extensions/installFromCatalog.js +1 -1
  146. package/server/utils/extensions/installPackage.js +1 -1
  147. package/server/utils/extensions/{catalogClient.js → marketplaceClient.js} +4 -1
  148. package/server/utils/extensions/readKempoConfig.js +2 -2
  149. package/server/utils/extensions/scopeCache.js +14 -1
  150. package/server/utils/extensions/scopes.js +72 -0
  151. package/server/utils/extensions/uninstallExtensionTree.js +2 -1
  152. package/server/utils/extensions/updateExtension.js +35 -0
  153. package/server/utils/global-content/createGlobalContent.js +8 -18
  154. package/server/utils/global-content/deleteGlobalContent.js +1 -16
  155. package/server/utils/global-content/disableGlobalContent.js +1 -16
  156. package/server/utils/global-content/enableGlobalContent.js +1 -16
  157. package/server/utils/global-content/helpers.js +40 -6
  158. package/server/utils/global-content/listGlobalContent.js +2 -2
  159. package/server/utils/global-content/setGlobalContentLocked.js +1 -16
  160. package/server/utils/global-content/updateGlobalContent.js +1 -16
  161. package/server/utils/menus/adoptMenuItem.js +58 -0
  162. package/server/utils/menus/assignMenuLocation.js +47 -0
  163. package/server/utils/menus/deleteMenu.js +27 -0
  164. package/server/utils/menus/deleteMenuItems.js +27 -0
  165. package/server/utils/menus/findMenuLocations.js +41 -0
  166. package/server/utils/menus/findNavItems.js +74 -0
  167. package/server/utils/menus/findPages.js +73 -0
  168. package/server/utils/menus/listMenus.js +103 -0
  169. package/server/utils/menus/markup.js +55 -0
  170. package/server/utils/menus/reorderMenuItems.js +36 -0
  171. package/server/utils/menus/saveMenu.js +54 -0
  172. package/server/utils/menus/saveMenuItem.js +122 -0
  173. package/server/utils/menus/setMenuItemEnabled.js +31 -0
  174. package/server/utils/menus/store.js +90 -0
  175. package/server/utils/scheduler/helpers.js +36 -0
  176. package/server/utils/scheduler/listJobs.js +11 -0
  177. package/server/utils/scheduler/registerJobs.js +37 -0
  178. package/server/utils/scheduler/runJobs.js +90 -0
  179. package/server/utils/scheduler/scheduler.js +37 -0
  180. package/server/utils/scheduler/unregisterJobs.js +16 -0
  181. package/server/utils/settings/ensureEncryptionKey.js +132 -0
  182. package/server/utils/settings/secretCrypto.js +5 -1
  183. package/dist/kempo/icons/create_new_folder.svg +0 -1
  184. package/dist/kempo/icons/credit_card.svg +0 -1
  185. package/dist/kempo/icons/login.svg +0 -1
  186. package/dist/kempo/icons/payments.svg +0 -1
  187. package/dist/kempo/icons/toll.svg +0 -1
  188. package/dist/kempo/icons/wallet.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\extensions\\rating\\PUT.js","names":["currentUserHasPermission","getMarketplaceClient","getSiteInstallId","getExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","rating","body","Number","isInteger","localError","idError","installId","client","report","extension","data","rate","value"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getMarketplaceClient from '../../../../../server/utils/extensions/getMarketplaceClient.js';\nimport getSiteInstallId from '../../../../../server/utils/extensions/getSiteInstallId.js';\nimport getExtension from '../../../../../server/utils/extensions/getExtension.js';\n\n/*\n PUT /kempo/api/extensions/rating { name, rating: 1-5 }\n\n This site's rating of an extension it has installed. One per extension; sending it again changes it.\n The marketplace only accepts it once the install is a minute old, and says so if it is not.\n*/\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:extensions:install');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { name, rating } = request.body || {};\n\n if(!Number.isInteger(rating) || rating < 1 || rating > 5){\n return response.status(400).json({ error: 'rating must be a whole number from 1 to 5' });\n }\n\n const [localError] = await getExtension({ name });\n if(localError){\n return response.status(localError.code === 404 ? 409 : localError.code).json({ error: localError.code === 404 ? 'Only an extension installed on this site can be rated' : localError.msg });\n }\n\n const [idError, installId] = await getSiteInstallId();\n if(idError){\n return response.status(idError.code).json({ error: idError.msg });\n }\n\n const client = await getMarketplaceClient();\n\n /*\n A site that installed before the marketplace existed was never counted. Reporting is idempotent, so\n do it now: otherwise the marketplace would refuse the rating as \"not installed\".\n */\n await client.report({ installId, extension: name });\n\n const [error, data] = await client.rate({ installId, extension: name, value: rating });\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAA0B,wEAC1BC,MAAsB,oEACtBC,MAAkB,wEAQVC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,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,EAAIC,OAAEA,GAAWb,EAAQc,MAAQ,CAAC,EAE1C,IAAIC,OAAOC,UAAUH,IAAWA,EAAS,GAAKA,EAAS,EACrD,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8CAG5C,MAAOO,SAAoBnB,EAAa,CAAEc,SAC1C,GAAGK,EACD,OAAOhB,EAASM,OAA2B,MAApBU,EAAWT,KAAe,IAAMS,EAAWT,MAAMC,KAAK,CAAEC,MAA2B,MAApBO,EAAWT,KAAe,wDAA0DS,EAAWN,MAGvL,MAAOO,EAASC,SAAmBtB,IACnC,GAAGqB,EACD,OAAOjB,EAASM,OAAOW,EAAQV,MAAMC,KAAK,CAAEC,MAAOQ,EAAQP,MAG7D,MAAMS,QAAexB,UAMfwB,EAAOC,OAAO,CAAEF,YAAWG,UAAWV,IAE5C,MAAOF,EAAOa,SAAcH,EAAOI,KAAK,CAAEL,YAAWG,UAAWV,EAAMa,MAAOZ,IAC7E,GAAGH,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKc","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\extensions\\rating\\PUT.js","names":["currentUserHasPermission","getSiteMarketplaceClient","getSiteInstallId","getExtension","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","rating","body","Number","isInteger","localError","idError","installId","client","report","extension","data","rate","value"],"sources":["0"],"sourcesContent":["import currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getSiteMarketplaceClient from '../../../../../server/utils/extensions/getSiteMarketplaceClient.js';\nimport getSiteInstallId from '../../../../../server/utils/extensions/getSiteInstallId.js';\nimport getExtension from '../../../../../server/utils/extensions/getExtension.js';\n\n/*\n PUT /kempo/api/extensions/rating { name, rating: 1-5 }\n\n This site's rating of an extension it has installed. One per extension; sending it again changes it.\n The marketplace only accepts it once the install is a minute old, and says so if it is not.\n*/\nexport default async (request, response) => {\n const token = request.cookies.session_token;\n const [permError, hasPermission] = await currentUserHasPermission(token, 'system:extensions:install');\n\n if(permError){\n return response.status(permError.code).json({ error: permError.msg });\n }\n\n if(!hasPermission){\n return response.status(403).json({ error: 'Insufficient permissions' });\n }\n\n const { name, rating } = request.body || {};\n\n if(!Number.isInteger(rating) || rating < 1 || rating > 5){\n return response.status(400).json({ error: 'rating must be a whole number from 1 to 5' });\n }\n\n const [localError] = await getExtension({ name });\n if(localError){\n return response.status(localError.code === 404 ? 409 : localError.code).json({ error: localError.code === 404 ? 'Only an extension installed on this site can be rated' : localError.msg });\n }\n\n const [idError, installId] = await getSiteInstallId();\n if(idError){\n return response.status(idError.code).json({ error: idError.msg });\n }\n\n const client = await getSiteMarketplaceClient();\n\n /*\n A site that installed before the marketplace existed was never counted. Reporting is idempotent, so\n do it now: otherwise the marketplace would refuse the rating as \"not installed\".\n */\n await client.report({ installId, extension: name });\n\n const [error, data] = await client.rate({ installId, extension: name, value: rating });\n if(error){\n return response.status(error.code).json({ error: error.msg });\n }\n\n response.json(data);\n};\n"],"mappings":"OAAOA,MAA8B,6EAC9BC,MAA8B,4EAC9BC,MAAsB,oEACtBC,MAAkB,wEAQVC,MAAOC,EAASC,KAC7B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBX,EAAyBO,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,EAAIC,OAAEA,GAAWb,EAAQc,MAAQ,CAAC,EAE1C,IAAIC,OAAOC,UAAUH,IAAWA,EAAS,GAAKA,EAAS,EACrD,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8CAG5C,MAAOO,SAAoBnB,EAAa,CAAEc,SAC1C,GAAGK,EACD,OAAOhB,EAASM,OAA2B,MAApBU,EAAWT,KAAe,IAAMS,EAAWT,MAAMC,KAAK,CAAEC,MAA2B,MAApBO,EAAWT,KAAe,wDAA0DS,EAAWN,MAGvL,MAAOO,EAASC,SAAmBtB,IACnC,GAAGqB,EACD,OAAOjB,EAASM,OAAOW,EAAQV,MAAMC,KAAK,CAAEC,MAAOQ,EAAQP,MAG7D,MAAMS,QAAexB,UAMfwB,EAAOC,OAAO,CAAEF,YAAWG,UAAWV,IAE5C,MAAOF,EAAOa,SAAcH,EAAOI,KAAK,CAAEL,YAAWG,UAAWV,EAAMa,MAAOZ,IAC7E,GAAGH,EACD,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGzDV,EAASQ,KAAKc","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as e,join as r}from"path";import s from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/fragments/getFragmentMetadata.js";import o from"../../../../server/utils/fragments/deleteFragment.js";const i=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):e(import.meta.dirname,"../../../../app-public");export default async(e,r)=>{const n=e.cookies.session_token,[a,m]=await s(n,"system:fragments:delete");if(a)return r.status(a.code).json({error:a.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const{files:f}=e.body||{};if(!f?.length)return r.status(400).json({error:"No files specified"});for(const e of f){const[s,o]=await t({rootDir:i,file:e});if(!s&&o.locked)return r.status(403).json({error:`Cannot delete locked fragment: ${e}`})}const[c,u]=await o({rootDir:i,files:f});if(c)return r.status(c.code).json({error:c.msg});r.json(u)};
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/fragments/getFragmentMetadata.js";import i from"../../../../server/utils/fragments/deleteFragment.js";const n=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,f]=await t(e,"system:fragments:delete");if(a)return s.status(a.code).json({error:a.msg});if(!f)return s.status(403).json({error:"Insufficient permissions"});const{files:m}=r.body||{};if(!m?.length)return s.status(400).json({error:"No files specified"});for(const r of m){const[e,t]=await o({rootDir:n,file:r});if(!e&&t.locked)return s.status(403).json({error:`Cannot delete locked fragment: ${r}`})}const[c,u]=await i({rootDir:n,files:m});if(c)return s.status(c.code).json({error:c.msg});s.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\DELETE.js","names":["resolve","join","currentUserHasPermission","getFragmentMetadata","deleteFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","file","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport deleteFragment from '../../../../server/utils/fragments/deleteFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body || {};\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tfor(const file of files){\r\n\t\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked fragment: ${file}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteFragment({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAyB,mEACzBC,MAAoB,uDAE3B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,IAAI,MAAMK,KAAQH,EAAM,CACvB,MAAOI,EAAWC,SAAkBzB,EAAoB,CAAEE,UAASqB,SACnE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAAkCK,KAE9E,CAEA,MAAOL,EAAOS,SAAgB1B,EAAe,CAAEC,UAASkB,UAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\DELETE.js","names":["existsSync","resolve","join","currentUserHasPermission","getFragmentMetadata","deleteFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","files","body","length","file","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport deleteFragment from '../../../../server/utils/fragments/deleteFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { files } = request.body || {};\r\n\r\n\tif(!files?.length){\r\n\t\treturn response.status(400).json({ error: 'No files specified' });\r\n\t}\r\n\r\n\tfor(const file of files){\r\n\t\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked fragment: ${file}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteFragment({ rootDir, files });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAyB,mEACzBC,MAAoB,uDAE3B,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,MAAEA,GAAUZ,EAAQa,MAAQ,CAAC,EAEnC,IAAID,GAAOE,OACV,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uBAG3C,IAAI,MAAMK,KAAQH,EAAM,CACvB,MAAOI,EAAWC,SAAkBxB,EAAoB,CAAEE,UAASoB,SACnE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAAkCK,KAE9E,CAEA,MAAOL,EAAOS,SAAgBzB,EAAe,CAAEC,UAASiB,UAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/fragments/listFragments.js";const o=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,m]=await e(i,"system:fragments:read");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const[a,u]=await t({rootDir:o});if(a)return r.status(a.code).json({error:a.msg});r.json(u)};
1
+ import{existsSync as s}from"fs";import{resolve as r,join as t}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/fragments/listFragments.js";const i=s(t(process.cwd(),"public"))?t(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const t=s.cookies.session_token,[n,m]=await o(t,"system:fragments:read");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const[a,c]=await e({rootDir:i});if(a)return r.status(a.code).json({error:a.msg});r.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\GET.js","names":["resolve","join","currentUserHasPermission","listFragments","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listFragments from '../../../../server/utils/fragments/listFragments.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listFragments({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAmB,sDAE1B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAcnB,EAAc,CAAEC,YAE5C,GAAGgB,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\GET.js","names":["existsSync","resolve","join","currentUserHasPermission","listFragments","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listFragments from '../../../../server/utils/fragments/listFragments.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listFragments({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAmB,sDAE1B,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAclB,EAAc,CAAEC,YAE5C,GAAGe,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as r,join as s}from"path";import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/auth/getSession.js";import o from"../../../../server/utils/fragments/createFragment.js";const i=import.meta.dirname.includes("node_modules")?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const n=r.cookies.session_token,[a,m]=await e(n,"system:fragments:create");if(a)return s.status(a.code).json({error:a.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{directory:u,name:c}=r.body;if(!c)return s.status(400).json({error:"Fragment name is required"});const[,p]=await t({token:n}),d=p?.user?.name||"",[f,j]=await o({rootDir:i,directory:u,name:c,author:d});if(f)return s.status(f.code).json({error:f.msg});s.status(201).json(j)};
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/fragments/createFragment.js";const n=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,m]=await t(e,"system:fragments:create");if(a)return s.status(a.code).json({error:a.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{directory:u,name:c}=r.body;if(!c)return s.status(400).json({error:"Fragment name is required"});const[,p]=await o({token:e}),f=p?.user?.name||"",[d,j]=await i({rootDir:n,directory:u,name:c,author:f});if(d)return s.status(d.code).json({error:d.msg});s.status(201).json(j)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\POST.js","names":["resolve","join","currentUserHasPermission","getSession","createFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createFragment from '../../../../server/utils/fragments/createFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Fragment name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createFragment({ rootDir, directory, name, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAoB,uDAE3B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,GAASb,EAAQc,KAEpC,IAAID,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEK,SAAqBvB,EAAW,CAAEU,UACrCc,EAASD,GAAaE,MAAMJ,MAAQ,IAEnCH,EAAOQ,SAAczB,EAAe,CAAEC,UAASkB,YAAWC,OAAMG,WAEvE,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKS","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\POST.js","names":["existsSync","resolve","join","currentUserHasPermission","getSession","createFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","directory","name","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createFragment from '../../../../server/utils/fragments/createFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { directory, name } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Fragment name is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createFragment({ rootDir, directory, name, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAoB,uDAE3B,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,UAAEA,EAASC,KAAEA,GAASb,EAAQc,KAEpC,IAAID,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAO,CAAEK,SAAqBtB,EAAW,CAAES,UACrCc,EAASD,GAAaE,MAAMJ,MAAQ,IAEnCH,EAAOQ,SAAcxB,EAAe,CAAEC,UAASiB,YAAWC,OAAMG,WAEvE,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKS","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as r,join as s}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/getFragmentMetadata.js";import o from"../../../../../server/utils/fragments/disableFragment.js";const i=import.meta.dirname.includes("node_modules")?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const n=r.cookies.session_token,[a,m]=await e(n,"system:pages:update");if(a)return s.status(a.code).json({error:a.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{file:u}=r.body||{};if(!u)return s.status(400).json({error:"File path is required"});const[c,f]=await t({rootDir:i,file:u});if(!c&&f.locked)return s.status(403).json({error:"Cannot disable a locked fragment"});const[p,d]=await o({rootDir:i,file:u});if(p)return s.status(p.code).json({error:p.msg});s.json(d)};
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/fragments/getFragmentMetadata.js";import i from"../../../../../server/utils/fragments/disableFragment.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:update");if(n)return s.status(n.code).json({error:n.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{file:u}=r.body||{};if(!u)return s.status(400).json({error:"File path is required"});const[c,f]=await o({rootDir:a,file:u});if(!c&&f.locked)return s.status(403).json({error:"Cannot disable a locked fragment"});const[p,l]=await i({rootDir:a,file:u});if(p)return s.status(p.code).json({error:p.msg});s.json(l)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\disable\\PUT.js","names":["resolve","join","currentUserHasPermission","getFragmentMetadata","disableFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport disableFragment from '../../../../../server/utils/fragments/disableFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'Cannot disable a locked fragment' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAqB,2DAE5B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOI,EAAWC,SAAkBvB,EAAoB,CAAEE,UAASkB,SACnE,IAAIE,GAAaC,EAASC,OACzB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qCAG3C,MAAOA,EAAOO,SAAgBxB,EAAgB,CAAEC,UAASkB,SAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\disable\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","getFragmentMetadata","disableFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","metaError","metadata","locked","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport disableFragment from '../../../../../server/utils/fragments/disableFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'Cannot disable a locked fragment' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAqB,2DAE5B,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOI,EAAWC,SAAkBtB,EAAoB,CAAEE,UAASiB,SACnE,IAAIE,GAAaC,EAASC,OACzB,OAAOf,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qCAG3C,MAAOA,EAAOO,SAAgBvB,EAAgB,CAAEC,UAASiB,SAEzD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKQ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/enableFragment.js";const o=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,a]=await e(i,"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:m}=s.body||{};if(!m)return r.status(400).json({error:"File path is required"});const[u,p]=await t({rootDir:o,file:m});if(u)return r.status(u.code).json({error:u.msg});r.json(p)};
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/fragments/enableFragment.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:m}=s.body||{};if(!m)return r.status(400).json({error:"File path is required"});const[p,u]=await o({rootDir:i,file:m});if(p)return r.status(p.code).json({error:p.msg});r.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\enable\\PUT.js","names":["resolve","join","currentUserHasPermission","enableFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableFragment from '../../../../../server/utils/fragments/enableFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAoB,0DAE3B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBrB,EAAe,CAAEC,UAASkB,SAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\enable\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","enableFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","body","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableFragment from '../../../../../server/utils/fragments/enableFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.body || {};\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAoB,0DAE3B,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAAQ,CAAC,EAElC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAgBpB,EAAe,CAAEC,UAASiB,SAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as r,join as s}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/getFragment.js";const o=import.meta.dirname.includes("node_modules")?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const i=r.cookies.session_token,[n,a]=await e(i,"system:fragments:read");if(n)return s.status(n.code).json({error:n.msg});if(!a)return s.status(403).json({error:"Insufficient permissions"});const{file:m}=r.query;if(!m)return s.status(400).json({error:"File path is required"});const[u,c]=await t({rootDir:o,file:m});if(u)return s.status(u.code).json({error:u.msg});s.json(c)};
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/fragments/getFragment.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,[n,a]=await t(e,"system:fragments:read");if(n)return s.status(n.code).json({error:n.msg});if(!a)return s.status(403).json({error:"Insufficient permissions"});const{file:m}=r.query;if(!m)return s.status(400).json({error:"File path is required"});const[u,c]=await o({rootDir:i,file:m});if(u)return s.status(u.code).json({error:u.msg});s.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\GET.js","names":["resolve","join","currentUserHasPermission","getFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragment from '../../../../../server/utils/fragments/getFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAiB,uDAExB,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAcrB,EAAY,CAAEC,UAASkB,SAEnD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\GET.js","names":["existsSync","resolve","join","currentUserHasPermission","getFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","query","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragment from '../../../../../server/utils/fragments/getFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file } = request.query;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getFragment({ rootDir, file });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAiB,uDAExB,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,GAASZ,EAAQa,MAEzB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOA,EAAOI,SAAcpB,EAAY,CAAEC,UAASiB,SAEnD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as r,join as e}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/moveFragment.js";const i=import.meta.dirname.includes("node_modules")?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const o=r.cookies.session_token,[n,a]=await s(o,"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:m,newFile:u}=r.body;if(!m)return e.status(400).json({error:"File path is required"});if(!u)return e.status(400).json({error:"New file path is required"});const[p,c]=await t({rootDir:i,file:m,newFile:u});if(p)return e.status(p.code).json({error:p.msg});e.json(c)};
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/fragments/moveFragment.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,[n,a]=await t(e,"system:pages:update");if(n)return s.status(n.code).json({error:n.msg});if(!a)return s.status(403).json({error:"Insufficient permissions"});const{file:u,newFile:m}=r.body;if(!u)return s.status(400).json({error:"File path is required"});if(!m)return s.status(400).json({error:"New file path is required"});const[p,c]=await o({rootDir:i,file:u,newFile:m});if(p)return s.status(p.code).json({error:p.msg});s.json(c)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\PATCH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PATCH.js","names":["resolve","join","currentUserHasPermission","moveFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport moveFragment from '../../../../../server/utils/fragments/moveFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await moveFragment({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAkB,wDAEzB,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAActB,EAAa,CAAEC,UAASkB,OAAMC,YAE1D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PATCH.js","names":["existsSync","resolve","join","currentUserHasPermission","moveFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","newFile","body","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport moveFragment from '../../../../../server/utils/fragments/moveFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:pages:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, newFile } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(!newFile){\r\n\t\treturn response.status(400).json({ error: 'New file path is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await moveFragment({ rootDir, file, newFile });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAkB,wDAEzB,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,QAAEA,GAAYb,EAAQc,KAElC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,8BAG3C,MAAOA,EAAOK,SAAcrB,EAAa,CAAEC,UAASiB,OAAMC,YAE1D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as r,join as e}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/fragments/getFragmentMetadata.js";import o from"../../../../../server/utils/fragments/updateFragment.js";const i=import.meta.dirname.includes("node_modules")?e(process.cwd(),"public"):r(import.meta.dirname,"../../../../../app-public");export default async(r,e)=>{const a=r.cookies.session_token,[n,m]=await s(a,"system:fragments:update");if(n)return e.status(n.code).json({error:n.msg});if(!m)return e.status(403).json({error:"Insufficient permissions"});const{file:u,name:p,author:c,markup:d}=r.body;if(!u)return e.status(400).json({error:"File path is required"});const[f,l]=await t({rootDir:i,file:u});if(!f&&l.locked)return e.status(403).json({error:"This fragment is locked and cannot be edited"});const[g,j]=await o({rootDir:i,file:u,name:p,author:c,markup:d});if(g)return e.status(g.code).json({error:g.msg});e.json(j)};
1
+ import{existsSync as r}from"fs";import{resolve as s,join as t}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/fragments/getFragmentMetadata.js";import i from"../../../../../server/utils/fragments/updateFragment.js";const a=r(t(process.cwd(),"public"))?t(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(r,s)=>{const t=r.cookies.session_token,[n,m]=await e(t,"system:fragments:update");if(n)return s.status(n.code).json({error:n.msg});if(!m)return s.status(403).json({error:"Insufficient permissions"});const{file:u,name:p,author:c,markup:f}=r.body;if(!u)return s.status(400).json({error:"File path is required"});const[d,l]=await o({rootDir:a,file:u});if(!d&&l.locked)return s.status(403).json({error:"This fragment is locked and cannot be edited"});const[g,j]=await i({rootDir:a,file:u,name:p,author:c,markup:f});if(g)return s.status(g.code).json({error:g.msg});s.json(j)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\file\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PUT.js","names":["resolve","join","currentUserHasPermission","getFragmentMetadata","updateFragment","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport updateFragment from '../../../../../server/utils/fragments/updateFragment.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, author, markup } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This fragment is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateFragment({ rootDir, file, name, author, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAoB,0DAE3B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,OAAEA,GAAWf,EAAQgB,KAE/C,IAAIJ,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOO,EAAWC,SAAkB1B,EAAoB,CAAEE,UAASkB,SACnE,IAAIK,GAAaC,EAASC,OACzB,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,iDAG3C,MAAOA,EAAOU,SAAc3B,EAAe,CAAEC,UAASkB,OAAMC,OAAMC,SAAQC,WAE1E,GAAGL,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\file\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","getFragmentMetadata","updateFragment","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","name","author","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getFragmentMetadata from '../../../../../server/utils/fragments/getFragmentMetadata.js';\r\nimport updateFragment from '../../../../../server/utils/fragments/updateFragment.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, name, author, markup } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getFragmentMetadata({ rootDir, file });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This fragment is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateFragment({ rootDir, file, name, author, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,sEACzBC,MAAoB,0DAE3B,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,OAAEA,GAAWf,EAAQgB,KAE/C,IAAIJ,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,MAAOO,EAAWC,SAAkBzB,EAAoB,CAAEE,UAASiB,SACnE,IAAIK,GAAaC,EAASC,OACzB,OAAOlB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,iDAG3C,MAAOA,EAAOU,SAAc1B,EAAe,CAAEC,UAASiB,OAAMC,OAAMC,SAAQC,WAE1E,GAAGL,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as e}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import o from"../../../../../server/utils/fragments/setFragmentLocked.js";const t=import.meta.dirname.includes("node_modules")?e(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(s,e)=>{const i=s.cookies.session_token,[n,a]=await r(i,"system:fragments:update");if(n)return e.status(n.code).json({error:n.msg});if(!a)return e.status(403).json({error:"Insufficient permissions"});const{file:m,locked:u}=s.body;if(!m)return e.status(400).json({error:"File path is required"});if("boolean"!=typeof u)return e.status(400).json({error:"locked must be a boolean"});const[c,p]=await o({rootDir:t,file:m,locked:u});if(c)return e.status(c.code).json({error:c.msg});e.json(p)};
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/fragments/setFragmentLocked.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:fragments: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:m}=s.body;if(!c)return r.status(400).json({error:"File path is required"});if("boolean"!=typeof m)return r.status(400).json({error:"locked must be a boolean"});const[u,p]=await t({rootDir:i,file:c,locked:m});if(u)return r.status(u.code).json({error:u.msg});r.json(p)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\fragments\lock\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\fragments\\lock\\PUT.js","names":["resolve","join","currentUserHasPermission","setFragmentLocked","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setFragmentLocked from '../../../../../server/utils/fragments/setFragmentLocked.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, locked } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setFragmentLocked({ rootDir, file, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAuB,6DAE9B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,OAAEA,GAAWb,EAAQc,KAEjC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAActB,EAAkB,CAAEC,UAASkB,OAAMC,WAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\fragments\\lock\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","setFragmentLocked","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","file","locked","body","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setFragmentLocked from '../../../../../server/utils/fragments/setFragmentLocked.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:fragments:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { file, locked } = request.body;\r\n\r\n\tif(!file){\r\n\t\treturn response.status(400).json({ error: 'File path is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setFragmentLocked({ rootDir, file, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAuB,6DAE9B,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,2BAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,OAAEA,GAAWb,EAAQc,KAEjC,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,0BAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcrB,EAAkB,CAAEC,UAASiB,OAAMC,WAE/D,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as o,join as t}from"path";import e from"../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../server/utils/global-content/getGlobalContentMetadata.js";import r from"../../../../server/utils/global-content/deleteGlobalContent.js";const n=import.meta.dirname.includes("node_modules")?t(process.cwd(),"public"):o(import.meta.dirname,"../../../../app-public");export default async(o,t)=>{const i=o.cookies.session_token,[a,l]=await e(i,"system:globals:delete");if(a)return t.status(a.code).json({error:a.msg});if(!l)return t.status(403).json({error:"Insufficient permissions"});const{ids:c}=o.body||{};if(!c?.length)return t.status(400).json({error:"No IDs specified"});for(const o of c){const[e,r]=await s({rootDir:n,id:o});if(!e&&r.locked)return t.status(403).json({error:`Cannot delete locked global content: ${r.name}`})}const[m,d]=await r({rootDir:n,ids:c});if(m)return t.status(m.code).json({error:m.msg});t.json(d)};
1
+ import{existsSync as o}from"fs";import{resolve as s,join as t}from"path";import r from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/global-content/getGlobalContentMetadata.js";import n from"../../../../server/utils/global-content/deleteGlobalContent.js";const i=o(t(process.cwd(),"public"))?t(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(o,s)=>{const t=o.cookies.session_token,[a,c]=await r(t,"system:globals:delete");if(a)return s.status(a.code).json({error:a.msg});if(!c)return s.status(403).json({error:"Insufficient permissions"});const{ids:l}=o.body||{};if(!l?.length)return s.status(400).json({error:"No IDs specified"});for(const o of l){const[t,r]=await e({rootDir:i,id:o});if(!t&&r.locked)return s.status(403).json({error:`Cannot delete locked global content: ${r.name}`})}const[m,u]=await n({rootDir:i,ids:l});if(m)return s.status(m.code).json({error:m.msg});s.json(u)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\DELETE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\DELETE.js","names":["resolve","join","currentUserHasPermission","getGlobalContentMetadata","deleteGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","ids","body","length","id","metaError","metadata","locked","name","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport deleteGlobalContent from '../../../../server/utils/global-content/deleteGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { ids } = request.body || {};\r\n\r\n\tif(!ids?.length){\r\n\t\treturn response.status(400).json({ error: 'No IDs specified' });\r\n\t}\r\n\r\n\tfor(const id of ids){\r\n\t\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked global content: ${metadata.name}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteGlobalContent({ rootDir, ids });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAA8B,6EAC9BC,MAAyB,iEAEhC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,IAAEA,GAAQZ,EAAQa,MAAQ,CAAC,EAEjC,IAAID,GAAKE,OACR,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAI,MAAMK,KAAMH,EAAI,CACnB,MAAOI,EAAWC,SAAkBzB,EAAyB,CAAEE,UAASqB,OACxE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,wCAAwCO,EAASE,QAE7F,CAEA,MAAOT,EAAOU,SAAgB3B,EAAoB,CAAEC,UAASkB,QAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\DELETE.js","names":["existsSync","resolve","join","currentUserHasPermission","getGlobalContentMetadata","deleteGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","ids","body","length","id","metaError","metadata","locked","name","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport deleteGlobalContent from '../../../../server/utils/global-content/deleteGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:delete');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { ids } = request.body || {};\r\n\r\n\tif(!ids?.length){\r\n\t\treturn response.status(400).json({ error: 'No IDs specified' });\r\n\t}\r\n\r\n\tfor(const id of ids){\r\n\t\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\t\tif(!metaError && metadata.locked){\r\n\t\t\treturn response.status(403).json({ error: `Cannot delete locked global content: ${metadata.name}` });\r\n\t\t}\r\n\t}\r\n\r\n\tconst [error, result] = await deleteGlobalContent({ rootDir, ids });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAA8B,6EAC9BC,MAAyB,iEAEhC,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,IAAEA,GAAQZ,EAAQa,MAAQ,CAAC,EAEjC,IAAID,GAAKE,OACR,OAAOb,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAI,MAAMK,KAAMH,EAAI,CACnB,MAAOI,EAAWC,SAAkBxB,EAAyB,CAAEE,UAASoB,OACxE,IAAIC,GAAaC,EAASC,OACzB,OAAOjB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,wCAAwCO,EAASE,QAE7F,CAEA,MAAOT,EAAOU,SAAgB1B,EAAoB,CAAEC,UAASiB,QAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKW","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import o from"../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../server/utils/global-content/listGlobalContent.js";const e=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,a]=await o(i,"system:globals:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const[m,c]=await t({rootDir:e});if(m)return r.status(m.code).json({error:m.msg});r.json(c)};
1
+ import{existsSync as s}from"fs";import{resolve as r,join as o}from"path";import t from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/global-content/listGlobalContent.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,a]=await t(o,"system:globals:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const[c,m]=await e({rootDir:i,includeMenu:!1});if(c)return r.status(c.code).json({error:c.msg});r.json(m)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\GET.js","names":["resolve","join","currentUserHasPermission","listGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listGlobalContent from '../../../../server/utils/global-content/listGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listGlobalContent({ rootDir });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAuB,+DAE9B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAcnB,EAAkB,CAAEC,YAEhD,GAAGgB,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\GET.js","names":["existsSync","resolve","join","currentUserHasPermission","listGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data","includeMenu"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport listGlobalContent from '../../../../server/utils/global-content/listGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst [error, data] = await listGlobalContent({ rootDir, includeMenu: false });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAuB,+DAE9B,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAclB,EAAkB,CAAEC,UAASkB,aAAa,IAEtE,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- 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 e from"../../../../server/utils/global-content/createGlobalContent.js";const i=import.meta.dirname.includes("node_modules")?s(process.cwd(),"public"):r(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const n=r.cookies.session_token,[a,u]=await t(n,"system:globals:create");if(a)return s.status(a.code).json({error:a.msg});if(!u)return s.status(403).json({error:"Insufficient permissions"});const{name:m,location:c,priority:p}=r.body;if(!m)return s.status(400).json({error:"Name is required"});if(!c)return s.status(400).json({error:"Location is required"});const[,l]=await o({token:n}),d=l?.user?.name||"",[f,j]=await e({rootDir:i,name:m,location:c,priority:p,author:d});if(f)return s.status(f.code).json({error:f.msg});s.status(201).json(j)};
1
+ import{existsSync as r}from"fs";import{resolve as s,join as o}from"path";import t from"../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../server/utils/auth/getSession.js";import i from"../../../../server/utils/global-content/createGlobalContent.js";const n=r(o(process.cwd(),"public"))?o(process.cwd(),"public"):s(import.meta.dirname,"../../../../app-public");export default async(r,s)=>{const o=r.cookies.session_token,[a,u]=await t(o,"system:globals:create");if(a)return s.status(a.code).json({error:a.msg});if(!u)return s.status(403).json({error:"Insufficient permissions"});const{name:c,location:m,priority:p}=r.body;if(!c)return s.status(400).json({error:"Name is required"});if(!m)return s.status(400).json({error:"Location is required"});const[,l]=await e({token:o}),f=l?.user?.name||"",[d,j]=await i({rootDir:n,name:c,location:m,priority:p,author:f});if(d)return s.status(d.code).json({error:d.msg});s.status(201).json(j)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\POST.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\POST.js","names":["resolve","join","currentUserHasPermission","getSession","createGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createGlobalContent from '../../../../server/utils/global-content/createGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name, location, priority } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Name is required' });\r\n\t}\r\n\r\n\tif(!location){\r\n\t\treturn response.status(400).json({ error: 'Location is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createGlobalContent({ rootDir, name, location, priority, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAyB,iEAEhC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,yCAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,GAAad,EAAQe,KAE7C,IAAIH,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,yBAG3C,MAAO,CAAEM,SAAqBxB,EAAW,CAAEU,UACrCe,EAASD,GAAaE,MAAMN,MAAQ,IAEnCF,EAAOS,SAAc1B,EAAoB,CAAEC,UAASkB,OAAMC,WAAUC,WAAUG,WAErF,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\POST.js","names":["existsSync","resolve","join","currentUserHasPermission","getSession","createGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","name","location","priority","body","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getSession from '../../../../server/utils/auth/getSession.js';\r\nimport createGlobalContent from '../../../../server/utils/global-content/createGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:create');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { name, location, priority } = request.body;\r\n\r\n\tif(!name){\r\n\t\treturn response.status(400).json({ error: 'Name is required' });\r\n\t}\r\n\r\n\tif(!location){\r\n\t\treturn response.status(400).json({ error: 'Location is required' });\r\n\t}\r\n\r\n\tconst [, sessionData] = await getSession({ token });\r\n\tconst author = sessionData?.user?.name || '';\r\n\r\n\tconst [error, data] = await createGlobalContent({ rootDir, name, location, priority, author });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.status(201).json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAyB,iEAEhC,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,GAAad,EAAQe,KAE7C,IAAIH,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,qBAG3C,IAAIG,EACH,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,yBAG3C,MAAO,CAAEM,SAAqBvB,EAAW,CAAES,UACrCe,EAASD,GAAaE,MAAMN,MAAQ,IAEnCF,EAAOS,SAAczB,EAAoB,CAAEC,UAASiB,OAAMC,WAAUC,WAAUG,WAErF,GAAGP,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASM,OAAO,KAAKE,KAAKU","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/global-content/disableGlobalContent.js";const e=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,a]=await o(i,"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}=s.body||{};if(!m)return r.status(400).json({error:"Global content ID is required"});const[u,c]=await t({rootDir:e,id:m});if(u)return r.status(u.code).json({error:u.msg});r.json(c)};
1
+ import{existsSync as s}from"fs";import{resolve as r,join as o}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/disableGlobalContent.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,a]=await t(o,"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:c}=s.body||{};if(!c)return r.status(400).json({error:"Global content ID is required"});const[u,m]=await e({rootDir:i,id:c});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\globals\disable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\disable\\PUT.js","names":["resolve","join","currentUserHasPermission","disableGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableGlobalContent from '../../../../../server/utils/global-content/disableGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA0B,qEAEjC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBrB,EAAqB,CAAEC,UAASkB,OAE9D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\disable\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","disableGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport disableGlobalContent from '../../../../../server/utils/global-content/disableGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await disableGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA0B,qEAEjC,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBpB,EAAqB,CAAEC,UAASiB,OAE9D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/enableGlobalContent.js";const t=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,a]=await o(i,"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}=s.body||{};if(!m)return r.status(400).json({error:"Global content ID is required"});const[u,c]=await e({rootDir:t,id:m});if(u)return r.status(u.code).json({error:u.msg});r.json(c)};
1
+ import{existsSync as s}from"fs";import{resolve as r,join as o}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/enableGlobalContent.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,a]=await t(o,"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:c}=s.body||{};if(!c)return r.status(400).json({error:"Global content ID is required"});const[u,m]=await e({rootDir:i,id:c});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\globals\enable\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\enable\\PUT.js","names":["resolve","join","currentUserHasPermission","enableGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableGlobalContent from '../../../../../server/utils/global-content/enableGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,oEAEhC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBrB,EAAoB,CAAEC,UAASkB,OAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\enable\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","enableGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","result"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport enableGlobalContent from '../../../../../server/utils/global-content/enableGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.body || {};\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, result] = await enableGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(result);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAyB,oEAEhC,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,EAEhC,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAgBpB,EAAoB,CAAEC,UAASiB,OAE7D,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as s,join as r}from"path";import o from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/getGlobalContent.js";const t=import.meta.dirname.includes("node_modules")?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(s,r)=>{const i=s.cookies.session_token,[n,a]=await o(i,"system:globals:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{id:m}=s.query;if(!m)return r.status(400).json({error:"Global content ID is required"});const[u,c]=await e({rootDir:t,id:m});if(u)return r.status(u.code).json({error:u.msg});r.json(c)};
1
+ import{existsSync as s}from"fs";import{resolve as r,join as o}from"path";import t from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/getGlobalContent.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,a]=await t(o,"system:globals:read");if(n)return r.status(n.code).json({error:n.msg});if(!a)return r.status(403).json({error:"Insufficient permissions"});const{id:c}=s.query;if(!c)return r.status(400).json({error:"Global content ID is required"});const[u,m]=await e({rootDir:i,id:c});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\globals\entry\GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\entry\\GET.js","names":["resolve","join","currentUserHasPermission","getGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","query","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContent from '../../../../../server/utils/global-content/getGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.query;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAsB,iEAE7B,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAEvB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAcrB,EAAiB,CAAEC,UAASkB,OAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\entry\\GET.js","names":["existsSync","resolve","join","currentUserHasPermission","getGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","query","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContent from '../../../../../server/utils/global-content/getGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:read');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id } = request.query;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [error, data] = await getGlobalContent({ rootDir, id });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAAsB,iEAE7B,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAEvB,IAAID,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOA,EAAOI,SAAcpB,EAAiB,CAAEC,UAASiB,OAExD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as o,join as t}from"path";import r from"../../../../../server/utils/permissions/currentUserHasPermission.js";import s from"../../../../../server/utils/global-content/getGlobalContentMetadata.js";import e from"../../../../../server/utils/global-content/updateGlobalContent.js";const i=import.meta.dirname.includes("node_modules")?t(process.cwd(),"public"):o(import.meta.dirname,"../../../../../app-public");export default async(o,t)=>{const n=o.cookies.session_token,[a,l]=await r(n,"system:globals:update");if(a)return t.status(a.code).json({error:a.msg});if(!l)return t.status(403).json({error:"Insufficient permissions"});const{id:c,name:m,location:u,priority:d,markup:p}=o.body;if(!c)return t.status(400).json({error:"Global content ID is required"});const[f,b]=await s({rootDir:i,id:c});if(!f&&b.locked)return t.status(403).json({error:"This global content is locked and cannot be edited"});const[j,g]=await e({rootDir:i,id:c,name:m,location:u,priority:d,markup:p});if(j)return t.status(j.code).json({error:j.msg});t.json(g)};
1
+ import{existsSync as o}from"fs";import{resolve as t,join as r}from"path";import s from"../../../../../server/utils/permissions/currentUserHasPermission.js";import e from"../../../../../server/utils/global-content/getGlobalContentMetadata.js";import i from"../../../../../server/utils/global-content/updateGlobalContent.js";const n=o(r(process.cwd(),"public"))?r(process.cwd(),"public"):t(import.meta.dirname,"../../../../../app-public");export default async(o,t)=>{const r=o.cookies.session_token,[a,c]=await s(r,"system:globals:update");if(a)return t.status(a.code).json({error:a.msg});if(!c)return t.status(403).json({error:"Insufficient permissions"});const{id:l,name:u,location:m,priority:p,markup:d}=o.body;if(!l)return t.status(400).json({error:"Global content ID is required"});const[f,b]=await e({rootDir:n,id:l});if(!f&&b.locked)return t.status(403).json({error:"This global content is locked and cannot be edited"});const[j,g]=await i({rootDir:n,id:l,name:u,location:m,priority:p,markup:d});if(j)return t.status(j.code).json({error:j.msg});t.json(g)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\entry\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\entry\\PUT.js","names":["resolve","join","currentUserHasPermission","getGlobalContentMetadata","updateGlobalContent","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","name","location","priority","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport updateGlobalContent from '../../../../../server/utils/global-content/updateGlobalContent.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id, name, location, priority, markup } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This global content is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateGlobalContent({ rootDir, id, name, location, priority, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA8B,gFAC9BC,MAAyB,oEAEhC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBN,EAAKO,QAAQC,MAAO,UAAYT,cAAoBM,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBf,EAAyBW,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,OAAEA,GAAWhB,EAAQiB,KAEzD,IAAIL,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOQ,EAAWC,SAAkB3B,EAAyB,CAAEE,UAASkB,OACxE,IAAIM,GAAaC,EAASC,OACzB,OAAOnB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uDAG3C,MAAOA,EAAOW,SAAc5B,EAAoB,CAAEC,UAASkB,KAAIC,OAAMC,WAAUC,WAAUC,WAEzF,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKY","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\entry\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","getGlobalContentMetadata","updateGlobalContent","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","name","location","priority","markup","body","metaError","metadata","locked","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport getGlobalContentMetadata from '../../../../../server/utils/global-content/getGlobalContentMetadata.js';\r\nimport updateGlobalContent from '../../../../../server/utils/global-content/updateGlobalContent.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id, name, location, priority, markup } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tconst [metaError, metadata] = await getGlobalContentMetadata({ rootDir, id });\r\n\tif(!metaError && metadata.locked){\r\n\t\treturn response.status(403).json({ error: 'This global content is locked and cannot be edited' });\r\n\t}\r\n\r\n\tconst [error, data] = await updateGlobalContent({ rootDir, id, name, location, priority, markup });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA8B,gFAC9BC,MAAyB,oEAEhC,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,EAAQC,OAAEA,GAAWhB,EAAQiB,KAEzD,IAAIL,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,MAAOQ,EAAWC,SAAkB1B,EAAyB,CAAEE,UAASiB,OACxE,IAAIM,GAAaC,EAASC,OACzB,OAAOnB,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,uDAG3C,MAAOA,EAAOW,SAAc3B,EAAoB,CAAEC,UAASiB,KAAIC,OAAMC,WAAUC,WAAUC,WAEzF,GAAGN,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKY","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{resolve as o,join as s}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import r from"../../../../../server/utils/global-content/setGlobalContentLocked.js";const t=import.meta.dirname.includes("node_modules")?s(process.cwd(),"public"):o(import.meta.dirname,"../../../../../app-public");export default async(o,s)=>{const n=o.cookies.session_token,[i,a]=await e(n,"system:globals:update");if(i)return s.status(i.code).json({error:i.msg});if(!a)return s.status(403).json({error:"Insufficient permissions"});const{id:u,locked:c}=o.body;if(!u)return s.status(400).json({error:"Global content ID is required"});if("boolean"!=typeof c)return s.status(400).json({error:"locked must be a boolean"});const[l,m]=await r({rootDir:t,id:u,locked:c});if(l)return s.status(l.code).json({error:l.msg});s.json(m)};
1
+ import{existsSync as o}from"fs";import{resolve as s,join as r}from"path";import e from"../../../../../server/utils/permissions/currentUserHasPermission.js";import t from"../../../../../server/utils/global-content/setGlobalContentLocked.js";const i=o(r(process.cwd(),"public"))?r(process.cwd(),"public"):s(import.meta.dirname,"../../../../../app-public");export default async(o,s)=>{const r=o.cookies.session_token,[n,a]=await e(r,"system:globals:update");if(n)return s.status(n.code).json({error:n.msg});if(!a)return s.status(403).json({error:"Insufficient permissions"});const{id:c,locked:u}=o.body;if(!c)return s.status(400).json({error:"Global content ID is required"});if("boolean"!=typeof u)return s.status(400).json({error:"locked must be a boolean"});const[l,m]=await t({rootDir:i,id:c,locked:u});if(l)return s.status(l.code).json({error:l.msg});s.json(m)};
2
2
  //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\globals\lock\PUT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"src\\kempo\\api\\globals\\lock\\PUT.js","names":["resolve","join","currentUserHasPermission","setGlobalContentLocked","rootDir","dirname","includes","process","cwd","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","locked","body","data"],"sources":["0"],"sourcesContent":["import { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setGlobalContentLocked from '../../../../../server/utils/global-content/setGlobalContentLocked.js';\r\n\r\nconst rootDir = import.meta.dirname.includes('node_modules') ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id, locked } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setGlobalContentLocked({ rootDir, id, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"kBAASA,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA4B,uEAEnC,MAAMC,cAAsBC,QAAQC,SAAS,gBAAkBL,EAAKM,QAAQC,MAAO,UAAYR,cAAoBK,QAAS,4CAE7GI,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBd,EAAyBU,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,OAAEA,GAAWb,EAAQc,KAE/B,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAActB,EAAuB,CAAEC,UAASkB,KAAIC,WAElE,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
1
+ {"version":3,"file":"src\\kempo\\api\\globals\\lock\\PUT.js","names":["existsSync","resolve","join","currentUserHasPermission","setGlobalContentLocked","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","locked","body","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\r\nimport { resolve, join } from 'path';\r\nimport currentUserHasPermission from '../../../../../server/utils/permissions/currentUserHasPermission.js';\r\nimport setGlobalContentLocked from '../../../../../server/utils/global-content/setGlobalContentLocked.js';\r\n\r\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../../app-public');\r\n\r\nexport default async (request, response) => {\r\n\tconst token = request.cookies.session_token;\r\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:update');\r\n\r\n\tif(permError){\r\n\t\treturn response.status(permError.code).json({ error: permError.msg });\r\n\t}\r\n\r\n\tif(!hasPermission){\r\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\r\n\t}\r\n\r\n\tconst { id, locked } = request.body;\r\n\r\n\tif(!id){\r\n\t\treturn response.status(400).json({ error: 'Global content ID is required' });\r\n\t}\r\n\r\n\tif(typeof locked !== 'boolean'){\r\n\t\treturn response.status(400).json({ error: 'locked must be a boolean' });\r\n\t}\r\n\r\n\tconst [error, data] = await setGlobalContentLocked({ rootDir, id, locked });\r\n\r\n\tif(error){\r\n\t\treturn response.status(error.code).json({ error: error.msg });\r\n\t}\r\n\r\n\tresponse.json(data);\r\n};\r\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,6EAC9BC,MAA4B,uEAEnC,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,4CAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,EAAEC,OAAEA,GAAWb,EAAQc,KAE/B,IAAIF,EACH,OAAOX,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,kCAG3C,GAAqB,kBAAXG,EACT,OAAOZ,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOK,SAAcrB,EAAuB,CAAEC,UAASiB,KAAIC,WAElE,GAAGH,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKM","ignoreList":[]}
@@ -0,0 +1,2 @@
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/deleteMenu.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:delete");if(n)return r.status(n.code).json({error:n.msg});if(!m)return r.status(403).json({error:"Insufficient permissions"});const{id:c}=s.body||{},[p,u]=await t({rootDir:i,id:c});if(p)return r.status(p.code).json({error:p.msg});r.json(u)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\menus\DELETE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\menus\\DELETE.js","names":["existsSync","resolve","join","currentUserHasPermission","deleteMenu","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","id","body","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\nimport { resolve, join } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport deleteMenu from '../../../../server/utils/menus/deleteMenu.js';\n\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:delete');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst { id } = request.body || {};\n\n\tconst [error, data] = await deleteMenu({ rootDir, id });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,+CAEvB,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,yBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAME,GAAEA,GAAOZ,EAAQa,MAAQ,CAAC,GAEzBH,EAAOI,SAAcpB,EAAW,CAAEC,UAASiB,OAElD,GAAGF,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKK","ignoreList":[]}
@@ -0,0 +1,2 @@
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/menus/listMenus.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,m]=await e(o,"system:globals:read");if(n)return r.status(n.code).json({error:n.msg});if(!m)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=C:\Users\dusti\dev\kempo\dist\kempo\api\menus\GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\menus\\GET.js","names":["existsSync","resolve","join","currentUserHasPermission","listMenus","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","permError","hasPermission","status","code","json","error","msg","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\nimport { resolve, join } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport listMenus from '../../../../server/utils/menus/listMenus.js';\n\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, 'system:globals:read');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst [error, data] = await listMenus({ rootDir });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.json(data);\n};\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAe,8CAEtB,MAAMC,EAAUL,EAAWE,EAAKI,QAAQC,MAAO,WAAaL,EAAKI,QAAQC,MAAO,UAAYN,cAAoBO,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACvBC,EAAWC,SAAuBb,EAAyBS,EAAO,uBAEzE,GAAGG,EACF,OAAOJ,EAASM,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOL,EAASM,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAOA,EAAOE,SAAclB,EAAU,CAAEC,YAExC,GAAGe,EACF,OAAOT,EAASM,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDV,EAASQ,KAAKG","ignoreList":[]}
@@ -0,0 +1,2 @@
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/auth/getSession.js";import i from"../../../../server/utils/menus/saveMenu.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,{id:n,name:m}=s.body||{},[u,p]=await t(e,n?"system:globals:update":"system:globals:create");if(u)return r.status(u.code).json({error:u.msg});if(!p)return r.status(403).json({error:"Insufficient permissions"});const[,c]=await o({token:e}),f=c?.user?.name||"",[l,d]=await i({rootDir:a,id:n,name:m,author:f});if(l)return r.status(l.code).json({error:l.msg});r.status(n?200:201).json(d)};
2
+ //# sourceMappingURL=C:\Users\dusti\dev\kempo\dist\kempo\api\menus\POST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src\\kempo\\api\\menus\\POST.js","names":["existsSync","resolve","join","currentUserHasPermission","getSession","saveMenu","rootDir","process","cwd","dirname","async","request","response","token","cookies","session_token","id","name","body","permError","hasPermission","status","code","json","error","msg","sessionData","author","user","data"],"sources":["0"],"sourcesContent":["import { existsSync } from 'fs';\nimport { resolve, join } from 'path';\nimport currentUserHasPermission from '../../../../server/utils/permissions/currentUserHasPermission.js';\nimport getSession from '../../../../server/utils/auth/getSession.js';\nimport saveMenu from '../../../../server/utils/menus/saveMenu.js';\n\nconst rootDir = existsSync(join(process.cwd(), 'public')) ? join(process.cwd(), 'public') : resolve(import.meta.dirname, '../../../../app-public');\n\nexport default async (request, response) => {\n\tconst token = request.cookies.session_token;\n\tconst { id, name } = request.body || {};\n\tconst [permError, hasPermission] = await currentUserHasPermission(token, id ? 'system:globals:update' : 'system:globals:create');\n\n\tif(permError){\n\t\treturn response.status(permError.code).json({ error: permError.msg });\n\t}\n\n\tif(!hasPermission){\n\t\treturn response.status(403).json({ error: 'Insufficient permissions' });\n\t}\n\n\tconst [, sessionData] = await getSession({ token });\n\tconst author = sessionData?.user?.name || '';\n\n\tconst [error, data] = await saveMenu({ rootDir, id, name, author });\n\n\tif(error){\n\t\treturn response.status(error.code).json({ error: error.msg });\n\t}\n\n\tresponse.status(id ? 200 : 201).json(data);\n};\n"],"mappings":"qBAASA,MAAkB,uBAClBC,UAASC,MAAY,cACvBC,MAA8B,0EAC9BC,MAAgB,qDAChBC,MAAc,6CAErB,MAAMC,EAAUN,EAAWE,EAAKK,QAAQC,MAAO,WAAaN,EAAKK,QAAQC,MAAO,UAAYP,cAAoBQ,QAAS,yCAE1GC,MAAOC,EAASC,KAC9B,MAAMC,EAAQF,EAAQG,QAAQC,eACxBC,GAAEA,EAAEC,KAAEA,GAASN,EAAQO,MAAQ,CAAC,GAC/BC,EAAWC,SAAuBjB,EAAyBU,EAAOG,EAAK,wBAA0B,yBAExG,GAAGG,EACF,OAAOP,EAASS,OAAOF,EAAUG,MAAMC,KAAK,CAAEC,MAAOL,EAAUM,MAGhE,IAAIL,EACH,OAAOR,EAASS,OAAO,KAAKE,KAAK,CAAEC,MAAO,6BAG3C,MAAO,CAAEE,SAAqBtB,EAAW,CAAES,UACrCc,EAASD,GAAaE,MAAMX,MAAQ,IAEnCO,EAAOK,SAAcxB,EAAS,CAAEC,UAASU,KAAIC,OAAMU,WAE1D,GAAGH,EACF,OAAOZ,EAASS,OAAOG,EAAMF,MAAMC,KAAK,CAAEC,MAAOA,EAAMC,MAGxDb,EAASS,OAAOL,EAAK,IAAM,KAAKO,KAAKM","ignoreList":[]}