@strapi/review-workflows 0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6 → 0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d

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 (412) hide show
  1. package/dist/admin/assets/balloon.png.js +6 -0
  2. package/dist/admin/assets/balloon.png.js.map +1 -0
  3. package/dist/admin/assets/balloon.png.mjs +4 -0
  4. package/dist/admin/assets/balloon.png.mjs.map +1 -0
  5. package/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
  6. package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
  7. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
  8. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
  9. package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
  10. package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
  11. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
  12. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
  13. package/dist/admin/components/LimitsModal.js +122 -0
  14. package/dist/admin/components/LimitsModal.js.map +1 -0
  15. package/dist/admin/components/LimitsModal.mjs +120 -0
  16. package/dist/admin/components/LimitsModal.mjs.map +1 -0
  17. package/dist/admin/components/Widgets.js +142 -0
  18. package/dist/admin/components/Widgets.js.map +1 -0
  19. package/dist/admin/components/Widgets.mjs +140 -0
  20. package/dist/admin/components/Widgets.mjs.map +1 -0
  21. package/dist/admin/constants.js +18 -0
  22. package/dist/admin/constants.js.map +1 -0
  23. package/dist/admin/constants.mjs +12 -0
  24. package/dist/admin/constants.mjs.map +1 -0
  25. package/dist/admin/index.js +116 -3
  26. package/dist/admin/index.js.map +1 -1
  27. package/dist/admin/index.mjs +111 -3
  28. package/dist/admin/index.mjs.map +1 -1
  29. package/dist/admin/modules/hooks.js +8 -0
  30. package/dist/admin/modules/hooks.js.map +1 -0
  31. package/dist/admin/modules/hooks.mjs +6 -0
  32. package/dist/admin/modules/hooks.mjs.map +1 -0
  33. package/dist/admin/router.js +30 -0
  34. package/dist/admin/router.js.map +1 -0
  35. package/dist/admin/router.mjs +28 -0
  36. package/dist/admin/router.mjs.map +1 -0
  37. package/dist/admin/routes/content-manager/model/components/TableColumns.js +44 -0
  38. package/dist/admin/routes/content-manager/model/components/TableColumns.js.map +1 -0
  39. package/dist/admin/routes/content-manager/model/components/TableColumns.mjs +41 -0
  40. package/dist/admin/routes/content-manager/model/components/TableColumns.mjs.map +1 -0
  41. package/dist/admin/routes/content-manager/model/constants.js +60 -0
  42. package/dist/admin/routes/content-manager/model/constants.js.map +1 -0
  43. package/dist/admin/routes/content-manager/model/constants.mjs +58 -0
  44. package/dist/admin/routes/content-manager/model/constants.mjs.map +1 -0
  45. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js +169 -0
  46. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js.map +1 -0
  47. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.mjs +148 -0
  48. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.mjs.map +1 -0
  49. package/dist/admin/routes/content-manager/model/id/components/Header.js +31 -0
  50. package/dist/admin/routes/content-manager/model/id/components/Header.js.map +1 -0
  51. package/dist/admin/routes/content-manager/model/id/components/Header.mjs +29 -0
  52. package/dist/admin/routes/content-manager/model/id/components/Header.mjs.map +1 -0
  53. package/dist/admin/routes/content-manager/model/id/components/Panel.js +39 -0
  54. package/dist/admin/routes/content-manager/model/id/components/Panel.js.map +1 -0
  55. package/dist/admin/routes/content-manager/model/id/components/Panel.mjs +37 -0
  56. package/dist/admin/routes/content-manager/model/id/components/Panel.mjs.map +1 -0
  57. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js +329 -0
  58. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js.map +1 -0
  59. package/dist/admin/routes/content-manager/model/id/components/StageSelect.mjs +308 -0
  60. package/dist/admin/routes/content-manager/model/id/components/StageSelect.mjs.map +1 -0
  61. package/dist/admin/routes/content-manager/model/id/components/constants.js +8 -0
  62. package/dist/admin/routes/content-manager/model/id/components/constants.js.map +1 -0
  63. package/dist/admin/routes/content-manager/model/id/components/constants.mjs +5 -0
  64. package/dist/admin/routes/content-manager/model/id/components/constants.mjs.map +1 -0
  65. package/dist/admin/routes/purchase-review-workflows.js +194 -0
  66. package/dist/admin/routes/purchase-review-workflows.js.map +1 -0
  67. package/dist/admin/routes/purchase-review-workflows.mjs +192 -0
  68. package/dist/admin/routes/purchase-review-workflows.mjs.map +1 -0
  69. package/dist/admin/routes/settings/components/AddStage.js +51 -0
  70. package/dist/admin/routes/settings/components/AddStage.js.map +1 -0
  71. package/dist/admin/routes/settings/components/AddStage.mjs +49 -0
  72. package/dist/admin/routes/settings/components/AddStage.mjs.map +1 -0
  73. package/dist/admin/routes/settings/components/Layout.js +86 -0
  74. package/dist/admin/routes/settings/components/Layout.js.map +1 -0
  75. package/dist/admin/routes/settings/components/Layout.mjs +82 -0
  76. package/dist/admin/routes/settings/components/Layout.mjs.map +1 -0
  77. package/dist/admin/routes/settings/components/StageDragPreview.js +40 -0
  78. package/dist/admin/routes/settings/components/StageDragPreview.js.map +1 -0
  79. package/dist/admin/routes/settings/components/StageDragPreview.mjs +38 -0
  80. package/dist/admin/routes/settings/components/StageDragPreview.mjs.map +1 -0
  81. package/dist/admin/routes/settings/components/Stages.js +592 -0
  82. package/dist/admin/routes/settings/components/Stages.js.map +1 -0
  83. package/dist/admin/routes/settings/components/Stages.mjs +571 -0
  84. package/dist/admin/routes/settings/components/Stages.mjs.map +1 -0
  85. package/dist/admin/routes/settings/components/WorkflowAttributes.js +206 -0
  86. package/dist/admin/routes/settings/components/WorkflowAttributes.js.map +1 -0
  87. package/dist/admin/routes/settings/components/WorkflowAttributes.mjs +204 -0
  88. package/dist/admin/routes/settings/components/WorkflowAttributes.mjs.map +1 -0
  89. package/dist/admin/routes/settings/constants.js +8 -0
  90. package/dist/admin/routes/settings/constants.js.map +1 -0
  91. package/dist/admin/routes/settings/constants.mjs +6 -0
  92. package/dist/admin/routes/settings/constants.mjs.map +1 -0
  93. package/dist/admin/routes/settings/hooks/useDragAndDrop.js +193 -0
  94. package/dist/admin/routes/settings/hooks/useDragAndDrop.js.map +1 -0
  95. package/dist/admin/routes/settings/hooks/useDragAndDrop.mjs +170 -0
  96. package/dist/admin/routes/settings/hooks/useDragAndDrop.mjs.map +1 -0
  97. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js +94 -0
  98. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js.map +1 -0
  99. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.mjs +73 -0
  100. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.mjs.map +1 -0
  101. package/dist/admin/routes/settings/hooks/useReviewWorkflows.js +171 -0
  102. package/dist/admin/routes/settings/hooks/useReviewWorkflows.js.map +1 -0
  103. package/dist/admin/routes/settings/hooks/useReviewWorkflows.mjs +150 -0
  104. package/dist/admin/routes/settings/hooks/useReviewWorkflows.mjs.map +1 -0
  105. package/dist/admin/routes/settings/id.js +411 -0
  106. package/dist/admin/routes/settings/id.js.map +1 -0
  107. package/dist/admin/routes/settings/id.mjs +389 -0
  108. package/dist/admin/routes/settings/id.mjs.map +1 -0
  109. package/dist/admin/routes/settings/index.js +294 -0
  110. package/dist/admin/routes/settings/index.js.map +1 -0
  111. package/dist/admin/routes/settings/index.mjs +272 -0
  112. package/dist/admin/routes/settings/index.mjs.map +1 -0
  113. package/dist/admin/services/admin.js +23 -0
  114. package/dist/admin/services/admin.js.map +1 -0
  115. package/dist/admin/services/admin.mjs +21 -0
  116. package/dist/admin/services/admin.mjs.map +1 -0
  117. package/dist/admin/services/api.js +15 -0
  118. package/dist/admin/services/api.js.map +1 -0
  119. package/dist/admin/services/api.mjs +13 -0
  120. package/dist/admin/services/api.mjs.map +1 -0
  121. package/dist/admin/services/content-manager.js +116 -0
  122. package/dist/admin/services/content-manager.js.map +1 -0
  123. package/dist/admin/services/content-manager.mjs +110 -0
  124. package/dist/admin/services/content-manager.mjs.map +1 -0
  125. package/dist/admin/services/settings.js +123 -0
  126. package/dist/admin/services/settings.js.map +1 -0
  127. package/dist/admin/services/settings.mjs +118 -0
  128. package/dist/admin/services/settings.mjs.map +1 -0
  129. package/dist/admin/src/components/Widgets.d.ts +2 -0
  130. package/dist/admin/src/routes/content-manager/model/id/components/AssigneeSelect.d.ts +4 -0
  131. package/dist/admin/src/routes/content-manager/model/id/components/Header.d.ts +5 -0
  132. package/dist/admin/src/routes/content-manager/model/id/components/StageSelect.d.ts +3 -0
  133. package/dist/admin/src/services/admin.d.ts +1 -1
  134. package/dist/admin/src/services/api.d.ts +1 -1
  135. package/dist/admin/src/services/content-manager.d.ts +6 -5
  136. package/dist/admin/src/services/settings.d.ts +3 -3
  137. package/dist/admin/translations/en.json.js +22 -0
  138. package/dist/admin/translations/en.json.js.map +1 -0
  139. package/dist/admin/translations/en.json.mjs +20 -0
  140. package/dist/admin/translations/en.json.mjs.map +1 -0
  141. package/dist/admin/translations/uk.json.js +16 -0
  142. package/dist/admin/translations/uk.json.js.map +1 -0
  143. package/dist/admin/translations/uk.json.mjs +14 -0
  144. package/dist/admin/translations/uk.json.mjs.map +1 -0
  145. package/dist/admin/utils/api.js +22 -0
  146. package/dist/admin/utils/api.js.map +1 -0
  147. package/dist/admin/utils/api.mjs +19 -0
  148. package/dist/admin/utils/api.mjs.map +1 -0
  149. package/dist/admin/utils/cm-hooks.js +23 -0
  150. package/dist/admin/utils/cm-hooks.js.map +1 -0
  151. package/dist/admin/utils/cm-hooks.mjs +21 -0
  152. package/dist/admin/utils/cm-hooks.mjs.map +1 -0
  153. package/dist/admin/utils/colors.js +50 -0
  154. package/dist/admin/utils/colors.js.map +1 -0
  155. package/dist/admin/utils/colors.mjs +47 -0
  156. package/dist/admin/utils/colors.mjs.map +1 -0
  157. package/dist/admin/utils/translations.js +11 -0
  158. package/dist/admin/utils/translations.js.map +1 -0
  159. package/dist/admin/utils/translations.mjs +9 -0
  160. package/dist/admin/utils/translations.mjs.map +1 -0
  161. package/dist/admin/utils/users.js +17 -0
  162. package/dist/admin/utils/users.js.map +1 -0
  163. package/dist/admin/utils/users.mjs +15 -0
  164. package/dist/admin/utils/users.mjs.map +1 -0
  165. package/dist/server/bootstrap.js +54 -0
  166. package/dist/server/bootstrap.js.map +1 -0
  167. package/dist/server/bootstrap.mjs +52 -0
  168. package/dist/server/bootstrap.mjs.map +1 -0
  169. package/dist/server/config/actions.js +47 -0
  170. package/dist/server/config/actions.js.map +1 -0
  171. package/dist/server/config/actions.mjs +45 -0
  172. package/dist/server/config/actions.mjs.map +1 -0
  173. package/dist/server/constants/default-stages.json.js +23 -0
  174. package/dist/server/constants/default-stages.json.js.map +1 -0
  175. package/dist/server/constants/default-stages.json.mjs +21 -0
  176. package/dist/server/constants/default-stages.json.mjs.map +1 -0
  177. package/dist/server/constants/default-workflow.json.js +12 -0
  178. package/dist/server/constants/default-workflow.json.js.map +1 -0
  179. package/dist/server/constants/default-workflow.json.mjs +7 -0
  180. package/dist/server/constants/default-workflow.json.mjs.map +1 -0
  181. package/dist/server/constants/webhook-events.js +12 -0
  182. package/dist/server/constants/webhook-events.js.map +1 -0
  183. package/dist/server/constants/webhook-events.mjs +7 -0
  184. package/dist/server/constants/webhook-events.mjs.map +1 -0
  185. package/dist/server/constants/workflows.js +53 -0
  186. package/dist/server/constants/workflows.js.map +1 -0
  187. package/dist/server/constants/workflows.mjs +42 -0
  188. package/dist/server/constants/workflows.mjs.map +1 -0
  189. package/dist/server/content-types/index.js +12 -0
  190. package/dist/server/content-types/index.js.map +1 -0
  191. package/dist/server/content-types/index.mjs +10 -0
  192. package/dist/server/content-types/index.mjs.map +1 -0
  193. package/dist/server/content-types/workflow/index.js +50 -0
  194. package/dist/server/content-types/workflow/index.js.map +1 -0
  195. package/dist/server/content-types/workflow/index.mjs +48 -0
  196. package/dist/server/content-types/workflow/index.mjs.map +1 -0
  197. package/dist/server/content-types/workflow-stage/index.js +54 -0
  198. package/dist/server/content-types/workflow-stage/index.js.map +1 -0
  199. package/dist/server/content-types/workflow-stage/index.mjs +52 -0
  200. package/dist/server/content-types/workflow-stage/index.mjs.map +1 -0
  201. package/dist/server/controllers/assignees.js +57 -0
  202. package/dist/server/controllers/assignees.js.map +1 -0
  203. package/dist/server/controllers/assignees.mjs +55 -0
  204. package/dist/server/controllers/assignees.mjs.map +1 -0
  205. package/dist/server/controllers/index.js +16 -0
  206. package/dist/server/controllers/index.js.map +1 -0
  207. package/dist/server/controllers/index.mjs +14 -0
  208. package/dist/server/controllers/index.mjs.map +1 -0
  209. package/dist/server/controllers/stages.js +167 -0
  210. package/dist/server/controllers/stages.js.map +1 -0
  211. package/dist/server/controllers/stages.mjs +165 -0
  212. package/dist/server/controllers/stages.mjs.map +1 -0
  213. package/dist/server/controllers/workflows.js +136 -0
  214. package/dist/server/controllers/workflows.js.map +1 -0
  215. package/dist/server/controllers/workflows.mjs +134 -0
  216. package/dist/server/controllers/workflows.mjs.map +1 -0
  217. package/dist/server/destroy.js +6 -0
  218. package/dist/server/destroy.js.map +1 -0
  219. package/dist/server/destroy.mjs +4 -0
  220. package/dist/server/destroy.mjs.map +1 -0
  221. package/dist/server/homepage/controllers/homepage.js +15 -0
  222. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  223. package/dist/server/homepage/controllers/homepage.mjs +13 -0
  224. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  225. package/dist/server/homepage/controllers/index.js +10 -0
  226. package/dist/server/homepage/controllers/index.js.map +1 -0
  227. package/dist/server/homepage/controllers/index.mjs +8 -0
  228. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  229. package/dist/server/homepage/index.js +14 -0
  230. package/dist/server/homepage/index.js.map +1 -0
  231. package/dist/server/homepage/index.mjs +12 -0
  232. package/dist/server/homepage/index.mjs.map +1 -0
  233. package/dist/server/homepage/routes/homepage.js +25 -0
  234. package/dist/server/homepage/routes/homepage.js.map +1 -0
  235. package/dist/server/homepage/routes/homepage.mjs +23 -0
  236. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  237. package/dist/server/homepage/routes/index.js +10 -0
  238. package/dist/server/homepage/routes/index.js.map +1 -0
  239. package/dist/server/homepage/routes/index.mjs +8 -0
  240. package/dist/server/homepage/routes/index.mjs.map +1 -0
  241. package/dist/server/homepage/services/homepage.js +24 -0
  242. package/dist/server/homepage/services/homepage.js.map +1 -0
  243. package/dist/server/homepage/services/homepage.mjs +22 -0
  244. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  245. package/dist/server/homepage/services/index.js +10 -0
  246. package/dist/server/homepage/services/index.js.map +1 -0
  247. package/dist/server/homepage/services/index.mjs +8 -0
  248. package/dist/server/homepage/services/index.mjs.map +1 -0
  249. package/dist/server/index.js +25 -8321
  250. package/dist/server/index.js.map +1 -1
  251. package/dist/server/index.mjs +24 -8323
  252. package/dist/server/index.mjs.map +1 -1
  253. package/dist/server/middlewares/review-workflows.js +42 -0
  254. package/dist/server/middlewares/review-workflows.js.map +1 -0
  255. package/dist/server/middlewares/review-workflows.mjs +37 -0
  256. package/dist/server/middlewares/review-workflows.mjs.map +1 -0
  257. package/dist/server/migrations/handle-deleted-ct-in-workflows.js +40 -0
  258. package/dist/server/migrations/handle-deleted-ct-in-workflows.js.map +1 -0
  259. package/dist/server/migrations/handle-deleted-ct-in-workflows.mjs +38 -0
  260. package/dist/server/migrations/handle-deleted-ct-in-workflows.mjs.map +1 -0
  261. package/dist/server/migrations/multiple-workflows.js +41 -0
  262. package/dist/server/migrations/multiple-workflows.js.map +1 -0
  263. package/dist/server/migrations/multiple-workflows.mjs +39 -0
  264. package/dist/server/migrations/multiple-workflows.mjs.map +1 -0
  265. package/dist/server/migrations/set-stages-default-color.js +22 -0
  266. package/dist/server/migrations/set-stages-default-color.js.map +1 -0
  267. package/dist/server/migrations/set-stages-default-color.mjs +20 -0
  268. package/dist/server/migrations/set-stages-default-color.mjs.map +1 -0
  269. package/dist/server/migrations/set-stages-roles.js +56 -0
  270. package/dist/server/migrations/set-stages-roles.js.map +1 -0
  271. package/dist/server/migrations/set-stages-roles.mjs +54 -0
  272. package/dist/server/migrations/set-stages-roles.mjs.map +1 -0
  273. package/dist/server/migrations/set-workflow-default-name.js +29 -0
  274. package/dist/server/migrations/set-workflow-default-name.js.map +1 -0
  275. package/dist/server/migrations/set-workflow-default-name.mjs +27 -0
  276. package/dist/server/migrations/set-workflow-default-name.mjs.map +1 -0
  277. package/dist/server/migrations/shorten-stage-attribute.js +45 -0
  278. package/dist/server/migrations/shorten-stage-attribute.js.map +1 -0
  279. package/dist/server/migrations/shorten-stage-attribute.mjs +43 -0
  280. package/dist/server/migrations/shorten-stage-attribute.mjs.map +1 -0
  281. package/dist/server/register.js +116 -0
  282. package/dist/server/register.js.map +1 -0
  283. package/dist/server/register.mjs +114 -0
  284. package/dist/server/register.mjs.map +1 -0
  285. package/dist/server/routes/index.js +12 -0
  286. package/dist/server/routes/index.js.map +1 -0
  287. package/dist/server/routes/index.mjs +10 -0
  288. package/dist/server/routes/index.mjs.map +1 -0
  289. package/dist/server/routes/review-workflows.js +186 -0
  290. package/dist/server/routes/review-workflows.js.map +1 -0
  291. package/dist/server/routes/review-workflows.mjs +184 -0
  292. package/dist/server/routes/review-workflows.mjs.map +1 -0
  293. package/dist/server/routes/utils.js +11 -0
  294. package/dist/server/routes/utils.js.map +1 -0
  295. package/dist/server/routes/utils.mjs +9 -0
  296. package/dist/server/routes/utils.mjs.map +1 -0
  297. package/dist/server/services/assignees.js +68 -0
  298. package/dist/server/services/assignees.js.map +1 -0
  299. package/dist/server/services/assignees.mjs +66 -0
  300. package/dist/server/services/assignees.mjs.map +1 -0
  301. package/dist/server/services/document-service-middleware.js +130 -0
  302. package/dist/server/services/document-service-middleware.js.map +1 -0
  303. package/dist/server/services/document-service-middleware.mjs +128 -0
  304. package/dist/server/services/document-service-middleware.mjs.map +1 -0
  305. package/dist/server/services/index.js +26 -0
  306. package/dist/server/services/index.js.map +1 -0
  307. package/dist/server/services/index.mjs +24 -0
  308. package/dist/server/services/index.mjs.map +1 -0
  309. package/dist/server/services/metrics/index.js +67 -0
  310. package/dist/server/services/metrics/index.js.map +1 -0
  311. package/dist/server/services/metrics/index.mjs +55 -0
  312. package/dist/server/services/metrics/index.mjs.map +1 -0
  313. package/dist/server/services/metrics/weekly-metrics.js +84 -0
  314. package/dist/server/services/metrics/weekly-metrics.js.map +1 -0
  315. package/dist/server/services/metrics/weekly-metrics.mjs +82 -0
  316. package/dist/server/services/metrics/weekly-metrics.mjs.map +1 -0
  317. package/dist/server/services/stage-permissions.js +59 -0
  318. package/dist/server/services/stage-permissions.js.map +1 -0
  319. package/dist/server/services/stage-permissions.mjs +57 -0
  320. package/dist/server/services/stage-permissions.mjs.map +1 -0
  321. package/dist/server/services/stages.js +353 -0
  322. package/dist/server/services/stages.js.map +1 -0
  323. package/dist/server/services/stages.mjs +351 -0
  324. package/dist/server/services/stages.mjs.map +1 -0
  325. package/dist/server/services/validation.js +69 -0
  326. package/dist/server/services/validation.js.map +1 -0
  327. package/dist/server/services/validation.mjs +67 -0
  328. package/dist/server/services/validation.mjs.map +1 -0
  329. package/dist/server/services/workflow-content-types.js +90 -0
  330. package/dist/server/services/workflow-content-types.js.map +1 -0
  331. package/dist/server/services/workflow-content-types.mjs +88 -0
  332. package/dist/server/services/workflow-content-types.mjs.map +1 -0
  333. package/dist/server/services/workflows.js +279 -0
  334. package/dist/server/services/workflows.js.map +1 -0
  335. package/dist/server/services/workflows.mjs +277 -0
  336. package/dist/server/services/workflows.mjs.map +1 -0
  337. package/dist/server/src/controllers/index.d.ts.map +1 -1
  338. package/dist/server/src/homepage/controllers/homepage.d.ts +6 -0
  339. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  340. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  341. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  342. package/dist/server/src/homepage/index.d.ts +15 -0
  343. package/dist/server/src/homepage/index.d.ts.map +1 -0
  344. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  345. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  346. package/dist/server/src/homepage/routes/index.d.ts +4 -0
  347. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  348. package/dist/server/src/homepage/services/homepage.d.ts +9 -0
  349. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  350. package/dist/server/src/homepage/services/index.d.ts +8 -0
  351. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  352. package/dist/server/src/index.d.ts +6 -0
  353. package/dist/server/src/index.d.ts.map +1 -1
  354. package/dist/server/src/routes/index.d.ts +1 -0
  355. package/dist/server/src/routes/index.d.ts.map +1 -1
  356. package/dist/server/src/services/document-service-middleware.d.ts +1 -1
  357. package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
  358. package/dist/server/src/services/index.d.ts +5 -0
  359. package/dist/server/src/services/index.d.ts.map +1 -1
  360. package/dist/server/utils/index.js +16 -0
  361. package/dist/server/utils/index.js.map +1 -0
  362. package/dist/server/utils/index.mjs +13 -0
  363. package/dist/server/utils/index.mjs.map +1 -0
  364. package/dist/server/utils/review-workflows.js +36 -0
  365. package/dist/server/utils/review-workflows.js.map +1 -0
  366. package/dist/server/utils/review-workflows.mjs +30 -0
  367. package/dist/server/utils/review-workflows.mjs.map +1 -0
  368. package/dist/server/validation/review-workflows.js +71 -0
  369. package/dist/server/validation/review-workflows.js.map +1 -0
  370. package/dist/server/validation/review-workflows.mjs +65 -0
  371. package/dist/server/validation/review-workflows.mjs.map +1 -0
  372. package/dist/shared/contracts/homepage.d.ts +26 -0
  373. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  374. package/dist/shared/contracts/review-workflows.d.ts +0 -1
  375. package/package.json +16 -15
  376. package/dist/_chunks/Layout-DU1Rt4Mu.mjs +0 -233
  377. package/dist/_chunks/Layout-DU1Rt4Mu.mjs.map +0 -1
  378. package/dist/_chunks/Layout-ywt0cSLq.js +0 -251
  379. package/dist/_chunks/Layout-ywt0cSLq.js.map +0 -1
  380. package/dist/_chunks/en-CYgjfSep.js +0 -15
  381. package/dist/_chunks/en-CYgjfSep.js.map +0 -1
  382. package/dist/_chunks/en-D9dxziEb.mjs +0 -15
  383. package/dist/_chunks/en-D9dxziEb.mjs.map +0 -1
  384. package/dist/_chunks/id-MDQVDdXD.mjs +0 -1277
  385. package/dist/_chunks/id-MDQVDdXD.mjs.map +0 -1
  386. package/dist/_chunks/id-StiN3nkI.js +0 -1297
  387. package/dist/_chunks/id-StiN3nkI.js.map +0 -1
  388. package/dist/_chunks/index-BRmc4tbQ.mjs +0 -809
  389. package/dist/_chunks/index-BRmc4tbQ.mjs.map +0 -1
  390. package/dist/_chunks/index-BSsDJNiQ.js +0 -827
  391. package/dist/_chunks/index-BSsDJNiQ.js.map +0 -1
  392. package/dist/_chunks/index-CsOMMJ--.mjs +0 -214
  393. package/dist/_chunks/index-CsOMMJ--.mjs.map +0 -1
  394. package/dist/_chunks/index-dc2WfugK.js +0 -233
  395. package/dist/_chunks/index-dc2WfugK.js.map +0 -1
  396. package/dist/_chunks/purchase-review-workflows-BN-5Ube7.mjs +0 -52
  397. package/dist/_chunks/purchase-review-workflows-BN-5Ube7.mjs.map +0 -1
  398. package/dist/_chunks/purchase-review-workflows-DlCDg0fD.js +0 -52
  399. package/dist/_chunks/purchase-review-workflows-DlCDg0fD.js.map +0 -1
  400. package/dist/_chunks/router-C5QvEzrI.js +0 -24
  401. package/dist/_chunks/router-C5QvEzrI.js.map +0 -1
  402. package/dist/_chunks/router-CZH4yq9s.mjs +0 -24
  403. package/dist/_chunks/router-CZH4yq9s.mjs.map +0 -1
  404. package/dist/admin/src/routes/content-manager/[model]/[id]/components/AssigneeSelect.d.ts +0 -2
  405. package/dist/admin/src/routes/content-manager/[model]/[id]/components/StageSelect.d.ts +0 -1
  406. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/AssigneeFilter.d.ts +0 -0
  407. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/StageFilter.d.ts +0 -0
  408. /package/dist/admin/src/routes/content-manager/{[model] → model}/components/TableColumns.d.ts +0 -0
  409. /package/dist/admin/src/routes/content-manager/{[model] → model}/configure/constants.d.ts +0 -0
  410. /package/dist/admin/src/routes/content-manager/{[model] → model}/constants.d.ts +0 -0
  411. /package/dist/admin/src/routes/content-manager/{[model]/[id] → model/id}/components/Panel.d.ts +0 -0
  412. /package/dist/admin/src/routes/content-manager/{[model]/[id] → model/id}/components/constants.d.ts +0 -0
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@strapi/utils');
4
+ var reviewWorkflows = require('../utils/review-workflows.js');
5
+ var workflows = require('../constants/workflows.js');
6
+
7
+ const stageObject = utils.yup.object().shape({
8
+ id: utils.yup.number().integer().min(1),
9
+ name: utils.yup.string().max(255).required(),
10
+ color: utils.yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
11
+ permissions: utils.yup.array().of(utils.yup.object().shape({
12
+ role: utils.yup.number().integer().min(1).required(),
13
+ action: utils.yup.string().oneOf([
14
+ workflows.STAGE_TRANSITION_UID
15
+ ]).required(),
16
+ actionParameters: utils.yup.object().shape({
17
+ from: utils.yup.number().integer().min(1).required(),
18
+ to: utils.yup.number().integer().min(1)
19
+ })
20
+ }))
21
+ });
22
+ const validateUpdateStageOnEntitySchema = utils.yup.object().shape({
23
+ id: utils.yup.number().integer().min(1).required()
24
+ }).required();
25
+ const validateContentTypes = utils.yup.array().of(utils.yup.string().test({
26
+ name: 'content-type-exists',
27
+ message: (value)=>`Content type ${value.originalValue} does not exist`,
28
+ test (uid) {
29
+ // Warning; we use the strapi global - to avoid that, it would need to refactor how
30
+ // we generate validation function by using a factory with the strapi instance as parameter.
31
+ return !!strapi.getModel(uid);
32
+ }
33
+ }).test({
34
+ name: 'content-type-review-workflow-enabled',
35
+ message: (value)=>`Content type ${value.originalValue} does not have review workflow enabled`,
36
+ test (uid) {
37
+ const model = strapi.getModel(uid);
38
+ // It's not a valid content type if it doesn't have the stage attribute
39
+ return reviewWorkflows.hasStageAttribute(model);
40
+ }
41
+ }));
42
+ const validateWorkflowCreateSchema = utils.yup.object().shape({
43
+ name: utils.yup.string().max(255).min(1, 'Workflow name can not be empty').required(),
44
+ stages: utils.yup.array().of(stageObject)// @ts-expect-error - add unique property into the yup namespace typing
45
+ .uniqueProperty('name', 'Stage name must be unique').min(1, 'Can not create a workflow without stages').max(200, 'Can not have more than 200 stages').required('Can not create a workflow without stages'),
46
+ contentTypes: validateContentTypes,
47
+ stageRequiredToPublishName: utils.yup.string().min(1).nullable()
48
+ });
49
+ const validateWorkflowUpdateSchema = utils.yup.object().shape({
50
+ name: utils.yup.string().max(255).min(1, 'Workflow name can not be empty'),
51
+ stages: utils.yup.array().of(stageObject)// @ts-expect-error - add unique property into the yup namespace typing
52
+ .uniqueProperty('name', 'Stage name must be unique').min(1, 'Can not update a workflow without stages').max(200, 'Can not have more than 200 stages'),
53
+ contentTypes: validateContentTypes,
54
+ stageRequiredToPublishName: utils.yup.string().min(1).nullable()
55
+ });
56
+ const validateUpdateAssigneeOnEntitySchema = utils.yup.object().shape({
57
+ id: utils.yup.number().integer().min(1).nullable()
58
+ }).required();
59
+ const validateLocaleSchema = utils.yup.string().nullable();
60
+ const validateWorkflowCreate = utils.validateYupSchema(validateWorkflowCreateSchema);
61
+ const validateUpdateStageOnEntity = utils.validateYupSchema(validateUpdateStageOnEntitySchema);
62
+ const validateUpdateAssigneeOnEntity = utils.validateYupSchema(validateUpdateAssigneeOnEntitySchema);
63
+ const validateWorkflowUpdate = utils.validateYupSchema(validateWorkflowUpdateSchema);
64
+ const validateLocale = utils.validateYupSchema(validateLocaleSchema);
65
+
66
+ exports.validateLocale = validateLocale;
67
+ exports.validateUpdateAssigneeOnEntity = validateUpdateAssigneeOnEntity;
68
+ exports.validateUpdateStageOnEntity = validateUpdateStageOnEntity;
69
+ exports.validateWorkflowCreate = validateWorkflowCreate;
70
+ exports.validateWorkflowUpdate = validateWorkflowUpdate;
71
+ //# sourceMappingURL=review-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workflows.js","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n permissions: yup.array().of(\n yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1).required(),\n to: yup.number().integer().min(1),\n }),\n })\n ),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["stageObject","yup","object","shape","id","number","integer","min","name","string","max","required","color","matches","permissions","array","of","role","action","oneOf","STAGE_TRANSITION_UID","actionParameters","from","to","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { yup, validateYupSchema } from '@strapi/utils';
2
+ import { hasStageAttribute } from '../utils/review-workflows.mjs';
3
+ import { STAGE_TRANSITION_UID } from '../constants/workflows.mjs';
4
+
5
+ const stageObject = yup.object().shape({
6
+ id: yup.number().integer().min(1),
7
+ name: yup.string().max(255).required(),
8
+ color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
9
+ permissions: yup.array().of(yup.object().shape({
10
+ role: yup.number().integer().min(1).required(),
11
+ action: yup.string().oneOf([
12
+ STAGE_TRANSITION_UID
13
+ ]).required(),
14
+ actionParameters: yup.object().shape({
15
+ from: yup.number().integer().min(1).required(),
16
+ to: yup.number().integer().min(1)
17
+ })
18
+ }))
19
+ });
20
+ const validateUpdateStageOnEntitySchema = yup.object().shape({
21
+ id: yup.number().integer().min(1).required()
22
+ }).required();
23
+ const validateContentTypes = yup.array().of(yup.string().test({
24
+ name: 'content-type-exists',
25
+ message: (value)=>`Content type ${value.originalValue} does not exist`,
26
+ test (uid) {
27
+ // Warning; we use the strapi global - to avoid that, it would need to refactor how
28
+ // we generate validation function by using a factory with the strapi instance as parameter.
29
+ return !!strapi.getModel(uid);
30
+ }
31
+ }).test({
32
+ name: 'content-type-review-workflow-enabled',
33
+ message: (value)=>`Content type ${value.originalValue} does not have review workflow enabled`,
34
+ test (uid) {
35
+ const model = strapi.getModel(uid);
36
+ // It's not a valid content type if it doesn't have the stage attribute
37
+ return hasStageAttribute(model);
38
+ }
39
+ }));
40
+ const validateWorkflowCreateSchema = yup.object().shape({
41
+ name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),
42
+ stages: yup.array().of(stageObject)// @ts-expect-error - add unique property into the yup namespace typing
43
+ .uniqueProperty('name', 'Stage name must be unique').min(1, 'Can not create a workflow without stages').max(200, 'Can not have more than 200 stages').required('Can not create a workflow without stages'),
44
+ contentTypes: validateContentTypes,
45
+ stageRequiredToPublishName: yup.string().min(1).nullable()
46
+ });
47
+ const validateWorkflowUpdateSchema = yup.object().shape({
48
+ name: yup.string().max(255).min(1, 'Workflow name can not be empty'),
49
+ stages: yup.array().of(stageObject)// @ts-expect-error - add unique property into the yup namespace typing
50
+ .uniqueProperty('name', 'Stage name must be unique').min(1, 'Can not update a workflow without stages').max(200, 'Can not have more than 200 stages'),
51
+ contentTypes: validateContentTypes,
52
+ stageRequiredToPublishName: yup.string().min(1).nullable()
53
+ });
54
+ const validateUpdateAssigneeOnEntitySchema = yup.object().shape({
55
+ id: yup.number().integer().min(1).nullable()
56
+ }).required();
57
+ const validateLocaleSchema = yup.string().nullable();
58
+ const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);
59
+ const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);
60
+ const validateUpdateAssigneeOnEntity = validateYupSchema(validateUpdateAssigneeOnEntitySchema);
61
+ const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);
62
+ const validateLocale = validateYupSchema(validateLocaleSchema);
63
+
64
+ export { validateLocale, validateUpdateAssigneeOnEntity, validateUpdateStageOnEntity, validateWorkflowCreate, validateWorkflowUpdate };
65
+ //# sourceMappingURL=review-workflows.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workflows.mjs","sources":["../../../server/src/validation/review-workflows.ts"],"sourcesContent":["/* eslint-disable func-names */\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { hasStageAttribute } from '../utils/review-workflows';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst stageObject = yup.object().shape({\n id: yup.number().integer().min(1),\n name: yup.string().max(255).required(),\n color: yup.string().matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i), // hex color\n permissions: yup.array().of(\n yup.object().shape({\n role: yup.number().integer().min(1).required(),\n action: yup.string().oneOf([STAGE_TRANSITION_UID]).required(),\n actionParameters: yup.object().shape({\n from: yup.number().integer().min(1).required(),\n to: yup.number().integer().min(1),\n }),\n })\n ),\n});\n\nconst validateUpdateStageOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).required(),\n })\n .required();\n\nconst validateContentTypes = yup.array().of(\n yup\n .string()\n .test({\n name: 'content-type-exists',\n message: (value) => `Content type ${value.originalValue} does not exist`,\n test(uid: any) {\n // Warning; we use the strapi global - to avoid that, it would need to refactor how\n // we generate validation function by using a factory with the strapi instance as parameter.\n return !!strapi.getModel(uid);\n },\n })\n .test({\n name: 'content-type-review-workflow-enabled',\n message: (value) =>\n `Content type ${value.originalValue} does not have review workflow enabled`,\n test(uid: any) {\n const model = strapi.getModel(uid);\n\n // It's not a valid content type if it doesn't have the stage attribute\n return hasStageAttribute(model);\n },\n })\n);\n\nconst validateWorkflowCreateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty').required(),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not create a workflow without stages')\n .max(200, 'Can not have more than 200 stages')\n .required('Can not create a workflow without stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateWorkflowUpdateSchema = yup.object().shape({\n name: yup.string().max(255).min(1, 'Workflow name can not be empty'),\n stages: yup\n .array()\n .of(stageObject)\n // @ts-expect-error - add unique property into the yup namespace typing\n .uniqueProperty('name', 'Stage name must be unique')\n .min(1, 'Can not update a workflow without stages')\n .max(200, 'Can not have more than 200 stages'),\n contentTypes: validateContentTypes,\n stageRequiredToPublishName: yup.string().min(1).nullable(),\n});\n\nconst validateUpdateAssigneeOnEntitySchema = yup\n .object()\n .shape({\n id: yup.number().integer().min(1).nullable(),\n })\n .required();\n\nconst validateLocaleSchema = yup.string().nullable();\n\nexport const validateWorkflowCreate = validateYupSchema(validateWorkflowCreateSchema);\nexport const validateUpdateStageOnEntity = validateYupSchema(validateUpdateStageOnEntitySchema);\nexport const validateUpdateAssigneeOnEntity = validateYupSchema(\n validateUpdateAssigneeOnEntitySchema\n);\nexport const validateWorkflowUpdate = validateYupSchema(validateWorkflowUpdateSchema);\nexport const validateLocale = validateYupSchema(validateLocaleSchema);\n\nexport default {\n validateWorkflowCreate,\n validateUpdateStageOnEntity,\n validateUpdateAssigneeOnEntity,\n validateWorkflowUpdate,\n validateLocale,\n};\n"],"names":["stageObject","yup","object","shape","id","number","integer","min","name","string","max","required","color","matches","permissions","array","of","role","action","oneOf","STAGE_TRANSITION_UID","actionParameters","from","to","validateUpdateStageOnEntitySchema","validateContentTypes","test","message","value","originalValue","uid","strapi","getModel","model","hasStageAttribute","validateWorkflowCreateSchema","stages","uniqueProperty","contentTypes","stageRequiredToPublishName","nullable","validateWorkflowUpdateSchema","validateUpdateAssigneeOnEntitySchema","validateLocaleSchema","validateWorkflowCreate","validateYupSchema","validateUpdateStageOnEntity","validateUpdateAssigneeOnEntity","validateWorkflowUpdate","validateLocale"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { errors } from '@strapi/utils';
2
+ import type { Struct, UID } from '@strapi/types';
3
+ export interface RecentDocument {
4
+ kind: Struct.ContentTypeKind;
5
+ contentTypeUid: UID.ContentType;
6
+ contentTypeDisplayName: string;
7
+ documentId: string;
8
+ locale: string | null;
9
+ status?: 'draft' | 'published' | 'modified';
10
+ title: string;
11
+ updatedAt: Date;
12
+ publishedAt?: Date | null;
13
+ strapi_stage?: {
14
+ color?: string;
15
+ name: string;
16
+ };
17
+ }
18
+ export declare namespace GetRecentlyAssignedDocuments {
19
+ interface Request {
20
+ body: {};
21
+ }
22
+ interface Response {
23
+ data: RecentDocument[];
24
+ error?: errors.ApplicationError;
25
+ }
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../shared/contracts/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,CAAC,OAAO,WAAW,4BAA4B,CAAC;IACpD,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;KACV;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF"}
@@ -141,4 +141,3 @@ declare namespace Delete {
141
141
  }
142
142
  }
