@strapi/admin 5.51.0 → 5.51.2

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 (207) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +3 -3
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +3 -3
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/NpsSurvey.js +1 -1
  6. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  7. package/dist/admin/admin/src/components/NpsSurvey.mjs +1 -1
  8. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  9. package/dist/admin/admin/src/features/Tracking.js +1 -1
  10. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  11. package/dist/admin/admin/src/features/Tracking.mjs +1 -1
  12. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  13. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +1 -1
  14. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  15. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs +1 -1
  16. package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
  17. package/dist/admin/admin/src/pages/Auth/components/Register.js +35 -26
  18. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  19. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +35 -27
  20. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  21. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -1
  22. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  23. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
  24. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +1 -1
  26. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -1
  28. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  29. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +1 -1
  30. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  31. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +1 -1
  32. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  33. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +1 -3
  34. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  35. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +1 -3
  36. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  37. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +1 -1
  38. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  39. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +1 -1
  40. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  41. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +1 -1
  42. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  43. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +1 -1
  44. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  45. package/dist/admin/admin/src/pages/UseCasePage.js +1 -1
  46. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  47. package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -1
  48. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  49. package/dist/admin/admin/src/utils/baseQuery.js +3 -2
  50. package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
  51. package/dist/admin/admin/src/utils/baseQuery.mjs +3 -2
  52. package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
  53. package/dist/admin/admin/src/utils/users.js +1 -1
  54. package/dist/admin/admin/src/utils/users.js.map +1 -1
  55. package/dist/admin/admin/src/utils/users.mjs +1 -1
  56. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  57. package/dist/admin/admin/tests/server.js +642 -664
  58. package/dist/admin/admin/tests/server.js.map +1 -1
  59. package/dist/admin/admin/tests/server.mjs +642 -664
  60. package/dist/admin/admin/tests/server.mjs.map +1 -1
  61. package/dist/admin/ee/admin/src/constants.js +22 -26
  62. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  63. package/dist/admin/ee/admin/src/constants.mjs +22 -26
  64. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  65. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +38 -7
  66. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  67. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +18 -7
  68. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  69. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js +4 -1
  70. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  71. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs +4 -1
  72. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  73. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +17 -6
  74. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  75. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs +18 -7
  76. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
  77. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js +23 -26
  78. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  79. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs +23 -26
  80. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  81. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
  82. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  83. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
  84. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  85. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js +16 -20
  86. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js.map +1 -1
  87. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs +16 -20
  88. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs.map +1 -1
  89. package/dist/admin/ee/admin/src/services/auditLogs.js +10 -1
  90. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  91. package/dist/admin/ee/admin/src/services/auditLogs.mjs +10 -2
  92. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  93. package/dist/admin/shared/utils/auth-cookie-domain.js +1 -0
  94. package/dist/admin/shared/utils/auth-cookie-domain.js.map +1 -1
  95. package/dist/admin/shared/utils/auth-cookie-domain.mjs +1 -0
  96. package/dist/admin/shared/utils/auth-cookie-domain.mjs.map +1 -1
  97. package/dist/admin/shared/utils/auth-cookie-path.js +1 -0
  98. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  99. package/dist/admin/shared/utils/auth-cookie-path.mjs +1 -0
  100. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  101. package/dist/admin/src/pages/Auth/components/Register.d.ts +10 -0
  102. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.d.ts +6 -1
  103. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +5 -3
  104. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +8 -4
  105. package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.d.ts +3 -1
  106. package/dist/ee/admin/src/services/auditLogs.d.ts +5 -2
  107. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts +1 -0
  108. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts.map +1 -1
  109. package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts.map +1 -1
  110. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +16 -0
  111. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
  112. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -0
  113. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
  114. package/dist/ee/server/src/destroy.d.ts +1 -4
  115. package/dist/ee/server/src/destroy.d.ts.map +1 -1
  116. package/dist/ee/server/src/index.d.ts +1 -0
  117. package/dist/ee/server/src/index.d.ts.map +1 -1
  118. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js +10 -0
  119. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
  120. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs +11 -1
  121. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
  122. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js +24 -32
  123. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
  124. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs +24 -32
  125. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
  126. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js +36 -4
  127. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  128. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs +36 -4
  129. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  130. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +1 -1
  131. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  132. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +1 -1
  133. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  134. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js +8 -0
  135. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
  136. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs +8 -1
  137. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
  138. package/dist/server/ee/server/src/controllers/admin.js +1 -1
  139. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  140. package/dist/server/ee/server/src/controllers/admin.mjs +1 -1
  141. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  142. package/dist/server/ee/server/src/destroy.js +1 -1
  143. package/dist/server/ee/server/src/destroy.js.map +1 -1
  144. package/dist/server/ee/server/src/destroy.mjs +1 -1
  145. package/dist/server/ee/server/src/destroy.mjs.map +1 -1
  146. package/dist/server/ee/server/src/index.js +1 -3
  147. package/dist/server/ee/server/src/index.js.map +1 -1
  148. package/dist/server/ee/server/src/index.mjs +1 -3
  149. package/dist/server/ee/server/src/index.mjs.map +1 -1
  150. package/dist/server/ee/server/src/services/index.js.map +1 -1
  151. package/dist/server/ee/server/src/services/index.mjs +2 -2
  152. package/dist/server/ee/server/src/services/index.mjs.map +1 -1
  153. package/dist/server/ee/server/src/services/persist-tables.js +2 -2
  154. package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
  155. package/dist/server/ee/server/src/services/persist-tables.mjs +4 -4
  156. package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
  157. package/dist/server/server/src/ai/controllers/ai.js +2 -2
  158. package/dist/server/server/src/ai/controllers/ai.js.map +1 -1
  159. package/dist/server/server/src/ai/controllers/ai.mjs +2 -2
  160. package/dist/server/server/src/ai/controllers/ai.mjs.map +1 -1
  161. package/dist/server/server/src/middlewares/rateLimit.js +1 -2
  162. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  163. package/dist/server/server/src/middlewares/rateLimit.mjs +2 -2
  164. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  165. package/dist/server/server/src/services/encryption.js +1 -1
  166. package/dist/server/server/src/services/encryption.js.map +1 -1
  167. package/dist/server/server/src/services/encryption.mjs +1 -1
  168. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  169. package/dist/server/server/src/services/permission/engine.js +4 -8
  170. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  171. package/dist/server/server/src/services/permission/engine.mjs +5 -5
  172. package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
  173. package/dist/server/server/src/services/transfer/permission.js +1 -5
  174. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  175. package/dist/server/server/src/services/transfer/permission.mjs +2 -2
  176. package/dist/server/server/src/services/transfer/permission.mjs.map +1 -1
  177. package/dist/server/server/src/services/user.js +1 -1
  178. package/dist/server/server/src/services/user.js.map +1 -1
  179. package/dist/server/server/src/services/user.mjs +1 -1
  180. package/dist/server/server/src/services/user.mjs.map +1 -1
  181. package/dist/server/shared/utils/auth-cookie-domain.js +1 -0
  182. package/dist/server/shared/utils/auth-cookie-domain.js.map +1 -1
  183. package/dist/server/shared/utils/auth-cookie-domain.mjs +1 -0
  184. package/dist/server/shared/utils/auth-cookie-domain.mjs.map +1 -1
  185. package/dist/server/shared/utils/auth-cookie-path.js +1 -0
  186. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  187. package/dist/server/shared/utils/auth-cookie-path.mjs +1 -0
  188. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  189. package/dist/server/src/index.d.ts.map +1 -1
  190. package/dist/server/src/middlewares/index.d.ts.map +1 -1
  191. package/dist/server/src/services/permission/engine.d.ts +1 -1
  192. package/dist/server/src/services/permission/engine.d.ts.map +1 -1
  193. package/dist/server/src/services/transfer/permission.d.ts +2 -2
  194. package/dist/server/src/services/transfer/permission.d.ts.map +1 -1
  195. package/dist/shared/contracts/api-token.d.ts +2 -2
  196. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  197. package/dist/shared/contracts/audit-logs.d.ts +19 -1
  198. package/dist/shared/contracts/audit-logs.d.ts.map +1 -1
  199. package/dist/shared/contracts/authentication.d.ts +1 -1
  200. package/dist/shared/contracts/authentication.d.ts.map +1 -1
  201. package/dist/shared/contracts/homepage.d.ts +2 -2
  202. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  203. package/dist/shared/contracts/user.d.ts +1 -1
  204. package/dist/shared/contracts/user.d.ts.map +1 -1
  205. package/dist/shared/utils/auth-cookie-domain.d.ts.map +1 -1
  206. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  207. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycles.js","sources":["../../../../../../../ee/server/src/audit-logs/services/lifecycles.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nconst DEFAULT_RETENTION_DAYS = 90;\n\nconst defaultEvents = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n 'media.create',\n 'media.update',\n 'media.delete',\n 'media-folder.create',\n 'media-folder.update',\n 'media-folder.delete',\n 'user.create',\n 'user.update',\n 'user.delete',\n 'admin.auth.success',\n 'admin.logout',\n 'content-type.create',\n 'content-type.update',\n 'content-type.delete',\n 'component.create',\n 'component.update',\n 'component.delete',\n 'role.create',\n 'role.update',\n 'role.delete',\n 'permission.create',\n 'permission.update',\n 'permission.delete',\n];\n\nconst getEventMap = (defaultEvents: any) => {\n const getDefaultPayload = (...args: any) => args[0];\n\n // Use the default payload for all default events\n return defaultEvents.reduce((acc: any, event: any) => {\n acc[event] = getDefaultPayload;\n return acc;\n }, {} as any);\n};\n\nconst getRetentionDays = (strapi: Core.Strapi) => {\n const featureConfig = strapi.ee.features.get('audit-logs');\n const licenseRetentionDays =\n typeof featureConfig === 'object' && featureConfig?.options?.retentionDays;\n const userRetentionDays = strapi.config.get('admin.auditLogs.retentionDays');\n\n // For enterprise plans, use 90 days by default, but allow users to override it\n if (licenseRetentionDays == null) {\n return userRetentionDays ?? DEFAULT_RETENTION_DAYS;\n }\n\n // Allow users to override the license retention days, but not to increase it\n if (userRetentionDays && userRetentionDays <= licenseRetentionDays) {\n return userRetentionDays;\n }\n\n // User didn't provide a retention days value, use the license one\n return licenseRetentionDays;\n};\n\n/**\n * @description\n * Manages the lifecycle of audit logs. Accessible via strapi.get('audit-logs-lifecycles')\n */\nconst createAuditLogsLifecycleService = (strapi: Core.Strapi) => {\n // Manage internal service state privately\n const state = {} as any;\n const auditLogsService = strapi.get('audit-logs');\n\n // NOTE: providers should be able to replace getEventMap to add or remove events\n const eventMap = getEventMap(defaultEvents);\n\n const processEvent = (name: string, ...args: any) => {\n const requestState = strapi.requestContext.get()?.state;\n\n // Ignore events with auth strategies different from admin\n const isUsingAdminAuth = requestState?.route.info.type === 'admin';\n const user = requestState?.user;\n if (!isUsingAdminAuth || !user) {\n return null;\n }\n\n const getPayload = eventMap[name];\n\n // Ignore the event if it's not in the map\n if (!getPayload) {\n return null;\n }\n\n // Ignore some events based on payload\n // TODO: What does this ignore in upload? Why would we want to ignore anything?\n const ignoredUids = ['plugin::upload.file', 'plugin::upload.folder'];\n if (ignoredUids.includes(args[0]?.uid)) {\n return null;\n }\n\n return {\n action: name,\n date: new Date().toISOString(),\n payload: getPayload(...args) || {},\n userId: user.id,\n };\n };\n\n const handleEvent = async (name: string, ...args: any) => {\n const processedEvent = processEvent(name, ...args);\n\n if (processedEvent) {\n await auditLogsService.saveEvent(processedEvent);\n }\n };\n\n return {\n async register() {\n // Handle license being enabled\n if (!state.eeEnableUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeEnableUnsubscribe = strapi.eventHub.on('ee.enable', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being updated\n if (!state.eeUpdateUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeUpdateUnsubscribe = strapi.eventHub.on('ee.update', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being disabled\n // @ts-expect-error- update event hub to receive callback argument\n state.eeDisableUnsubscribe = strapi.eventHub.on('ee.disable', () => {\n // Turn off service when the license gets disabled\n // Only ee.enable and ee.update listeners remain active to recreate the service\n this.destroy();\n });\n\n // Check current state of license\n if (!strapi.ee.features.isEnabled('audit-logs')) {\n return this;\n }\n\n // Start saving events\n state.eventHubUnsubscribe = strapi.eventHub.subscribe(handleEvent);\n\n // Manage audit logs auto deletion\n const retentionDays = getRetentionDays(strapi);\n\n strapi.cron.add({\n deleteExpiredAuditLogs: {\n task: async () => {\n const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);\n await auditLogsService.deleteExpiredEvents(expirationDate);\n },\n options: '0 0 * * *',\n },\n });\n\n return this;\n },\n\n unsubscribe() {\n if (state.eeDisableUnsubscribe) {\n state.eeDisableUnsubscribe();\n }\n\n if (state.eventHubUnsubscribe) {\n state.eventHubUnsubscribe();\n }\n\n strapi.cron.remove('deleteExpiredAuditLogs');\n\n return this;\n },\n\n destroy() {\n return this.unsubscribe();\n },\n };\n};\n\nexport { createAuditLogsLifecycleService };\n"],"names":["DEFAULT_RETENTION_DAYS","defaultEvents","getEventMap","getDefaultPayload","args","reduce","acc","event","getRetentionDays","strapi","featureConfig","ee","features","get","licenseRetentionDays","options","retentionDays","userRetentionDays","config","createAuditLogsLifecycleService","state","auditLogsService","eventMap","processEvent","name","requestState","requestContext","isUsingAdminAuth","route","info","type","user","getPayload","ignoredUids","includes","uid","action","date","Date","toISOString","payload","userId","id","handleEvent","processedEvent","saveEvent","register","eeEnableUnsubscribe","eventHub","on","destroy","eeUpdateUnsubscribe","eeDisableUnsubscribe","isEnabled","eventHubUnsubscribe","subscribe","cron","add","deleteExpiredAuditLogs","task","expirationDate","now","deleteExpiredEvents","unsubscribe","remove"],"mappings":";;AAEA,MAAMA,sBAAAA,GAAyB,EAAA;AAE/B,MAAMC,aAAAA,GAAgB;AACpB,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,iBAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,oBAAA;AACA,IAAA,cAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,mBAAA;AACA,IAAA,mBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,cAAc,CAACD,aAAAA,GAAAA;AACnB,IAAA,MAAME,oBAAoB,CAAC,GAAGC,IAAAA,GAAcA,IAAI,CAAC,CAAA,CAAE;;AAGnD,IAAA,OAAOH,aAAAA,CAAcI,MAAM,CAAC,CAACC,GAAAA,EAAUC,KAAAA,GAAAA;QACrCD,GAAG,CAACC,MAAM,GAAGJ,iBAAAA;QACb,OAAOG,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,MAAME,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,IAAA,MAAMC,gBAAgBD,MAAAA,CAAOE,EAAE,CAACC,QAAQ,CAACC,GAAG,CAAC,YAAA,CAAA;AAC7C,IAAA,MAAMC,oBAAAA,GACJ,OAAOJ,aAAAA,KAAkB,QAAA,IAAYA,eAAeK,OAAAA,EAASC,aAAAA;AAC/D,IAAA,MAAMC,iBAAAA,GAAoBR,MAAAA,CAAOS,MAAM,CAACL,GAAG,CAAC,+BAAA,CAAA;;AAG5C,IAAA,IAAIC,wBAAwB,IAAA,EAAM;AAChC,QAAA,OAAOG,iBAAAA,IAAqBjB,sBAAAA;AAC9B,IAAA;;IAGA,IAAIiB,iBAAAA,IAAqBA,qBAAqBH,oBAAAA,EAAsB;QAClE,OAAOG,iBAAAA;AACT,IAAA;;IAGA,OAAOH,oBAAAA;AACT,CAAA;AAEA;;;IAIA,MAAMK,kCAAkC,CAACV,MAAAA,GAAAA;;AAEvC,IAAA,MAAMW,QAAQ,EAAC;IACf,MAAMC,gBAAAA,GAAmBZ,MAAAA,CAAOI,GAAG,CAAC,YAAA,CAAA;;AAGpC,IAAA,MAAMS,WAAWpB,WAAAA,CAAYD,aAAAA,CAAAA;IAE7B,MAAMsB,YAAAA,GAAe,CAACC,IAAAA,EAAc,GAAGpB,IAAAA,GAAAA;AACrC,QAAA,MAAMqB,YAAAA,GAAehB,MAAAA,CAAOiB,cAAc,CAACb,GAAG,EAAA,EAAIO,KAAAA;;AAGlD,QAAA,MAAMO,gBAAAA,GAAmBF,YAAAA,EAAcG,KAAAA,CAAMC,IAAAA,CAAKC,IAAAA,KAAS,OAAA;AAC3D,QAAA,MAAMC,OAAON,YAAAA,EAAcM,IAAAA;QAC3B,IAAI,CAACJ,gBAAAA,IAAoB,CAACI,IAAAA,EAAM;YAC9B,OAAO,IAAA;AACT,QAAA;QAEA,MAAMC,UAAAA,GAAaV,QAAQ,CAACE,IAAAA,CAAK;;AAGjC,QAAA,IAAI,CAACQ,UAAAA,EAAY;YACf,OAAO,IAAA;AACT,QAAA;;;AAIA,QAAA,MAAMC,WAAAA,GAAc;AAAC,YAAA,qBAAA;AAAuB,YAAA;AAAwB,SAAA;AACpE,QAAA,IAAIA,YAAYC,QAAQ,CAAC9B,IAAI,CAAC,CAAA,CAAE,EAAE+B,GAAAA,CAAAA,EAAM;YACtC,OAAO,IAAA;AACT,QAAA;QAEA,OAAO;YACLC,MAAAA,EAAQZ,IAAAA;YACRa,IAAAA,EAAM,IAAIC,OAAOC,WAAW,EAAA;YAC5BC,OAAAA,EAASR,UAAAA,CAAAA,GAAc5B,SAAS,EAAC;AACjCqC,YAAAA,MAAAA,EAAQV,KAAKW;AACf,SAAA;AACF,IAAA,CAAA;IAEA,MAAMC,WAAAA,GAAc,OAAOnB,IAAAA,EAAc,GAAGpB,IAAAA,GAAAA;QAC1C,MAAMwC,cAAAA,GAAiBrB,aAAaC,IAAAA,EAAAA,GAASpB,IAAAA,CAAAA;AAE7C,QAAA,IAAIwC,cAAAA,EAAgB;YAClB,MAAMvB,gBAAAA,CAAiBwB,SAAS,CAACD,cAAAA,CAAAA;AACnC,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;QACL,MAAME,QAAAA,CAAAA,GAAAA;;YAEJ,IAAI,CAAC1B,KAAAA,CAAM2B,mBAAmB,EAAE;;AAE9B3B,gBAAAA,KAAAA,CAAM2B,mBAAmB,GAAGtC,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,WAAA,EAAa,IAAA;;AAE1D,oBAAA,IAAI,CAACC,OAAO,EAAA;AACZ,oBAAA,IAAI,CAACJ,QAAQ,EAAA;AACf,gBAAA,CAAA,CAAA;AACF,YAAA;;YAGA,IAAI,CAAC1B,KAAAA,CAAM+B,mBAAmB,EAAE;;AAE9B/B,gBAAAA,KAAAA,CAAM+B,mBAAmB,GAAG1C,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,WAAA,EAAa,IAAA;;AAE1D,oBAAA,IAAI,CAACC,OAAO,EAAA;AACZ,oBAAA,IAAI,CAACJ,QAAQ,EAAA;AACf,gBAAA,CAAA,CAAA;AACF,YAAA;;;AAIA1B,YAAAA,KAAAA,CAAMgC,oBAAoB,GAAG3C,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,YAAA,EAAc,IAAA;;;AAG5D,gBAAA,IAAI,CAACC,OAAO,EAAA;AACd,YAAA,CAAA,CAAA;;YAGA,IAAI,CAACzC,OAAOE,EAAE,CAACC,QAAQ,CAACyC,SAAS,CAAC,YAAA,CAAA,EAAe;AAC/C,gBAAA,OAAO,IAAI;AACb,YAAA;;AAGAjC,YAAAA,KAAAA,CAAMkC,mBAAmB,GAAG7C,MAAAA,CAAOuC,QAAQ,CAACO,SAAS,CAACZ,WAAAA,CAAAA;;AAGtD,YAAA,MAAM3B,gBAAgBR,gBAAAA,CAAiBC,MAAAA,CAAAA;YAEvCA,MAAAA,CAAO+C,IAAI,CAACC,GAAG,CAAC;gBACdC,sBAAAA,EAAwB;oBACtBC,IAAAA,EAAM,UAAA;wBACJ,MAAMC,cAAAA,GAAiB,IAAItB,IAAAA,CAAKA,IAAAA,CAAKuB,GAAG,EAAA,GAAK7C,aAAAA,GAAgB,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,IAAA,CAAA;wBAC5E,MAAMK,gBAAAA,CAAiByC,mBAAmB,CAACF,cAAAA,CAAAA;AAC7C,oBAAA,CAAA;oBACA7C,OAAAA,EAAS;AACX;AACF,aAAA,CAAA;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAgD,QAAAA,WAAAA,CAAAA,GAAAA;YACE,IAAI3C,KAAAA,CAAMgC,oBAAoB,EAAE;AAC9BhC,gBAAAA,KAAAA,CAAMgC,oBAAoB,EAAA;AAC5B,YAAA;YAEA,IAAIhC,KAAAA,CAAMkC,mBAAmB,EAAE;AAC7BlC,gBAAAA,KAAAA,CAAMkC,mBAAmB,EAAA;AAC3B,YAAA;YAEA7C,MAAAA,CAAO+C,IAAI,CAACQ,MAAM,CAAC,wBAAA,CAAA;AAEnB,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAd,QAAAA,OAAAA,CAAAA,GAAAA;YACE,OAAO,IAAI,CAACa,WAAW,EAAA;AACzB,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"lifecycles.js","sources":["../../../../../../../ee/server/src/audit-logs/services/lifecycles.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nconst DEFAULT_RETENTION_DAYS = 90;\n\nconst defaultEvents = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n 'media.create',\n 'media.update',\n 'media.delete',\n 'media-folder.create',\n 'media-folder.update',\n 'media-folder.delete',\n 'user.create',\n 'user.update',\n 'user.delete',\n 'admin.auth.success',\n 'admin.logout',\n 'content-type.create',\n 'content-type.update',\n 'content-type.delete',\n 'component.create',\n 'component.update',\n 'component.delete',\n 'role.create',\n 'role.update',\n 'role.delete',\n 'permission.create',\n 'permission.update',\n 'permission.delete',\n];\n\nconst getEventMap = (defaultEvents: any) => {\n const getDefaultPayload = (...args: any) => args[0];\n\n // Use the default payload for all default events\n return defaultEvents.reduce((acc: any, event: any) => {\n acc[event] = getDefaultPayload;\n return acc;\n }, {} as any);\n};\n\nconst getRetentionDays = (strapi: Core.Strapi) => {\n const featureConfig = strapi.ee.features.get('audit-logs');\n const licenseRetentionDays =\n typeof featureConfig === 'object' && featureConfig?.options?.retentionDays;\n const userRetentionDays = strapi.config.get('admin.auditLogs.retentionDays');\n\n // For enterprise plans, use 90 days by default, but allow users to override it\n if (licenseRetentionDays == null) {\n return userRetentionDays ?? DEFAULT_RETENTION_DAYS;\n }\n\n // Allow users to override the license retention days, but not to increase it\n if (userRetentionDays && userRetentionDays <= licenseRetentionDays) {\n return userRetentionDays;\n }\n\n // User didn't provide a retention days value, use the license one\n return licenseRetentionDays;\n};\n\n/**\n * @description\n * Manages the lifecycle of audit logs. Accessible via strapi.get('audit-logs-lifecycles')\n */\nconst createAuditLogsLifecycleService = (strapi: Core.Strapi) => {\n // Manage internal service state privately\n const state = {} as any;\n const auditLogsService = strapi.get('audit-logs');\n\n // NOTE: providers should be able to replace getEventMap to add or remove events\n const eventMap = getEventMap(defaultEvents);\n\n const processEvent = (name: string, ...args: any) => {\n const requestState = strapi.requestContext.get()?.state;\n\n // Ignore events with auth strategies different from admin\n const isUsingAdminAuth = requestState?.route.info.type === 'admin';\n const user = requestState?.user;\n if (!isUsingAdminAuth || !user) {\n return null;\n }\n\n const getPayload = eventMap[name];\n\n // Ignore the event if it's not in the map\n if (!getPayload) {\n return null;\n }\n\n // Ignore some events based on payload\n // TODO: What does this ignore in upload? Why would we want to ignore anything?\n const ignoredUids = ['plugin::upload.file', 'plugin::upload.folder'];\n if (ignoredUids.includes(args[0]?.uid)) {\n return null;\n }\n\n return {\n action: name,\n date: new Date().toISOString(),\n payload: getPayload(...args) || {},\n userId: user.id,\n };\n };\n\n const handleEvent = async (name: string, ...args: any) => {\n const processedEvent = processEvent(name, ...args);\n\n if (processedEvent) {\n await auditLogsService.saveEvent(processedEvent);\n }\n };\n\n return {\n async register() {\n // Handle license being enabled\n if (!state.eeEnableUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeEnableUnsubscribe = strapi.eventHub.on('ee.enable', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being updated\n if (!state.eeUpdateUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeUpdateUnsubscribe = strapi.eventHub.on('ee.update', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being disabled\n // @ts-expect-error- update event hub to receive callback argument\n state.eeDisableUnsubscribe = strapi.eventHub.on('ee.disable', () => {\n // Turn off service when the license gets disabled\n // Only ee.enable and ee.update listeners remain active to recreate the service\n this.destroy();\n });\n\n // Check current state of license\n if (!strapi.ee.features.isEnabled('audit-logs')) {\n return this;\n }\n\n // Start saving events\n state.eventHubUnsubscribe = strapi.eventHub.subscribe(handleEvent);\n\n // Manage audit logs auto deletion\n const retentionDays = getRetentionDays(strapi);\n\n strapi.cron.add({\n deleteExpiredAuditLogs: {\n async task() {\n const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);\n await auditLogsService.deleteExpiredEvents(expirationDate);\n },\n options: '0 0 * * *',\n },\n });\n\n return this;\n },\n\n unsubscribe() {\n if (state.eeDisableUnsubscribe) {\n state.eeDisableUnsubscribe();\n }\n\n if (state.eventHubUnsubscribe) {\n state.eventHubUnsubscribe();\n }\n\n strapi.cron.remove('deleteExpiredAuditLogs');\n\n return this;\n },\n\n destroy() {\n return this.unsubscribe();\n },\n };\n};\n\nexport { createAuditLogsLifecycleService };\n"],"names":["DEFAULT_RETENTION_DAYS","defaultEvents","getEventMap","getDefaultPayload","args","reduce","acc","event","getRetentionDays","strapi","featureConfig","ee","features","get","licenseRetentionDays","options","retentionDays","userRetentionDays","config","createAuditLogsLifecycleService","state","auditLogsService","eventMap","processEvent","name","requestState","requestContext","isUsingAdminAuth","route","info","type","user","getPayload","ignoredUids","includes","uid","action","date","Date","toISOString","payload","userId","id","handleEvent","processedEvent","saveEvent","register","eeEnableUnsubscribe","eventHub","on","destroy","eeUpdateUnsubscribe","eeDisableUnsubscribe","isEnabled","eventHubUnsubscribe","subscribe","cron","add","deleteExpiredAuditLogs","task","expirationDate","now","deleteExpiredEvents","unsubscribe","remove"],"mappings":"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"}
@@ -133,7 +133,7 @@ const getRetentionDays = (strapi)=>{
133
133
  const retentionDays = getRetentionDays(strapi);
134
134
  strapi.cron.add({
135
135
  deleteExpiredAuditLogs: {
136
- task: async ()=>{
136
+ async task () {
137
137
  const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);
138
138
  await auditLogsService.deleteExpiredEvents(expirationDate);
139
139
  },
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycles.mjs","sources":["../../../../../../../ee/server/src/audit-logs/services/lifecycles.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nconst DEFAULT_RETENTION_DAYS = 90;\n\nconst defaultEvents = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n 'media.create',\n 'media.update',\n 'media.delete',\n 'media-folder.create',\n 'media-folder.update',\n 'media-folder.delete',\n 'user.create',\n 'user.update',\n 'user.delete',\n 'admin.auth.success',\n 'admin.logout',\n 'content-type.create',\n 'content-type.update',\n 'content-type.delete',\n 'component.create',\n 'component.update',\n 'component.delete',\n 'role.create',\n 'role.update',\n 'role.delete',\n 'permission.create',\n 'permission.update',\n 'permission.delete',\n];\n\nconst getEventMap = (defaultEvents: any) => {\n const getDefaultPayload = (...args: any) => args[0];\n\n // Use the default payload for all default events\n return defaultEvents.reduce((acc: any, event: any) => {\n acc[event] = getDefaultPayload;\n return acc;\n }, {} as any);\n};\n\nconst getRetentionDays = (strapi: Core.Strapi) => {\n const featureConfig = strapi.ee.features.get('audit-logs');\n const licenseRetentionDays =\n typeof featureConfig === 'object' && featureConfig?.options?.retentionDays;\n const userRetentionDays = strapi.config.get('admin.auditLogs.retentionDays');\n\n // For enterprise plans, use 90 days by default, but allow users to override it\n if (licenseRetentionDays == null) {\n return userRetentionDays ?? DEFAULT_RETENTION_DAYS;\n }\n\n // Allow users to override the license retention days, but not to increase it\n if (userRetentionDays && userRetentionDays <= licenseRetentionDays) {\n return userRetentionDays;\n }\n\n // User didn't provide a retention days value, use the license one\n return licenseRetentionDays;\n};\n\n/**\n * @description\n * Manages the lifecycle of audit logs. Accessible via strapi.get('audit-logs-lifecycles')\n */\nconst createAuditLogsLifecycleService = (strapi: Core.Strapi) => {\n // Manage internal service state privately\n const state = {} as any;\n const auditLogsService = strapi.get('audit-logs');\n\n // NOTE: providers should be able to replace getEventMap to add or remove events\n const eventMap = getEventMap(defaultEvents);\n\n const processEvent = (name: string, ...args: any) => {\n const requestState = strapi.requestContext.get()?.state;\n\n // Ignore events with auth strategies different from admin\n const isUsingAdminAuth = requestState?.route.info.type === 'admin';\n const user = requestState?.user;\n if (!isUsingAdminAuth || !user) {\n return null;\n }\n\n const getPayload = eventMap[name];\n\n // Ignore the event if it's not in the map\n if (!getPayload) {\n return null;\n }\n\n // Ignore some events based on payload\n // TODO: What does this ignore in upload? Why would we want to ignore anything?\n const ignoredUids = ['plugin::upload.file', 'plugin::upload.folder'];\n if (ignoredUids.includes(args[0]?.uid)) {\n return null;\n }\n\n return {\n action: name,\n date: new Date().toISOString(),\n payload: getPayload(...args) || {},\n userId: user.id,\n };\n };\n\n const handleEvent = async (name: string, ...args: any) => {\n const processedEvent = processEvent(name, ...args);\n\n if (processedEvent) {\n await auditLogsService.saveEvent(processedEvent);\n }\n };\n\n return {\n async register() {\n // Handle license being enabled\n if (!state.eeEnableUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeEnableUnsubscribe = strapi.eventHub.on('ee.enable', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being updated\n if (!state.eeUpdateUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeUpdateUnsubscribe = strapi.eventHub.on('ee.update', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being disabled\n // @ts-expect-error- update event hub to receive callback argument\n state.eeDisableUnsubscribe = strapi.eventHub.on('ee.disable', () => {\n // Turn off service when the license gets disabled\n // Only ee.enable and ee.update listeners remain active to recreate the service\n this.destroy();\n });\n\n // Check current state of license\n if (!strapi.ee.features.isEnabled('audit-logs')) {\n return this;\n }\n\n // Start saving events\n state.eventHubUnsubscribe = strapi.eventHub.subscribe(handleEvent);\n\n // Manage audit logs auto deletion\n const retentionDays = getRetentionDays(strapi);\n\n strapi.cron.add({\n deleteExpiredAuditLogs: {\n task: async () => {\n const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);\n await auditLogsService.deleteExpiredEvents(expirationDate);\n },\n options: '0 0 * * *',\n },\n });\n\n return this;\n },\n\n unsubscribe() {\n if (state.eeDisableUnsubscribe) {\n state.eeDisableUnsubscribe();\n }\n\n if (state.eventHubUnsubscribe) {\n state.eventHubUnsubscribe();\n }\n\n strapi.cron.remove('deleteExpiredAuditLogs');\n\n return this;\n },\n\n destroy() {\n return this.unsubscribe();\n },\n };\n};\n\nexport { createAuditLogsLifecycleService };\n"],"names":["DEFAULT_RETENTION_DAYS","defaultEvents","getEventMap","getDefaultPayload","args","reduce","acc","event","getRetentionDays","strapi","featureConfig","ee","features","get","licenseRetentionDays","options","retentionDays","userRetentionDays","config","createAuditLogsLifecycleService","state","auditLogsService","eventMap","processEvent","name","requestState","requestContext","isUsingAdminAuth","route","info","type","user","getPayload","ignoredUids","includes","uid","action","date","Date","toISOString","payload","userId","id","handleEvent","processedEvent","saveEvent","register","eeEnableUnsubscribe","eventHub","on","destroy","eeUpdateUnsubscribe","eeDisableUnsubscribe","isEnabled","eventHubUnsubscribe","subscribe","cron","add","deleteExpiredAuditLogs","task","expirationDate","now","deleteExpiredEvents","unsubscribe","remove"],"mappings":"AAEA,MAAMA,sBAAAA,GAAyB,EAAA;AAE/B,MAAMC,aAAAA,GAAgB;AACpB,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,eAAA;AACA,IAAA,iBAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,cAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,oBAAA;AACA,IAAA,cAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,qBAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA,kBAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,mBAAA;AACA,IAAA,mBAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,cAAc,CAACD,aAAAA,GAAAA;AACnB,IAAA,MAAME,oBAAoB,CAAC,GAAGC,IAAAA,GAAcA,IAAI,CAAC,CAAA,CAAE;;AAGnD,IAAA,OAAOH,aAAAA,CAAcI,MAAM,CAAC,CAACC,GAAAA,EAAUC,KAAAA,GAAAA;QACrCD,GAAG,CAACC,MAAM,GAAGJ,iBAAAA;QACb,OAAOG,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN,CAAA;AAEA,MAAME,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,IAAA,MAAMC,gBAAgBD,MAAAA,CAAOE,EAAE,CAACC,QAAQ,CAACC,GAAG,CAAC,YAAA,CAAA;AAC7C,IAAA,MAAMC,oBAAAA,GACJ,OAAOJ,aAAAA,KAAkB,QAAA,IAAYA,eAAeK,OAAAA,EAASC,aAAAA;AAC/D,IAAA,MAAMC,iBAAAA,GAAoBR,MAAAA,CAAOS,MAAM,CAACL,GAAG,CAAC,+BAAA,CAAA;;AAG5C,IAAA,IAAIC,wBAAwB,IAAA,EAAM;AAChC,QAAA,OAAOG,iBAAAA,IAAqBjB,sBAAAA;AAC9B,IAAA;;IAGA,IAAIiB,iBAAAA,IAAqBA,qBAAqBH,oBAAAA,EAAsB;QAClE,OAAOG,iBAAAA;AACT,IAAA;;IAGA,OAAOH,oBAAAA;AACT,CAAA;AAEA;;;IAIA,MAAMK,kCAAkC,CAACV,MAAAA,GAAAA;;AAEvC,IAAA,MAAMW,QAAQ,EAAC;IACf,MAAMC,gBAAAA,GAAmBZ,MAAAA,CAAOI,GAAG,CAAC,YAAA,CAAA;;AAGpC,IAAA,MAAMS,WAAWpB,WAAAA,CAAYD,aAAAA,CAAAA;IAE7B,MAAMsB,YAAAA,GAAe,CAACC,IAAAA,EAAc,GAAGpB,IAAAA,GAAAA;AACrC,QAAA,MAAMqB,YAAAA,GAAehB,MAAAA,CAAOiB,cAAc,CAACb,GAAG,EAAA,EAAIO,KAAAA;;AAGlD,QAAA,MAAMO,gBAAAA,GAAmBF,YAAAA,EAAcG,KAAAA,CAAMC,IAAAA,CAAKC,IAAAA,KAAS,OAAA;AAC3D,QAAA,MAAMC,OAAON,YAAAA,EAAcM,IAAAA;QAC3B,IAAI,CAACJ,gBAAAA,IAAoB,CAACI,IAAAA,EAAM;YAC9B,OAAO,IAAA;AACT,QAAA;QAEA,MAAMC,UAAAA,GAAaV,QAAQ,CAACE,IAAAA,CAAK;;AAGjC,QAAA,IAAI,CAACQ,UAAAA,EAAY;YACf,OAAO,IAAA;AACT,QAAA;;;AAIA,QAAA,MAAMC,WAAAA,GAAc;AAAC,YAAA,qBAAA;AAAuB,YAAA;AAAwB,SAAA;AACpE,QAAA,IAAIA,YAAYC,QAAQ,CAAC9B,IAAI,CAAC,CAAA,CAAE,EAAE+B,GAAAA,CAAAA,EAAM;YACtC,OAAO,IAAA;AACT,QAAA;QAEA,OAAO;YACLC,MAAAA,EAAQZ,IAAAA;YACRa,IAAAA,EAAM,IAAIC,OAAOC,WAAW,EAAA;YAC5BC,OAAAA,EAASR,UAAAA,CAAAA,GAAc5B,SAAS,EAAC;AACjCqC,YAAAA,MAAAA,EAAQV,KAAKW;AACf,SAAA;AACF,IAAA,CAAA;IAEA,MAAMC,WAAAA,GAAc,OAAOnB,IAAAA,EAAc,GAAGpB,IAAAA,GAAAA;QAC1C,MAAMwC,cAAAA,GAAiBrB,aAAaC,IAAAA,EAAAA,GAASpB,IAAAA,CAAAA;AAE7C,QAAA,IAAIwC,cAAAA,EAAgB;YAClB,MAAMvB,gBAAAA,CAAiBwB,SAAS,CAACD,cAAAA,CAAAA;AACnC,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;QACL,MAAME,QAAAA,CAAAA,GAAAA;;YAEJ,IAAI,CAAC1B,KAAAA,CAAM2B,mBAAmB,EAAE;;AAE9B3B,gBAAAA,KAAAA,CAAM2B,mBAAmB,GAAGtC,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,WAAA,EAAa,IAAA;;AAE1D,oBAAA,IAAI,CAACC,OAAO,EAAA;AACZ,oBAAA,IAAI,CAACJ,QAAQ,EAAA;AACf,gBAAA,CAAA,CAAA;AACF,YAAA;;YAGA,IAAI,CAAC1B,KAAAA,CAAM+B,mBAAmB,EAAE;;AAE9B/B,gBAAAA,KAAAA,CAAM+B,mBAAmB,GAAG1C,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,WAAA,EAAa,IAAA;;AAE1D,oBAAA,IAAI,CAACC,OAAO,EAAA;AACZ,oBAAA,IAAI,CAACJ,QAAQ,EAAA;AACf,gBAAA,CAAA,CAAA;AACF,YAAA;;;AAIA1B,YAAAA,KAAAA,CAAMgC,oBAAoB,GAAG3C,MAAAA,CAAOuC,QAAQ,CAACC,EAAE,CAAC,YAAA,EAAc,IAAA;;;AAG5D,gBAAA,IAAI,CAACC,OAAO,EAAA;AACd,YAAA,CAAA,CAAA;;YAGA,IAAI,CAACzC,OAAOE,EAAE,CAACC,QAAQ,CAACyC,SAAS,CAAC,YAAA,CAAA,EAAe;AAC/C,gBAAA,OAAO,IAAI;AACb,YAAA;;AAGAjC,YAAAA,KAAAA,CAAMkC,mBAAmB,GAAG7C,MAAAA,CAAOuC,QAAQ,CAACO,SAAS,CAACZ,WAAAA,CAAAA;;AAGtD,YAAA,MAAM3B,gBAAgBR,gBAAAA,CAAiBC,MAAAA,CAAAA;YAEvCA,MAAAA,CAAO+C,IAAI,CAACC,GAAG,CAAC;gBACdC,sBAAAA,EAAwB;oBACtBC,IAAAA,EAAM,UAAA;wBACJ,MAAMC,cAAAA,GAAiB,IAAItB,IAAAA,CAAKA,IAAAA,CAAKuB,GAAG,EAAA,GAAK7C,aAAAA,GAAgB,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,IAAA,CAAA;wBAC5E,MAAMK,gBAAAA,CAAiByC,mBAAmB,CAACF,cAAAA,CAAAA;AAC7C,oBAAA,CAAA;oBACA7C,OAAAA,EAAS;AACX;AACF,aAAA,CAAA;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAgD,QAAAA,WAAAA,CAAAA,GAAAA;YACE,IAAI3C,KAAAA,CAAMgC,oBAAoB,EAAE;AAC9BhC,gBAAAA,KAAAA,CAAMgC,oBAAoB,EAAA;AAC5B,YAAA;YAEA,IAAIhC,KAAAA,CAAMkC,mBAAmB,EAAE;AAC7BlC,gBAAAA,KAAAA,CAAMkC,mBAAmB,EAAA;AAC3B,YAAA;YAEA7C,MAAAA,CAAO+C,IAAI,CAACQ,MAAM,CAAC,wBAAA,CAAA;AAEnB,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAd,QAAAA,OAAAA,CAAAA,GAAAA;YACE,OAAO,IAAI,CAACa,WAAW,EAAA;AACzB,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"lifecycles.mjs","sources":["../../../../../../../ee/server/src/audit-logs/services/lifecycles.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nconst DEFAULT_RETENTION_DAYS = 90;\n\nconst defaultEvents = [\n 'entry.create',\n 'entry.update',\n 'entry.delete',\n 'entry.publish',\n 'entry.unpublish',\n 'media.create',\n 'media.update',\n 'media.delete',\n 'media-folder.create',\n 'media-folder.update',\n 'media-folder.delete',\n 'user.create',\n 'user.update',\n 'user.delete',\n 'admin.auth.success',\n 'admin.logout',\n 'content-type.create',\n 'content-type.update',\n 'content-type.delete',\n 'component.create',\n 'component.update',\n 'component.delete',\n 'role.create',\n 'role.update',\n 'role.delete',\n 'permission.create',\n 'permission.update',\n 'permission.delete',\n];\n\nconst getEventMap = (defaultEvents: any) => {\n const getDefaultPayload = (...args: any) => args[0];\n\n // Use the default payload for all default events\n return defaultEvents.reduce((acc: any, event: any) => {\n acc[event] = getDefaultPayload;\n return acc;\n }, {} as any);\n};\n\nconst getRetentionDays = (strapi: Core.Strapi) => {\n const featureConfig = strapi.ee.features.get('audit-logs');\n const licenseRetentionDays =\n typeof featureConfig === 'object' && featureConfig?.options?.retentionDays;\n const userRetentionDays = strapi.config.get('admin.auditLogs.retentionDays');\n\n // For enterprise plans, use 90 days by default, but allow users to override it\n if (licenseRetentionDays == null) {\n return userRetentionDays ?? DEFAULT_RETENTION_DAYS;\n }\n\n // Allow users to override the license retention days, but not to increase it\n if (userRetentionDays && userRetentionDays <= licenseRetentionDays) {\n return userRetentionDays;\n }\n\n // User didn't provide a retention days value, use the license one\n return licenseRetentionDays;\n};\n\n/**\n * @description\n * Manages the lifecycle of audit logs. Accessible via strapi.get('audit-logs-lifecycles')\n */\nconst createAuditLogsLifecycleService = (strapi: Core.Strapi) => {\n // Manage internal service state privately\n const state = {} as any;\n const auditLogsService = strapi.get('audit-logs');\n\n // NOTE: providers should be able to replace getEventMap to add or remove events\n const eventMap = getEventMap(defaultEvents);\n\n const processEvent = (name: string, ...args: any) => {\n const requestState = strapi.requestContext.get()?.state;\n\n // Ignore events with auth strategies different from admin\n const isUsingAdminAuth = requestState?.route.info.type === 'admin';\n const user = requestState?.user;\n if (!isUsingAdminAuth || !user) {\n return null;\n }\n\n const getPayload = eventMap[name];\n\n // Ignore the event if it's not in the map\n if (!getPayload) {\n return null;\n }\n\n // Ignore some events based on payload\n // TODO: What does this ignore in upload? Why would we want to ignore anything?\n const ignoredUids = ['plugin::upload.file', 'plugin::upload.folder'];\n if (ignoredUids.includes(args[0]?.uid)) {\n return null;\n }\n\n return {\n action: name,\n date: new Date().toISOString(),\n payload: getPayload(...args) || {},\n userId: user.id,\n };\n };\n\n const handleEvent = async (name: string, ...args: any) => {\n const processedEvent = processEvent(name, ...args);\n\n if (processedEvent) {\n await auditLogsService.saveEvent(processedEvent);\n }\n };\n\n return {\n async register() {\n // Handle license being enabled\n if (!state.eeEnableUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeEnableUnsubscribe = strapi.eventHub.on('ee.enable', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being updated\n if (!state.eeUpdateUnsubscribe) {\n // @ts-expect-error- update event hub to receive callback argument\n state.eeUpdateUnsubscribe = strapi.eventHub.on('ee.update', () => {\n // Recreate the service to use the new license info\n this.destroy();\n this.register();\n });\n }\n\n // Handle license being disabled\n // @ts-expect-error- update event hub to receive callback argument\n state.eeDisableUnsubscribe = strapi.eventHub.on('ee.disable', () => {\n // Turn off service when the license gets disabled\n // Only ee.enable and ee.update listeners remain active to recreate the service\n this.destroy();\n });\n\n // Check current state of license\n if (!strapi.ee.features.isEnabled('audit-logs')) {\n return this;\n }\n\n // Start saving events\n state.eventHubUnsubscribe = strapi.eventHub.subscribe(handleEvent);\n\n // Manage audit logs auto deletion\n const retentionDays = getRetentionDays(strapi);\n\n strapi.cron.add({\n deleteExpiredAuditLogs: {\n async task() {\n const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);\n await auditLogsService.deleteExpiredEvents(expirationDate);\n },\n options: '0 0 * * *',\n },\n });\n\n return this;\n },\n\n unsubscribe() {\n if (state.eeDisableUnsubscribe) {\n state.eeDisableUnsubscribe();\n }\n\n if (state.eventHubUnsubscribe) {\n state.eventHubUnsubscribe();\n }\n\n strapi.cron.remove('deleteExpiredAuditLogs');\n\n return this;\n },\n\n destroy() {\n return this.unsubscribe();\n },\n };\n};\n\nexport { createAuditLogsLifecycleService };\n"],"names":["DEFAULT_RETENTION_DAYS","defaultEvents","getEventMap","getDefaultPayload","args","reduce","acc","event","getRetentionDays","strapi","featureConfig","ee","features","get","licenseRetentionDays","options","retentionDays","userRetentionDays","config","createAuditLogsLifecycleService","state","auditLogsService","eventMap","processEvent","name","requestState","requestContext","isUsingAdminAuth","route","info","type","user","getPayload","ignoredUids","includes","uid","action","date","Date","toISOString","payload","userId","id","handleEvent","processedEvent","saveEvent","register","eeEnableUnsubscribe","eventHub","on","destroy","eeUpdateUnsubscribe","eeDisableUnsubscribe","isEnabled","eventHubUnsubscribe","subscribe","cron","add","deleteExpiredAuditLogs","task","expirationDate","now","deleteExpiredEvents","unsubscribe","remove"],"mappings":"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"}
@@ -13,9 +13,17 @@ const validateFindManySchema = utils.yup.object().shape({
13
13
  pageSize: utils.yup.number().integer().min(1).max(100),
14
14
  sort: utils.yup.mixed().oneOf(ALLOWED_SORT_STRINGS)
15
15
  }).required();
16
+ const validateFindManyUsersSchema = utils.yup.object().shape({
17
+ page: utils.yup.number().integer().min(1),
18
+ pageSize: utils.yup.number().integer().min(1).max(100)
19
+ }).required();
16
20
  const validateFindMany = utils.validateYupSchema(validateFindManySchema, {
17
21
  strict: false
18
22
  });
23
+ const validateFindManyUsers = utils.validateYupSchema(validateFindManyUsersSchema, {
24
+ strict: false
25
+ });
19
26
 
20
27
  exports.validateFindMany = validateFindMany;
28
+ exports.validateFindManyUsers = validateFindManyUsers;
21
29
  //# sourceMappingURL=audit-logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-logs.js","sources":["../../../../../../../ee/server/src/audit-logs/validation/audit-logs.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst ALLOWED_SORT_STRINGS = ['action:ASC', 'action:DESC', 'date:ASC', 'date:DESC'];\n\nconst validateFindManySchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n })\n .required();\n\nexport const validateFindMany = validateYupSchema(validateFindManySchema, { strict: false });\n\nexport default {\n validateFindMany,\n};\n"],"names":["ALLOWED_SORT_STRINGS","validateFindManySchema","yup","object","shape","page","number","integer","min","pageSize","max","sort","mixed","oneOf","required","validateFindMany","validateYupSchema","strict"],"mappings":";;;;AAEA,MAAMA,oBAAAA,GAAuB;AAAC,IAAA,YAAA;AAAc,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA;AAAY,CAAA;AAEnF,MAAMC,sBAAAA,GAAyBC,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,SAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA,CAAA;AAC5CC,IAAAA,IAAAA,EAAMT,SAAAA,CAAIU,KAAK,EAAA,CAAGC,KAAK,CAACb,oBAAAA;AAC1B,CAAA,CAAA,CACCc,QAAQ,EAAA;AAEJ,MAAMC,gBAAAA,GAAmBC,uBAAAA,CAAkBf,sBAAAA,EAAwB;IAAEgB,MAAAA,EAAQ;AAAM,CAAA;;;;"}
1
+ {"version":3,"file":"audit-logs.js","sources":["../../../../../../../ee/server/src/audit-logs/validation/audit-logs.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst ALLOWED_SORT_STRINGS = ['action:ASC', 'action:DESC', 'date:ASC', 'date:DESC'];\n\nconst validateFindManySchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n })\n .required();\n\nconst validateFindManyUsersSchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n })\n .required();\n\nexport const validateFindMany = validateYupSchema(validateFindManySchema, { strict: false });\nexport const validateFindManyUsers = validateYupSchema(validateFindManyUsersSchema, {\n strict: false,\n});\n\nexport default {\n validateFindMany,\n validateFindManyUsers,\n};\n"],"names":["ALLOWED_SORT_STRINGS","validateFindManySchema","yup","object","shape","page","number","integer","min","pageSize","max","sort","mixed","oneOf","required","validateFindManyUsersSchema","validateFindMany","validateYupSchema","strict","validateFindManyUsers"],"mappings":";;;;AAEA,MAAMA,oBAAAA,GAAuB;AAAC,IAAA,YAAA;AAAc,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA;AAAY,CAAA;AAEnF,MAAMC,sBAAAA,GAAyBC,SAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,SAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA,CAAA;AAC5CC,IAAAA,IAAAA,EAAMT,SAAAA,CAAIU,KAAK,EAAA,CAAGC,KAAK,CAACb,oBAAAA;AAC1B,CAAA,CAAA,CACCc,QAAQ,EAAA;AAEX,MAAMC,2BAAAA,GAA8Bb,SAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,UAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,SAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA;AAC9C,CAAA,CAAA,CACCI,QAAQ,EAAA;AAEJ,MAAME,gBAAAA,GAAmBC,uBAAAA,CAAkBhB,sBAAAA,EAAwB;IAAEiB,MAAAA,EAAQ;AAAM,CAAA;AACnF,MAAMC,qBAAAA,GAAwBF,uBAAAA,CAAkBF,2BAAAA,EAA6B;IAClFG,MAAAA,EAAQ;AACV,CAAA;;;;;"}
@@ -11,9 +11,16 @@ const validateFindManySchema = yup.object().shape({
11
11
  pageSize: yup.number().integer().min(1).max(100),
12
12
  sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS)
13
13
  }).required();
14
+ const validateFindManyUsersSchema = yup.object().shape({
15
+ page: yup.number().integer().min(1),
16
+ pageSize: yup.number().integer().min(1).max(100)
17
+ }).required();
14
18
  const validateFindMany = validateYupSchema(validateFindManySchema, {
15
19
  strict: false
16
20
  });
21
+ const validateFindManyUsers = validateYupSchema(validateFindManyUsersSchema, {
22
+ strict: false
23
+ });
17
24
 
18
- export { validateFindMany };
25
+ export { validateFindMany, validateFindManyUsers };
19
26
  //# sourceMappingURL=audit-logs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-logs.mjs","sources":["../../../../../../../ee/server/src/audit-logs/validation/audit-logs.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst ALLOWED_SORT_STRINGS = ['action:ASC', 'action:DESC', 'date:ASC', 'date:DESC'];\n\nconst validateFindManySchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n })\n .required();\n\nexport const validateFindMany = validateYupSchema(validateFindManySchema, { strict: false });\n\nexport default {\n validateFindMany,\n};\n"],"names":["ALLOWED_SORT_STRINGS","validateFindManySchema","yup","object","shape","page","number","integer","min","pageSize","max","sort","mixed","oneOf","required","validateFindMany","validateYupSchema","strict"],"mappings":";;AAEA,MAAMA,oBAAAA,GAAuB;AAAC,IAAA,YAAA;AAAc,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA;AAAY,CAAA;AAEnF,MAAMC,sBAAAA,GAAyBC,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,GAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA,CAAA;AAC5CC,IAAAA,IAAAA,EAAMT,GAAAA,CAAIU,KAAK,EAAA,CAAGC,KAAK,CAACb,oBAAAA;AAC1B,CAAA,CAAA,CACCc,QAAQ,EAAA;AAEJ,MAAMC,gBAAAA,GAAmBC,iBAAAA,CAAkBf,sBAAAA,EAAwB;IAAEgB,MAAAA,EAAQ;AAAM,CAAA;;;;"}
1
+ {"version":3,"file":"audit-logs.mjs","sources":["../../../../../../../ee/server/src/audit-logs/validation/audit-logs.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst ALLOWED_SORT_STRINGS = ['action:ASC', 'action:DESC', 'date:ASC', 'date:DESC'];\n\nconst validateFindManySchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n })\n .required();\n\nconst validateFindManyUsersSchema = yup\n .object()\n .shape({\n page: yup.number().integer().min(1),\n pageSize: yup.number().integer().min(1).max(100),\n })\n .required();\n\nexport const validateFindMany = validateYupSchema(validateFindManySchema, { strict: false });\nexport const validateFindManyUsers = validateYupSchema(validateFindManyUsersSchema, {\n strict: false,\n});\n\nexport default {\n validateFindMany,\n validateFindManyUsers,\n};\n"],"names":["ALLOWED_SORT_STRINGS","validateFindManySchema","yup","object","shape","page","number","integer","min","pageSize","max","sort","mixed","oneOf","required","validateFindManyUsersSchema","validateFindMany","validateYupSchema","strict","validateFindManyUsers"],"mappings":";;AAEA,MAAMA,oBAAAA,GAAuB;AAAC,IAAA,YAAA;AAAc,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA;AAAY,CAAA;AAEnF,MAAMC,sBAAAA,GAAyBC,GAAAA,CAC5BC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,GAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA,CAAA;AAC5CC,IAAAA,IAAAA,EAAMT,GAAAA,CAAIU,KAAK,EAAA,CAAGC,KAAK,CAACb,oBAAAA;AAC1B,CAAA,CAAA,CACCc,QAAQ,EAAA;AAEX,MAAMC,2BAAAA,GAA8Bb,GAAAA,CACjCC,MAAM,EAAA,CACNC,KAAK,CAAC;AACLC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,OAAO,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;IACjCC,QAAAA,EAAUP,GAAAA,CAAII,MAAM,EAAA,CAAGC,OAAO,GAAGC,GAAG,CAAC,CAAA,CAAA,CAAGE,GAAG,CAAC,GAAA;AAC9C,CAAA,CAAA,CACCI,QAAQ,EAAA;AAEJ,MAAME,gBAAAA,GAAmBC,iBAAAA,CAAkBhB,sBAAAA,EAAwB;IAAEiB,MAAAA,EAAQ;AAAM,CAAA;AACnF,MAAMC,qBAAAA,GAAwBF,iBAAAA,CAAkBF,2BAAAA,EAA6B;IAClFG,MAAAA,EAAQ;AACV,CAAA;;;;"}
@@ -26,7 +26,7 @@ var admin = {
26
26
  }
27
27
  }
28
28
  };
29
- } catch (err) {
29
+ } catch {
30
30
  return {
31
31
  data: {
32
32
  isEE: false,
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\n\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n const isAILicense = strapi.ee.features.isEnabled('cms-ai');\n const isAIConfigured = strapi.config.get('admin.ai', { enabled: isAILicense });\n\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n planPriceId: strapi.ee.planPriceId,\n ai: {\n enabled: isAILicense && isAIConfigured.enabled,\n },\n },\n };\n } catch (err) {\n return { data: { isEE: false, features: [], flags, ai: { enabled: false } } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","isAILicense","ee","features","isEnabled","isAIConfigured","enabled","data","isEE","EE","isTrial","list","type","planPriceId","ai","err","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\n\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n const isAILicense = strapi.ee.features.isEnabled('cms-ai');\n const isAIConfigured = strapi.config.get('admin.ai', { enabled: isAILicense });\n\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n planPriceId: strapi.ee.planPriceId,\n ai: {\n enabled: isAILicense && isAIConfigured.enabled,\n },\n },\n };\n } catch {\n return { data: { isEE: false, features: [], flags, ai: { enabled: false } } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","isAILicense","ee","features","isEnabled","isAIConfigured","enabled","data","isEE","EE","isTrial","list","type","planPriceId","ai","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":"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"}
@@ -24,7 +24,7 @@ var admin = {
24
24
  }
25
25
  }
26
26
  };
