@strapi/review-workflows 0.0.0-next.f4ec69568d980c6fee91ce2ee0f41c138347aa81 → 0.0.0-next.f5d21551ed005f524bfc4760b274f1be154e26a8

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 +137 -0
  18. package/dist/admin/components/Widgets.js.map +1 -0
  19. package/dist/admin/components/Widgets.mjs +135 -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 +591 -0
  82. package/dist/admin/routes/settings/components/Stages.js.map +1 -0
  83. package/dist/admin/routes/settings/components/Stages.mjs +570 -0
  84. package/dist/admin/routes/settings/components/Stages.mjs.map +1 -0
  85. package/dist/admin/routes/settings/components/WorkflowAttributes.js +203 -0
  86. package/dist/admin/routes/settings/components/WorkflowAttributes.js.map +1 -0
  87. package/dist/admin/routes/settings/components/WorkflowAttributes.mjs +201 -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 +404 -0
  106. package/dist/admin/routes/settings/id.js.map +1 -0
  107. package/dist/admin/routes/settings/id.mjs +382 -0
  108. package/dist/admin/routes/settings/id.mjs.map +1 -0
  109. package/dist/admin/routes/settings/index.js +293 -0
  110. package/dist/admin/routes/settings/index.js.map +1 -0
  111. package/dist/admin/routes/settings/index.mjs +271 -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-B4fpKB9J.js +0 -251
  377. package/dist/_chunks/Layout-B4fpKB9J.js.map +0 -1
  378. package/dist/_chunks/Layout-Dko22Aly.mjs +0 -233
  379. package/dist/_chunks/Layout-Dko22Aly.mjs.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-BKq7JAqZ.js +0 -1297
  385. package/dist/_chunks/id-BKq7JAqZ.js.map +0 -1
  386. package/dist/_chunks/id-DINFSsrh.mjs +0 -1277
  387. package/dist/_chunks/id-DINFSsrh.mjs.map +0 -1
  388. package/dist/_chunks/index-BpIILEs0.js +0 -233
  389. package/dist/_chunks/index-BpIILEs0.js.map +0 -1
  390. package/dist/_chunks/index-BpL7C1EG.js +0 -830
  391. package/dist/_chunks/index-BpL7C1EG.js.map +0 -1
  392. package/dist/_chunks/index-DAcEdoqJ.mjs +0 -812
  393. package/dist/_chunks/index-DAcEdoqJ.mjs.map +0 -1
  394. package/dist/_chunks/index-ZcZKwmTD.mjs +0 -214
  395. package/dist/_chunks/index-ZcZKwmTD.mjs.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-BPH_u176.mjs +0 -24
  401. package/dist/_chunks/router-BPH_u176.mjs.map +0 -1
  402. package/dist/_chunks/router-DeEgX8Ao.js +0 -24
  403. package/dist/_chunks/router-DeEgX8Ao.js.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,42 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var fp = require('lodash/fp');