143
143
  export type { Stage, Workflow, GetAll, Update, Create, Delete, UpdateAssignee, UpdateStage, GetStages, StagePermission, };
144
- //# sourceMappingURL=review-workflows.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/review-workflows",
3
- "version": "0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6",
3
+ "version": "0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d",
4
4
  "description": "Review workflows for your content",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,7 +41,11 @@
41
41
  "strapi-server.js"
42
42
  ],
43
43
  "scripts": {
44
- "build": "pack-up build",
44
+ "build": "run -T npm-run-all clean --parallel build:code build:types",
45
+ "build:code": "run -T rollup -c",
46
+ "build:types": "run -T run-p build:types:server build:types:admin",
47
+ "build:types:server": "run -T tsc -p server/tsconfig.build.json --emitDeclarationOnly",
48
+ "build:types:admin": "run -T tsc -p admin/tsconfig.build.json --emitDeclarationOnly",
45
49
  "clean": "run -T rimraf ./dist",
46
50
  "lint": "run -T eslint .",
47
51
  "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
@@ -49,13 +53,13 @@
49
53
  "test:ts:front": "run -T tsc -p admin/tsconfig.json",
50
54
  "test:unit": "run -T jest",
51
55
  "test:unit:watch": "run -T jest --watch",
52
- "watch": "pack-up watch"
56
+ "watch": "run -T rollup -c -w"
53
57
  },