27
- } catch (err) {
27
+ } catch {
28
28
  return {
29
29
  data: {
30
30
  isEE: false,
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\n\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n const isAILicense = strapi.ee.features.isEnabled('cms-ai');\n const isAIConfigured = strapi.config.get('admin.ai', { enabled: isAILicense });\n\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n planPriceId: strapi.ee.planPriceId,\n ai: {\n enabled: isAILicense && isAIConfigured.enabled,\n },\n },\n };\n } catch (err) {\n return { data: { isEE: false, features: [], flags, ai: { enabled: false } } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","isAILicense","ee","features","isEnabled","isAIConfigured","enabled","data","isEE","EE","isTrial","list","type","planPriceId","ai","err","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":"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"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../../../../../ee/server/src/controllers/admin.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { env } from '@strapi/utils';\n\nimport { getService } from '../utils';\n\nexport default {\n // NOTE: Overrides CE admin controller\n async getProjectType() {\n const flags = strapi.config.get('admin.flags', {});\n const isAILicense = strapi.ee.features.isEnabled('cms-ai');\n const isAIConfigured = strapi.config.get('admin.ai', { enabled: isAILicense });\n\n try {\n return {\n data: {\n isEE: strapi.EE,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list(),\n flags,\n type: strapi.ee.type,\n planPriceId: strapi.ee.planPriceId,\n ai: {\n enabled: isAILicense && isAIConfigured.enabled,\n },\n },\n };\n } catch {\n return { data: { isEE: false, features: [], flags, ai: { enabled: false } } };\n }\n },\n\n async licenseLimitInformation() {\n const permittedSeats = strapi.ee.seats;\n\n let shouldNotify = false;\n let licenseLimitStatus = null;\n let enforcementUserCount;\n\n const currentActiveUserCount = await getService('user').getCurrentActiveUserCount();\n\n const eeDisabledUsers = await getService('seat-enforcement').getDisabledUserList();\n\n if (eeDisabledUsers) {\n enforcementUserCount = currentActiveUserCount + eeDisabledUsers.length;\n } else {\n enforcementUserCount = currentActiveUserCount;\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount > permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'OVER_LIMIT';\n }\n\n if (!isNil(permittedSeats) && enforcementUserCount === permittedSeats) {\n shouldNotify = true;\n licenseLimitStatus = 'AT_LIMIT';\n }\n\n const data = {\n enforcementUserCount,\n currentActiveUserCount,\n permittedSeats,\n shouldNotify,\n shouldStopCreate: isNil(permittedSeats) ? false : currentActiveUserCount >= permittedSeats,\n licenseLimitStatus,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n type: strapi.ee.type,\n isTrial: strapi.ee.isTrial,\n features: strapi.ee.features.list() ?? [],\n };\n\n return { data };\n },\n};\n"],"names":["getProjectType","flags","strapi","config","get","isAILicense","ee","features","isEnabled","isAIConfigured","enabled","data","isEE","EE","isTrial","list","type","planPriceId","ai","licenseLimitInformation","permittedSeats","seats","shouldNotify","licenseLimitStatus","enforcementUserCount","currentActiveUserCount","getService","getCurrentActiveUserCount","eeDisabledUsers","getDisabledUserList","length","isNil","shouldStopCreate","isHostedOnStrapiCloud","env"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var destroy$1 = require('../../../server/src/destroy.js');
4
4
 
5
- var destroy = (async ({ strapi })=>{
5
+ var destroy = (async ()=>{
6
6
  await destroy$1();
7
7
  });
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sources":["../../../../../ee/server/src/destroy.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport executeCEDestroy from '../../../server/src/destroy';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n await executeCEDestroy();\n};\n"],"names":["strapi","executeCEDestroy"],"mappings":";;;;AAGA,cAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;IACvD,MAAMC,SAAAA,EAAAA;AACR,CAAA;;;;"}
1
+ {"version":3,"file":"destroy.js","sources":["../../../../../ee/server/src/destroy.ts"],"sourcesContent":["import executeCEDestroy from '../../../server/src/destroy';\n\nexport default async () => {\n await executeCEDestroy();\n};\n"],"names":["executeCEDestroy"],"mappings":";;;;AAEA,cAAe,CAAA,UAAA;IACb,MAAMA,SAAAA,EAAAA;AACR,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  import destroy$1 from '../../../server/src/destroy.mjs';
2
2
 
3
- var destroy = (async ({ strapi })=>{
3
+ var destroy = (async ()=>{
4
4
  await destroy$1();
5
5
  });
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.mjs","sources":["../../../../../ee/server/src/destroy.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport executeCEDestroy from '../../../server/src/destroy';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n await executeCEDestroy();\n};\n"],"names":["strapi","executeCEDestroy"],"mappings":";;AAGA,cAAe,CAAA,OAAO,EAAEA,MAAM,EAA2B,GAAA;IACvD,MAAMC,SAAAA,EAAAA;AACR,CAAA;;;;"}
1
+ {"version":3,"file":"destroy.mjs","sources":["../../../../../ee/server/src/destroy.ts"],"sourcesContent":["import executeCEDestroy from '../../../server/src/destroy';\n\nexport default async () => {\n await executeCEDestroy();\n};\n"],"names":["executeCEDestroy"],"mappings":";;AAEA,cAAe,CAAA,UAAA;IACb,MAAMA,SAAAA,EAAAA;AACR,CAAA;;;;"}
@@ -60,9 +60,7 @@ const getAdminEE = ()=>{
60
60
  if (isAuditLogsEnabled) {
61
61
  strapi1.get('audit-logs-lifecycle').destroy();
62
62
  }
63
- await eeAdmin.destroy({
64
- strapi: strapi1
65
- });
63
+ await eeAdmin.destroy();
66
64
  }
67
65
  };
68
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport type { Core } from '@strapi/types';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy({ strapi });\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,iBAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,kBAAAA,OAAAA;AACAC,qBAAAA,OAAAA;AACAC,gBAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,kCAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,0CAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnC,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;YACA,MAAMH,OAAAA,CAAQG,OAAO,CAAC;gBAAEQ,MAAAA,EAAAA;AAAO,aAAA,CAAA;AACjC,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,iBAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,kBAAAA,OAAAA;AACAC,qBAAAA,OAAAA;AACAC,gBAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,kCAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,0CAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnC,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;AACA,YAAA,MAAMH,QAAQG,OAAO,EAAA;AACvB,QAAA;AACF,KAAA;AACF;;;;"}
@@ -58,9 +58,7 @@ const getAdminEE = ()=>{
58
58
  if (isAuditLogsEnabled) {
59
59
  strapi1.get('audit-logs-lifecycle').destroy();
60
60
  }
61
- await eeAdmin.destroy({
62
- strapi: strapi1
63
- });
61
+ await eeAdmin.destroy();
64
62
  }
65
63
  };
66
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\nimport type { Core } from '@strapi/types';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy({ strapi });\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,QAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,QAAAA,QAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,sBAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,+BAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnC,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;YACA,MAAMH,OAAAA,CAAQG,OAAO,CAAC;gBAAEQ,MAAAA,EAAAA;AAAO,aAAA,CAAA;AACjC,QAAA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../ee/server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport register from './register';\nimport bootstrap from './bootstrap';\nimport destroy from './destroy';\nimport adminContentTypes from './content-types';\nimport services from './services';\nimport controllers from './controllers';\nimport routes from './routes';\nimport auditLogsRoutes from './audit-logs/routes/audit-logs';\nimport auditLogsController from './audit-logs/controllers/audit-logs';\nimport { createAuditLogsService } from './audit-logs/services/audit-logs';\nimport { createAuditLogsLifecycleService } from './audit-logs/services/lifecycles';\nimport { auditLog } from './audit-logs/content-types/audit-log';\n\nconst getAdminEE = () => {\n const eeAdmin = {\n register,\n bootstrap,\n destroy,\n contentTypes: {\n // Always register the audit-log content type to prevent data loss\n 'audit-log': auditLog,\n ...adminContentTypes,\n },\n services,\n controllers,\n routes,\n };\n\n const isAuditLogsEnabled =\n strapi.config.get('admin.auditLogs.enabled', true) &&\n strapi.ee.features.isEnabled('audit-logs');\n return {\n ...eeAdmin,\n controllers: {\n ...eeAdmin.controllers,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsController } : {}),\n },\n routes: {\n ...eeAdmin.routes,\n ...(isAuditLogsEnabled ? { 'audit-logs': auditLogsRoutes } : {}),\n },\n async register({ strapi }: { strapi: Core.Strapi }) {\n // Run the default registration\n await eeAdmin.register({ strapi });\n\n if (isAuditLogsEnabled) {\n // Register an internal audit logs service\n strapi.add('audit-logs', createAuditLogsService(strapi));\n // Register an internal audit logs lifecycle service\n const auditLogsLifecycle = createAuditLogsLifecycleService(strapi);\n strapi.add('audit-logs-lifecycle', auditLogsLifecycle);\n\n await auditLogsLifecycle.register();\n }\n },\n async destroy({ strapi }: { strapi: Core.Strapi }) {\n if (isAuditLogsEnabled) {\n strapi.get('audit-logs-lifecycle').destroy();\n }\n await eeAdmin.destroy();\n },\n };\n};\n\nexport default getAdminEE;\n"],"names":["getAdminEE","eeAdmin","register","bootstrap","destroy","contentTypes","auditLog","adminContentTypes","services","controllers","routes","isAuditLogsEnabled","strapi","config","get","ee","features","isEnabled","auditLogsController","auditLogsRoutes","add","createAuditLogsService","auditLogsLifecycle","createAuditLogsLifecycleService"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAMC,OAAAA,GAAU;AACdC,QAAAA,QAAAA;AACAC,QAAAA,SAAAA;AACAC,QAAAA,OAAAA;QACAC,YAAAA,EAAc;;YAEZ,WAAA,EAAaC,QAAAA;AACb,YAAA,GAAGC;AACL,SAAA;AACAC,QAAAA,QAAAA;AACAC,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AAEA,IAAA,MAAMC,kBAAAA,GACJC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,IAAA,CAAA,IAC7CF,MAAAA,CAAOG,EAAE,CAACC,QAAQ,CAACC,SAAS,CAAC,YAAA,CAAA;IAC/B,OAAO;AACL,QAAA,GAAGhB,OAAO;QACVQ,WAAAA,EAAa;AACX,YAAA,GAAGR,QAAQQ,WAAW;AACtB,YAAA,GAAIE,kBAAAA,GAAqB;gBAAE,YAAA,EAAcO;AAAoB,aAAA,GAAI;AACnE,SAAA;QACAR,MAAAA,EAAQ;AACN,YAAA,GAAGT,QAAQS,MAAM;AACjB,YAAA,GAAIC,kBAAAA,GAAqB;gBAAE,YAAA,EAAcQ;AAAgB,aAAA,GAAI;AAC/D,SAAA;AACA,QAAA,MAAMjB,QAAAA,CAAAA,CAAS,EAAEU,MAAAA,EAAAA,OAAM,EAA2B,EAAA;;YAEhD,MAAMX,OAAAA,CAAQC,QAAQ,CAAC;gBAAEU,MAAAA,EAAAA;AAAO,aAAA,CAAA;AAEhC,YAAA,IAAID,kBAAAA,EAAoB;;gBAEtBC,OAAAA,CAAOQ,GAAG,CAAC,YAAA,EAAcC,sBAAAA,CAAuBT,OAAAA,CAAAA,CAAAA;;AAEhD,gBAAA,MAAMU,qBAAqBC,+BAAAA,CAAgCX,OAAAA,CAAAA;gBAC3DA,OAAAA,CAAOQ,GAAG,CAAC,sBAAA,EAAwBE,kBAAAA,CAAAA;AAEnC,gBAAA,MAAMA,mBAAmBpB,QAAQ,EAAA;AACnC,YAAA;AACF,QAAA,CAAA;AACA,QAAA,MAAME,OAAAA,CAAAA,CAAQ,EAAEQ,MAAAA,EAAAA,OAAM,EAA2B,EAAA;AAC/C,YAAA,IAAID,kBAAAA,EAAoB;gBACtBC,OAAAA,CAAOE,GAAG,CAAC,sBAAA,CAAA,CAAwBV,OAAO,EAAA;AAC5C,YAAA;AACA,YAAA,MAAMH,QAAQG,OAAO,EAAA;AACvB,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../ee/server/src/services/index.ts"],"sourcesContent":["import auth from './auth';\nimport passport from './passport';\nimport role from './role';\nimport user from './user';\nimport metrics from './metrics';\nimport seatEnforcement from './seat-enforcement';\nimport persistTables from './persist-tables';\n\nexport default {\n auth,\n passport,\n role,\n user,\n metrics,\n 'seat-enforcement': seatEnforcement,\n 'persist-tables': persistTables,\n};\n"],"names":["auth","passport","role","user","metrics","seatEnforcement","persistTables"],"mappings":";;;;;;;;;;AAQA,eAAe;AACbA,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,OAAAA;IACA,kBAAA,EAAoBC,eAAAA;IACpB,gBAAA,EAAkBC;AACpB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../ee/server/src/services/index.ts"],"sourcesContent":["import auth from './auth';\nimport passport from './passport';\nimport role from './role';\nimport user from './user';\nimport metrics from './metrics';\nimport seatEnforcement from './seat-enforcement';\nimport persistTablesService from './persist-tables';\n\nexport default {\n auth,\n passport,\n role,\n user,\n metrics,\n 'seat-enforcement': seatEnforcement,\n 'persist-tables': persistTablesService,\n};\n"],"names":["auth","passport","role","user","metrics","seatEnforcement","persistTablesService"],"mappings":";;;;;;;;;;AAQA,eAAe;AACbA,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,OAAAA;IACA,kBAAA,EAAoBC,eAAAA;IACpB,gBAAA,EAAkBC;AACpB,CAAA;;;;"}
@@ -4,7 +4,7 @@ import role from './role.mjs';
4
4
  import user from './user.mjs';
5
5
  import metrics from './metrics.mjs';
6
6
  import seatEnforcement from './seat-enforcement.mjs';
7
- import persistTables from './persist-tables.mjs';
7
+ import persistTablesService from './persist-tables.mjs';
8
8
 
9
9
  var services = {
10
10
  auth,
@@ -13,7 +13,7 @@ var services = {
13
13
  user,
14
14
  metrics,
15
15
  'seat-enforcement': seatEnforcement,
16
- 'persist-tables': persistTables
16
+ 'persist-tables': persistTablesService
17
17
  };
18
18
 
19
19
  export { services as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../ee/server/src/services/index.ts"],"sourcesContent":["import auth from './auth';\nimport passport from './passport';\nimport role from './role';\nimport user from './user';\nimport metrics from './metrics';\nimport seatEnforcement from './seat-enforcement';\nimport persistTables from './persist-tables';\n\nexport default {\n auth,\n passport,\n role,\n user,\n metrics,\n 'seat-enforcement': seatEnforcement,\n 'persist-tables': persistTables,\n};\n"],"names":["auth","passport","role","user","metrics","seatEnforcement","persistTables"],"mappings":";;;;;;;;AAQA,eAAe;AACbA,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,OAAAA;IACA,kBAAA,EAAoBC,eAAAA;IACpB,gBAAA,EAAkBC;AACpB,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../ee/server/src/services/index.ts"],"sourcesContent":["import auth from './auth';\nimport passport from './passport';\nimport role from './role';\nimport user from './user';\nimport metrics from './metrics';\nimport seatEnforcement from './seat-enforcement';\nimport persistTablesService from './persist-tables';\n\nexport default {\n auth,\n passport,\n role,\n user,\n metrics,\n 'seat-enforcement': seatEnforcement,\n 'persist-tables': persistTablesService,\n};\n"],"names":["auth","passport","role","user","metrics","seatEnforcement","persistTablesService"],"mappings":";;;;;;;;AAQA,eAAe;AACbA,IAAAA,IAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,OAAAA;IACA,kBAAA,EAAoBC,eAAAA;IACpB,gBAAA,EAAkBC;AACpB,CAAA;;;;"}
@@ -112,14 +112,14 @@ var fp = require('lodash/fp');
112
112
  strapi
113
113
  }, tables);
114
114
  };
115
- var persistTables$1 = {
115
+ var persistTablesService = {
116
116
  persistTablesWithPrefix,
117
117
  removePersistedTablesWithSuffix,
118
118
  persistTables,
119
119
  findTables
120
120
  };
121
121
 
122
- exports.default = persistTables$1;
122
+ exports.default = persistTablesService;
123
123
  exports.findTables = findTables;
124
124
  exports.persistTables = persistTables;
125
125
  exports.persistTablesWithPrefix = persistTablesWithPrefix;
@@ -1 +1 @@
1
- {"version":3,"file":"persist-tables.js","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
1
+ {"version":3,"file":"persist-tables.js","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
@@ -103,17 +103,17 @@ import { differenceWith, isEqual } from 'lodash/fp';
103
103
  };
104
104
  /**
105
105
  * Add tables to the reserved tables in core store
106
- */ const persistTables$1 = async (tables)=>{
106
+ */ const persistTables = async (tables)=>{
107
107
  await addPersistTables({
108
108
  strapi
109
109
  }, tables);
110
110
  };
111
- var persistTables = {
111
+ var persistTablesService = {
112
112
  persistTablesWithPrefix,
113
113
  removePersistedTablesWithSuffix,
114
- persistTables: persistTables$1,
114
+ persistTables,
115
115
  findTables
116
116
  };
117
117
 
118
- export { persistTables as default, findTables, persistTables$1 as persistTables, persistTablesWithPrefix, removePersistedTablesWithSuffix };
118
+ export { persistTablesService as default, findTables, persistTables, persistTablesWithPrefix, removePersistedTablesWithSuffix };
119
119
  //# sourceMappingURL=persist-tables.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"persist-tables.mjs","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
1
+ {"version":3,"file":"persist-tables.mjs","sources":["../../../../../../ee/server/src/services/persist-tables.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { differenceWith, isEqual } from 'lodash/fp';\n\nexport interface PersistedTable {\n name: string;\n dependsOn?: Array<{ name: string }>;\n}\n\n/**\n * Transform table name to the object format\n */\nconst transformTableName = (table: string | PersistedTable) => {\n if (typeof table === 'string') {\n return { name: table };\n }\n return table;\n};\n\n/**\n * Finds all tables in the database matching the regular expression\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\nexport async function findTables({ strapi }: { strapi: Core.Strapi }, regex: any) {\n const tables = await strapi.db.dialect.schemaInspector.getTables();\n return tables.filter((tableName: string) => regex.test(tableName));\n}\n\n/**\n * Add tables name to the reserved tables in core store\n */\nasync function addPersistTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n const persistedTables = await getPersistedTables({ strapi });\n const tables = tableNames.map(transformTableName);\n\n // Get new tables to be persisted, remove tables if they already were persisted\n const notPersistedTableNames = differenceWith(isEqual, tables, persistedTables);\n // Remove tables that are going to be changed\n const tablesToPersist = differenceWith(\n (t1: any, t2: any) => t1.name === t2.name,\n persistedTables,\n notPersistedTableNames\n );\n\n if (!notPersistedTableNames.length) {\n return;\n }\n\n // @ts-expect-error lodash types\n tablesToPersist.push(...notPersistedTableNames);\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tablesToPersist,\n });\n}\n\n/**\n * Get all reserved table names from the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {RegExp} regex\n * @returns {Promise<string[]>}\n */\n\nasync function getPersistedTables({ strapi }: { strapi: Core.Strapi }) {\n const persistedTables: any = await strapi.store.get({\n type: 'core',\n key: 'persisted_tables',\n });\n\n return (persistedTables || []).map(transformTableName);\n}\n\n/**\n * Set all reserved table names in the core store\n * @param {Object} ctx\n * @param {Strapi} ctx.strapi\n * @param {Array<string|{ table: string; dependsOn?: Array<{ table: string;}> }>} tableNames\n * @returns {Promise<void>}\n */\nasync function setPersistedTables(\n { strapi }: { strapi: Core.Strapi },\n tableNames: Array<string | PersistedTable>\n) {\n await strapi.store.set({\n type: 'core',\n key: 'persisted_tables',\n value: tableNames,\n });\n}\n/**\n * Add all table names that start with a prefix to the reserved tables in\n * core store\n * @param {string} tableNamePrefix\n * @return {Promise<void>}\n */\n\nexport const persistTablesWithPrefix = async (tableNamePrefix: string) => {\n const tableNameRegex = new RegExp(`^${tableNamePrefix}.*`);\n const tableNames = await findTables({ strapi }, tableNameRegex);\n\n await addPersistTables({ strapi }, tableNames);\n};\n\n/**\n * Remove all table names that end with a suffix from the reserved tables in core store\n * @param {string} tableNameSuffix\n * @return {Promise<void>}\n */\nexport const removePersistedTablesWithSuffix = async (tableNameSuffix: string) => {\n const tableNameRegex = new RegExp(`.*${tableNameSuffix}$`);\n const persistedTables = await getPersistedTables({ strapi });\n\n const filteredPersistedTables = persistedTables.filter((table: any) => {\n return !tableNameRegex.test(table.name);\n });\n\n if (filteredPersistedTables.length === persistedTables.length) {\n return;\n }\n\n await setPersistedTables({ strapi }, filteredPersistedTables);\n};\n\n/**\n * Add tables to the reserved tables in core store\n */\nexport const persistTables = async (tables: Array<string | PersistedTable>) => {\n await addPersistTables({ strapi }, tables);\n};\n\nexport default {\n persistTablesWithPrefix,\n removePersistedTablesWithSuffix,\n persistTables,\n findTables,\n};\n"],"names":["transformTableName","table","name","findTables","strapi","regex","tables","db","dialect","schemaInspector","getTables","filter","tableName","test","addPersistTables","tableNames","persistedTables","getPersistedTables","map","notPersistedTableNames","differenceWith","isEqual","tablesToPersist","t1","t2","length","push","store","set","type","key","value","get","setPersistedTables","persistTablesWithPrefix","tableNamePrefix","tableNameRegex","RegExp","removePersistedTablesWithSuffix","tableNameSuffix","filteredPersistedTables","persistTables"],"mappings":"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"}
@@ -17,7 +17,7 @@ var ai = {
17
17
  ctx.body = {
18
18
  data: aiToken
19
19
  };
20
- } catch (error) {
20
+ } catch {
21
21
  return ctx.internalServerError('AI token request failed. Check server logs for details.');
22
22
  }
23
23
  },
@@ -28,7 +28,7 @@ var ai = {
28
28
  try {
29
29
  const usage = await strapi.ai.admin.getAiUsage();
30
30
  ctx.body = usage;
31
- } catch (error) {
31
+ } catch {
32
32
  return ctx.internalServerError('AI usage data request failed. Check server logs for details.');
33
33
  }
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sources":["../../../../../../server/src/ai/controllers/ai.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { GetAiFeatureConfig, GetAiToken } from '../../../../shared/contracts/ai';\n\nexport default {\n async getAiToken(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n // `admin::isAuthenticatedAdmin` only checks `ctx.state.isAuthenticated`, not `ctx.state.user`.\n // With the current admin JWT strategy, a successful auth run always sets both; this handler\n // still requires `user` because `getAiToken()` needs an admin identity. Keeps us safe if the\n // strategy/policy contract ever diverges or this action is invoked outside the normal pipeline.\n if (!ctx.state.user) {\n return ctx.unauthorized('Authentication required');\n }\n\n const aiToken = await strapi.ai.admin.getAiToken();\n\n ctx.body = {\n data: aiToken,\n } satisfies GetAiToken.Response;\n } catch (error) {\n return ctx.internalServerError('AI token request failed. Check server logs for details.');\n }\n },\n\n async getAiUsage(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n const usage = await strapi.ai.admin.getAiUsage();\n ctx.body = usage;\n } catch (error) {\n return ctx.internalServerError(\n 'AI usage data request failed. Check server logs for details.'\n );\n }\n },\n\n async getAiFeatureConfig(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n const aiFeatureConfig = await strapi.ai.admin.getAiFeatureConfig();\n\n ctx.body = {\n data: aiFeatureConfig,\n } satisfies GetAiFeatureConfig.Response;\n } catch (error) {\n strapi.log.error('AI feature config request failed', error);\n return ctx.internalServerError(\n 'AI feature config request failed. Check server logs for details.'\n );\n }\n },\n};\n"],"names":["getAiToken","ctx","strapi","ai","admin","isEnabled","notFound","state","user","unauthorized","aiToken","body","data","error","internalServerError","getAiUsage","usage","getAiFeatureConfig","aiFeatureConfig","log"],"mappings":";;AAGA,SAAe;AACb,IAAA,MAAMA,YAAWC,GAAY,EAAA;AAC3B,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;;;;;AAKF,YAAA,IAAI,CAACL,GAAAA,CAAIM,KAAK,CAACC,IAAI,EAAE;gBACnB,OAAOP,GAAAA,CAAIQ,YAAY,CAAC,yBAAA,CAAA;AAC1B,YAAA;AAEA,YAAA,MAAMC,UAAU,MAAMR,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACJ,UAAU,EAAA;AAEhDC,YAAAA,GAAAA,CAAIU,IAAI,GAAG;gBACTC,IAAAA,EAAMF;AACR,aAAA;AACF,QAAA,CAAA,CAAE,OAAOG,KAAAA,EAAO;YACd,OAAOZ,GAAAA,CAAIa,mBAAmB,CAAC,yDAAA,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAWd,GAAY,EAAA;AAC3B,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;AACF,YAAA,MAAMU,QAAQ,MAAMd,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACW,UAAU,EAAA;AAC9Cd,YAAAA,GAAAA,CAAIU,IAAI,GAAGK,KAAAA;AACb,QAAA,CAAA,CAAE,OAAOH,KAAAA,EAAO;YACd,OAAOZ,GAAAA,CAAIa,mBAAmB,CAC5B,8DAAA,CAAA;AAEJ,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMG,oBAAmBhB,GAAY,EAAA;AACnC,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;AACF,YAAA,MAAMY,kBAAkB,MAAMhB,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACa,kBAAkB,EAAA;AAEhEhB,YAAAA,GAAAA,CAAIU,IAAI,GAAG;gBACTC,IAAAA,EAAMM;AACR,aAAA;AACF,QAAA,CAAA,CAAE,OAAOL,KAAAA,EAAO;AACdX,YAAAA,MAAAA,CAAOiB,GAAG,CAACN,KAAK,CAAC,kCAAA,EAAoCA,KAAAA,CAAAA;YACrD,OAAOZ,GAAAA,CAAIa,mBAAmB,CAC5B,kEAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"ai.js","sources":["../../../../../../server/src/ai/controllers/ai.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { GetAiFeatureConfig, GetAiToken } from '../../../../shared/contracts/ai';\n\nexport default {\n async getAiToken(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n // `admin::isAuthenticatedAdmin` only checks `ctx.state.isAuthenticated`, not `ctx.state.user`.\n // With the current admin JWT strategy, a successful auth run always sets both; this handler\n // still requires `user` because `getAiToken()` needs an admin identity. Keeps us safe if the\n // strategy/policy contract ever diverges or this action is invoked outside the normal pipeline.\n if (!ctx.state.user) {\n return ctx.unauthorized('Authentication required');\n }\n\n const aiToken = await strapi.ai.admin.getAiToken();\n\n ctx.body = {\n data: aiToken,\n } satisfies GetAiToken.Response;\n } catch {\n return ctx.internalServerError('AI token request failed. Check server logs for details.');\n }\n },\n\n async getAiUsage(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n const usage = await strapi.ai.admin.getAiUsage();\n ctx.body = usage;\n } catch {\n return ctx.internalServerError(\n 'AI usage data request failed. Check server logs for details.'\n );\n }\n },\n\n async getAiFeatureConfig(ctx: Context) {\n if (strapi.ai.admin.isEnabled() === false) {\n return ctx.notFound();\n }\n\n try {\n const aiFeatureConfig = await strapi.ai.admin.getAiFeatureConfig();\n\n ctx.body = {\n data: aiFeatureConfig,\n } satisfies GetAiFeatureConfig.Response;\n } catch (error) {\n strapi.log.error('AI feature config request failed', error);\n return ctx.internalServerError(\n 'AI feature config request failed. Check server logs for details.'\n );\n }\n },\n};\n"],"names":["getAiToken","ctx","strapi","ai","admin","isEnabled","notFound","state","user","unauthorized","aiToken","body","data","internalServerError","getAiUsage","usage","getAiFeatureConfig","aiFeatureConfig","error","log"],"mappings":";;AAGA,SAAe;AACb,IAAA,MAAMA,YAAWC,GAAY,EAAA;AAC3B,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;;;;;AAKF,YAAA,IAAI,CAACL,GAAAA,CAAIM,KAAK,CAACC,IAAI,EAAE;gBACnB,OAAOP,GAAAA,CAAIQ,YAAY,CAAC,yBAAA,CAAA;AAC1B,YAAA;AAEA,YAAA,MAAMC,UAAU,MAAMR,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACJ,UAAU,EAAA;AAEhDC,YAAAA,GAAAA,CAAIU,IAAI,GAAG;gBACTC,IAAAA,EAAMF;AACR,aAAA;AACF,QAAA,CAAA,CAAE,OAAM;YACN,OAAOT,GAAAA,CAAIY,mBAAmB,CAAC,yDAAA,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAWb,GAAY,EAAA;AAC3B,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;AACF,YAAA,MAAMS,QAAQ,MAAMb,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACU,UAAU,EAAA;AAC9Cb,YAAAA,GAAAA,CAAIU,IAAI,GAAGI,KAAAA;AACb,QAAA,CAAA,CAAE,OAAM;YACN,OAAOd,GAAAA,CAAIY,mBAAmB,CAC5B,8DAAA,CAAA;AAEJ,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMG,oBAAmBf,GAAY,EAAA;AACnC,QAAA,IAAIC,OAAOC,EAAE,CAACC,KAAK,CAACC,SAAS,OAAO,KAAA,EAAO;AACzC,YAAA,OAAOJ,IAAIK,QAAQ,EAAA;AACrB,QAAA;QAEA,IAAI;AACF,YAAA,MAAMW,kBAAkB,MAAMf,MAAAA,CAAOC,EAAE,CAACC,KAAK,CAACY,kBAAkB,EAAA;AAEhEf,YAAAA,GAAAA,CAAIU,IAAI,GAAG;gBACTC,IAAAA,EAAMK;AACR,aAAA;AACF,QAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;AACdhB,YAAAA,MAAAA,CAAOiB,GAAG,CAACD,KAAK,CAAC,kCAAA,EAAoCA,KAAAA,CAAAA;YACrD,OAAOjB,GAAAA,CAAIY,mBAAmB,CAC5B,kEAAA,CAAA;AAEJ,QAAA;AACF,IAAA;AACF,CAAA;;;;"}
@@ -15,7 +15,7 @@ var ai = {
15
15
  ctx.body = {
16
16
  data: aiToken
17
17
  };
18
- } catch (error) {
18
+ } catch {
19
19
  return ctx.internalServerError('AI token request failed. Check server logs for details.');
20
20
  }
21
21
  },
@@ -26,7 +26,7 @@ var ai = {
26
26
  try {
27
27
  const usage = await strapi.ai.admin.getAiUsage();
28
28
  ctx.body = usage;
29
- } catch (error) {
29
+ } catch {
30
30
  return ctx.internalServerError('AI usage data request failed. Check server logs for details.');
31
31
  }
32
32
  },