@strapi/content-manager 5.59.0 → 5.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/admin/constants/customOrder.js +14 -0
  2. package/dist/admin/constants/customOrder.js.map +1 -0
  3. package/dist/admin/constants/customOrder.mjs +10 -0
  4. package/dist/admin/constants/customOrder.mjs.map +1 -0
  5. package/dist/admin/history/components/VersionInputRenderer.js +2 -1
  6. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  7. package/dist/admin/history/components/VersionInputRenderer.mjs +2 -1
  8. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  9. package/dist/admin/hooks/useDocument.js +22 -11
  10. package/dist/admin/hooks/useDocument.js.map +1 -1
  11. package/dist/admin/hooks/useDocument.mjs +22 -11
  12. package/dist/admin/hooks/useDocument.mjs.map +1 -1
  13. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  14. package/dist/admin/hooks/useDocumentLayout.mjs.map +1 -1
  15. package/dist/admin/hooks/useHasBeenNearViewport.js +70 -0
  16. package/dist/admin/hooks/useHasBeenNearViewport.js.map +1 -0
  17. package/dist/admin/hooks/useHasBeenNearViewport.mjs +46 -0
  18. package/dist/admin/hooks/useHasBeenNearViewport.mjs.map +1 -0
  19. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +102 -32
  20. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +104 -35
  22. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +20 -17
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +20 -17
  26. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +15 -1
  28. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +17 -3
  30. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js +21 -0
  32. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs +22 -1
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +1 -0
  36. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +1 -0
  38. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +1 -0
  40. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +1 -0
  42. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +2 -0
  44. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +2 -0
  46. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +4 -7
  48. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +4 -7
  50. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +46 -10
  52. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +47 -11
  54. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormLayout.js +201 -50
  56. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormLayout.mjs +202 -52
  58. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -1
  60. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -1
  62. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  63. package/dist/admin/pages/ListConfiguration/components/Settings.js +31 -2
  64. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  65. package/dist/admin/pages/ListConfiguration/components/Settings.mjs +31 -2
  66. package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
  67. package/dist/admin/pages/ListView/ListViewPage.js +196 -132
  68. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  69. package/dist/admin/pages/ListView/ListViewPage.mjs +196 -132
  70. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  71. package/dist/admin/pages/ListView/components/CustomOrder.js +571 -0
  72. package/dist/admin/pages/ListView/components/CustomOrder.js.map +1 -0
  73. package/dist/admin/pages/ListView/components/CustomOrder.mjs +546 -0
  74. package/dist/admin/pages/ListView/components/CustomOrder.mjs.map +1 -0
  75. package/dist/admin/pages/ListView/components/TableActions.js +4 -1
  76. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  77. package/dist/admin/pages/ListView/components/TableActions.mjs +4 -1
  78. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  79. package/dist/admin/preview/components/PreviewSidePanel.js +2 -1
  80. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  81. package/dist/admin/preview/components/PreviewSidePanel.mjs +2 -1
  82. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  83. package/dist/admin/preview/utils/getPreviewUrlStatus.js +17 -0
  84. package/dist/admin/preview/utils/getPreviewUrlStatus.js.map +1 -0
  85. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs +15 -0
  86. package/dist/admin/preview/utils/getPreviewUrlStatus.mjs.map +1 -0
  87. package/dist/admin/services/documents.js +22 -1
  88. package/dist/admin/services/documents.js.map +1 -1
  89. package/dist/admin/services/documents.mjs +21 -2
  90. package/dist/admin/services/documents.mjs.map +1 -1
  91. package/dist/admin/src/constants/customOrder.d.ts +8 -0
  92. package/dist/admin/src/exports.d.ts +1 -1
  93. package/dist/admin/src/history/components/VersionInputRenderer.d.ts +3 -1
  94. package/dist/admin/src/hooks/useDocument.d.ts +4 -0
  95. package/dist/admin/src/hooks/useDocumentLayout.d.ts +6 -2
  96. package/dist/admin/src/hooks/useHasBeenNearViewport.d.ts +13 -0
  97. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +13 -1
  98. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +11 -1
  99. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -0
  100. package/dist/admin/src/pages/ListView/components/CustomOrder.d.ts +72 -0
  101. package/dist/admin/src/preview/utils/getPreviewUrlStatus.d.ts +6 -0
  102. package/dist/admin/src/services/documents.d.ts +10 -2
  103. package/dist/admin/translations/en.json.js +9 -0
  104. package/dist/admin/translations/en.json.js.map +1 -1
  105. package/dist/admin/translations/en.json.mjs +9 -0
  106. package/dist/admin/translations/en.json.mjs.map +1 -1
  107. package/dist/server/audit-logs.js +36 -0
  108. package/dist/server/audit-logs.js.map +1 -0
  109. package/dist/server/audit-logs.mjs +33 -0
  110. package/dist/server/audit-logs.mjs.map +1 -0
  111. package/dist/server/bootstrap.js +8 -0
  112. package/dist/server/bootstrap.js.map +1 -1
  113. package/dist/server/bootstrap.mjs +8 -0
  114. package/dist/server/bootstrap.mjs.map +1 -1
  115. package/dist/server/controllers/collection-types.js +8 -0
  116. package/dist/server/controllers/collection-types.js.map +1 -1
  117. package/dist/server/controllers/collection-types.mjs +8 -0
  118. package/dist/server/controllers/collection-types.mjs.map +1 -1
  119. package/dist/server/controllers/content-types.js +15 -0
  120. package/dist/server/controllers/content-types.js.map +1 -1
  121. package/dist/server/controllers/content-types.mjs +16 -1
  122. package/dist/server/controllers/content-types.mjs.map +1 -1
  123. package/dist/server/controllers/index.js +3 -1
  124. package/dist/server/controllers/index.js.map +1 -1
  125. package/dist/server/controllers/index.mjs +2 -0
  126. package/dist/server/controllers/index.mjs.map +1 -1
  127. package/dist/server/controllers/relations.js +53 -17
  128. package/dist/server/controllers/relations.js.map +1 -1
  129. package/dist/server/controllers/relations.mjs +54 -18
  130. package/dist/server/controllers/relations.mjs.map +1 -1
  131. package/dist/server/controllers/single-types.js +10 -1
  132. package/dist/server/controllers/single-types.js.map +1 -1
  133. package/dist/server/controllers/single-types.mjs +10 -1
  134. package/dist/server/controllers/single-types.mjs.map +1 -1
  135. package/dist/server/controllers/validation/model-configuration.js +2 -1
  136. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  137. package/dist/server/controllers/validation/model-configuration.mjs +2 -1
  138. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  139. package/dist/server/custom-order/constants.js +21 -0
  140. package/dist/server/custom-order/constants.js.map +1 -0
  141. package/dist/server/custom-order/constants.mjs +17 -0
  142. package/dist/server/custom-order/constants.mjs.map +1 -0
  143. package/dist/server/custom-order/controllers/custom-order.js +77 -0
  144. package/dist/server/custom-order/controllers/custom-order.js.map +1 -0
  145. package/dist/server/custom-order/controllers/custom-order.mjs +75 -0
  146. package/dist/server/custom-order/controllers/custom-order.mjs.map +1 -0
  147. package/dist/server/custom-order/controllers/index.js +10 -0
  148. package/dist/server/custom-order/controllers/index.js.map +1 -0
  149. package/dist/server/custom-order/controllers/index.mjs +8 -0
  150. package/dist/server/custom-order/controllers/index.mjs.map +1 -0
  151. package/dist/server/custom-order/index.js +71 -0
  152. package/dist/server/custom-order/index.js.map +1 -0
  153. package/dist/server/custom-order/index.mjs +69 -0
  154. package/dist/server/custom-order/index.mjs.map +1 -0
  155. package/dist/server/custom-order/routes/custom-order.js +38 -0
  156. package/dist/server/custom-order/routes/custom-order.js.map +1 -0
  157. package/dist/server/custom-order/routes/custom-order.mjs +36 -0
  158. package/dist/server/custom-order/routes/custom-order.mjs.map +1 -0
  159. package/dist/server/custom-order/routes/index.js +13 -0
  160. package/dist/server/custom-order/routes/index.js.map +1 -0
  161. package/dist/server/custom-order/routes/index.mjs +11 -0
  162. package/dist/server/custom-order/routes/index.mjs.map +1 -0
  163. package/dist/server/custom-order/services/custom-order.js +286 -0
  164. package/dist/server/custom-order/services/custom-order.js.map +1 -0
  165. package/dist/server/custom-order/services/custom-order.mjs +284 -0
  166. package/dist/server/custom-order/services/custom-order.mjs.map +1 -0
  167. package/dist/server/custom-order/services/document-middleware.js +83 -0
  168. package/dist/server/custom-order/services/document-middleware.js.map +1 -0
  169. package/dist/server/custom-order/services/document-middleware.mjs +81 -0
  170. package/dist/server/custom-order/services/document-middleware.mjs.map +1 -0
  171. package/dist/server/custom-order/services/index.js +10 -0
  172. package/dist/server/custom-order/services/index.js.map +1 -0
  173. package/dist/server/custom-order/services/index.mjs +8 -0
  174. package/dist/server/custom-order/services/index.mjs.map +1 -0
  175. package/dist/server/custom-order/services/utils.js +152 -0
  176. package/dist/server/custom-order/services/utils.js.map +1 -0
  177. package/dist/server/custom-order/services/utils.mjs +148 -0
  178. package/dist/server/custom-order/services/utils.mjs.map +1 -0
  179. package/dist/server/custom-order/utils.js +13 -0
  180. package/dist/server/custom-order/utils.js.map +1 -0
  181. package/dist/server/custom-order/utils.mjs +10 -0
  182. package/dist/server/custom-order/utils.mjs.map +1 -0
  183. package/dist/server/history/constants.js +2 -1
  184. package/dist/server/history/constants.js.map +1 -1
  185. package/dist/server/history/constants.mjs +2 -1
  186. package/dist/server/history/constants.mjs.map +1 -1
  187. package/dist/server/history/controllers/history-version.js +6 -2
  188. package/dist/server/history/controllers/history-version.js.map +1 -1
  189. package/dist/server/history/controllers/history-version.mjs +6 -2
  190. package/dist/server/history/controllers/history-version.mjs.map +1 -1
  191. package/dist/server/history/services/history.js +24 -7
  192. package/dist/server/history/services/history.js.map +1 -1
  193. package/dist/server/history/services/history.mjs +25 -8
  194. package/dist/server/history/services/history.mjs.map +1 -1
  195. package/dist/server/history/services/lifecycles.js +2 -16
  196. package/dist/server/history/services/lifecycles.js.map +1 -1
  197. package/dist/server/history/services/lifecycles.mjs +2 -16
  198. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  199. package/dist/server/mcp/schemas/filters-schema.js +10 -2
  200. package/dist/server/mcp/schemas/filters-schema.js.map +1 -1
  201. package/dist/server/mcp/schemas/filters-schema.mjs +10 -2
  202. package/dist/server/mcp/schemas/filters-schema.mjs.map +1 -1
  203. package/dist/server/preview/controllers/validation/preview.js +1 -1
  204. package/dist/server/preview/controllers/validation/preview.js.map +1 -1
  205. package/dist/server/preview/controllers/validation/preview.mjs +2 -2
  206. package/dist/server/preview/controllers/validation/preview.mjs.map +1 -1
  207. package/dist/server/register.js +4 -0
  208. package/dist/server/register.js.map +1 -1
  209. package/dist/server/register.mjs +4 -0
  210. package/dist/server/register.mjs.map +1 -1
  211. package/dist/server/routes/index.js +3 -1
  212. package/dist/server/routes/index.js.map +1 -1
  213. package/dist/server/routes/index.mjs +2 -0
  214. package/dist/server/routes/index.mjs.map +1 -1
  215. package/dist/server/services/content-types.js +2 -2
  216. package/dist/server/services/content-types.js.map +1 -1
  217. package/dist/server/services/content-types.mjs +2 -2
  218. package/dist/server/services/content-types.mjs.map +1 -1
  219. package/dist/server/services/document-manager.js +13 -0
  220. package/dist/server/services/document-manager.js.map +1 -1
  221. package/dist/server/services/document-manager.mjs +14 -1
  222. package/dist/server/services/document-manager.mjs.map +1 -1
  223. package/dist/server/services/document-metadata.js +1 -1
  224. package/dist/server/services/document-metadata.js.map +1 -1
  225. package/dist/server/services/document-metadata.mjs +1 -1
  226. package/dist/server/services/document-metadata.mjs.map +1 -1
  227. package/dist/server/services/index.js +3 -1
  228. package/dist/server/services/index.js.map +1 -1
  229. package/dist/server/services/index.mjs +2 -0
  230. package/dist/server/services/index.mjs.map +1 -1
  231. package/dist/server/services/utils/configuration/settings.js +2 -1
  232. package/dist/server/services/utils/configuration/settings.js.map +1 -1
  233. package/dist/server/services/utils/configuration/settings.mjs +2 -1
  234. package/dist/server/services/utils/configuration/settings.mjs.map +1 -1
  235. package/dist/server/src/audit-logs.d.ts +40 -0
  236. package/dist/server/src/audit-logs.d.ts.map +1 -0
  237. package/dist/server/src/bootstrap.d.ts.map +1 -1
  238. package/dist/server/src/controllers/collection-types.d.ts +1 -1
  239. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  240. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  241. package/dist/server/src/controllers/index.d.ts +21 -3
  242. package/dist/server/src/controllers/index.d.ts.map +1 -1
  243. package/dist/server/src/controllers/relations.d.ts +19 -1
  244. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  245. package/dist/server/src/controllers/single-types.d.ts +1 -1
  246. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  247. package/dist/server/src/custom-order/constants.d.ts +18 -0
  248. package/dist/server/src/custom-order/constants.d.ts.map +1 -0
  249. package/dist/server/src/custom-order/controllers/custom-order.d.ts +8 -0
  250. package/dist/server/src/custom-order/controllers/custom-order.d.ts.map +1 -0
  251. package/dist/server/src/custom-order/controllers/index.d.ts +3 -0
  252. package/dist/server/src/custom-order/controllers/index.d.ts.map +1 -0
  253. package/dist/server/src/custom-order/index.d.ts +8 -0
  254. package/dist/server/src/custom-order/index.d.ts.map +1 -0
  255. package/dist/server/src/custom-order/routes/custom-order.d.ts +4 -0
  256. package/dist/server/src/custom-order/routes/custom-order.d.ts.map +1 -0
  257. package/dist/server/src/custom-order/routes/index.d.ts +10 -0
  258. package/dist/server/src/custom-order/routes/index.d.ts.map +1 -0
  259. package/dist/server/src/custom-order/services/custom-order.d.ts +43 -0
  260. package/dist/server/src/custom-order/services/custom-order.d.ts.map +1 -0
  261. package/dist/server/src/custom-order/services/document-middleware.d.ts +16 -0
  262. package/dist/server/src/custom-order/services/document-middleware.d.ts.map +1 -0
  263. package/dist/server/src/custom-order/services/index.d.ts +24 -0
  264. package/dist/server/src/custom-order/services/index.d.ts.map +1 -0
  265. package/dist/server/src/custom-order/services/utils.d.ts +34 -0
  266. package/dist/server/src/custom-order/services/utils.d.ts.map +1 -0
  267. package/dist/server/src/custom-order/utils.d.ts +6 -0
  268. package/dist/server/src/custom-order/utils.d.ts.map +1 -0
  269. package/dist/server/src/history/constants.d.ts.map +1 -1
  270. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  271. package/dist/server/src/history/services/history.d.ts.map +1 -1
  272. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  273. package/dist/server/src/index.d.ts +22 -6
  274. package/dist/server/src/index.d.ts.map +1 -1
  275. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  276. package/dist/server/src/register.d.ts.map +1 -1
  277. package/dist/server/src/routes/index.d.ts.map +1 -1
  278. package/dist/server/src/services/content-types.d.ts +1 -3
  279. package/dist/server/src/services/content-types.d.ts.map +1 -1
  280. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  281. package/dist/server/src/services/index.d.ts +1 -3
  282. package/dist/server/src/services/index.d.ts.map +1 -1
  283. package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
  284. package/dist/shared/contracts/content-types.d.ts +5 -0
  285. package/dist/shared/contracts/content-types.d.ts.map +1 -1
  286. package/dist/shared/contracts/custom-order.d.ts +33 -0
  287. package/dist/shared/contracts/custom-order.d.ts.map +1 -0
  288. package/dist/shared/contracts/custom-order.js +3 -0
  289. package/dist/shared/contracts/custom-order.js.map +1 -0
  290. package/dist/shared/contracts/custom-order.mjs +2 -0
  291. package/dist/shared/contracts/custom-order.mjs.map +1 -0
  292. package/dist/shared/contracts/history-versions.d.ts +0 -1
  293. package/dist/shared/contracts/history-versions.d.ts.map +1 -1
  294. package/dist/shared/contracts/index.d.ts +1 -0
  295. package/dist/shared/contracts/index.d.ts.map +1 -1
  296. package/dist/shared/contracts/index.js +2 -0
  297. package/dist/shared/contracts/index.js.map +1 -1
  298. package/dist/shared/contracts/index.mjs +2 -0
  299. package/dist/shared/contracts/index.mjs.map +1 -1
  300. package/package.json +10 -10