54
58
  "dependencies": {
55
59
  "@reduxjs/toolkit": "1.9.7",
56
- "@strapi/design-system": "2.0.0-rc.14",
57
- "@strapi/icons": "2.0.0-rc.14",
58
- "@strapi/utils": "0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6",
60
+ "@strapi/design-system": "2.0.1",
61
+ "@strapi/icons": "2.0.1",
62
+ "@strapi/utils": "0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d",
59
63
  "fractional-indexing": "3.2.0",
60
64
  "react-dnd": "16.0.1",
61
65
  "react-dnd-html5-backend": "16.0.1",
@@ -65,12 +69,10 @@
65
69
  "yup": "0.32.9"
66
70
  },
67
71
  "devDependencies": {
68
- "@strapi/admin": "0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6",
69
- "@strapi/content-manager": "0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6",
70
- "@strapi/pack-up": "5.0.0",
71
- "@strapi/types": "0.0.0-next.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6",
72
- "@strapi/utils": "workspace:*",
73
- "@testing-library/react": "15.0.7",
72
+ "@strapi/admin": "0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d",
73
+ "@strapi/content-manager": "0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d",
74
+ "@strapi/types": "0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d",
75
+ "@testing-library/react": "16.3.0",
74
76
  "msw": "1.3.0",
75
77
  "react": "18.3.1",
76
78
  "react-dom": "18.3.1",
@@ -86,7 +88,7 @@
86
88
  "styled-components": "^6.0.0"
87
89
  },