6
+
7
+ /**
8
+ * A Strapi middleware function that adds support for review workflows.
9
+ *
10
+ * Why is it needed ?
11
+ * For now, the admin panel cannot have anything but top-level attributes in the content-type for options.
12
+ * But we need the CE part to be agnostics from Review Workflow (which is an EE feature).
13
+ * CE handle the `options` object, that's why we move the reviewWorkflows boolean to the options object.
14
+ *
15
+ * @param {object} strapi - The Strapi instance.
16
+ */ function contentTypeMiddleware(strapi) {
17
+ /**
18
+ * A middleware function that moves the `reviewWorkflows` attribute from the top level of
19
+ * the request body to the `options` object within the request body.
20
+ *
21
+ * @param {object} ctx - The Koa context object.
22
+ */ const moveReviewWorkflowOption = (ctx)=>{
23
+ // Move reviewWorkflows to options.reviewWorkflows
24
+ const { reviewWorkflows, ...contentType } = ctx.request.body.contentType;
25
+ if (typeof reviewWorkflows === 'boolean') {
26
+ ctx.request.body.contentType = fp.set('options.reviewWorkflows', reviewWorkflows, contentType);
27
+ }
28
+ };
29
+ strapi.server.router.use('/content-type-builder/content-types/:uid?', (ctx, next)=>{
30
+ if (ctx.method === 'PUT' || ctx.method === 'POST') {
31
+ moveReviewWorkflowOption(ctx);
32
+ }
33
+ return next();
34
+ });
35
+ }
36
+ var reviewWorkflowsMiddlewares = {
37
+ contentTypeMiddleware
38
+ };
39
+
40
+ exports.contentTypeMiddleware = contentTypeMiddleware;
41
+ exports.default = reviewWorkflowsMiddlewares;
42
+ //# sourceMappingURL=review-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workflows.js","sources":["../../../server/src/middlewares/review-workflows.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport type { Core } from '@strapi/types';\n\nimport { set } from 'lodash/fp';\n\n/**\n * A Strapi middleware function that adds support for review workflows.\n *\n * Why is it needed ?\n * For now, the admin panel cannot have anything but top-level attributes in the content-type for options.\n * But we need the CE part to be agnostics from Review Workflow (which is an EE feature).\n * CE handle the `options` object, that's why we move the reviewWorkflows boolean to the options object.\n *\n * @param {object} strapi - The Strapi instance.\n */\nexport function contentTypeMiddleware(strapi: Core.Strapi) {\n /**\n * A middleware function that moves the `reviewWorkflows` attribute from the top level of\n * the request body to the `options` object within the request body.\n *\n * @param {object} ctx - The Koa context object.\n */\n const moveReviewWorkflowOption = (ctx: Context) => {\n // Move reviewWorkflows to options.reviewWorkflows\n const { reviewWorkflows, ...contentType } = ctx.request.body.contentType;\n\n if (typeof reviewWorkflows === 'boolean') {\n ctx.request.body.contentType = set('options.reviewWorkflows', reviewWorkflows, contentType);\n }\n };\n strapi.server.router.use('/content-type-builder/content-types/:uid?', (ctx, next) => {\n if (ctx.method === 'PUT' || ctx.method === 'POST') {\n moveReviewWorkflowOption(ctx);\n }\n return next();\n });\n}\n\nexport default {\n contentTypeMiddleware,\n};\n"],"names":["contentTypeMiddleware","strapi","moveReviewWorkflowOption","ctx","reviewWorkflows","contentType","request","body","set","server","router","use","next","method"],"mappings":";;;;;;AAKA;;;;;;;;;IAUO,SAASA,qBAAAA,CAAsBC,MAAmB,EAAA;AACvD;;;;;MAMA,MAAMC,2BAA2B,CAACC,GAAAA,GAAAA;;QAEhC,MAAM,EAAEC,eAAe,EAAE,GAAGC,WAAAA,EAAa,GAAGF,GAAAA,CAAIG,OAAO,CAACC,IAAI,CAACF,WAAW;QAExE,IAAI,OAAOD,oBAAoB,SAAW,EAAA;YACxCD,GAAIG,CAAAA,OAAO,CAACC,IAAI,CAACF,WAAW,GAAGG,MAAAA,CAAI,2BAA2BJ,eAAiBC,EAAAA,WAAAA,CAAAA;AACjF;AACF,KAAA;IACAJ,MAAOQ,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAC,2CAAA,EAA6C,CAACR,GAAKS,EAAAA,IAAAA,GAAAA;AAC1E,QAAA,IAAIT,IAAIU,MAAM,KAAK,SAASV,GAAIU,CAAAA,MAAM,KAAK,MAAQ,EAAA;YACjDX,wBAAyBC,CAAAA,GAAAA,CAAAA;AAC3B;QACA,OAAOS,IAAAA,EAAAA;AACT,KAAA,CAAA;AACF;AAEA,iCAAe;AACbZ,IAAAA;AACF,CAAE;;;;;"}
@@ -0,0 +1,37 @@
1
+ import { set } from 'lodash/fp';
2
+
3
+ /**
4
+ * A Strapi middleware function that adds support for review workflows.
5
+ *
6
+ * Why is it needed ?
7
+ * For now, the admin panel cannot have anything but top-level attributes in the content-type for options.
8
+ * But we need the CE part to be agnostics from Review Workflow (which is an EE feature).
9
+ * CE handle the `options` object, that's why we move the reviewWorkflows boolean to the options object.
10
+ *
11
+ * @param {object} strapi - The Strapi instance.
12
+ */ function contentTypeMiddleware(strapi) {
13
+ /**
14
+ * A middleware function that moves the `reviewWorkflows` attribute from the top level of
15
+ * the request body to the `options` object within the request body.
16
+ *
17
+ * @param {object} ctx - The Koa context object.
18
+ */ const moveReviewWorkflowOption = (ctx)=>{
19
+ // Move reviewWorkflows to options.reviewWorkflows
20
+ const { reviewWorkflows, ...contentType } = ctx.request.body.contentType;
21
+ if (typeof reviewWorkflows === 'boolean') {
22
+ ctx.request.body.contentType = set('options.reviewWorkflows', reviewWorkflows, contentType);
23
+ }
24
+ };
25
+ strapi.server.router.use('/content-type-builder/content-types/:uid?', (ctx, next)=>{
26
+ if (ctx.method === 'PUT' || ctx.method === 'POST') {
27
+ moveReviewWorkflowOption(ctx);
28
+ }
29
+ return next();
30
+ });
31
+ }
32
+ var reviewWorkflowsMiddlewares = {
33
+ contentTypeMiddleware
34
+ };
35
+
36
+ export { contentTypeMiddleware, reviewWorkflowsMiddlewares as default };
37
+ //# sourceMappingURL=review-workflows.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-workflows.mjs","sources":["../../../server/src/middlewares/review-workflows.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport type { Core } from '@strapi/types';\n\nimport { set } from 'lodash/fp';\n\n/**\n * A Strapi middleware function that adds support for review workflows.\n *\n * Why is it needed ?\n * For now, the admin panel cannot have anything but top-level attributes in the content-type for options.\n * But we need the CE part to be agnostics from Review Workflow (which is an EE feature).\n * CE handle the `options` object, that's why we move the reviewWorkflows boolean to the options object.\n *\n * @param {object} strapi - The Strapi instance.\n */\nexport function contentTypeMiddleware(strapi: Core.Strapi) {\n /**\n * A middleware function that moves the `reviewWorkflows` attribute from the top level of\n * the request body to the `options` object within the request body.\n *\n * @param {object} ctx - The Koa context object.\n */\n const moveReviewWorkflowOption = (ctx: Context) => {\n // Move reviewWorkflows to options.reviewWorkflows\n const { reviewWorkflows, ...contentType } = ctx.request.body.contentType;\n\n if (typeof reviewWorkflows === 'boolean') {\n ctx.request.body.contentType = set('options.reviewWorkflows', reviewWorkflows, contentType);\n }\n };\n strapi.server.router.use('/content-type-builder/content-types/:uid?', (ctx, next) => {\n if (ctx.method === 'PUT' || ctx.method === 'POST') {\n moveReviewWorkflowOption(ctx);\n }\n return next();\n });\n}\n\nexport default {\n contentTypeMiddleware,\n};\n"],"names":["contentTypeMiddleware","strapi","moveReviewWorkflowOption","ctx","reviewWorkflows","contentType","request","body","set","server","router","use","next","method"],"mappings":";;AAKA;;;;;;;;;IAUO,SAASA,qBAAAA,CAAsBC,MAAmB,EAAA;AACvD;;;;;MAMA,MAAMC,2BAA2B,CAACC,GAAAA,GAAAA;;QAEhC,MAAM,EAAEC,eAAe,EAAE,GAAGC,WAAAA,EAAa,GAAGF,GAAAA,CAAIG,OAAO,CAACC,IAAI,CAACF,WAAW;QAExE,IAAI,OAAOD,oBAAoB,SAAW,EAAA;YACxCD,GAAIG,CAAAA,OAAO,CAACC,IAAI,CAACF,WAAW,GAAGG,GAAAA,CAAI,2BAA2BJ,eAAiBC,EAAAA,WAAAA,CAAAA;AACjF;AACF,KAAA;IACAJ,MAAOQ,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAC,2CAAA,EAA6C,CAACR,GAAKS,EAAAA,IAAAA,GAAAA;AAC1E,QAAA,IAAIT,IAAIU,MAAM,KAAK,SAASV,GAAIU,CAAAA,MAAM,KAAK,MAAQ,EAAA;YACjDX,wBAAyBC,CAAAA,GAAAA,CAAAA;AAC3B;QACA,OAAOS,IAAAA,EAAAA;AACT,KAAA,CAAA;AACF;AAEA,iCAAe;AACbZ,IAAAA;AACF,CAAE;;;;"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var utils = require('@strapi/utils');
5
+ var workflows = require('../constants/workflows.js');
6
+ var reviewWorkflows = require('../utils/review-workflows.js');
7
+
8
+ /**
9
+ * Remove CT references from workflows if the CT is deleted
10
+ */ async function migrateDeletedCTInWorkflows({ oldContentTypes, contentTypes }) {
11
+ const deletedContentTypes = fp.difference(fp.keys(oldContentTypes), fp.keys(contentTypes)) ?? [];
12
+ if (deletedContentTypes.length) {
13
+ await utils.async.map(deletedContentTypes, async (deletedContentTypeUID)=>{
14
+ const workflow = await strapi.db.query(workflows.WORKFLOW_MODEL_UID).findOne({
15
+ select: [
16
+ 'id',
17
+ 'contentTypes'
18
+ ],
19
+ where: {
20
+ contentTypes: reviewWorkflows.getWorkflowContentTypeFilter({
21
+ strapi
22
+ }, deletedContentTypeUID)
23
+ }
24
+ });
25
+ if (workflow) {
26
+ await strapi.db.query(workflows.WORKFLOW_MODEL_UID).update({
27
+ where: {
28
+ id: workflow.id
29
+ },
30
+ data: {
31
+ contentTypes: workflow.contentTypes.filter((contentTypeUID)=>contentTypeUID !== deletedContentTypeUID)
32
+ }
33
+ });
34
+ }
35
+ });
36
+ }
37
+ }
38
+
39
+ module.exports = migrateDeletedCTInWorkflows;
40
+ //# sourceMappingURL=handle-deleted-ct-in-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-deleted-ct-in-workflows.js","sources":["../../../server/src/migrations/handle-deleted-ct-in-workflows.ts"],"sourcesContent":["import { difference, keys } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { WORKFLOW_MODEL_UID } from '../constants/workflows';\nimport { getWorkflowContentTypeFilter } from '../utils/review-workflows';\n\n/**\n * Remove CT references from workflows if the CT is deleted\n */\nasync function migrateDeletedCTInWorkflows({ oldContentTypes, contentTypes }: any) {\n const deletedContentTypes = difference(keys(oldContentTypes), keys(contentTypes)) ?? [];\n\n if (deletedContentTypes.length) {\n await async.map(deletedContentTypes, async (deletedContentTypeUID: unknown) => {\n const workflow = await strapi.db.query(WORKFLOW_MODEL_UID).findOne({\n select: ['id', 'contentTypes'],\n where: {\n contentTypes: getWorkflowContentTypeFilter({ strapi }, deletedContentTypeUID),\n },\n });\n\n if (workflow) {\n await strapi.db.query(WORKFLOW_MODEL_UID).update({\n where: { id: workflow.id },\n data: {\n contentTypes: workflow.contentTypes.filter(\n (contentTypeUID: unknown) => contentTypeUID !== deletedContentTypeUID\n ),\n },\n });\n }\n });\n }\n}\n\nexport default migrateDeletedCTInWorkflows;\n"],"names":["migrateDeletedCTInWorkflows","oldContentTypes","contentTypes","deletedContentTypes","difference","keys","length","async","map","deletedContentTypeUID","workflow","strapi","db","query","WORKFLOW_MODEL_UID","findOne","select","where","getWorkflowContentTypeFilter","update","id","data","filter","contentTypeUID"],"mappings":";;;;;;;AAKA;;AAEC,IACD,eAAeA,2BAA4B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AAC/E,IAAA,MAAMC,sBAAsBC,aAAWC,CAAAA,OAAAA,CAAKJ,eAAkBI,CAAAA,EAAAA,OAAAA,CAAKH,kBAAkB,EAAE;IAEvF,IAAIC,mBAAAA,CAAoBG,MAAM,EAAE;AAC9B,QAAA,MAAMC,WAAMC,CAAAA,GAAG,CAACL,mBAAAA,EAAqB,OAAOM,qBAAAA,GAAAA;YAC1C,MAAMC,QAAAA,GAAW,MAAMC,MAAOC,CAAAA,EAAE,CAACC,KAAK,CAACC,4BAAoBC,CAAAA,CAAAA,OAAO,CAAC;gBACjEC,MAAQ,EAAA;AAAC,oBAAA,IAAA;AAAM,oBAAA;AAAe,iBAAA;gBAC9BC,KAAO,EAAA;AACLf,oBAAAA,YAAAA,EAAcgB,4CAA6B,CAAA;AAAEP,wBAAAA;qBAAUF,EAAAA,qBAAAA;AACzD;AACF,aAAA,CAAA;AAEA,YAAA,IAAIC,QAAU,EAAA;AACZ,gBAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACC,4BAAAA,CAAAA,CAAoBK,MAAM,CAAC;oBAC/CF,KAAO,EAAA;AAAEG,wBAAAA,EAAAA,EAAIV,SAASU;AAAG,qBAAA;oBACzBC,IAAM,EAAA;AACJnB,wBAAAA,YAAAA,EAAcQ,SAASR,YAAY,CAACoB,MAAM,CACxC,CAACC,iBAA4BA,cAAmBd,KAAAA,qBAAAA;AAEpD;AACF,iBAAA,CAAA;AACF;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,38 @@
1
+ import { difference, keys } from 'lodash/fp';
2
+ import { async } from '@strapi/utils';
3
+ import { WORKFLOW_MODEL_UID } from '../constants/workflows.mjs';
4
+ import { getWorkflowContentTypeFilter } from '../utils/review-workflows.mjs';
5
+
6
+ /**
7
+ * Remove CT references from workflows if the CT is deleted
8
+ */ async function migrateDeletedCTInWorkflows({ oldContentTypes, contentTypes }) {
9
+ const deletedContentTypes = difference(keys(oldContentTypes), keys(contentTypes)) ?? [];
10
+ if (deletedContentTypes.length) {
11
+ await async.map(deletedContentTypes, async (deletedContentTypeUID)=>{
12
+ const workflow = await strapi.db.query(WORKFLOW_MODEL_UID).findOne({
13
+ select: [
14
+ 'id',
15
+ 'contentTypes'
16
+ ],
17
+ where: {
18
+ contentTypes: getWorkflowContentTypeFilter({
19
+ strapi
20
+ }, deletedContentTypeUID)
21
+ }
22
+ });
23
+ if (workflow) {
24
+ await strapi.db.query(WORKFLOW_MODEL_UID).update({
25
+ where: {
26
+ id: workflow.id
27
+ },
28
+ data: {
29
+ contentTypes: workflow.contentTypes.filter((contentTypeUID)=>contentTypeUID !== deletedContentTypeUID)
30
+ }
31
+ });
32
+ }
33
+ });
34
+ }
35
+ }
36
+
37
+ export { migrateDeletedCTInWorkflows as default };
38
+ //# sourceMappingURL=handle-deleted-ct-in-workflows.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-deleted-ct-in-workflows.mjs","sources":["../../../server/src/migrations/handle-deleted-ct-in-workflows.ts"],"sourcesContent":["import { difference, keys } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { WORKFLOW_MODEL_UID } from '../constants/workflows';\nimport { getWorkflowContentTypeFilter } from '../utils/review-workflows';\n\n/**\n * Remove CT references from workflows if the CT is deleted\n */\nasync function migrateDeletedCTInWorkflows({ oldContentTypes, contentTypes }: any) {\n const deletedContentTypes = difference(keys(oldContentTypes), keys(contentTypes)) ?? [];\n\n if (deletedContentTypes.length) {\n await async.map(deletedContentTypes, async (deletedContentTypeUID: unknown) => {\n const workflow = await strapi.db.query(WORKFLOW_MODEL_UID).findOne({\n select: ['id', 'contentTypes'],\n where: {\n contentTypes: getWorkflowContentTypeFilter({ strapi }, deletedContentTypeUID),\n },\n });\n\n if (workflow) {\n await strapi.db.query(WORKFLOW_MODEL_UID).update({\n where: { id: workflow.id },\n data: {\n contentTypes: workflow.contentTypes.filter(\n (contentTypeUID: unknown) => contentTypeUID !== deletedContentTypeUID\n ),\n },\n });\n }\n });\n }\n}\n\nexport default migrateDeletedCTInWorkflows;\n"],"names":["migrateDeletedCTInWorkflows","oldContentTypes","contentTypes","deletedContentTypes","difference","keys","length","async","map","deletedContentTypeUID","workflow","strapi","db","query","WORKFLOW_MODEL_UID","findOne","select","where","getWorkflowContentTypeFilter","update","id","data","filter","contentTypeUID"],"mappings":";;;;;AAKA;;AAEC,IACD,eAAeA,2BAA4B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AAC/E,IAAA,MAAMC,sBAAsBC,UAAWC,CAAAA,IAAAA,CAAKJ,eAAkBI,CAAAA,EAAAA,IAAAA,CAAKH,kBAAkB,EAAE;IAEvF,IAAIC,mBAAAA,CAAoBG,MAAM,EAAE;AAC9B,QAAA,MAAMC,KAAMC,CAAAA,GAAG,CAACL,mBAAAA,EAAqB,OAAOM,qBAAAA,GAAAA;YAC1C,MAAMC,QAAAA,GAAW,MAAMC,MAAOC,CAAAA,EAAE,CAACC,KAAK,CAACC,kBAAoBC,CAAAA,CAAAA,OAAO,CAAC;gBACjEC,MAAQ,EAAA;AAAC,oBAAA,IAAA;AAAM,oBAAA;AAAe,iBAAA;gBAC9BC,KAAO,EAAA;AACLf,oBAAAA,YAAAA,EAAcgB,4BAA6B,CAAA;AAAEP,wBAAAA;qBAAUF,EAAAA,qBAAAA;AACzD;AACF,aAAA,CAAA;AAEA,YAAA,IAAIC,QAAU,EAAA;AACZ,gBAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACC,kBAAAA,CAAAA,CAAoBK,MAAM,CAAC;oBAC/CF,KAAO,EAAA;AAAEG,wBAAAA,EAAAA,EAAIV,SAASU;AAAG,qBAAA;oBACzBC,IAAM,EAAA;AACJnB,wBAAAA,YAAAA,EAAcQ,SAASR,YAAY,CAACoB,MAAM,CACxC,CAACC,iBAA4BA,cAAmBd,KAAAA,qBAAAA;AAEpD;AACF,iBAAA,CAAA;AACF;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var workflows = require('../constants/workflows.js');
5
+
6
+ async function migrateWorkflowsContentTypes({ oldContentTypes, contentTypes }) {
7
+ // Look for RW contentTypes attribute
8
+ const hadContentTypes = !!oldContentTypes?.[workflows.WORKFLOW_MODEL_UID]?.attributes?.contentTypes;
9
+ const hasContentTypes = !!contentTypes?.[workflows.WORKFLOW_MODEL_UID]?.attributes?.contentTypes;
10
+ if (!hadContentTypes && hasContentTypes) {
11
+ // Initialize contentTypes with an empty array and assign only to one
12
+ // workflow the Content Types which were using Review Workflow before.
13
+ await strapi.db.query(workflows.WORKFLOW_MODEL_UID).updateMany({
14
+ data: {
15
+ contentTypes: []
16
+ }
17
+ });
18
+ // Find Content Types which were using Review Workflow before
19
+ const contentTypes = fp.pipe([
20
+ fp.pickBy(fp.get('options.reviewWorkflows')),
21
+ fp.keys
22
+ ])(oldContentTypes);
23
+ if (contentTypes.length) {
24
+ // Update only one workflow with the contentTypes
25
+ // Before this release there was only one workflow, so this operation is safe.
26
+ await strapi.db.query(workflows.WORKFLOW_MODEL_UID).update({
27
+ where: {
28
+ id: {
29
+ $notNull: true
30
+ }
31
+ },
32
+ data: {
33
+ contentTypes
34
+ }
35
+ });
36
+ }
37
+ }
38
+ }
39
+
40
+ module.exports = migrateWorkflowsContentTypes;
41
+ //# sourceMappingURL=multiple-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple-workflows.js","sources":["../../../server/src/migrations/multiple-workflows.ts"],"sourcesContent":["import { get, keys, pickBy, pipe } from 'lodash/fp';\nimport { WORKFLOW_MODEL_UID } from '../constants/workflows';\n\nasync function migrateWorkflowsContentTypes({ oldContentTypes, contentTypes }: any) {\n // Look for RW contentTypes attribute\n const hadContentTypes = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;\n const hasContentTypes = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;\n\n if (!hadContentTypes && hasContentTypes) {\n // Initialize contentTypes with an empty array and assign only to one\n // workflow the Content Types which were using Review Workflow before.\n await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({ data: { contentTypes: [] } });\n\n // Find Content Types which were using Review Workflow before\n const contentTypes = pipe([pickBy(get('options.reviewWorkflows')), keys])(oldContentTypes);\n\n if (contentTypes.length) {\n // Update only one workflow with the contentTypes\n // Before this release there was only one workflow, so this operation is safe.\n await strapi.db\n .query(WORKFLOW_MODEL_UID)\n .update({ where: { id: { $notNull: true } }, data: { contentTypes } });\n }\n }\n}\n\nexport default migrateWorkflowsContentTypes;\n"],"names":["migrateWorkflowsContentTypes","oldContentTypes","contentTypes","hadContentTypes","WORKFLOW_MODEL_UID","attributes","hasContentTypes","strapi","db","query","updateMany","data","pipe","pickBy","get","keys","length","update","where","id","$notNull"],"mappings":";;;;;AAGA,eAAeA,4BAA6B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAEhF,IAAA,MAAMC,kBAAkB,CAAC,CAACF,kBAAkBG,4BAAAA,CAAmB,EAAEC,UAAYH,EAAAA,YAAAA;AAC7E,IAAA,MAAMI,kBAAkB,CAAC,CAACJ,eAAeE,4BAAAA,CAAmB,EAAEC,UAAYH,EAAAA,YAAAA;IAE1E,IAAI,CAACC,mBAAmBG,eAAiB,EAAA;;;AAGvC,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACL,4BAAAA,CAAAA,CAAoBM,UAAU,CAAC;YAAEC,IAAM,EAAA;AAAET,gBAAAA,YAAAA,EAAc;AAAG;AAAE,SAAA,CAAA;;AAGlF,QAAA,MAAMA,eAAeU,OAAK,CAAA;AAACC,YAAAA,SAAAA,CAAOC,MAAI,CAAA,yBAAA,CAAA,CAAA;AAA6BC,YAAAA;SAAK,CAAEd,CAAAA,eAAAA,CAAAA;QAE1E,IAAIC,YAAAA,CAAac,MAAM,EAAE;;;AAGvB,YAAA,MAAMT,OAAOC,EAAE,CACZC,KAAK,CAACL,4BAAAA,CAAAA,CACNa,MAAM,CAAC;gBAAEC,KAAO,EAAA;oBAAEC,EAAI,EAAA;wBAAEC,QAAU,EAAA;AAAK;AAAE,iBAAA;gBAAGT,IAAM,EAAA;AAAET,oBAAAA;AAAa;AAAE,aAAA,CAAA;AACxE;AACF;AACF;;;;"}
@@ -0,0 +1,39 @@
1
+ import { pipe, pickBy, get, keys } from 'lodash/fp';
2
+ import { WORKFLOW_MODEL_UID } from '../constants/workflows.mjs';
3
+
4
+ async function migrateWorkflowsContentTypes({ oldContentTypes, contentTypes }) {
5
+ // Look for RW contentTypes attribute
6
+ const hadContentTypes = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;
7
+ const hasContentTypes = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;
8
+ if (!hadContentTypes && hasContentTypes) {
9
+ // Initialize contentTypes with an empty array and assign only to one
10
+ // workflow the Content Types which were using Review Workflow before.
11
+ await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({
12
+ data: {
13
+ contentTypes: []
14
+ }
15
+ });
16
+ // Find Content Types which were using Review Workflow before
17
+ const contentTypes = pipe([
18
+ pickBy(get('options.reviewWorkflows')),
19
+ keys
20
+ ])(oldContentTypes);
21
+ if (contentTypes.length) {
22
+ // Update only one workflow with the contentTypes
23
+ // Before this release there was only one workflow, so this operation is safe.
24
+ await strapi.db.query(WORKFLOW_MODEL_UID).update({
25
+ where: {
26
+ id: {
27
+ $notNull: true
28
+ }
29
+ },
30
+ data: {
31
+ contentTypes
32
+ }
33
+ });
34
+ }
35
+ }
36
+ }
37
+
38
+ export { migrateWorkflowsContentTypes as default };
39
+ //# sourceMappingURL=multiple-workflows.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple-workflows.mjs","sources":["../../../server/src/migrations/multiple-workflows.ts"],"sourcesContent":["import { get, keys, pickBy, pipe } from 'lodash/fp';\nimport { WORKFLOW_MODEL_UID } from '../constants/workflows';\n\nasync function migrateWorkflowsContentTypes({ oldContentTypes, contentTypes }: any) {\n // Look for RW contentTypes attribute\n const hadContentTypes = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;\n const hasContentTypes = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.contentTypes;\n\n if (!hadContentTypes && hasContentTypes) {\n // Initialize contentTypes with an empty array and assign only to one\n // workflow the Content Types which were using Review Workflow before.\n await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({ data: { contentTypes: [] } });\n\n // Find Content Types which were using Review Workflow before\n const contentTypes = pipe([pickBy(get('options.reviewWorkflows')), keys])(oldContentTypes);\n\n if (contentTypes.length) {\n // Update only one workflow with the contentTypes\n // Before this release there was only one workflow, so this operation is safe.\n await strapi.db\n .query(WORKFLOW_MODEL_UID)\n .update({ where: { id: { $notNull: true } }, data: { contentTypes } });\n }\n }\n}\n\nexport default migrateWorkflowsContentTypes;\n"],"names":["migrateWorkflowsContentTypes","oldContentTypes","contentTypes","hadContentTypes","WORKFLOW_MODEL_UID","attributes","hasContentTypes","strapi","db","query","updateMany","data","pipe","pickBy","get","keys","length","update","where","id","$notNull"],"mappings":";;;AAGA,eAAeA,4BAA6B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAEhF,IAAA,MAAMC,kBAAkB,CAAC,CAACF,kBAAkBG,kBAAAA,CAAmB,EAAEC,UAAYH,EAAAA,YAAAA;AAC7E,IAAA,MAAMI,kBAAkB,CAAC,CAACJ,eAAeE,kBAAAA,CAAmB,EAAEC,UAAYH,EAAAA,YAAAA;IAE1E,IAAI,CAACC,mBAAmBG,eAAiB,EAAA;;;AAGvC,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACL,kBAAAA,CAAAA,CAAoBM,UAAU,CAAC;YAAEC,IAAM,EAAA;AAAET,gBAAAA,YAAAA,EAAc;AAAG;AAAE,SAAA,CAAA;;AAGlF,QAAA,MAAMA,eAAeU,IAAK,CAAA;AAACC,YAAAA,MAAAA,CAAOC,GAAI,CAAA,yBAAA,CAAA,CAAA;AAA6BC,YAAAA;SAAK,CAAEd,CAAAA,eAAAA,CAAAA;QAE1E,IAAIC,YAAAA,CAAac,MAAM,EAAE;;;AAGvB,YAAA,MAAMT,OAAOC,EAAE,CACZC,KAAK,CAACL,kBAAAA,CAAAA,CACNa,MAAM,CAAC;gBAAEC,KAAO,EAAA;oBAAEC,EAAI,EAAA;wBAAEC,QAAU,EAAA;AAAK;AAAE,iBAAA;gBAAGT,IAAM,EAAA;AAAET,oBAAAA;AAAa;AAAE,aAAA,CAAA;AACxE;AACF;AACF;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var workflows = require('../constants/workflows.js');
4
+
5
+ /**
6
+ * Set the default color for stages if the color attribute was added
7
+ */ async function migrateReviewWorkflowStagesColor({ oldContentTypes, contentTypes }) {
8
+ // Look for CT's color attribute
9
+ const hadColor = !!oldContentTypes?.[workflows.STAGE_MODEL_UID]?.attributes?.color;
10
+ const hasColor = !!contentTypes?.[workflows.STAGE_MODEL_UID]?.attributes?.color;
11
+ // Add the default stage color if color attribute was added
12
+ if (!hadColor && hasColor) {
13
+ await strapi.db.query(workflows.STAGE_MODEL_UID).updateMany({
14
+ data: {
15
+ color: workflows.STAGE_DEFAULT_COLOR
16
+ }
17
+ });
18
+ }
19
+ }
20
+
21
+ module.exports = migrateReviewWorkflowStagesColor;
22
+ //# sourceMappingURL=set-stages-default-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-stages-default-color.js","sources":["../../../server/src/migrations/set-stages-default-color.ts"],"sourcesContent":["import { STAGE_DEFAULT_COLOR, STAGE_MODEL_UID } from '../constants/workflows';\n\n/**\n * Set the default color for stages if the color attribute was added\n */\nasync function migrateReviewWorkflowStagesColor({ oldContentTypes, contentTypes }: any) {\n // Look for CT's color attribute\n const hadColor = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.color;\n const hasColor = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.color;\n\n // Add the default stage color if color attribute was added\n if (!hadColor && hasColor) {\n await strapi.db.query(STAGE_MODEL_UID).updateMany({\n data: {\n color: STAGE_DEFAULT_COLOR,\n },\n });\n }\n}\n\nexport default migrateReviewWorkflowStagesColor;\n"],"names":["migrateReviewWorkflowStagesColor","oldContentTypes","contentTypes","hadColor","STAGE_MODEL_UID","attributes","color","hasColor","strapi","db","query","updateMany","data","STAGE_DEFAULT_COLOR"],"mappings":";;;;AAEA;;AAEC,IACD,eAAeA,gCAAiC,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAEpF,IAAA,MAAMC,WAAW,CAAC,CAACF,kBAAkBG,yBAAAA,CAAgB,EAAEC,UAAYC,EAAAA,KAAAA;AACnE,IAAA,MAAMC,WAAW,CAAC,CAACL,eAAeE,yBAAAA,CAAgB,EAAEC,UAAYC,EAAAA,KAAAA;;IAGhE,IAAI,CAACH,YAAYI,QAAU,EAAA;AACzB,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACN,yBAAAA,CAAAA,CAAiBO,UAAU,CAAC;YAChDC,IAAM,EAAA;gBACJN,KAAOO,EAAAA;AACT;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,20 @@
1
+ import { STAGE_MODEL_UID, STAGE_DEFAULT_COLOR } from '../constants/workflows.mjs';
2
+
3
+ /**
4
+ * Set the default color for stages if the color attribute was added
5
+ */ async function migrateReviewWorkflowStagesColor({ oldContentTypes, contentTypes }) {
6
+ // Look for CT's color attribute
7
+ const hadColor = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.color;
8
+ const hasColor = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.color;
9
+ // Add the default stage color if color attribute was added
10
+ if (!hadColor && hasColor) {
11
+ await strapi.db.query(STAGE_MODEL_UID).updateMany({
12
+ data: {
13
+ color: STAGE_DEFAULT_COLOR
14
+ }
15
+ });
16
+ }
17
+ }
18
+
19
+ export { migrateReviewWorkflowStagesColor as default };
20
+ //# sourceMappingURL=set-stages-default-color.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-stages-default-color.mjs","sources":["../../../server/src/migrations/set-stages-default-color.ts"],"sourcesContent":["import { STAGE_DEFAULT_COLOR, STAGE_MODEL_UID } from '../constants/workflows';\n\n/**\n * Set the default color for stages if the color attribute was added\n */\nasync function migrateReviewWorkflowStagesColor({ oldContentTypes, contentTypes }: any) {\n // Look for CT's color attribute\n const hadColor = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.color;\n const hasColor = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.color;\n\n // Add the default stage color if color attribute was added\n if (!hadColor && hasColor) {\n await strapi.db.query(STAGE_MODEL_UID).updateMany({\n data: {\n color: STAGE_DEFAULT_COLOR,\n },\n });\n }\n}\n\nexport default migrateReviewWorkflowStagesColor;\n"],"names":["migrateReviewWorkflowStagesColor","oldContentTypes","contentTypes","hadColor","STAGE_MODEL_UID","attributes","color","hasColor","strapi","db","query","updateMany","data","STAGE_DEFAULT_COLOR"],"mappings":";;AAEA;;AAEC,IACD,eAAeA,gCAAiC,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAEpF,IAAA,MAAMC,WAAW,CAAC,CAACF,kBAAkBG,eAAAA,CAAgB,EAAEC,UAAYC,EAAAA,KAAAA;AACnE,IAAA,MAAMC,WAAW,CAAC,CAACL,eAAeE,eAAAA,CAAgB,EAAEC,UAAYC,EAAAA,KAAAA;;IAGhE,IAAI,CAACH,YAAYI,QAAU,EAAA;AACzB,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACN,eAAAA,CAAAA,CAAiBO,UAAU,CAAC;YAChDC,IAAM,EAAA;gBACJN,KAAOO,EAAAA;AACT;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var workflows = require('../constants/workflows.js');
4
+ var index = require('../utils/index.js');
5
+
6
+ /**
7
+ * Migrate review workflow stages to have RBAC permissions for all roles.
8
+ */ async function migrateReviewWorkflowStagesRoles({ oldContentTypes, contentTypes }) {
9
+ const hadRolePermissions = !!oldContentTypes?.[workflows.STAGE_MODEL_UID]?.attributes?.permissions;
10
+ const hasRolePermissions = !!contentTypes?.[workflows.STAGE_MODEL_UID]?.attributes?.permissions;
11
+ // If the stage content type did not have permissions in the previous version
12
+ // then we set the permissions of every stage to be every current role in the app.
13
+ // This ensures consistent behaviour when upgrading to a strapi version with review workflows RBAC.
14
+ if (!hadRolePermissions && hasRolePermissions) {
15
+ const roleUID = 'admin::role';
16
+ strapi.log.info(`Migrating all existing review workflow stages to have RBAC permissions for all ${roleUID}.`);
17
+ const stagePermissionsService = index.getService('stage-permissions');
18
+ const stages = await strapi.db.query(workflows.STAGE_MODEL_UID).findMany();
19
+ const roles = await strapi.db.query(roleUID).findMany();
20
+ // Collect the permissions to add and group them by stage id.
21
+ const groupedPermissions = {};
22
+ roles.map((role)=>role.id).forEach((roleId)=>{
23
+ stages.map((stage)=>stage.id).forEach((stageId)=>{
24
+ if (!groupedPermissions[stageId]) {
25
+ groupedPermissions[stageId] = [];
26
+ }
27
+ groupedPermissions[stageId].push({
28
+ roleId,
29
+ fromStage: stageId,
30
+ action: workflows.STAGE_TRANSITION_UID
31
+ });
32
+ });
33
+ });
34
+ for (const [stageId, permissions] of Object.entries(groupedPermissions)){
35
+ const numericalStageId = Number(stageId);
36
+ if (Number.isNaN(numericalStageId)) {
37
+ strapi.log.warn(`Unable to apply ${roleUID} migration for ${workflows.STAGE_MODEL_UID} with id ${stageId}. The stage does not have a numerical id.`);
38
+ continue;
39
+ }
40
+ // Register the permissions for this stage
41
+ const stagePermissions = await stagePermissionsService.registerMany(permissions);
42
+ // Update the stage with its new permissions
43
+ await strapi.db.query(workflows.STAGE_MODEL_UID).update({
44
+ where: {
45
+ id: numericalStageId
46
+ },
47
+ data: {
48
+ permissions: stagePermissions.flat().map((permission)=>permission.id)
49
+ }
50
+ });
51
+ }
52
+ }
53
+ }
54
+
55
+ module.exports = migrateReviewWorkflowStagesRoles;
56
+ //# sourceMappingURL=set-stages-roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-stages-roles.js","sources":["../../../server/src/migrations/set-stages-roles.ts"],"sourcesContent":["import { STAGE_TRANSITION_UID, STAGE_MODEL_UID } from '../constants/workflows';\nimport { getService } from '../utils';\n\n/**\n * Migrate review workflow stages to have RBAC permissions for all roles.\n */\nasync function migrateReviewWorkflowStagesRoles({ oldContentTypes, contentTypes }: any) {\n const hadRolePermissions = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;\n const hasRolePermissions = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;\n\n // If the stage content type did not have permissions in the previous version\n // then we set the permissions of every stage to be every current role in the app.\n // This ensures consistent behaviour when upgrading to a strapi version with review workflows RBAC.\n if (!hadRolePermissions && hasRolePermissions) {\n const roleUID = 'admin::role';\n strapi.log.info(\n `Migrating all existing review workflow stages to have RBAC permissions for all ${roleUID}.`\n );\n\n const stagePermissionsService = getService('stage-permissions');\n\n const stages = await strapi.db.query(STAGE_MODEL_UID).findMany();\n const roles = await strapi.db.query(roleUID).findMany();\n\n // Collect the permissions to add and group them by stage id.\n const groupedPermissions = {} as any;\n roles\n .map((role) => role.id)\n .forEach((roleId) => {\n stages\n .map((stage) => stage.id)\n .forEach((stageId) => {\n if (!groupedPermissions[stageId]) {\n groupedPermissions[stageId] = [];\n }\n\n groupedPermissions[stageId].push({\n roleId,\n fromStage: stageId,\n action: STAGE_TRANSITION_UID,\n });\n });\n });\n\n for (const [stageId, permissions] of Object.entries(groupedPermissions)) {\n const numericalStageId = Number(stageId);\n\n if (Number.isNaN(numericalStageId)) {\n strapi.log.warn(\n `Unable to apply ${roleUID} migration for ${STAGE_MODEL_UID} with id ${stageId}. The stage does not have a numerical id.`\n );\n continue;\n }\n\n // Register the permissions for this stage\n const stagePermissions = await stagePermissionsService.registerMany(permissions);\n\n // Update the stage with its new permissions\n await strapi.db.query(STAGE_MODEL_UID).update({\n where: { id: numericalStageId },\n data: {\n permissions: stagePermissions.flat().map((permission: any) => permission.id),\n },\n });\n }\n }\n}\n\nexport default migrateReviewWorkflowStagesRoles;\n"],"names":["migrateReviewWorkflowStagesRoles","oldContentTypes","contentTypes","hadRolePermissions","STAGE_MODEL_UID","attributes","permissions","hasRolePermissions","roleUID","strapi","log","info","stagePermissionsService","getService","stages","db","query","findMany","roles","groupedPermissions","map","role","id","forEach","roleId","stage","stageId","push","fromStage","action","STAGE_TRANSITION_UID","Object","entries","numericalStageId","Number","isNaN","warn","stagePermissions","registerMany","update","where","data","flat","permission"],"mappings":";;;;;AAGA;;AAEC,IACD,eAAeA,gCAAiC,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACpF,IAAA,MAAMC,qBAAqB,CAAC,CAACF,kBAAkBG,yBAAAA,CAAgB,EAAEC,UAAYC,EAAAA,WAAAA;AAC7E,IAAA,MAAMC,qBAAqB,CAAC,CAACL,eAAeE,yBAAAA,CAAgB,EAAEC,UAAYC,EAAAA,WAAAA;;;;IAK1E,IAAI,CAACH,sBAAsBI,kBAAoB,EAAA;AAC7C,QAAA,MAAMC,OAAU,GAAA,aAAA;QAChBC,MAAOC,CAAAA,GAAG,CAACC,IAAI,CACb,CAAC,+EAA+E,EAAEH,OAAQ,CAAA,CAAC,CAAC,CAAA;AAG9F,QAAA,MAAMI,0BAA0BC,gBAAW,CAAA,mBAAA,CAAA;QAE3C,MAAMC,MAAAA,GAAS,MAAML,MAAOM,CAAAA,EAAE,CAACC,KAAK,CAACZ,2BAAiBa,QAAQ,EAAA;QAC9D,MAAMC,KAAAA,GAAQ,MAAMT,MAAOM,CAAAA,EAAE,CAACC,KAAK,CAACR,SAASS,QAAQ,EAAA;;AAGrD,QAAA,MAAME,qBAAqB,EAAC;QAC5BD,KACGE,CAAAA,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,EAAE,CAAA,CACrBC,OAAO,CAAC,CAACC,MAAAA,GAAAA;YACRV,MACGM,CAAAA,GAAG,CAAC,CAACK,KAAAA,GAAUA,MAAMH,EAAE,CAAA,CACvBC,OAAO,CAAC,CAACG,OAAAA,GAAAA;AACR,gBAAA,IAAI,CAACP,kBAAkB,CAACO,OAAAA,CAAQ,EAAE;oBAChCP,kBAAkB,CAACO,OAAQ,CAAA,GAAG,EAAE;AAClC;AAEAP,gBAAAA,kBAAkB,CAACO,OAAAA,CAAQ,CAACC,IAAI,CAAC;AAC/BH,oBAAAA,MAAAA;oBACAI,SAAWF,EAAAA,OAAAA;oBACXG,MAAQC,EAAAA;AACV,iBAAA,CAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA;QAEF,KAAK,MAAM,CAACJ,OAASpB,EAAAA,WAAAA,CAAY,IAAIyB,MAAOC,CAAAA,OAAO,CAACb,kBAAqB,CAAA,CAAA;AACvE,YAAA,MAAMc,mBAAmBC,MAAOR,CAAAA,OAAAA,CAAAA;YAEhC,IAAIQ,MAAAA,CAAOC,KAAK,CAACF,gBAAmB,CAAA,EAAA;AAClCxB,gBAAAA,MAAAA,CAAOC,GAAG,CAAC0B,IAAI,CACb,CAAC,gBAAgB,EAAE5B,OAAQ,CAAA,eAAe,EAAEJ,yBAAgB,CAAA,SAAS,EAAEsB,OAAAA,CAAQ,yCAAyC,CAAC,CAAA;AAE3H,gBAAA;AACF;;AAGA,YAAA,MAAMW,gBAAmB,GAAA,MAAMzB,uBAAwB0B,CAAAA,YAAY,CAAChC,WAAAA,CAAAA;;AAGpE,YAAA,MAAMG,OAAOM,EAAE,CAACC,KAAK,CAACZ,yBAAAA,CAAAA,CAAiBmC,MAAM,CAAC;gBAC5CC,KAAO,EAAA;oBAAElB,EAAIW,EAAAA;AAAiB,iBAAA;gBAC9BQ,IAAM,EAAA;oBACJnC,WAAa+B,EAAAA,gBAAAA,CAAiBK,IAAI,EAAGtB,CAAAA,GAAG,CAAC,CAACuB,UAAAA,GAAoBA,WAAWrB,EAAE;AAC7E;AACF,aAAA,CAAA;AACF;AACF;AACF;;;;"}
@@ -0,0 +1,54 @@
1
+ import { STAGE_MODEL_UID, STAGE_TRANSITION_UID } from '../constants/workflows.mjs';
2
+ import { getService } from '../utils/index.mjs';
3
+
4
+ /**
5
+ * Migrate review workflow stages to have RBAC permissions for all roles.
6
+ */ async function migrateReviewWorkflowStagesRoles({ oldContentTypes, contentTypes }) {
7
+ const hadRolePermissions = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;
8
+ const hasRolePermissions = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;
9
+ // If the stage content type did not have permissions in the previous version
10
+ // then we set the permissions of every stage to be every current role in the app.
11
+ // This ensures consistent behaviour when upgrading to a strapi version with review workflows RBAC.
12
+ if (!hadRolePermissions && hasRolePermissions) {
13
+ const roleUID = 'admin::role';
14
+ strapi.log.info(`Migrating all existing review workflow stages to have RBAC permissions for all ${roleUID}.`);
15
+ const stagePermissionsService = getService('stage-permissions');
16
+ const stages = await strapi.db.query(STAGE_MODEL_UID).findMany();
17
+ const roles = await strapi.db.query(roleUID).findMany();
18
+ // Collect the permissions to add and group them by stage id.
19
+ const groupedPermissions = {};
20
+ roles.map((role)=>role.id).forEach((roleId)=>{
21
+ stages.map((stage)=>stage.id).forEach((stageId)=>{
22
+ if (!groupedPermissions[stageId]) {
23
+ groupedPermissions[stageId] = [];
24
+ }
25
+ groupedPermissions[stageId].push({
26
+ roleId,
27
+ fromStage: stageId,
28
+ action: STAGE_TRANSITION_UID
29
+ });
30
+ });
31
+ });
32
+ for (const [stageId, permissions] of Object.entries(groupedPermissions)){
33
+ const numericalStageId = Number(stageId);
34
+ if (Number.isNaN(numericalStageId)) {
35
+ strapi.log.warn(`Unable to apply ${roleUID} migration for ${STAGE_MODEL_UID} with id ${stageId}. The stage does not have a numerical id.`);
36
+ continue;
37
+ }
38
+ // Register the permissions for this stage
39
+ const stagePermissions = await stagePermissionsService.registerMany(permissions);
40
+ // Update the stage with its new permissions
41
+ await strapi.db.query(STAGE_MODEL_UID).update({
42
+ where: {
43
+ id: numericalStageId
44
+ },
45
+ data: {
46
+ permissions: stagePermissions.flat().map((permission)=>permission.id)
47
+ }
48
+ });
49
+ }
50
+ }
51
+ }
52
+
53
+ export { migrateReviewWorkflowStagesRoles as default };
54
+ //# sourceMappingURL=set-stages-roles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-stages-roles.mjs","sources":["../../../server/src/migrations/set-stages-roles.ts"],"sourcesContent":["import { STAGE_TRANSITION_UID, STAGE_MODEL_UID } from '../constants/workflows';\nimport { getService } from '../utils';\n\n/**\n * Migrate review workflow stages to have RBAC permissions for all roles.\n */\nasync function migrateReviewWorkflowStagesRoles({ oldContentTypes, contentTypes }: any) {\n const hadRolePermissions = !!oldContentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;\n const hasRolePermissions = !!contentTypes?.[STAGE_MODEL_UID]?.attributes?.permissions;\n\n // If the stage content type did not have permissions in the previous version\n // then we set the permissions of every stage to be every current role in the app.\n // This ensures consistent behaviour when upgrading to a strapi version with review workflows RBAC.\n if (!hadRolePermissions && hasRolePermissions) {\n const roleUID = 'admin::role';\n strapi.log.info(\n `Migrating all existing review workflow stages to have RBAC permissions for all ${roleUID}.`\n );\n\n const stagePermissionsService = getService('stage-permissions');\n\n const stages = await strapi.db.query(STAGE_MODEL_UID).findMany();\n const roles = await strapi.db.query(roleUID).findMany();\n\n // Collect the permissions to add and group them by stage id.\n const groupedPermissions = {} as any;\n roles\n .map((role) => role.id)\n .forEach((roleId) => {\n stages\n .map((stage) => stage.id)\n .forEach((stageId) => {\n if (!groupedPermissions[stageId]) {\n groupedPermissions[stageId] = [];\n }\n\n groupedPermissions[stageId].push({\n roleId,\n fromStage: stageId,\n action: STAGE_TRANSITION_UID,\n });\n });\n });\n\n for (const [stageId, permissions] of Object.entries(groupedPermissions)) {\n const numericalStageId = Number(stageId);\n\n if (Number.isNaN(numericalStageId)) {\n strapi.log.warn(\n `Unable to apply ${roleUID} migration for ${STAGE_MODEL_UID} with id ${stageId}. The stage does not have a numerical id.`\n );\n continue;\n }\n\n // Register the permissions for this stage\n const stagePermissions = await stagePermissionsService.registerMany(permissions);\n\n // Update the stage with its new permissions\n await strapi.db.query(STAGE_MODEL_UID).update({\n where: { id: numericalStageId },\n data: {\n permissions: stagePermissions.flat().map((permission: any) => permission.id),\n },\n });\n }\n }\n}\n\nexport default migrateReviewWorkflowStagesRoles;\n"],"names":["migrateReviewWorkflowStagesRoles","oldContentTypes","contentTypes","hadRolePermissions","STAGE_MODEL_UID","attributes","permissions","hasRolePermissions","roleUID","strapi","log","info","stagePermissionsService","getService","stages","db","query","findMany","roles","groupedPermissions","map","role","id","forEach","roleId","stage","stageId","push","fromStage","action","STAGE_TRANSITION_UID","Object","entries","numericalStageId","Number","isNaN","warn","stagePermissions","registerMany","update","where","data","flat","permission"],"mappings":";;;AAGA;;AAEC,IACD,eAAeA,gCAAiC,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACpF,IAAA,MAAMC,qBAAqB,CAAC,CAACF,kBAAkBG,eAAAA,CAAgB,EAAEC,UAAYC,EAAAA,WAAAA;AAC7E,IAAA,MAAMC,qBAAqB,CAAC,CAACL,eAAeE,eAAAA,CAAgB,EAAEC,UAAYC,EAAAA,WAAAA;;;;IAK1E,IAAI,CAACH,sBAAsBI,kBAAoB,EAAA;AAC7C,QAAA,MAAMC,OAAU,GAAA,aAAA;QAChBC,MAAOC,CAAAA,GAAG,CAACC,IAAI,CACb,CAAC,+EAA+E,EAAEH,OAAQ,CAAA,CAAC,CAAC,CAAA;AAG9F,QAAA,MAAMI,0BAA0BC,UAAW,CAAA,mBAAA,CAAA;QAE3C,MAAMC,MAAAA,GAAS,MAAML,MAAOM,CAAAA,EAAE,CAACC,KAAK,CAACZ,iBAAiBa,QAAQ,EAAA;QAC9D,MAAMC,KAAAA,GAAQ,MAAMT,MAAOM,CAAAA,EAAE,CAACC,KAAK,CAACR,SAASS,QAAQ,EAAA;;AAGrD,QAAA,MAAME,qBAAqB,EAAC;QAC5BD,KACGE,CAAAA,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,EAAE,CAAA,CACrBC,OAAO,CAAC,CAACC,MAAAA,GAAAA;YACRV,MACGM,CAAAA,GAAG,CAAC,CAACK,KAAAA,GAAUA,MAAMH,EAAE,CAAA,CACvBC,OAAO,CAAC,CAACG,OAAAA,GAAAA;AACR,gBAAA,IAAI,CAACP,kBAAkB,CAACO,OAAAA,CAAQ,EAAE;oBAChCP,kBAAkB,CAACO,OAAQ,CAAA,GAAG,EAAE;AAClC;AAEAP,gBAAAA,kBAAkB,CAACO,OAAAA,CAAQ,CAACC,IAAI,CAAC;AAC/BH,oBAAAA,MAAAA;oBACAI,SAAWF,EAAAA,OAAAA;oBACXG,MAAQC,EAAAA;AACV,iBAAA,CAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA;QAEF,KAAK,MAAM,CAACJ,OAASpB,EAAAA,WAAAA,CAAY,IAAIyB,MAAOC,CAAAA,OAAO,CAACb,kBAAqB,CAAA,CAAA;AACvE,YAAA,MAAMc,mBAAmBC,MAAOR,CAAAA,OAAAA,CAAAA;YAEhC,IAAIQ,MAAAA,CAAOC,KAAK,CAACF,gBAAmB,CAAA,EAAA;AAClCxB,gBAAAA,MAAAA,CAAOC,GAAG,CAAC0B,IAAI,CACb,CAAC,gBAAgB,EAAE5B,OAAQ,CAAA,eAAe,EAAEJ,eAAgB,CAAA,SAAS,EAAEsB,OAAAA,CAAQ,yCAAyC,CAAC,CAAA;AAE3H,gBAAA;AACF;;AAGA,YAAA,MAAMW,gBAAmB,GAAA,MAAMzB,uBAAwB0B,CAAAA,YAAY,CAAChC,WAAAA,CAAAA;;AAGpE,YAAA,MAAMG,OAAOM,EAAE,CAACC,KAAK,CAACZ,eAAAA,CAAAA,CAAiBmC,MAAM,CAAC;gBAC5CC,KAAO,EAAA;oBAAElB,EAAIW,EAAAA;AAAiB,iBAAA;gBAC9BQ,IAAM,EAAA;oBACJnC,WAAa+B,EAAAA,gBAAAA,CAAiBK,IAAI,EAAGtB,CAAAA,GAAG,CAAC,CAACuB,UAAAA,GAAoBA,WAAWrB,EAAE;AAC7E;AACF,aAAA,CAAA;AACF;AACF;AACF;;;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var workflows = require('../constants/workflows.js');
4
+ var defaultWorkflow = require('../constants/default-workflow.json.js');
5
+
6
+ /**
7
+ * Multiple workflows introduced the ability to name a workflow.
8
+ * This migration adds the default workflow name if the name attribute was added.
9
+ */ async function migrateReviewWorkflowName({ oldContentTypes, contentTypes }) {
10
+ // Look for RW name attribute
11
+ const hadName = !!oldContentTypes?.[workflows.WORKFLOW_MODEL_UID]?.attributes?.name;
12
+ const hasName = !!contentTypes?.[workflows.WORKFLOW_MODEL_UID]?.attributes?.name;
13
+ // Add the default workflow name if name attribute was added
14
+ if (!hadName && hasName) {
15
+ await strapi.db.query(workflows.WORKFLOW_MODEL_UID).updateMany({
16
+ where: {
17
+ name: {
18
+ $null: true
19
+ }
20
+ },
21
+ data: {
22
+ name: defaultWorkflow.default.name
23
+ }
24
+ });
25
+ }
26
+ }
27
+
28
+ module.exports = migrateReviewWorkflowName;
29
+ //# sourceMappingURL=set-workflow-default-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-workflow-default-name.js","sources":["../../../server/src/migrations/set-workflow-default-name.ts"],"sourcesContent":["import { WORKFLOW_MODEL_UID } from '../constants/workflows';\nimport defaultWorkflow from '../constants/default-workflow.json';\n\n/**\n * Multiple workflows introduced the ability to name a workflow.\n * This migration adds the default workflow name if the name attribute was added.\n */\nasync function migrateReviewWorkflowName({ oldContentTypes, contentTypes }: any) {\n // Look for RW name attribute\n const hadName = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;\n const hasName = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;\n\n // Add the default workflow name if name attribute was added\n if (!hadName && hasName) {\n await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({\n where: {\n name: { $null: true },\n },\n data: {\n name: defaultWorkflow.name,\n },\n });\n }\n}\n\nexport default migrateReviewWorkflowName;\n"],"names":["migrateReviewWorkflowName","oldContentTypes","contentTypes","hadName","WORKFLOW_MODEL_UID","attributes","name","hasName","strapi","db","query","updateMany","where","$null","data","defaultWorkflow"],"mappings":";;;;;AAGA;;;AAGC,IACD,eAAeA,yBAA0B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAE7E,IAAA,MAAMC,UAAU,CAAC,CAACF,kBAAkBG,4BAAAA,CAAmB,EAAEC,UAAYC,EAAAA,IAAAA;AACrE,IAAA,MAAMC,UAAU,CAAC,CAACL,eAAeE,4BAAAA,CAAmB,EAAEC,UAAYC,EAAAA,IAAAA;;IAGlE,IAAI,CAACH,WAAWI,OAAS,EAAA;AACvB,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACN,4BAAAA,CAAAA,CAAoBO,UAAU,CAAC;YACnDC,KAAO,EAAA;gBACLN,IAAM,EAAA;oBAAEO,KAAO,EAAA;AAAK;AACtB,aAAA;YACAC,IAAM,EAAA;AACJR,gBAAAA,IAAAA,EAAMS,wBAAgBT;AACxB;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,27 @@
1
+ import { WORKFLOW_MODEL_UID } from '../constants/workflows.mjs';
2
+ import defaultWorkflow from '../constants/default-workflow.json.mjs';
3
+
4
+ /**
5
+ * Multiple workflows introduced the ability to name a workflow.
6
+ * This migration adds the default workflow name if the name attribute was added.
7
+ */ async function migrateReviewWorkflowName({ oldContentTypes, contentTypes }) {
8
+ // Look for RW name attribute
9
+ const hadName = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;
10
+ const hasName = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;
11
+ // Add the default workflow name if name attribute was added
12
+ if (!hadName && hasName) {
13
+ await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({
14
+ where: {
15
+ name: {
16
+ $null: true
17
+ }
18
+ },
19
+ data: {
20
+ name: defaultWorkflow.name
21
+ }
22
+ });
23
+ }
24
+ }
25
+
26
+ export { migrateReviewWorkflowName as default };
27
+ //# sourceMappingURL=set-workflow-default-name.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-workflow-default-name.mjs","sources":["../../../server/src/migrations/set-workflow-default-name.ts"],"sourcesContent":["import { WORKFLOW_MODEL_UID } from '../constants/workflows';\nimport defaultWorkflow from '../constants/default-workflow.json';\n\n/**\n * Multiple workflows introduced the ability to name a workflow.\n * This migration adds the default workflow name if the name attribute was added.\n */\nasync function migrateReviewWorkflowName({ oldContentTypes, contentTypes }: any) {\n // Look for RW name attribute\n const hadName = !!oldContentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;\n const hasName = !!contentTypes?.[WORKFLOW_MODEL_UID]?.attributes?.name;\n\n // Add the default workflow name if name attribute was added\n if (!hadName && hasName) {\n await strapi.db.query(WORKFLOW_MODEL_UID).updateMany({\n where: {\n name: { $null: true },\n },\n data: {\n name: defaultWorkflow.name,\n },\n });\n }\n}\n\nexport default migrateReviewWorkflowName;\n"],"names":["migrateReviewWorkflowName","oldContentTypes","contentTypes","hadName","WORKFLOW_MODEL_UID","attributes","name","hasName","strapi","db","query","updateMany","where","$null","data","defaultWorkflow"],"mappings":";;;AAGA;;;AAGC,IACD,eAAeA,yBAA0B,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;;AAE7E,IAAA,MAAMC,UAAU,CAAC,CAACF,kBAAkBG,kBAAAA,CAAmB,EAAEC,UAAYC,EAAAA,IAAAA;AACrE,IAAA,MAAMC,UAAU,CAAC,CAACL,eAAeE,kBAAAA,CAAmB,EAAEC,UAAYC,EAAAA,IAAAA;;IAGlE,IAAI,CAACH,WAAWI,OAAS,EAAA;AACvB,QAAA,MAAMC,OAAOC,EAAE,CAACC,KAAK,CAACN,kBAAAA,CAAAA,CAAoBO,UAAU,CAAC;YACnDC,KAAO,EAAA;gBACLN,IAAM,EAAA;oBAAEO,KAAO,EAAA;AAAK;AACtB,aAAA;YACAC,IAAM,EAAA;AACJR,gBAAAA,IAAAA,EAAMS,gBAAgBT;AACxB;AACF,SAAA,CAAA;AACF;AACF;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var semver = require('semver');
4
+ var fp = require('lodash/fp');
5
+ var workflows = require('../constants/workflows.js');
6
+
7
+ function checkVersionThreshold(startVersion, currentVersion, thresholdVersion) {
8
+ return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);
9
+ }
10
+ /**
11
+ * Shorten strapi stage name
12
+ */ async function migrateStageAttribute({ oldContentTypes, contentTypes }) {
13
+ const getRWVersion = fp.getOr('0.0.0', `${workflows.STAGE_MODEL_UID}.options.version`);
14
+ const oldRWVersion = getRWVersion(oldContentTypes);
15
+ const currentRWVersion = getRWVersion(contentTypes);
16
+ checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');
17
+ // TODO: Find tables with something else than `findTables` function
18
+ // if (migrationNeeded) {
19
+ // const oldAttributeTableName = 'strapi_review_workflows_stage';
20
+ // const newAttributeTableName = 'strapi_stage';
21
+ // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));
22
+ // await async.map(tables, async (tableName: string) => {
23
+ // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);
24
+ // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);
25
+ // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.
26
+ // if (alreadyHasNextTable) {
27
+ // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);
28
+ // if (!dataInTable.length) {
29
+ // await strapi.db.connection.schema.dropTable(newTableName);
30
+ // }
31
+ // }
32
+ // try {
33
+ // await strapi.db.connection.schema.renameTable(tableName, newTableName);
34
+ // } catch (e: any) {
35
+ // strapi.log.warn(
36
+ // `An error occurred during the migration of ${tableName} table to ${newTableName}.\nIf ${newTableName} already exists, migration can't be done automatically.`
37
+ // );
38
+ // strapi.log.warn(e.message);
39
+ // }
40
+ // });
41
+ // }
42
+ }
43
+
44
+ module.exports = migrateStageAttribute;
45
+ //# sourceMappingURL=shorten-stage-attribute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shorten-stage-attribute.js","sources":["../../../server/src/migrations/shorten-stage-attribute.ts"],"sourcesContent":["import semver from 'semver';\nimport { getOr } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { STAGE_MODEL_UID } from '../constants/workflows';\n\nfunction checkVersionThreshold(\n startVersion: string,\n currentVersion: string,\n thresholdVersion: string\n) {\n return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);\n}\n\n/**\n * Shorten strapi stage name\n */\nasync function migrateStageAttribute({ oldContentTypes, contentTypes }: any) {\n const getRWVersion = getOr('0.0.0', `${STAGE_MODEL_UID}.options.version`);\n const oldRWVersion = getRWVersion(oldContentTypes);\n const currentRWVersion = getRWVersion(contentTypes);\n\n const migrationNeeded = checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');\n\n // TODO: Find tables with something else than `findTables` function\n // if (migrationNeeded) {\n // const oldAttributeTableName = 'strapi_review_workflows_stage';\n // const newAttributeTableName = 'strapi_stage';\n // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));\n\n // await async.map(tables, async (tableName: string) => {\n // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);\n // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);\n\n // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.\n // if (alreadyHasNextTable) {\n // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);\n // if (!dataInTable.length) {\n // await strapi.db.connection.schema.dropTable(newTableName);\n // }\n // }\n\n // try {\n // await strapi.db.connection.schema.renameTable(tableName, newTableName);\n // } catch (e: any) {\n // strapi.log.warn(\n // `An error occurred during the migration of ${tableName} table to ${newTableName}.\\nIf ${newTableName} already exists, migration can't be done automatically.`\n // );\n // strapi.log.warn(e.message);\n // }\n // });\n // }\n}\n\nexport default migrateStageAttribute;\n"],"names":["checkVersionThreshold","startVersion","currentVersion","thresholdVersion","semver","gte","lt","migrateStageAttribute","oldContentTypes","contentTypes","getRWVersion","getOr","STAGE_MODEL_UID","oldRWVersion","currentRWVersion"],"mappings":";;;;;;AAKA,SAASA,qBACPC,CAAAA,YAAoB,EACpBC,cAAsB,EACtBC,gBAAwB,EAAA;IAExB,OAAOC,MAAAA,CAAOC,GAAG,CAACH,cAAAA,EAAgBC,qBAAqBC,MAAOE,CAAAA,EAAE,CAACL,YAAcE,EAAAA,gBAAAA,CAAAA;AACjF;AAEA;;AAEC,IACD,eAAeI,qBAAsB,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACzE,IAAA,MAAMC,eAAeC,QAAM,CAAA,OAAA,EAAS,CAAC,EAAEC,yBAAAA,CAAgB,gBAAgB,CAAC,CAAA;AACxE,IAAA,MAAMC,eAAeH,YAAaF,CAAAA,eAAAA,CAAAA;AAClC,IAAA,MAAMM,mBAAmBJ,YAAaD,CAAAA,YAAAA,CAAAA;IAEdT,qBAAsBa,CAAAA,YAAAA,EAAcC,gBAAkB,EAAA,OAAA;AAE9E;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;;;;"}