@@ -0,0 +1,6 @@
1
+ import type { GetPreviewUrl } from '../../../../shared/contracts/preview';
2
+ /**
3
+ * The preview URL endpoint only accepts the draft and published statuses.
4
+ * A modified document is a draft with changes that are not published yet, so its preview is the draft.
5
+ */
6
+ export declare function getPreviewUrlStatus(status: string | undefined): GetPreviewUrl.Request['query']['status'];
@@ -1,4 +1,5 @@
1
1
  import type { Clone, Create, Delete, Find, FindOne, BulkDelete, BulkPublish, BulkUnpublish, Discard, CountDraftRelations, Publish, Unpublish, Update } from '../../../shared/contracts/collection-types';
2
+ import type { MoveDocument } from '../../../shared/contracts/custom-order';
2
3
  declare const useAutoCloneDocumentMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Clone.Params & {
3
4
  params?: Find.Request["query"] & Clone.Request["query"];
4
5
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", Clone.Response, "adminApi">>, useCloneDocumentMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Clone.Params & {
@@ -23,6 +24,10 @@ declare const useAutoCloneDocumentMutation: import("@reduxjs/toolkit/dist/query/
23
24
  params?: Find.Request["query"] & {
24
25
  [key: string]: unknown;
25
26
  };
27
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", Find.Response, "adminApi">>, useLazyGetAllDocumentsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseLazyQuery<import("@reduxjs/toolkit/query").QueryDefinition<Find.Params & {
28
+ params?: Find.Request["query"] & {
29
+ [key: string]: unknown;
30
+ };
26
31
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", Find.Response, "adminApi">>, useGetDocumentsForValidationQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
27
32
  model: string;
28
33
  documentIds: string[];
@@ -55,7 +60,10 @@ declare const useAutoCloneDocumentMutation: import("@reduxjs/toolkit/dist/query/
55
60
  locale?: string | string[] | null;
56
61
  } & {
57
62
  model: string;
58
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", number, "adminApi">>, usePublishDocumentMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Pick<Publish.Params, "model"> & Partial<Pick<Publish.Params, "documentId">> & {
63
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", number, "adminApi">>, useMoveDocumentMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<MoveDocument.Params & {
64
+ body: MoveDocument.Request["body"];
65
+ params?: MoveDocument.Request["query"];
66
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", MoveDocument.Response, "adminApi">>, usePublishDocumentMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Pick<Publish.Params, "model"> & Partial<Pick<Publish.Params, "documentId">> & {
59
67
  collectionType: string;
60
68
  data: Publish.Request["body"];
61
69
  params?: Publish.Request["query"];
@@ -76,4 +84,4 @@ declare const useAutoCloneDocumentMutation: import("@reduxjs/toolkit/dist/query/
76
84
  } & {
77
85
  params?: BulkUnpublish.Request["query"];
78
86
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AiUsage" | "AiFeatureConfig" | "ComponentConfiguration" | "ContentTypesConfiguration" | "ContentTypeSettings" | "Document" | "InitialData" | "HistoryVersion" | "Relations" | "UidAvailability" | "RecentDocumentList" | "CountDocuments" | "UpcomingReleasesList" | "AILocalizationJobs", BulkUnpublish.Response, "adminApi">>;
79
- export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, };
87
+ export { useAutoCloneDocumentMutation, useCloneDocumentMutation, useCreateDocumentMutation, useDeleteDocumentMutation, useDeleteManyDocumentsMutation, useDiscardDocumentMutation, useGetAllDocumentsQuery, useLazyGetAllDocumentsQuery, useGetDocumentsForValidationQuery, useLazyGetDocumentQuery, useGetDocumentQuery, useGetDraftRelationCountQuery, useLazyGetDraftRelationCountQuery, useGetManyDraftRelationCountQuery, useMoveDocumentMutation, usePublishDocumentMutation, usePublishManyDocumentsMutation, useUpdateDocumentMutation, useUnpublishDocumentMutation, useUnpublishManyDocumentsMutation, };
@@ -18,6 +18,8 @@ var en = {
18
18
  "actions.discard.dialog.draft-relations-unknown": "Any relations to unpublished entries will be removed.",
19
19
  "actions.edit.error": "An error occurred while trying to edit the document.",
20
20
  "actions.edit.label": "Edit",
21
+ "actions.move-to-bottom.label": "Move to bottom",
22
+ "actions.move-to-top.label": "Move to top",
21
23
  "actions.open-in-new-tab.label": "Open in new tab",
22
24
  "actions.copy-documentId.label": "Copy document ID",
23
25
  "actions.copy-documentId.success": "Document ID copied to clipboard",
@@ -133,6 +135,7 @@ var en = {
133
135
  "containers.list.filters.status": "Status",
134
136
  "containers.list.displayedFields": "Displayed Fields",
135
137
  "containers.list.items": "{number} {number, plural, =0 {items} one {item} other {items}}",
138
+ "containers.list.table-headers.order": "order",
136
139
  "containers.list.table.row-actions": "Row actions",
137
140
  "containers.list.selectedEntriesModal.title": "Publish entries",
138
141
  "containers.list.selectedEntriesModal.selectedCount.publish": "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
@@ -184,6 +187,10 @@ var en = {
184
187
  "containers.SettingsView.list.title": "Display configurations",
185
188
  "containers.empty-label": "Untitled",
186
189
  "containers.untitled": "Untitled",
190
+ "custom-order.inactive": "Sort by order to move entries",
191
+ "custom-order.moved": "Entry moved to position {position}",
192
+ "custom-order.position.button": "Position {position} of {total}, change position",
193
+ "custom-order.position.input": "New position, from 1 to {total}",
187
194
  "dnd.cancel-item": "{item}, dropped. Re-order cancelled.",
188
195
  "dnd.drop-item": "{item}, dropped. Final position in list: {position}.",
189
196
  "dnd.grab-item": "{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.",
@@ -216,6 +223,8 @@ var en = {
216
223
  "error.validation.regex": "The value does not match the regex.",
217
224
  "error.validation.required": "This value input is required.",
218
225
  "form.Input.bulkActions": "Enable bulk actions",
226
+ "form.Input.customOrder": "Enable custom order",
227
+ "form.Input.customOrder.hint": "Arrange entries by hand in the list view. New entries are added on top. The Content API returns entries in this order when no sort is requested.",
219
228
  "form.Input.defaultSort": "Default sort attribute",
220
229
  "form.Input.description": "Description",
221
230
  "form.Input.description.placeholder": "Display name in the profile",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,6 +14,8 @@ var en = {
14
14
  "actions.discard.dialog.draft-relations-unknown": "Any relations to unpublished entries will be removed.",
15
15
  "actions.edit.error": "An error occurred while trying to edit the document.",
16
16
  "actions.edit.label": "Edit",
17
+ "actions.move-to-bottom.label": "Move to bottom",
18
+ "actions.move-to-top.label": "Move to top",
17
19
  "actions.open-in-new-tab.label": "Open in new tab",
18
20
  "actions.copy-documentId.label": "Copy document ID",
19
21
  "actions.copy-documentId.success": "Document ID copied to clipboard",
@@ -129,6 +131,7 @@ var en = {
129
131
  "containers.list.filters.status": "Status",
130
132
  "containers.list.displayedFields": "Displayed Fields",
131
133
  "containers.list.items": "{number} {number, plural, =0 {items} one {item} other {items}}",
134
+ "containers.list.table-headers.order": "order",
132
135
  "containers.list.table.row-actions": "Row actions",
133
136
  "containers.list.selectedEntriesModal.title": "Publish entries",
134
137
  "containers.list.selectedEntriesModal.selectedCount.publish": "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{draftCount}</b> {draftCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
@@ -180,6 +183,10 @@ var en = {
180
183
  "containers.SettingsView.list.title": "Display configurations",
181
184
  "containers.empty-label": "Untitled",
182
185
  "containers.untitled": "Untitled",
186
+ "custom-order.inactive": "Sort by order to move entries",
187
+ "custom-order.moved": "Entry moved to position {position}",
188
+ "custom-order.position.button": "Position {position} of {total}, change position",
189
+ "custom-order.position.input": "New position, from 1 to {total}",
183
190
  "dnd.cancel-item": "{item}, dropped. Re-order cancelled.",
184
191
  "dnd.drop-item": "{item}, dropped. Final position in list: {position}.",
185
192
  "dnd.grab-item": "{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.",
@@ -212,6 +219,8 @@ var en = {
212
219
  "error.validation.regex": "The value does not match the regex.",
213
220
  "error.validation.required": "This value input is required.",
214
221
  "form.Input.bulkActions": "Enable bulk actions",
222
+ "form.Input.customOrder": "Enable custom order",
223
+ "form.Input.customOrder.hint": "Arrange entries by hand in the list view. New entries are added on top. The Content API returns entries in this order when no sort is requested.",
215
224
  "form.Input.defaultSort": "Default sort attribute",
216
225
  "form.Input.description": "Description",
217
226
  "form.Input.description.placeholder": "Display name in the profile",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ const AUDITED_EVENTS = {
4
+ ENTRY_DRAFT_DISCARD: 'entry.draft-discard',
5
+ ENTRY_HISTORY_RESTORE: 'entry.history.restore'
6
+ };
7
+ const registerAuditEvents = (auditLogsLifecycle)=>{
8
+ auditLogsLifecycle.registerEvent(AUDITED_EVENTS.ENTRY_DRAFT_DISCARD, (event)=>({
9
+ resource: {
10
+ type: 'entry',
11
+ uid: event.uid,
12
+ id: event.entry.documentId
13
+ },
14
+ details: {
15
+ locale: event.entry.locale ?? null
16
+ }
17
+ }));
18
+ auditLogsLifecycle.registerEvent(AUDITED_EVENTS.ENTRY_HISTORY_RESTORE, (event)=>({
19
+ resource: {
20
+ type: 'entry',
21
+ uid: event.uid,
22
+ id: event.documentId
23
+ },
24
+ details: {
25
+ locale: event.locale,
26
+ version: {
27
+ id: event.versionId,
28
+ createdAt: event.versionCreatedAt
29
+ }
30
+ }
31
+ }));
32
+ };
33
+
34
+ exports.AUDITED_EVENTS = AUDITED_EVENTS;
35
+ exports.registerAuditEvents = registerAuditEvents;
36
+ //# sourceMappingURL=audit-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logs.js","sources":["../../server/src/audit-logs.ts"],"sourcesContent":["import type { Data, Modules, UID } from '@strapi/types';\n\nexport const AUDITED_EVENTS = {\n ENTRY_DRAFT_DISCARD: 'entry.draft-discard',\n ENTRY_HISTORY_RESTORE: 'entry.history.restore',\n} as const;\n\ninterface EntryResource extends Modules.AuditLogs.Resource {\n type: 'entry';\n uid: UID.ContentType;\n id: string;\n}\n\n/** The payload of the existing entry.draft-discard event, emitted by the document service. */\nexport interface DraftDiscardEvent {\n uid: UID.ContentType;\n entry: { documentId: string; locale?: string | null };\n}\n\nexport interface DraftDiscardDetails {\n locale: string | null;\n}\n\nexport interface HistoryRestoreEvent {\n uid: UID.ContentType;\n documentId: string;\n locale: string | null;\n versionId: Data.ID;\n versionCreatedAt: string;\n}\n\nexport interface HistoryRestoreDetails {\n locale: string | null;\n version: { id: Data.ID; createdAt: string };\n}\n\n/**\n * The part of the audit-logs lifecycle service used by this plugin.\n * The full service type lives in the Admin EE package and cannot be imported here.\n */\ninterface AuditLogsLifecycle {\n registerEvent<TDetails, TResource extends Modules.AuditLogs.Resource>(\n name: string,\n transform: Modules.AuditLogs.EventTransformer<TDetails, TResource>\n ): void;\n}\n\nexport const registerAuditEvents = (auditLogsLifecycle: AuditLogsLifecycle) => {\n auditLogsLifecycle.registerEvent<DraftDiscardDetails, EntryResource>(\n AUDITED_EVENTS.ENTRY_DRAFT_DISCARD,\n (event: DraftDiscardEvent) => ({\n resource: { type: 'entry', uid: event.uid, id: event.entry.documentId },\n details: { locale: event.entry.locale ?? null },\n })\n );\n\n auditLogsLifecycle.registerEvent<HistoryRestoreDetails, EntryResource>(\n AUDITED_EVENTS.ENTRY_HISTORY_RESTORE,\n (event: HistoryRestoreEvent) => ({\n resource: { type: 'entry', uid: event.uid, id: event.documentId },\n details: {\n locale: event.locale,\n version: { id: event.versionId, createdAt: event.versionCreatedAt },\n },\n })\n );\n};\n"],"names":["AUDITED_EVENTS","ENTRY_DRAFT_DISCARD","ENTRY_HISTORY_RESTORE","registerAuditEvents","auditLogsLifecycle","registerEvent","event","resource","type","uid","id","entry","documentId","details","locale","version","versionId","createdAt","versionCreatedAt"],"mappings":";;MAEaA,cAAAA,GAAiB;IAC5BC,mBAAAA,EAAqB,qBAAA;IACrBC,qBAAAA,EAAuB;AACzB;AA0CO,MAAMC,sBAAsB,CAACC,kBAAAA,GAAAA;AAClCA,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BL,cAAAA,CAAeC,mBAAmB,EAClC,CAACK,SAA8B;YAC7BC,QAAAA,EAAU;gBAAEC,IAAAA,EAAM,OAAA;AAASC,gBAAAA,GAAAA,EAAKH,MAAMG,GAAG;gBAAEC,EAAAA,EAAIJ,KAAAA,CAAMK,KAAK,CAACC;AAAW,aAAA;YACtEC,OAAAA,EAAS;AAAEC,gBAAAA,MAAAA,EAAQR,KAAAA,CAAMK,KAAK,CAACG,MAAM,IAAI;AAAK;SAChD,CAAA,CAAA;AAGFV,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BL,cAAAA,CAAeE,qBAAqB,EACpC,CAACI,SAAgC;YAC/BC,QAAAA,EAAU;gBAAEC,IAAAA,EAAM,OAAA;AAASC,gBAAAA,GAAAA,EAAKH,MAAMG,GAAG;AAAEC,gBAAAA,EAAAA,EAAIJ,MAAMM;AAAW,aAAA;YAChEC,OAAAA,EAAS;AACPC,gBAAAA,MAAAA,EAAQR,MAAMQ,MAAM;gBACpBC,OAAAA,EAAS;AAAEL,oBAAAA,EAAAA,EAAIJ,MAAMU,SAAS;AAAEC,oBAAAA,SAAAA,EAAWX,MAAMY;AAAiB;AACpE;SACF,CAAA,CAAA;AAEJ;;;;;"}
@@ -0,0 +1,33 @@
1
+ const AUDITED_EVENTS = {
2
+ ENTRY_DRAFT_DISCARD: 'entry.draft-discard',
3
+ ENTRY_HISTORY_RESTORE: 'entry.history.restore'
4
+ };
5
+ const registerAuditEvents = (auditLogsLifecycle)=>{
6
+ auditLogsLifecycle.registerEvent(AUDITED_EVENTS.ENTRY_DRAFT_DISCARD, (event)=>({
7
+ resource: {
8
+ type: 'entry',
9
+ uid: event.uid,
10
+ id: event.entry.documentId
11
+ },
12
+ details: {
13
+ locale: event.entry.locale ?? null
14
+ }
15
+ }));
16
+ auditLogsLifecycle.registerEvent(AUDITED_EVENTS.ENTRY_HISTORY_RESTORE, (event)=>({
17
+ resource: {
18
+ type: 'entry',
19
+ uid: event.uid,
20
+ id: event.documentId
21
+ },
22
+ details: {
23
+ locale: event.locale,
24
+ version: {
25
+ id: event.versionId,
26
+ createdAt: event.versionCreatedAt
27
+ }
28
+ }
29
+ }));
30
+ };
31
+
32
+ export { AUDITED_EVENTS, registerAuditEvents };
33
+ //# sourceMappingURL=audit-logs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-logs.mjs","sources":["../../server/src/audit-logs.ts"],"sourcesContent":["import type { Data, Modules, UID } from '@strapi/types';\n\nexport const AUDITED_EVENTS = {\n ENTRY_DRAFT_DISCARD: 'entry.draft-discard',\n ENTRY_HISTORY_RESTORE: 'entry.history.restore',\n} as const;\n\ninterface EntryResource extends Modules.AuditLogs.Resource {\n type: 'entry';\n uid: UID.ContentType;\n id: string;\n}\n\n/** The payload of the existing entry.draft-discard event, emitted by the document service. */\nexport interface DraftDiscardEvent {\n uid: UID.ContentType;\n entry: { documentId: string; locale?: string | null };\n}\n\nexport interface DraftDiscardDetails {\n locale: string | null;\n}\n\nexport interface HistoryRestoreEvent {\n uid: UID.ContentType;\n documentId: string;\n locale: string | null;\n versionId: Data.ID;\n versionCreatedAt: string;\n}\n\nexport interface HistoryRestoreDetails {\n locale: string | null;\n version: { id: Data.ID; createdAt: string };\n}\n\n/**\n * The part of the audit-logs lifecycle service used by this plugin.\n * The full service type lives in the Admin EE package and cannot be imported here.\n */\ninterface AuditLogsLifecycle {\n registerEvent<TDetails, TResource extends Modules.AuditLogs.Resource>(\n name: string,\n transform: Modules.AuditLogs.EventTransformer<TDetails, TResource>\n ): void;\n}\n\nexport const registerAuditEvents = (auditLogsLifecycle: AuditLogsLifecycle) => {\n auditLogsLifecycle.registerEvent<DraftDiscardDetails, EntryResource>(\n AUDITED_EVENTS.ENTRY_DRAFT_DISCARD,\n (event: DraftDiscardEvent) => ({\n resource: { type: 'entry', uid: event.uid, id: event.entry.documentId },\n details: { locale: event.entry.locale ?? null },\n })\n );\n\n auditLogsLifecycle.registerEvent<HistoryRestoreDetails, EntryResource>(\n AUDITED_EVENTS.ENTRY_HISTORY_RESTORE,\n (event: HistoryRestoreEvent) => ({\n resource: { type: 'entry', uid: event.uid, id: event.documentId },\n details: {\n locale: event.locale,\n version: { id: event.versionId, createdAt: event.versionCreatedAt },\n },\n })\n );\n};\n"],"names":["AUDITED_EVENTS","ENTRY_DRAFT_DISCARD","ENTRY_HISTORY_RESTORE","registerAuditEvents","auditLogsLifecycle","registerEvent","event","resource","type","uid","id","entry","documentId","details","locale","version","versionId","createdAt","versionCreatedAt"],"mappings":"MAEaA,cAAAA,GAAiB;IAC5BC,mBAAAA,EAAqB,qBAAA;IACrBC,qBAAAA,EAAuB;AACzB;AA0CO,MAAMC,sBAAsB,CAACC,kBAAAA,GAAAA;AAClCA,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BL,cAAAA,CAAeC,mBAAmB,EAClC,CAACK,SAA8B;YAC7BC,QAAAA,EAAU;gBAAEC,IAAAA,EAAM,OAAA;AAASC,gBAAAA,GAAAA,EAAKH,MAAMG,GAAG;gBAAEC,EAAAA,EAAIJ,KAAAA,CAAMK,KAAK,CAACC;AAAW,aAAA;YACtEC,OAAAA,EAAS;AAAEC,gBAAAA,MAAAA,EAAQR,KAAAA,CAAMK,KAAK,CAACG,MAAM,IAAI;AAAK;SAChD,CAAA,CAAA;AAGFV,IAAAA,kBAAAA,CAAmBC,aAAa,CAC9BL,cAAAA,CAAeE,qBAAqB,EACpC,CAACI,SAAgC;YAC/BC,QAAAA,EAAU;gBAAEC,IAAAA,EAAM,OAAA;AAASC,gBAAAA,GAAAA,EAAKH,MAAMG,GAAG;AAAEC,gBAAAA,EAAAA,EAAIJ,MAAMM;AAAW,aAAA;YAChEC,OAAAA,EAAS;AACPC,gBAAAA,MAAAA,EAAQR,MAAMQ,MAAM;gBACpBC,OAAAA,EAAS;AAAEL,oBAAAA,EAAAA,EAAIJ,MAAMU,SAAS;AAAEC,oBAAAA,SAAAA,EAAWX,MAAMY;AAAiB;AACpE;SACF,CAAA,CAAA;AAEJ;;;;"}
@@ -4,7 +4,9 @@ var index$1 = require('./utils/index.js');
4
4
  var index = require('./constants/index.js');
5
5
  var index$2 = require('./history/index.js');
6
6
  var index$3 = require('./preview/index.js');
7
+ var index$4 = require('./custom-order/index.js');
7
8
  var registerContentManagerMcpTools = require('./mcp/register-content-manager-mcp-tools.js');
9
+ var auditLogs = require('./audit-logs.js');
8
10
 
9
11
  var bootstrap = (async ()=>{
10
12
  Object.entries(index.ALLOWED_WEBHOOK_EVENTS).forEach(([key, value])=>{
@@ -17,12 +19,18 @@ var bootstrap = (async ()=>{
17
19
  await registerContentManagerMcpTools.registerContentManagerMcpTools({
18
20
  strapi
19
21
  });
22
+ if (strapi.has('audit-logs-lifecycle')) {
23
+ auditLogs.registerAuditEvents(strapi.get('audit-logs-lifecycle'));
24
+ }
20
25
  await index$2.bootstrap?.({
21
26
  strapi
22
27
  });
23
28
  await index$3.bootstrap?.({
24
29
  strapi
25
30
  });
31
+ await index$4.bootstrap?.({
32
+ strapi
33
+ });
26
34
  });
27
35
 
28
36
  module.exports = bootstrap;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { getService } from './utils';\nimport { ALLOWED_WEBHOOK_EVENTS } from './constants';\nimport history from './history';\nimport preview from './preview';\nimport { registerContentManagerMcpTools } from './mcp/register-content-manager-mcp-tools';\n\nexport default async () => {\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\n getService('field-sizes').setCustomFieldInputSizes();\n await getService('components').syncConfigurations();\n await getService('content-types').syncConfigurations();\n await getService('permission').registerPermissions();\n\n await registerContentManagerMcpTools({ strapi });\n\n await history.bootstrap?.({ strapi });\n await preview.bootstrap?.({ strapi });\n};\n"],"names":["Object","entries","ALLOWED_WEBHOOK_EVENTS","forEach","key","value","strapi","get","addAllowedEvent","getService","setCustomFieldInputSizes","syncConfigurations","registerPermissions","registerContentManagerMcpTools","history","bootstrap","preview"],"mappings":";;;;;;;;AAMA,gBAAe,CAAA,UAAA;IACbA,MAAAA,CAAOC,OAAO,CAACC,4BAAAA,CAAAA,CAAwBC,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAAA,CAAM,GAAA;AAC1DC,QAAAA,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBC,eAAe,CAACJ,GAAAA,EAAKC,KAAAA,CAAAA;AAClD,IAAA,CAAA,CAAA;AAEAI,IAAAA,kBAAAA,CAAW,eAAeC,wBAAwB,EAAA;IAClD,MAAMD,kBAAAA,CAAW,cAAcE,kBAAkB,EAAA;IACjD,MAAMF,kBAAAA,CAAW,iBAAiBE,kBAAkB,EAAA;IACpD,MAAMF,kBAAAA,CAAW,cAAcG,mBAAmB,EAAA;AAElD,IAAA,MAAMC,6DAAAA,CAA+B;AAAEP,QAAAA;AAAO,KAAA,CAAA;IAE9C,MAAMQ,OAAAA,CAAQC,SAAS,GAAG;AAAET,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMU,OAAAA,CAAQD,SAAS,GAAG;AAAET,QAAAA;AAAO,KAAA,CAAA;AACrC,CAAA;;;;"}
1
+ {"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { getService } from './utils';\nimport { ALLOWED_WEBHOOK_EVENTS } from './constants';\nimport history from './history';\nimport preview from './preview';\nimport customOrder from './custom-order';\nimport { registerContentManagerMcpTools } from './mcp/register-content-manager-mcp-tools';\nimport { registerAuditEvents } from './audit-logs';\n\nexport default async () => {\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\n getService('field-sizes').setCustomFieldInputSizes();\n await getService('components').syncConfigurations();\n await getService('content-types').syncConfigurations();\n await getService('permission').registerPermissions();\n\n await registerContentManagerMcpTools({ strapi });\n\n if (strapi.has('audit-logs-lifecycle')) {\n registerAuditEvents(strapi.get('audit-logs-lifecycle'));\n }\n\n await history.bootstrap?.({ strapi });\n await preview.bootstrap?.({ strapi });\n await customOrder.bootstrap?.({ strapi });\n};\n"],"names":["Object","entries","ALLOWED_WEBHOOK_EVENTS","forEach","key","value","strapi","get","addAllowedEvent","getService","setCustomFieldInputSizes","syncConfigurations","registerPermissions","registerContentManagerMcpTools","has","registerAuditEvents","history","bootstrap","preview","customOrder"],"mappings":";;;;;;;;;;AAQA,gBAAe,CAAA,UAAA;IACbA,MAAAA,CAAOC,OAAO,CAACC,4BAAAA,CAAAA,CAAwBC,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAAA,CAAM,GAAA;AAC1DC,QAAAA,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBC,eAAe,CAACJ,GAAAA,EAAKC,KAAAA,CAAAA;AAClD,IAAA,CAAA,CAAA;AAEAI,IAAAA,kBAAAA,CAAW,eAAeC,wBAAwB,EAAA;IAClD,MAAMD,kBAAAA,CAAW,cAAcE,kBAAkB,EAAA;IACjD,MAAMF,kBAAAA,CAAW,iBAAiBE,kBAAkB,EAAA;IACpD,MAAMF,kBAAAA,CAAW,cAAcG,mBAAmB,EAAA;AAElD,IAAA,MAAMC,6DAAAA,CAA+B;AAAEP,QAAAA;AAAO,KAAA,CAAA;IAE9C,IAAIA,MAAAA,CAAOQ,GAAG,CAAC,sBAAA,CAAA,EAAyB;QACtCC,6BAAAA,CAAoBT,MAAAA,CAAOC,GAAG,CAAC,sBAAA,CAAA,CAAA;AACjC,IAAA;IAEA,MAAMS,OAAAA,CAAQC,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMY,OAAAA,CAAQD,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMa,OAAAA,CAAYF,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;AACzC,CAAA;;;;"}
@@ -2,7 +2,9 @@ import { getService } from './utils/index.mjs';
2
2
  import { ALLOWED_WEBHOOK_EVENTS } from './constants/index.mjs';
3
3
  import history from './history/index.mjs';
4
4
  import preview from './preview/index.mjs';
5
+ import feature from './custom-order/index.mjs';
5
6
  import { registerContentManagerMcpTools } from './mcp/register-content-manager-mcp-tools.mjs';
7
+ import { registerAuditEvents } from './audit-logs.mjs';
6
8
 
7
9
  var bootstrap = (async ()=>{
8
10
  Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value])=>{
@@ -15,12 +17,18 @@ var bootstrap = (async ()=>{
15
17
  await registerContentManagerMcpTools({
16
18
  strapi
17
19
  });
20
+ if (strapi.has('audit-logs-lifecycle')) {
21
+ registerAuditEvents(strapi.get('audit-logs-lifecycle'));
22
+ }
18
23
  await history.bootstrap?.({
19
24
  strapi
20
25
  });
21
26
  await preview.bootstrap?.({
22
27
  strapi
23
28
  });
29
+ await feature.bootstrap?.({
30
+ strapi
31
+ });
24
32
  });
25
33
 
26
34
  export { bootstrap as default };
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { getService } from './utils';\nimport { ALLOWED_WEBHOOK_EVENTS } from './constants';\nimport history from './history';\nimport preview from './preview';\nimport { registerContentManagerMcpTools } from './mcp/register-content-manager-mcp-tools';\n\nexport default async () => {\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\n getService('field-sizes').setCustomFieldInputSizes();\n await getService('components').syncConfigurations();\n await getService('content-types').syncConfigurations();\n await getService('permission').registerPermissions();\n\n await registerContentManagerMcpTools({ strapi });\n\n await history.bootstrap?.({ strapi });\n await preview.bootstrap?.({ strapi });\n};\n"],"names":["Object","entries","ALLOWED_WEBHOOK_EVENTS","forEach","key","value","strapi","get","addAllowedEvent","getService","setCustomFieldInputSizes","syncConfigurations","registerPermissions","registerContentManagerMcpTools","history","bootstrap","preview"],"mappings":";;;;;;AAMA,gBAAe,CAAA,UAAA;IACbA,MAAAA,CAAOC,OAAO,CAACC,sBAAAA,CAAAA,CAAwBC,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAAA,CAAM,GAAA;AAC1DC,QAAAA,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBC,eAAe,CAACJ,GAAAA,EAAKC,KAAAA,CAAAA;AAClD,IAAA,CAAA,CAAA;AAEAI,IAAAA,UAAAA,CAAW,eAAeC,wBAAwB,EAAA;IAClD,MAAMD,UAAAA,CAAW,cAAcE,kBAAkB,EAAA;IACjD,MAAMF,UAAAA,CAAW,iBAAiBE,kBAAkB,EAAA;IACpD,MAAMF,UAAAA,CAAW,cAAcG,mBAAmB,EAAA;AAElD,IAAA,MAAMC,8BAAAA,CAA+B;AAAEP,QAAAA;AAAO,KAAA,CAAA;IAE9C,MAAMQ,OAAAA,CAAQC,SAAS,GAAG;AAAET,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMU,OAAAA,CAAQD,SAAS,GAAG;AAAET,QAAAA;AAAO,KAAA,CAAA;AACrC,CAAA;;;;"}
1
+ {"version":3,"file":"bootstrap.mjs","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { getService } from './utils';\nimport { ALLOWED_WEBHOOK_EVENTS } from './constants';\nimport history from './history';\nimport preview from './preview';\nimport customOrder from './custom-order';\nimport { registerContentManagerMcpTools } from './mcp/register-content-manager-mcp-tools';\nimport { registerAuditEvents } from './audit-logs';\n\nexport default async () => {\n Object.entries(ALLOWED_WEBHOOK_EVENTS).forEach(([key, value]) => {\n strapi.get('webhookStore').addAllowedEvent(key, value);\n });\n\n getService('field-sizes').setCustomFieldInputSizes();\n await getService('components').syncConfigurations();\n await getService('content-types').syncConfigurations();\n await getService('permission').registerPermissions();\n\n await registerContentManagerMcpTools({ strapi });\n\n if (strapi.has('audit-logs-lifecycle')) {\n registerAuditEvents(strapi.get('audit-logs-lifecycle'));\n }\n\n await history.bootstrap?.({ strapi });\n await preview.bootstrap?.({ strapi });\n await customOrder.bootstrap?.({ strapi });\n};\n"],"names":["Object","entries","ALLOWED_WEBHOOK_EVENTS","forEach","key","value","strapi","get","addAllowedEvent","getService","setCustomFieldInputSizes","syncConfigurations","registerPermissions","registerContentManagerMcpTools","has","registerAuditEvents","history","bootstrap","preview","customOrder"],"mappings":";;;;;;;;AAQA,gBAAe,CAAA,UAAA;IACbA,MAAAA,CAAOC,OAAO,CAACC,sBAAAA,CAAAA,CAAwBC,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAAA,CAAM,GAAA;AAC1DC,QAAAA,MAAAA,CAAOC,GAAG,CAAC,cAAA,CAAA,CAAgBC,eAAe,CAACJ,GAAAA,EAAKC,KAAAA,CAAAA;AAClD,IAAA,CAAA,CAAA;AAEAI,IAAAA,UAAAA,CAAW,eAAeC,wBAAwB,EAAA;IAClD,MAAMD,UAAAA,CAAW,cAAcE,kBAAkB,EAAA;IACjD,MAAMF,UAAAA,CAAW,iBAAiBE,kBAAkB,EAAA;IACpD,MAAMF,UAAAA,CAAW,cAAcG,mBAAmB,EAAA;AAElD,IAAA,MAAMC,8BAAAA,CAA+B;AAAEP,QAAAA;AAAO,KAAA,CAAA;IAE9C,IAAIA,MAAAA,CAAOQ,GAAG,CAAC,sBAAA,CAAA,EAAyB;QACtCC,mBAAAA,CAAoBT,MAAAA,CAAOC,GAAG,CAAC,sBAAA,CAAA,CAAA;AACjC,IAAA;IAEA,MAAMS,OAAAA,CAAQC,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMY,OAAAA,CAAQD,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;IACnC,MAAMa,OAAAA,CAAYF,SAAS,GAAG;AAAEX,QAAAA;AAAO,KAAA,CAAA;AACzC,CAAA;;;;"}
@@ -471,6 +471,10 @@ var collectionTypes = {
471
471
  model
472
472
  });
473
473
  const updatedVersion = await updateDocument(ctx);
474
+ // The document can be deleted between the existence check and the update
475
+ if (updatedVersion === null) {
476
+ return ctx.notFound();
477
+ }
474
478
  const sanitizedVersion = await permissionChecker.sanitizeOutput(updatedVersion);
475
479
  ctx.body = await metadata.formatDocumentWithMetadata(permissionChecker, model, sanitizedVersion);
476
480
  },
@@ -505,6 +509,10 @@ var collectionTypes = {
505
509
  const sanitizeFn = strapiUtils.async.pipe(pickPermittedFields, setCreator, excludeNotCreatable);
506
510
  const sanitizedBody = await sanitizeFn(body);
507
511
  const clonedDocument = await documentManager.clone(document.documentId, sanitizedBody, model);
512
+ // The source document can be deleted between the existence check and the clone
513
+ if (clonedDocument === undefined) {
514
+ return ctx.notFound();
515
+ }
508
516
  const sanitizedDocument = await permissionChecker.sanitizeOutput(clonedDocument);
509
517
  ctx.body = await metadata.formatDocumentWithMetadata(permissionChecker, model, sanitizedDocument, {
510
518
  // Empty metadata as it's not relevant for a new document