88
90
  "engines": {
89
- "node": ">=18.0.0 <=22.x.x",
91
+ "node": ">=20.0.0 <=24.x.x",
90
92
  "npm": ">=6.0.0"
91
93
  },
92
94
  "strapi": {
@@ -95,6 +97,5 @@
95
97
  "kind": "plugin",
96
98
  "displayName": "Review Workflows",
97
99
  "required": true
98
- },
99
- "gitHead": "f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6"
100
+ }
100
101
  }
@@ -1,233 +0,0 @@
1
- import * as React from "react";
2
- import { useNotification, useAPIErrorHandler, Page, Layouts } from "@strapi/admin/strapi-admin";
3
- import { useIntl } from "react-intl";
4
- import { c as useGetWorkflowsQuery, d as useCreateWorkflowMutation, e as useUpdateWorkflowMutation, f as useDeleteWorkflowMutation } from "./index-BRmc4tbQ.mjs";
5
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
6
- import { Flex, Typography, Box } from "@strapi/design-system";
7
- import { useDragLayer } from "react-dnd";
8
- import { CaretDown } from "@strapi/icons";
9
- const DEFAULT_UNEXPECTED_ERROR_MSG = {
10
- id: "notification.error",
11
- defaultMessage: "An error occurred, please try again"
12
- };
13
- const useReviewWorkflows = (params = {}) => {
14
- const { toggleNotification } = useNotification();
15
- const { formatMessage } = useIntl();
16
- const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
17
- const { skip = false, ...queryParams } = params;
18
- const { data, isLoading, error } = useGetWorkflowsQuery(
19
- {
20
- populate: ["stages", "stageRequiredToPublish"],
21
- ...queryParams
22
- },
23
- {
24
- skip
25
- }
26
- );
27
- React.useEffect(() => {
28
- if (error) {
29
- toggleNotification({
30
- type: "danger",
31
- message: formatAPIError(error)
32
- });
33
- }
34
- }, [error, formatAPIError, toggleNotification]);
35
- const [createWorkflow] = useCreateWorkflowMutation();
36
- const create = React.useCallback(
37
- async (data2) => {
38
- try {
39
- const res = await createWorkflow({ data: data2 });
40
- if ("error" in res) {
41
- toggleNotification({
42
- type: "danger",
43
- message: formatAPIError(res.error)
44
- });
45
- return res;
46
- }
47
- toggleNotification({
48
- type: "success",
49
- message: formatMessage({ id: "actions.created", defaultMessage: "Created workflow" })
50
- });
51
- return res;
52
- } catch (err) {
53
- toggleNotification({
54
- type: "danger",
55
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
56
- });
57
- throw err;
58
- }
59
- },
60
- [createWorkflow, formatAPIError, formatMessage, toggleNotification]
61
- );
62
- const [updateWorkflow] = useUpdateWorkflowMutation();
63
- const update = React.useCallback(
64
- async (id, data2) => {
65
- try {
66
- const res = await updateWorkflow({ id, data: data2 });
67
- if ("error" in res) {
68
- toggleNotification({
69
- type: "danger",
70
- message: formatAPIError(res.error)
71
- });
72
- return res;
73
- }
74
- toggleNotification({
75
- type: "success",
76
- message: formatMessage({ id: "actions.updated", defaultMessage: "Updated workflow" })
77
- });
78
- return res;
79
- } catch (err) {
80
- toggleNotification({
81
- type: "danger",
82
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
83
- });
84
- throw err;
85
- }
86
- },
87
- [formatAPIError, formatMessage, toggleNotification, updateWorkflow]
88
- );
89
- const [deleteWorkflow] = useDeleteWorkflowMutation();
90
- const deleteAction = React.useCallback(
91
- async (id) => {
92
- try {
93
- const res = await deleteWorkflow({ id });
94
- if ("error" in res) {
95
- toggleNotification({
96
- type: "danger",
97
- message: formatAPIError(res.error)
98
- });
99
- return;
100
- }
101
- toggleNotification({
102
- type: "success",
103
- message: formatMessage({ id: "actions.deleted", defaultMessage: "Deleted workflow" })
104
- });
105
- return res.data;
106
- } catch (err) {
107
- toggleNotification({
108
- type: "danger",
109
- message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
110
- });
111
- throw err;
112
- }
113
- },
114
- [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]
115
- );
116
- const { workflows = [], meta } = data ?? {};
117
- return {
118
- // meta contains e.g. the total of all workflows. we can not use
119
- // the pagination object here, because the list is not paginated.
120
- meta,
121
- workflows,
122
- isLoading,
123
- error,
124
- create,
125
- delete: deleteAction,
126
- update
127
- };
128
- };
129
- const DRAG_DROP_TYPES = {
130
- STAGE: "stage"
131
- };
132
- const StageDragPreview = ({ name }) => {
133
- return /* @__PURE__ */ jsxs(
134
- Flex,
135
- {
136
- background: "primary100",
137
- borderStyle: "dashed",
138
- borderColor: "primary600",
139
- borderWidth: "1px",
140
- gap: 3,
141
- hasRadius: true,
142
- padding: 3,
143
- shadow: "tableShadow",
144
- width: "30rem",
145
- children: [
146
- /* @__PURE__ */ jsx(
147
- Flex,
148
- {
149
- alignItems: "center",
150
- background: "neutral200",
151
- borderRadius: "50%",
152
- height: 6,
153
- justifyContent: "center",
154
- width: 6,
155
- children: /* @__PURE__ */ jsx(CaretDown, { width: "0.8rem", fill: "neutral600" })
156
- }
157
- ),
158
- /* @__PURE__ */ jsx(Typography, { fontWeight: "bold", children: name })
159
- ]
160
- }
161
- );
162
- };
163
- function getStyle(initialOffset, currentOffset, mouseOffset) {
164
- if (!initialOffset || !currentOffset || !mouseOffset) {
165
- return { display: "none" };
166
- }
167
- const { x, y } = mouseOffset;
168
- return {
169
- transform: `translate(${x}px, ${y}px)`
170
- };
171
- }
172
- const DragLayerRendered = () => {
173
- const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(
174
- (monitor) => ({
175
- item: monitor.getItem(),
176
- itemType: monitor.getItemType(),
177
- initialOffset: monitor.getInitialSourceClientOffset(),
178
- currentOffset: monitor.getSourceClientOffset(),
179
- isDragging: monitor.isDragging(),
180
- mouseOffset: monitor.getClientOffset()
181
- })
182
- );
183
- if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {
184
- return null;
185
- }
186
- return /* @__PURE__ */ jsx(
187
- Box,
188
- {
189
- height: "100%",
190
- left: 0,
191
- position: "fixed",
192
- pointerEvents: "none",
193
- top: 0,
194
- zIndex: 100,
195
- width: "100%",
196
- children: /* @__PURE__ */ jsxs(Box, { style: getStyle(initialOffset, currentOffset, mouseOffset), children: [
197
- /* @__PURE__ */ jsx(StageDragPreview, { name: typeof item.item === "string" ? item.item : null }),
198
- ";"
199
- ] })
200
- }
201
- );
202
- };
203
- const Root = ({ children }) => {
204
- return /* @__PURE__ */ jsx(Page.Main, { children: /* @__PURE__ */ jsx(Layouts.Content, { children }) });
205
- };
206
- const Header = ({ title, subtitle, navigationAction, primaryAction }) => {
207
- const { formatMessage } = useIntl();
208
- return /* @__PURE__ */ jsxs(Fragment, { children: [
209
- /* @__PURE__ */ jsx(Page.Title, { children: formatMessage(
210
- { id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
211
- {
212
- name: title
213
- }
214
- ) }),
215
- /* @__PURE__ */ jsx(
216
- Layouts.BaseHeader,
217
- {
218
- navigationAction,
219
- primaryAction,
220
- title,
221
- subtitle
222
- }
223
- )
224
- ] });
225
- };
226
- export {
227
- DRAG_DROP_TYPES as D,
228
- Header as H,
229
- Root as R,
230
- DragLayerRendered as a,
231
- useReviewWorkflows as u
232
- };
233
- //# sourceMappingURL=Layout-DU1Rt4Mu.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-DU1Rt4Mu.mjs","sources":["../../admin/src/routes/settings/hooks/useReviewWorkflows.ts","../../admin/src/routes/settings/constants.ts","../../admin/src/routes/settings/components/StageDragPreview.tsx","../../admin/src/routes/settings/components/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { type MessageDescriptor, useIntl } from 'react-intl';\n\nimport {\n GetWorkflowsParams,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useGetWorkflowsQuery,\n useUpdateWorkflowMutation,\n} from '../../../services/settings';\n\nimport type { Create, Update } from '../../../../../shared/contracts/review-workflows';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype UseReviewWorkflowsArgs = GetWorkflowsParams & {\n skip?: boolean;\n};\n\nconst useReviewWorkflows = (params: UseReviewWorkflowsArgs = {}) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { skip = false, ...queryParams } = params;\n\n const { data, isLoading, error } = useGetWorkflowsQuery(\n {\n populate: ['stages', 'stageRequiredToPublish'],\n ...queryParams,\n },\n {\n skip,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [createWorkflow] = useCreateWorkflowMutation();\n const create = React.useCallback(\n async (data: Create.Request['body']['data']) => {\n try {\n const res = await createWorkflow({ data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.created', defaultMessage: 'Created workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [createWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const update = React.useCallback(\n async (id: string, data: Update.Request['body']['data']) => {\n try {\n const res = await updateWorkflow({ id, data });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return res;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.updated', defaultMessage: 'Updated workflow' }),\n });\n\n return res;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [formatAPIError, formatMessage, toggleNotification, updateWorkflow]\n );\n\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const deleteAction = React.useCallback(\n async (id: string) => {\n try {\n const res = await deleteWorkflow({ id });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'actions.deleted', defaultMessage: 'Deleted workflow' }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [deleteWorkflow, formatAPIError, formatMessage, toggleNotification]\n );\n\n const { workflows = [], meta } = data ?? {};\n\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n error,\n create,\n delete: deleteAction,\n update,\n };\n};\n\nexport { useReviewWorkflows };\n","export type DragDropTypes = 'stage';\n\nexport const DRAG_DROP_TYPES: Record<Uppercase<DragDropTypes>, DragDropTypes> = {\n STAGE: 'stage',\n};\n","import { Flex, Typography } from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\n\ninterface StageDragPreviewType {\n name: string | null;\n}\n\nconst StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width=\"30rem\"\n >\n <Flex\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CaretDown width=\"0.8rem\" fill=\"neutral600\" />\n </Flex>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n\nexport { StageDragPreview };\nexport type { StageDragPreviewType };\n","import * as React from 'react';\n\nimport { Page, Layouts } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport { XYCoord, useDragLayer } from 'react-dnd';\nimport { useIntl } from 'react-intl';\n\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nfunction getStyle(\n initialOffset: XYCoord | null,\n currentOffset: XYCoord | null,\n mouseOffset: XYCoord | null\n) {\n if (!initialOffset || !currentOffset || !mouseOffset) {\n return { display: 'none' };\n }\n\n const { x, y } = mouseOffset;\n\n return {\n transform: `translate(${x}px, ${y}px)`,\n };\n}\n\nconst DragLayerRendered = () => {\n const { itemType, isDragging, item, initialOffset, currentOffset, mouseOffset } = useDragLayer(\n (monitor) => ({\n item: monitor.getItem(),\n itemType: monitor.getItemType(),\n initialOffset: monitor.getInitialSourceClientOffset(),\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n mouseOffset: monitor.getClientOffset(),\n })\n );\n\n if (!isDragging || itemType !== DRAG_DROP_TYPES.STAGE) {\n return null;\n }\n\n return (\n <Box\n height=\"100%\"\n left={0}\n position=\"fixed\"\n pointerEvents=\"none\"\n top={0}\n zIndex={100}\n width=\"100%\"\n >\n <Box style={getStyle(initialOffset, currentOffset, mouseOffset)}>\n <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n </Box>\n </Box>\n );\n};\n\nconst Root: React.FC<React.PropsWithChildren> = ({ children }) => {\n return (\n <Page.Main>\n <Layouts.Content>{children}</Layouts.Content>\n </Page.Main>\n );\n};\n\ninterface HeaderProps {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n const { formatMessage } = useIntl();\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: title,\n }\n )}\n </Page.Title>\n <Layouts.BaseHeader\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { DragLayerRendered, Header, Root };\n"],"names":["data"],"mappings":"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"}