@webiny/api-apw 0.0.0-unstable.1e66d121db → 0.0.0-unstable.2696f9d9e8

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 (267) hide show
  1. package/ApwChangeRequestNotification.d.ts +27 -0
  2. package/ApwChangeRequestNotification.js +28 -0
  3. package/ApwChangeRequestNotification.js.map +1 -0
  4. package/ApwCommentNotification.d.ts +27 -0
  5. package/ApwCommentNotification.js +28 -0
  6. package/ApwCommentNotification.js.map +1 -0
  7. package/ApwContentReviewNotification.d.ts +26 -0
  8. package/ApwContentReviewNotification.js +28 -0
  9. package/ApwContentReviewNotification.js.map +1 -0
  10. package/ApwContentUrlPlugin.d.ts +19 -0
  11. package/ApwContentUrlPlugin.js +28 -0
  12. package/ApwContentUrlPlugin.js.map +1 -0
  13. package/ContentApwSettingsPlugin.js +5 -9
  14. package/ContentApwSettingsPlugin.js.map +1 -1
  15. package/README.md +3 -3
  16. package/crud/createChangeRequestMethods.js +7 -12
  17. package/crud/createChangeRequestMethods.js.map +1 -1
  18. package/crud/createCommentMethods.js +7 -13
  19. package/crud/createCommentMethods.js.map +1 -1
  20. package/crud/createContentReviewMethods.js +83 -111
  21. package/crud/createContentReviewMethods.js.map +1 -1
  22. package/crud/createReviewerMethods.js +7 -13
  23. package/crud/createReviewerMethods.js.map +1 -1
  24. package/crud/createWorkflowMethods.js +7 -18
  25. package/crud/createWorkflowMethods.js.map +1 -1
  26. package/crud/index.js +5 -29
  27. package/crud/index.js.map +1 -1
  28. package/crud/utils.js +6 -33
  29. package/crud/utils.js.map +1 -1
  30. package/index.d.ts +2 -3
  31. package/index.js +6 -16
  32. package/index.js.map +1 -1
  33. package/package.json +40 -47
  34. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +4 -19
  35. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -1
  36. package/plugins/cms/apwEntryPlugins.js +8 -13
  37. package/plugins/cms/apwEntryPlugins.js.map +1 -1
  38. package/plugins/cms/index.js +7 -10
  39. package/plugins/cms/index.js.map +1 -1
  40. package/plugins/cms/linkContentReviewToEntry.js +4 -20
  41. package/plugins/cms/linkContentReviewToEntry.js.map +1 -1
  42. package/plugins/cms/linkWorkflowToEntry.js +17 -45
  43. package/plugins/cms/linkWorkflowToEntry.js.map +1 -1
  44. package/plugins/cms/notifications/changeRequestNotification.d.ts +1 -0
  45. package/plugins/cms/notifications/changeRequestNotification.js +33 -0
  46. package/plugins/cms/notifications/changeRequestNotification.js.map +1 -0
  47. package/plugins/cms/notifications/commentNotification.d.ts +1 -0
  48. package/plugins/cms/notifications/commentNotification.js +33 -0
  49. package/plugins/cms/notifications/commentNotification.js.map +1 -0
  50. package/plugins/cms/notifications/contentReviewNotification.d.ts +1 -0
  51. package/plugins/cms/notifications/contentReviewNotification.js +33 -0
  52. package/plugins/cms/notifications/contentReviewNotification.js.map +1 -0
  53. package/plugins/cms/notifications/contentUrl.d.ts +8 -0
  54. package/plugins/cms/notifications/contentUrl.js +55 -0
  55. package/plugins/cms/notifications/contentUrl.js.map +1 -0
  56. package/plugins/cms/triggerContentReview.js +5 -18
  57. package/plugins/cms/triggerContentReview.js.map +1 -1
  58. package/plugins/cms/updateContentReviewStatus.js +14 -30
  59. package/plugins/cms/updateContentReviewStatus.js.map +1 -1
  60. package/plugins/cms/utils.d.ts +3 -2
  61. package/plugins/cms/utils.js +23 -60
  62. package/plugins/cms/utils.js.map +1 -1
  63. package/plugins/context.d.ts +0 -1
  64. package/plugins/context.js +2 -45
  65. package/plugins/context.js.map +1 -1
  66. package/plugins/graphql/changeRequest.gql.js +16 -19
  67. package/plugins/graphql/changeRequest.gql.js.map +1 -1
  68. package/plugins/graphql/comment.gql.js +41 -42
  69. package/plugins/graphql/comment.gql.js.map +1 -1
  70. package/plugins/graphql/contentReview.gql.js +25 -34
  71. package/plugins/graphql/contentReview.gql.js.map +1 -1
  72. package/plugins/graphql/reviewer.gql.js +17 -19
  73. package/plugins/graphql/reviewer.gql.js.map +1 -1
  74. package/plugins/graphql/utils.d.ts +2 -0
  75. package/plugins/graphql/utils.js +12 -0
  76. package/plugins/graphql/utils.js.map +1 -0
  77. package/plugins/graphql/workflow.gql.js +15 -19
  78. package/plugins/graphql/workflow.gql.js.map +1 -1
  79. package/plugins/graphql.js +5 -18
  80. package/plugins/graphql.js.map +1 -1
  81. package/plugins/hooks/createReviewerFromIdentity.js +28 -15
  82. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -1
  83. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +3 -9
  84. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -1
  85. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -8
  86. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -1
  87. package/plugins/hooks/index.js +4 -13
  88. package/plugins/hooks/index.js.map +1 -1
  89. package/plugins/hooks/initializeContentReviewSteps.js +15 -20
  90. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -1
  91. package/plugins/hooks/initializeNotifications.d.ts +2 -0
  92. package/plugins/hooks/initializeNotifications.js +17 -0
  93. package/plugins/hooks/initializeNotifications.js.map +1 -0
  94. package/plugins/hooks/listContentReviews.d.ts +1 -1
  95. package/plugins/hooks/listContentReviews.js +11 -33
  96. package/plugins/hooks/listContentReviews.js.map +1 -1
  97. package/plugins/hooks/notifications/appUrl.d.ts +2 -0
  98. package/plugins/hooks/notifications/appUrl.js +20 -0
  99. package/plugins/hooks/notifications/appUrl.js.map +1 -0
  100. package/plugins/hooks/notifications/changeRequestAfterCreate.d.ts +2 -0
  101. package/plugins/hooks/notifications/changeRequestAfterCreate.js +113 -0
  102. package/plugins/hooks/notifications/changeRequestAfterCreate.js.map +1 -0
  103. package/plugins/hooks/notifications/changeRequestUrl.d.ts +8 -0
  104. package/plugins/hooks/notifications/changeRequestUrl.js +29 -0
  105. package/plugins/hooks/notifications/changeRequestUrl.js.map +1 -0
  106. package/plugins/hooks/notifications/commentAfterCreate.d.ts +2 -0
  107. package/plugins/hooks/notifications/commentAfterCreate.js +124 -0
  108. package/plugins/hooks/notifications/commentAfterCreate.js.map +1 -0
  109. package/plugins/hooks/notifications/commentUrl.d.ts +8 -0
  110. package/plugins/hooks/notifications/commentUrl.js +29 -0
  111. package/plugins/hooks/notifications/commentUrl.js.map +1 -0
  112. package/plugins/hooks/notifications/contentReviewAfterCreate.d.ts +2 -0
  113. package/plugins/hooks/notifications/contentReviewAfterCreate.js +96 -0
  114. package/plugins/hooks/notifications/contentReviewAfterCreate.js.map +1 -0
  115. package/plugins/hooks/notifications/contentReviewUrl.d.ts +7 -0
  116. package/plugins/hooks/notifications/contentReviewUrl.js +28 -0
  117. package/plugins/hooks/notifications/contentReviewUrl.js.map +1 -0
  118. package/plugins/hooks/notifications/contentUrl.d.ts +7 -0
  119. package/plugins/hooks/notifications/contentUrl.js +26 -0
  120. package/plugins/hooks/notifications/contentUrl.js.map +1 -0
  121. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.d.ts +11 -0
  122. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +23 -0
  123. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js.map +1 -0
  124. package/plugins/hooks/notifications/lastCommentNotificationPlugin.d.ts +11 -0
  125. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +23 -0
  126. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js.map +1 -0
  127. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.d.ts +11 -0
  128. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +23 -0
  129. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js.map +1 -0
  130. package/plugins/hooks/notifications/reviewers.d.ts +15 -0
  131. package/plugins/hooks/notifications/reviewers.js +47 -0
  132. package/plugins/hooks/notifications/reviewers.js.map +1 -0
  133. package/plugins/hooks/notifications/sendChangeRequestNotification.d.ts +2 -0
  134. package/plugins/hooks/notifications/sendChangeRequestNotification.js +43 -0
  135. package/plugins/hooks/notifications/sendChangeRequestNotification.js.map +1 -0
  136. package/plugins/hooks/notifications/sendCommentNotification.d.ts +2 -0
  137. package/plugins/hooks/notifications/sendCommentNotification.js +43 -0
  138. package/plugins/hooks/notifications/sendCommentNotification.js.map +1 -0
  139. package/plugins/hooks/notifications/sendContentReviewNotification.d.ts +2 -0
  140. package/plugins/hooks/notifications/sendContentReviewNotification.js +43 -0
  141. package/plugins/hooks/notifications/sendContentReviewNotification.js.map +1 -0
  142. package/plugins/hooks/updatePendingChangeRequests.js +7 -13
  143. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -1
  144. package/plugins/hooks/updateTotalComments.js +21 -23
  145. package/plugins/hooks/updateTotalComments.js.map +1 -1
  146. package/plugins/hooks/validateChangeRequest.js +27 -16
  147. package/plugins/hooks/validateChangeRequest.js.map +1 -1
  148. package/plugins/hooks/validateComment.js +13 -12
  149. package/plugins/hooks/validateComment.js.map +1 -1
  150. package/plugins/hooks/validateContentReview.js +2 -6
  151. package/plugins/hooks/validateContentReview.js.map +1 -1
  152. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +4 -19
  153. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +1 -1
  154. package/plugins/pageBuilder/apwContentPagePlugins.js +2 -4
  155. package/plugins/pageBuilder/apwContentPagePlugins.js.map +1 -1
  156. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +3 -6
  157. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +1 -1
  158. package/plugins/pageBuilder/index.js +7 -8
  159. package/plugins/pageBuilder/index.js.map +1 -1
  160. package/plugins/pageBuilder/linkContentReviewToPage.js +15 -27
  161. package/plugins/pageBuilder/linkContentReviewToPage.js.map +1 -1
  162. package/plugins/pageBuilder/linkWorkflowToPage.js +3 -31
  163. package/plugins/pageBuilder/linkWorkflowToPage.js.map +1 -1
  164. package/plugins/pageBuilder/notifications/changeRequestNotification.d.ts +1 -0
  165. package/plugins/pageBuilder/notifications/changeRequestNotification.js +33 -0
  166. package/plugins/pageBuilder/notifications/changeRequestNotification.js.map +1 -0
  167. package/plugins/pageBuilder/notifications/commentNotification.d.ts +1 -0
  168. package/plugins/pageBuilder/notifications/commentNotification.js +33 -0
  169. package/plugins/pageBuilder/notifications/commentNotification.js.map +1 -0
  170. package/plugins/pageBuilder/notifications/contentReviewNotification.d.ts +1 -0
  171. package/plugins/pageBuilder/notifications/contentReviewNotification.js +33 -0
  172. package/plugins/pageBuilder/notifications/contentReviewNotification.js.map +1 -0
  173. package/plugins/pageBuilder/notifications/contentUrl.d.ts +1 -0
  174. package/plugins/pageBuilder/notifications/contentUrl.js +49 -0
  175. package/plugins/pageBuilder/notifications/contentUrl.js.map +1 -0
  176. package/plugins/pageBuilder/triggerContentReview.js +2 -11
  177. package/plugins/pageBuilder/triggerContentReview.js.map +1 -1
  178. package/plugins/pageBuilder/updateContentReviewStatus.js +10 -17
  179. package/plugins/pageBuilder/updateContentReviewStatus.js.map +1 -1
  180. package/plugins/pageBuilder/utils.d.ts +2 -2
  181. package/plugins/pageBuilder/utils.js +3 -35
  182. package/plugins/pageBuilder/utils.js.map +1 -1
  183. package/plugins/utils.d.ts +1 -2
  184. package/plugins/utils.js +6 -52
  185. package/plugins/utils.js.map +1 -1
  186. package/scheduler/createScheduleActionMethods.js +45 -50
  187. package/scheduler/createScheduleActionMethods.js.map +1 -1
  188. package/scheduler/handlers/executeAction/index.d.ts +1 -1
  189. package/scheduler/handlers/executeAction/index.js +47 -40
  190. package/scheduler/handlers/executeAction/index.js.map +1 -1
  191. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +6 -0
  192. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +19 -9
  193. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -1
  194. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +2 -3
  195. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +11 -28
  196. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -1
  197. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +2 -2
  198. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +10 -92
  199. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -1
  200. package/scheduler/handlers/executeAction/security.js +2 -11
  201. package/scheduler/handlers/executeAction/security.js.map +1 -1
  202. package/scheduler/handlers/scheduleAction/index.d.ts +1 -1
  203. package/scheduler/handlers/scheduleAction/index.js +24 -37
  204. package/scheduler/handlers/scheduleAction/index.js.map +1 -1
  205. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +20 -36
  206. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -1
  207. package/scheduler/handlers/utils.d.ts +2 -4
  208. package/scheduler/handlers/utils.js +8 -47
  209. package/scheduler/handlers/utils.js.map +1 -1
  210. package/scheduler/index.js +2 -3
  211. package/scheduler/index.js.map +1 -1
  212. package/scheduler/types.d.ts +12 -28
  213. package/scheduler/types.js +13 -22
  214. package/scheduler/types.js.map +1 -1
  215. package/storageOperations/changeRequestStorageOperations.js +59 -45
  216. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  217. package/storageOperations/commentStorageOperations.js +35 -50
  218. package/storageOperations/commentStorageOperations.js.map +1 -1
  219. package/storageOperations/contentReviewStorageOperations.d.ts +1 -1
  220. package/storageOperations/contentReviewStorageOperations.js +34 -43
  221. package/storageOperations/contentReviewStorageOperations.js.map +1 -1
  222. package/storageOperations/index.d.ts +1 -7
  223. package/storageOperations/index.js +10 -29
  224. package/storageOperations/index.js.map +1 -1
  225. package/storageOperations/models/changeRequest.model.d.ts +1 -2
  226. package/storageOperations/models/changeRequest.model.js +6 -15
  227. package/storageOperations/models/changeRequest.model.js.map +1 -1
  228. package/storageOperations/models/comment.model.d.ts +1 -2
  229. package/storageOperations/models/comment.model.js +6 -14
  230. package/storageOperations/models/comment.model.js.map +1 -1
  231. package/storageOperations/models/contentReview.model.d.ts +1 -2
  232. package/storageOperations/models/contentReview.model.js +13 -37
  233. package/storageOperations/models/contentReview.model.js.map +1 -1
  234. package/storageOperations/models/index.js +6 -50
  235. package/storageOperations/models/index.js.map +1 -1
  236. package/storageOperations/models/reviewer.model.d.ts +1 -2
  237. package/storageOperations/models/reviewer.model.js +22 -14
  238. package/storageOperations/models/reviewer.model.js.map +1 -1
  239. package/storageOperations/models/utils.js +2 -4
  240. package/storageOperations/models/utils.js.map +1 -1
  241. package/storageOperations/models/workflow.model.d.ts +1 -2
  242. package/storageOperations/models/workflow.model.js +19 -42
  243. package/storageOperations/models/workflow.model.js.map +1 -1
  244. package/storageOperations/reviewerStorageOperations.d.ts +1 -1
  245. package/storageOperations/reviewerStorageOperations.js +34 -40
  246. package/storageOperations/reviewerStorageOperations.js.map +1 -1
  247. package/storageOperations/types.js +3 -1
  248. package/storageOperations/workflowStorageOperations.js +40 -47
  249. package/storageOperations/workflowStorageOperations.js.map +1 -1
  250. package/types.d.ts +39 -25
  251. package/types.js +126 -42
  252. package/types.js.map +1 -1
  253. package/utils/contentApwSettingsPlugin.js +2 -6
  254. package/utils/contentApwSettingsPlugin.js.map +1 -1
  255. package/utils/errors.js +2 -17
  256. package/utils/errors.js.map +1 -1
  257. package/utils/fieldResolver.js +8 -18
  258. package/utils/fieldResolver.js.map +1 -1
  259. package/utils/pickEntryFieldValues.d.ts +3 -0
  260. package/utils/pickEntryFieldValues.js +31 -0
  261. package/utils/pickEntryFieldValues.js.map +1 -0
  262. package/utils/resolve.d.ts +1 -1
  263. package/utils/resolve.js +2 -3
  264. package/utils/resolve.js.map +1 -1
  265. package/storageOperations/models/contentModelPluginFactory.d.ts +0 -15
  266. package/storageOperations/models/contentModelPluginFactory.js +0 -28
  267. package/storageOperations/models/contentModelPluginFactory.js.map +0 -1
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.triggerContentReview = void 0;
9
-
10
8
  var _get = _interopRequireDefault(require("lodash/get"));
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _types = require("../../types");
15
-
16
11
  const triggerContentReview = params => {
17
12
  const {
18
13
  pageBuilder,
@@ -22,22 +17,17 @@ const triggerContentReview = params => {
22
17
  page
23
18
  }) => {
24
19
  const contentReviewId = (0, _get.default)(page, "settings.apw.contentReviewId");
25
-
26
20
  if (contentReviewId) {
27
21
  const contentReview = await apw.contentReview.get(contentReviewId);
28
-
29
22
  if (contentReview.reviewStatus === _types.ApwContentReviewStatus.UNDER_REVIEW) {
30
23
  throw new _error.default(`A peer review for this content has been already requested.`, "REVIEW_ALREADY_EXIST", {
31
24
  contentReviewId,
32
25
  page
33
26
  });
34
27
  }
35
-
36
28
  return;
37
29
  }
38
-
39
30
  const workflowId = (0, _get.default)(page, "settings.apw.workflowId");
40
-
41
31
  if (workflowId) {
42
32
  throw new _error.default("This content requires peer review approval before it can be published.", "REVIEW_REQUIRED", {
43
33
  workflowId,
@@ -46,5 +36,6 @@ const triggerContentReview = params => {
46
36
  }
47
37
  });
48
38
  };
39
+ exports.triggerContentReview = triggerContentReview;
49
40
 
50
- exports.triggerContentReview = triggerContentReview;
41
+ //# sourceMappingURL=triggerContentReview.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["triggerContentReview","params","pageBuilder","apw","onPageBeforePublish","subscribe","page","contentReviewId","get","contentReview","reviewStatus","ApwContentReviewStatus","UNDER_REVIEW","Error","workflowId"],"sources":["triggerContentReview.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport Error from \"@webiny/error\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n ApwOnPageBeforePublishTopicParams\n} from \"~/types\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\ninterface TriggerContentReviewParams {\n apw: AdvancedPublishingWorkflow;\n pageBuilder: PageBuilderContextObject;\n}\n\nexport const triggerContentReview = (params: TriggerContentReviewParams) => {\n const { pageBuilder, apw } = params;\n\n pageBuilder.onPageBeforePublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n if (contentReviewId) {\n const contentReview = await apw.contentReview.get(contentReviewId);\n\n if (contentReview.reviewStatus === ApwContentReviewStatus.UNDER_REVIEW) {\n throw new Error(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n page\n }\n );\n }\n return;\n }\n\n const workflowId = get(page, \"settings.apw.workflowId\");\n\n if (workflowId) {\n throw new Error(\n \"This content requires peer review approval before it can be published.\",\n \"REVIEW_REQUIRED\",\n {\n workflowId,\n page\n }\n );\n }\n }\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAYO,MAAMA,oBAAoB,GAAIC,MAAD,IAAwC;EACxE,MAAM;IAAEC,WAAF;IAAeC;EAAf,IAAuBF,MAA7B;EAEAC,WAAW,CAACE,mBAAZ,CAAgCC,SAAhC,CACI,OAAO;IAAEC;EAAF,CAAP,KAAoB;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAA,EAAIF,IAAJ,EAAU,8BAAV,CAAxB;;IACA,IAAIC,eAAJ,EAAqB;MACjB,MAAME,aAAa,GAAG,MAAMN,GAAG,CAACM,aAAJ,CAAkBD,GAAlB,CAAsBD,eAAtB,CAA5B;;MAEA,IAAIE,aAAa,CAACC,YAAd,KAA+BC,6BAAA,CAAuBC,YAA1D,EAAwE;QACpE,MAAM,IAAIC,cAAJ,CACD,4DADC,EAEF,sBAFE,EAGF;UACIN,eADJ;UAEID;QAFJ,CAHE,CAAN;MAQH;;MACD;IACH;;IAED,MAAMQ,UAAU,GAAG,IAAAN,YAAA,EAAIF,IAAJ,EAAU,yBAAV,CAAnB;;IAEA,IAAIQ,UAAJ,EAAgB;MACZ,MAAM,IAAID,cAAJ,CACF,wEADE,EAEF,iBAFE,EAGF;QACIC,UADJ;QAEIR;MAFJ,CAHE,CAAN;IAQH;EACJ,CA/BL;AAiCH,CApCM"}
1
+ {"version":3,"names":["_get","_interopRequireDefault","require","_error","_types","triggerContentReview","params","pageBuilder","apw","onPageBeforePublish","subscribe","page","contentReviewId","get","contentReview","reviewStatus","ApwContentReviewStatus","UNDER_REVIEW","Error","workflowId","exports"],"sources":["triggerContentReview.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport Error from \"@webiny/error\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n ApwOnPageBeforePublishTopicParams\n} from \"~/types\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\ninterface TriggerContentReviewParams {\n apw: AdvancedPublishingWorkflow;\n pageBuilder: PageBuilderContextObject;\n}\n\nexport const triggerContentReview = (params: TriggerContentReviewParams) => {\n const { pageBuilder, apw } = params;\n\n pageBuilder.onPageBeforePublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n if (contentReviewId) {\n const contentReview = await apw.contentReview.get(contentReviewId);\n\n if (contentReview.reviewStatus === ApwContentReviewStatus.UNDER_REVIEW) {\n throw new Error(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n page\n }\n );\n }\n return;\n }\n\n const workflowId = get(page, \"settings.apw.workflowId\");\n\n if (workflowId) {\n throw new Error(\n \"This content requires peer review approval before it can be published.\",\n \"REVIEW_REQUIRED\",\n {\n workflowId,\n page\n }\n );\n }\n }\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAYO,MAAMG,oBAAoB,GAAIC,MAAkC,IAAK;EACxE,MAAM;IAAEC,WAAW;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAEnCC,WAAW,CAACE,mBAAmB,CAACC,SAAS,CACrC,OAAO;IAAEC;EAAK,CAAC,KAAK;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAG,EAACF,IAAI,EAAE,8BAA8B,CAAC;IACjE,IAAIC,eAAe,EAAE;MACjB,MAAME,aAAa,GAAG,MAAMN,GAAG,CAACM,aAAa,CAACD,GAAG,CAACD,eAAe,CAAC;MAElE,IAAIE,aAAa,CAACC,YAAY,KAAKC,6BAAsB,CAACC,YAAY,EAAE;QACpE,MAAM,IAAIC,cAAK,CACV,4DAA2D,EAC5D,sBAAsB,EACtB;UACIN,eAAe;UACfD;QACJ,CACJ,CAAC;MACL;MACA;IACJ;IAEA,MAAMQ,UAAU,GAAG,IAAAN,YAAG,EAACF,IAAI,EAAE,yBAAyB,CAAC;IAEvD,IAAIQ,UAAU,EAAE;MACZ,MAAM,IAAID,cAAK,CACX,wEAAwE,EACxE,iBAAiB,EACjB;QACIC,UAAU;QACVR;MACJ,CACJ,CAAC;IACL;EACJ,CACJ,CAAC;AACL,CAAC;AAACS,OAAA,CAAAf,oBAAA,GAAAA,oBAAA"}
@@ -1,20 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.updateContentReviewStatus = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
8
  var _get = _interopRequireDefault(require("lodash/get"));
13
-
14
9
  var _types = require("../../types");
15
-
16
10
  var _utils = require("../../crud/utils");
17
-
18
11
  const updateContentReviewStatus = params => {
19
12
  const {
20
13
  apw,
@@ -28,23 +21,22 @@ const updateContentReviewStatus = params => {
28
21
  /**
29
22
  * Bail out if there is no "content review" linked.
30
23
  */
31
-
32
24
  if (!contentReviewId) {
33
25
  return;
34
26
  }
35
-
36
27
  const contentReview = await apw.contentReview.get(contentReviewId);
37
28
  const identity = security.getIdentity();
38
29
  /**
39
30
  * If content review is "readyToBePublished set its status as "published" after page publish.
40
31
  */
41
-
42
32
  if (contentReview.reviewStatus === _types.ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {
43
33
  await apw.contentReview.update(contentReviewId, {
44
34
  reviewStatus: _types.ApwContentReviewStatus.PUBLISHED,
45
- content: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, contentReview.content), _utils.INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META), {}, {
35
+ content: {
36
+ ...contentReview.content,
37
+ ..._utils.INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,
46
38
  publishedBy: identity.id
47
- })
39
+ }
48
40
  });
49
41
  }
50
42
  });
@@ -55,11 +47,9 @@ const updateContentReviewStatus = params => {
55
47
  /**
56
48
  * Bail out if there is no "content review" linked.
57
49
  */
58
-
59
50
  if (!contentReviewId) {
60
51
  return;
61
52
  }
62
-
63
53
  const contentReview = await apw.contentReview.get(contentReviewId);
64
54
  /**
65
55
  * If content review is "published set its status as "readyToBePublished" after page unpublish.
@@ -68,12 +58,15 @@ const updateContentReviewStatus = params => {
68
58
  if (contentReview.reviewStatus === _types.ApwContentReviewStatus.PUBLISHED) {
69
59
  await apw.contentReview.update(contentReviewId, {
70
60
  reviewStatus: _types.ApwContentReviewStatus.READY_TO_BE_PUBLISHED,
71
- content: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, contentReview.content), _utils.INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META), {}, {
61
+ content: {
62
+ ...contentReview.content,
63
+ ..._utils.INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,
72
64
  publishedBy: null
73
- })
65
+ }
74
66
  });
75
67
  }
76
68
  });
77
69
  };
70
+ exports.updateContentReviewStatus = updateContentReviewStatus;
78
71
 
79
- exports.updateContentReviewStatus = updateContentReviewStatus;
72
+ //# sourceMappingURL=updateContentReviewStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["updateContentReviewStatus","params","apw","pageBuilder","security","onPageAfterPublish","subscribe","page","contentReviewId","get","contentReview","identity","getIdentity","reviewStatus","ApwContentReviewStatus","READY_TO_BE_PUBLISHED","update","PUBLISHED","content","INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META","publishedBy","id","onPageAfterUnpublish"],"sources":["updateContentReviewStatus.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n ApwOnPageBeforePublishTopicParams\n} from \"~/types\";\nimport { INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META } from \"~/crud/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\ninterface UpdateContentReviewStatusParams {\n apw: AdvancedPublishingWorkflow;\n pageBuilder: PageBuilderContextObject;\n security: Security;\n}\n\nexport const updateContentReviewStatus = (params: UpdateContentReviewStatusParams) => {\n const { apw, pageBuilder, security } = params;\n\n pageBuilder.onPageAfterPublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n const identity = security.getIdentity();\n /**\n * If content review is \"readyToBePublished set its status as \"published\" after page publish.\n */\n if (contentReview.reviewStatus === ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: identity.id\n }\n });\n }\n }\n );\n pageBuilder.onPageAfterUnpublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n /**\n * If content review is \"published set its status as \"readyToBePublished\" after page unpublish.\n */\n\n if (contentReview.reviewStatus === ApwContentReviewStatus.PUBLISHED) {\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.READY_TO_BE_PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: null\n }\n });\n }\n }\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAKA;;AAUO,MAAMA,yBAAyB,GAAIC,MAAD,IAA6C;EAClF,MAAM;IAAEC,GAAF;IAAOC,WAAP;IAAoBC;EAApB,IAAiCH,MAAvC;EAEAE,WAAW,CAACE,kBAAZ,CAA+BC,SAA/B,CACI,OAAO;IAAEC;EAAF,CAAP,KAAoB;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAA,EAAIF,IAAJ,EAAU,8BAAV,CAAxB;IACA;AACZ;AACA;;IACY,IAAI,CAACC,eAAL,EAAsB;MAClB;IACH;;IAED,MAAME,aAAa,GAAG,MAAMR,GAAG,CAACQ,aAAJ,CAAkBD,GAAlB,CAAsBD,eAAtB,CAA5B;IACA,MAAMG,QAAQ,GAAGP,QAAQ,CAACQ,WAAT,EAAjB;IACA;AACZ;AACA;;IACY,IAAIF,aAAa,CAACG,YAAd,KAA+BC,6BAAA,CAAuBC,qBAA1D,EAAiF;MAC7E,MAAMb,GAAG,CAACQ,aAAJ,CAAkBM,MAAlB,CAAyBR,eAAzB,EAA0C;QAC5CK,YAAY,EAAEC,6BAAA,CAAuBG,SADO;QAE5CC,OAAO,0FACAR,aAAa,CAACQ,OADd,GAEAC,mDAFA;UAGHC,WAAW,EAAET,QAAQ,CAACU;QAHnB;MAFqC,CAA1C,CAAN;IAQH;EACJ,CAzBL;EA2BAlB,WAAW,CAACmB,oBAAZ,CAAiChB,SAAjC,CACI,OAAO;IAAEC;EAAF,CAAP,KAAoB;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAA,EAAIF,IAAJ,EAAU,8BAAV,CAAxB;IACA;AACZ;AACA;;IACY,IAAI,CAACC,eAAL,EAAsB;MAClB;IACH;;IAED,MAAME,aAAa,GAAG,MAAMR,GAAG,CAACQ,aAAJ,CAAkBD,GAAlB,CAAsBD,eAAtB,CAA5B;IACA;AACZ;AACA;;IAEY,IAAIE,aAAa,CAACG,YAAd,KAA+BC,6BAAA,CAAuBG,SAA1D,EAAqE;MACjE,MAAMf,GAAG,CAACQ,aAAJ,CAAkBM,MAAlB,CAAyBR,eAAzB,EAA0C;QAC5CK,YAAY,EAAEC,6BAAA,CAAuBC,qBADO;QAE5CG,OAAO,0FACAR,aAAa,CAACQ,OADd,GAEAC,mDAFA;UAGHC,WAAW,EAAE;QAHV;MAFqC,CAA1C,CAAN;IAQH;EACJ,CAzBL;AA2BH,CAzDM"}
1
+ {"version":3,"names":["_get","_interopRequireDefault","require","_types","_utils","updateContentReviewStatus","params","apw","pageBuilder","security","onPageAfterPublish","subscribe","page","contentReviewId","get","contentReview","identity","getIdentity","reviewStatus","ApwContentReviewStatus","READY_TO_BE_PUBLISHED","update","PUBLISHED","content","INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META","publishedBy","id","onPageAfterUnpublish","exports"],"sources":["updateContentReviewStatus.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n ApwOnPageBeforePublishTopicParams\n} from \"~/types\";\nimport { INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META } from \"~/crud/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\ninterface UpdateContentReviewStatusParams {\n apw: AdvancedPublishingWorkflow;\n pageBuilder: PageBuilderContextObject;\n security: Security;\n}\n\nexport const updateContentReviewStatus = (params: UpdateContentReviewStatusParams) => {\n const { apw, pageBuilder, security } = params;\n\n pageBuilder.onPageAfterPublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n const identity = security.getIdentity();\n /**\n * If content review is \"readyToBePublished set its status as \"published\" after page publish.\n */\n if (contentReview.reviewStatus === ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: identity.id\n }\n });\n }\n }\n );\n pageBuilder.onPageAfterUnpublish.subscribe<ApwOnPageBeforePublishTopicParams>(\n async ({ page }) => {\n const contentReviewId = get(page, \"settings.apw.contentReviewId\");\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n /**\n * If content review is \"published set its status as \"readyToBePublished\" after page unpublish.\n */\n\n if (contentReview.reviewStatus === ApwContentReviewStatus.PUBLISHED) {\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.READY_TO_BE_PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: null\n }\n });\n }\n }\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AAUO,MAAMG,yBAAyB,GAAIC,MAAuC,IAAK;EAClF,MAAM;IAAEC,GAAG;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGH,MAAM;EAE7CE,WAAW,CAACE,kBAAkB,CAACC,SAAS,CACpC,OAAO;IAAEC;EAAK,CAAC,KAAK;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAG,EAACF,IAAI,EAAE,8BAA8B,CAAC;IACjE;AACZ;AACA;IACY,IAAI,CAACC,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMR,GAAG,CAACQ,aAAa,CAACD,GAAG,CAACD,eAAe,CAAC;IAClE,MAAMG,QAAQ,GAAGP,QAAQ,CAACQ,WAAW,CAAC,CAAC;IACvC;AACZ;AACA;IACY,IAAIF,aAAa,CAACG,YAAY,KAAKC,6BAAsB,CAACC,qBAAqB,EAAE;MAC7E,MAAMb,GAAG,CAACQ,aAAa,CAACM,MAAM,CAACR,eAAe,EAAE;QAC5CK,YAAY,EAAEC,6BAAsB,CAACG,SAAS;QAC9CC,OAAO,EAAE;UACL,GAAGR,aAAa,CAACQ,OAAO;UACxB,GAAGC,mDAA4C;UAC/CC,WAAW,EAAET,QAAQ,CAACU;QAC1B;MACJ,CAAC,CAAC;IACN;EACJ,CACJ,CAAC;EACDlB,WAAW,CAACmB,oBAAoB,CAAChB,SAAS,CACtC,OAAO;IAAEC;EAAK,CAAC,KAAK;IAChB,MAAMC,eAAe,GAAG,IAAAC,YAAG,EAACF,IAAI,EAAE,8BAA8B,CAAC;IACjE;AACZ;AACA;IACY,IAAI,CAACC,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMR,GAAG,CAACQ,aAAa,CAACD,GAAG,CAACD,eAAe,CAAC;IAClE;AACZ;AACA;;IAEY,IAAIE,aAAa,CAACG,YAAY,KAAKC,6BAAsB,CAACG,SAAS,EAAE;MACjE,MAAMf,GAAG,CAACQ,aAAa,CAACM,MAAM,CAACR,eAAe,EAAE;QAC5CK,YAAY,EAAEC,6BAAsB,CAACC,qBAAqB;QAC1DG,OAAO,EAAE;UACL,GAAGR,aAAa,CAACQ,OAAO;UACxB,GAAGC,mDAA4C;UAC/CC,WAAW,EAAE;QACjB;MACJ,CAAC,CAAC;IACN;EACJ,CACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAvB,yBAAA,GAAAA,yBAAA"}
@@ -5,8 +5,8 @@ interface AssignWorkflowToPageParams {
5
5
  page: PageWithWorkflow;
6
6
  }
7
7
  export declare const assignWorkflowToPage: ({ listWorkflow, page }: AssignWorkflowToPageParams) => Promise<void>;
8
- export declare const hasPages: (workflow: ApwWorkflow) => Boolean;
9
- export declare const shouldUpdatePages: (scope: ApwWorkflowScope, prevScope: ApwWorkflowScope) => Boolean;
8
+ export declare const hasPages: (workflow: ApwWorkflow) => boolean;
9
+ export declare const shouldUpdatePages: (scope: ApwWorkflowScope, prevScope: ApwWorkflowScope) => boolean;
10
10
  interface GetUpdatePageOpsResult {
11
11
  addedPages: string[];
12
12
  removedPages: string[];
@@ -1,52 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.updatePageSettings = exports.shouldUpdatePages = exports.hasPages = exports.getPagesDiff = exports.assignWorkflowToPage = void 0;
9
-
10
8
  var _get = _interopRequireDefault(require("lodash/get"));
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _types = require("../../types");
15
-
16
11
  var _utils = require("../utils");
17
-
18
12
  const isWorkflowApplicable = (page, workflow) => {
19
13
  const application = workflow.app;
20
-
21
14
  if (application !== _types.ApwWorkflowApplications.PB) {
22
15
  return false;
23
16
  }
24
-
25
17
  const scopeType = workflow.scope.type;
26
-
27
18
  if (scopeType === _types.WorkflowScopeTypes.DEFAULT) {
28
19
  return true;
29
20
  } else if (scopeType === _types.WorkflowScopeTypes.CUSTOM) {
30
21
  const categories = (0, _get.default)(workflow, "scope.data.categories");
31
-
32
22
  if (Array.isArray(categories) && categories.includes(page.category)) {
33
23
  return true;
34
24
  }
35
-
36
25
  const pages = (0, _get.default)(workflow, "scope.data.pages");
37
-
38
26
  if (Array.isArray(pages) && pages.includes(page.pid)) {
39
27
  return true;
40
28
  }
41
-
42
29
  return false;
43
30
  }
44
-
45
31
  throw new _error.default(`Unknown scope type "${scopeType}".`, "UNKNOWN_SCOPE_TYPE", {
46
32
  workflow
47
33
  });
48
34
  };
49
-
50
35
  const assignWorkflowToPage = async ({
51
36
  listWorkflow,
52
37
  page
@@ -63,15 +48,14 @@ const assignWorkflowToPage = async ({
63
48
  app: _types.ApwWorkflowApplications.PB
64
49
  }
65
50
  });
51
+
66
52
  /*
67
53
  * Re-order them based on workflow scope and pre-defined rule i.e.
68
54
  * "specific" entry -> entry for a "category" -> "default".
69
55
  * There can be more than one workflow with same "scope" and "app".
70
56
  * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.
71
57
  */
72
-
73
58
  const sortedWorkflows = entries.sort(_utils.workflowByPrecedenceDesc).sort(_utils.workflowByCreatedOnDesc);
74
-
75
59
  for (const workflow of sortedWorkflows) {
76
60
  /**
77
61
  * Assign the first applicable workflow to the page and exit.
@@ -88,9 +72,7 @@ const assignWorkflowToPage = async ({
88
72
  throw new _error.default(`Failed to assign workflow to page "${page.pid}".`, ex.code, ex.data);
89
73
  }
90
74
  };
91
-
92
75
  exports.assignWorkflowToPage = assignWorkflowToPage;
93
-
94
76
  const hasPages = workflow => {
95
77
  const {
96
78
  app,
@@ -98,9 +80,7 @@ const hasPages = workflow => {
98
80
  } = workflow;
99
81
  return app === _types.ApwWorkflowApplications.PB && scope.type === _types.WorkflowScopeTypes.CUSTOM && scope.data && Array.isArray(scope.data.pages);
100
82
  };
101
-
102
83
  exports.hasPages = hasPages;
103
-
104
84
  const shouldUpdatePages = (scope, prevScope) => {
105
85
  /**
106
86
  * Bail out early if the scope is not "CUSTOM" - at that point all pages should be updated.
@@ -108,34 +88,26 @@ const shouldUpdatePages = (scope, prevScope) => {
108
88
  if (prevScope.type !== _types.WorkflowScopeTypes.CUSTOM) {
109
89
  return true;
110
90
  }
111
-
112
91
  const prevScopePages = (0, _get.default)(prevScope, "data.pages");
113
92
  const currentScopePages = (0, _get.default)(scope, "data.pages");
114
93
  /**
115
94
  * Bail out early if there were no pages assigned previously.
116
95
  */
117
-
118
96
  if (prevScopePages.length === 0) {
119
97
  return true;
120
98
  }
121
99
  /**
122
100
  * Bail out early if number of pages has been changed.
123
101
  */
124
-
125
-
126
102
  if (currentScopePages.length !== prevScopePages.length) {
127
103
  return true;
128
104
  }
129
105
  /*
130
106
  * Check whether previous scope has the exactly same pages as in the new scope.
131
107
  */
132
-
133
-
134
108
  return !prevScopePages.every(pid => currentScopePages.includes(pid));
135
109
  };
136
-
137
110
  exports.shouldUpdatePages = shouldUpdatePages;
138
-
139
111
  const getPagesDiff = (currentPages, prevPages) => {
140
112
  const addedPages = currentPages.filter(id => !prevPages.includes(id));
141
113
  const removedPages = prevPages.filter(id => !currentPages.includes(id));
@@ -144,9 +116,7 @@ const getPagesDiff = (currentPages, prevPages) => {
144
116
  removedPages
145
117
  };
146
118
  };
147
-
148
119
  exports.getPagesDiff = getPagesDiff;
149
-
150
120
  const updatePageSettings = async ({
151
121
  getPage,
152
122
  updatePage,
@@ -161,7 +131,6 @@ const updatePageSettings = async ({
161
131
  /**
162
132
  * We can't update a page that is "locked".
163
133
  */
164
-
165
134
  if (page.locked) {
166
135
  return;
167
136
  }
@@ -169,8 +138,6 @@ const updatePageSettings = async ({
169
138
  * There can be more than one workflow with same `scope` for same `app`. That is why;
170
139
  * We'll update the workflow reference even though it already had one assign.
171
140
  */
172
-
173
-
174
141
  await updatePage(page.id, {
175
142
  settings: getNewSettings(page.settings)
176
143
  });
@@ -180,5 +147,6 @@ const updatePageSettings = async ({
180
147
  }
181
148
  }
182
149
  };
150
+ exports.updatePageSettings = updatePageSettings;
183
151
 
184
- exports.updatePageSettings = updatePageSettings;
152
+ //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isWorkflowApplicable","page","workflow","application","app","ApwWorkflowApplications","PB","scopeType","scope","type","WorkflowScopeTypes","DEFAULT","CUSTOM","categories","get","Array","isArray","includes","category","pages","pid","WebinyError","assignWorkflowToPage","listWorkflow","entries","where","sortedWorkflows","sort","workflowByPrecedenceDesc","workflowByCreatedOnDesc","settings","apw","workflowId","id","contentReviewId","ex","code","data","hasPages","shouldUpdatePages","prevScope","prevScopePages","currentScopePages","length","every","getPagesDiff","currentPages","prevPages","addedPages","filter","removedPages","updatePageSettings","getPage","updatePage","uniquePageId","getNewSettings","locked","e"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport WebinyError from \"@webiny/error\";\nimport {\n ApwWorkflow,\n ApwWorkflowApplications,\n ApwWorkflowCrud,\n ApwWorkflowScope,\n PageWithWorkflow,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { workflowByCreatedOnDesc, workflowByPrecedenceDesc } from \"~/plugins/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\nconst isWorkflowApplicable = (page: PageWithWorkflow, workflow: ApwWorkflow) => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.PB) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n } else if (scopeType === WorkflowScopeTypes.CUSTOM) {\n const categories = get(workflow, \"scope.data.categories\");\n\n if (Array.isArray(categories) && categories.includes(page.category)) {\n return true;\n }\n\n const pages = get(workflow, \"scope.data.pages\");\n if (Array.isArray(pages) && pages.includes(page.pid)) {\n return true;\n }\n return false;\n }\n throw new WebinyError(`Unknown scope type \"${scopeType}\".`, \"UNKNOWN_SCOPE_TYPE\", {\n workflow\n });\n};\n\ninterface AssignWorkflowToPageParams {\n listWorkflow: ApwWorkflowCrud[\"list\"];\n page: PageWithWorkflow;\n}\n\nexport const assignWorkflowToPage = async ({ listWorkflow, page }: AssignWorkflowToPageParams) => {\n /**\n * Lookup and assign \"workflowId\".\n */\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await listWorkflow({\n where: {\n app: ApwWorkflowApplications.PB\n }\n });\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n for (const workflow of sortedWorkflows) {\n /**\n * Assign the first applicable workflow to the page and exit.\n */\n if (isWorkflowApplicable(page, workflow)) {\n page.settings.apw = {\n workflowId: workflow.id,\n contentReviewId: null\n };\n break;\n }\n }\n } catch (ex) {\n throw new WebinyError(`Failed to assign workflow to page \"${page.pid}\".`, ex.code, ex.data);\n }\n};\n\nexport const hasPages = (workflow: ApwWorkflow): Boolean => {\n const { app, scope } = workflow;\n return (\n app === ApwWorkflowApplications.PB &&\n scope.type === WorkflowScopeTypes.CUSTOM &&\n scope.data &&\n Array.isArray(scope.data.pages)\n );\n};\n\nexport const shouldUpdatePages = (\n scope: ApwWorkflowScope,\n prevScope: ApwWorkflowScope\n): Boolean => {\n /**\n * Bail out early if the scope is not \"CUSTOM\" - at that point all pages should be updated.\n */\n if (prevScope.type !== WorkflowScopeTypes.CUSTOM) {\n return true;\n }\n const prevScopePages: string[] = get(prevScope, \"data.pages\");\n const currentScopePages: string[] = get(scope, \"data.pages\");\n /**\n * Bail out early if there were no pages assigned previously.\n */\n if (prevScopePages.length === 0) {\n return true;\n }\n /**\n * Bail out early if number of pages has been changed.\n */\n if (currentScopePages.length !== prevScopePages.length) {\n return true;\n }\n /*\n * Check whether previous scope has the exactly same pages as in the new scope.\n */\n return !prevScopePages.every(pid => currentScopePages.includes(pid));\n};\n\ninterface GetUpdatePageOpsResult {\n addedPages: string[];\n removedPages: string[];\n}\n\nexport const getPagesDiff = (\n currentPages: string[],\n prevPages: string[]\n): GetUpdatePageOpsResult => {\n const addedPages = currentPages.filter(id => !prevPages.includes(id));\n const removedPages = prevPages.filter(id => !currentPages.includes(id));\n\n return {\n addedPages,\n removedPages\n };\n};\n\ninterface UpdatePageSettingsParams {\n getPage: PageBuilderContextObject[\"getPage\"];\n updatePage: PageBuilderContextObject[\"updatePage\"];\n uniquePageId: string;\n getNewSettings: (settings: PageWithWorkflow[\"settings\"]) => PageWithWorkflow[\"settings\"];\n}\n\nexport const updatePageSettings = async ({\n getPage,\n updatePage,\n uniquePageId,\n getNewSettings\n}: UpdatePageSettingsParams) => {\n try {\n /**\n * Currently, we only assign \"workflow\" to latest page.\n */\n const page = await getPage<PageWithWorkflow>(uniquePageId);\n /**\n * We can't update a page that is \"locked\".\n */\n if (page.locked) {\n return;\n }\n /**\n * There can be more than one workflow with same `scope` for same `app`. That is why;\n * We'll update the workflow reference even though it already had one assign.\n */\n await updatePage(page.id, {\n settings: getNewSettings(page.settings)\n });\n } catch (e) {\n if (e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_get","_interopRequireDefault","require","_error","_types","_utils","isWorkflowApplicable","page","workflow","application","app","ApwWorkflowApplications","PB","scopeType","scope","type","WorkflowScopeTypes","DEFAULT","CUSTOM","categories","get","Array","isArray","includes","category","pages","pid","WebinyError","assignWorkflowToPage","listWorkflow","entries","where","sortedWorkflows","sort","workflowByPrecedenceDesc","workflowByCreatedOnDesc","settings","apw","workflowId","id","contentReviewId","ex","code","data","exports","hasPages","shouldUpdatePages","prevScope","prevScopePages","currentScopePages","length","every","getPagesDiff","currentPages","prevPages","addedPages","filter","removedPages","updatePageSettings","getPage","updatePage","uniquePageId","getNewSettings","locked","e"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport WebinyError from \"@webiny/error\";\nimport {\n ApwWorkflow,\n ApwWorkflowApplications,\n ApwWorkflowCrud,\n ApwWorkflowScope,\n PageWithWorkflow,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { workflowByCreatedOnDesc, workflowByPrecedenceDesc } from \"~/plugins/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\nconst isWorkflowApplicable = (page: PageWithWorkflow, workflow: ApwWorkflow) => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.PB) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n } else if (scopeType === WorkflowScopeTypes.CUSTOM) {\n const categories = get(workflow, \"scope.data.categories\");\n\n if (Array.isArray(categories) && categories.includes(page.category)) {\n return true;\n }\n\n const pages = get(workflow, \"scope.data.pages\");\n if (Array.isArray(pages) && pages.includes(page.pid)) {\n return true;\n }\n return false;\n }\n throw new WebinyError(`Unknown scope type \"${scopeType}\".`, \"UNKNOWN_SCOPE_TYPE\", {\n workflow\n });\n};\n\ninterface AssignWorkflowToPageParams {\n listWorkflow: ApwWorkflowCrud[\"list\"];\n page: PageWithWorkflow;\n}\n\nexport const assignWorkflowToPage = async ({ listWorkflow, page }: AssignWorkflowToPageParams) => {\n /**\n * Lookup and assign \"workflowId\".\n */\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await listWorkflow({\n where: {\n app: ApwWorkflowApplications.PB\n }\n });\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n for (const workflow of sortedWorkflows) {\n /**\n * Assign the first applicable workflow to the page and exit.\n */\n if (isWorkflowApplicable(page, workflow)) {\n page.settings.apw = {\n workflowId: workflow.id,\n contentReviewId: null\n };\n break;\n }\n }\n } catch (ex) {\n throw new WebinyError(`Failed to assign workflow to page \"${page.pid}\".`, ex.code, ex.data);\n }\n};\n\nexport const hasPages = (workflow: ApwWorkflow): boolean => {\n const { app, scope } = workflow;\n return (\n app === ApwWorkflowApplications.PB &&\n scope.type === WorkflowScopeTypes.CUSTOM &&\n scope.data &&\n Array.isArray(scope.data.pages)\n );\n};\n\nexport const shouldUpdatePages = (\n scope: ApwWorkflowScope,\n prevScope: ApwWorkflowScope\n): boolean => {\n /**\n * Bail out early if the scope is not \"CUSTOM\" - at that point all pages should be updated.\n */\n if (prevScope.type !== WorkflowScopeTypes.CUSTOM) {\n return true;\n }\n const prevScopePages: string[] = get(prevScope, \"data.pages\") as unknown as string[];\n const currentScopePages: string[] = get(scope, \"data.pages\") as unknown as string[];\n /**\n * Bail out early if there were no pages assigned previously.\n */\n if (prevScopePages.length === 0) {\n return true;\n }\n /**\n * Bail out early if number of pages has been changed.\n */\n if (currentScopePages.length !== prevScopePages.length) {\n return true;\n }\n /*\n * Check whether previous scope has the exactly same pages as in the new scope.\n */\n return !prevScopePages.every(pid => currentScopePages.includes(pid));\n};\n\ninterface GetUpdatePageOpsResult {\n addedPages: string[];\n removedPages: string[];\n}\n\nexport const getPagesDiff = (\n currentPages: string[],\n prevPages: string[]\n): GetUpdatePageOpsResult => {\n const addedPages = currentPages.filter(id => !prevPages.includes(id));\n const removedPages = prevPages.filter(id => !currentPages.includes(id));\n\n return {\n addedPages,\n removedPages\n };\n};\n\ninterface UpdatePageSettingsParams {\n getPage: PageBuilderContextObject[\"getPage\"];\n updatePage: PageBuilderContextObject[\"updatePage\"];\n uniquePageId: string;\n getNewSettings: (settings: PageWithWorkflow[\"settings\"]) => PageWithWorkflow[\"settings\"];\n}\n\nexport const updatePageSettings = async ({\n getPage,\n updatePage,\n uniquePageId,\n getNewSettings\n}: UpdatePageSettingsParams) => {\n try {\n /**\n * Currently, we only assign \"workflow\" to latest page.\n */\n const page = await getPage<PageWithWorkflow>(uniquePageId);\n /**\n * We can't update a page that is \"locked\".\n */\n if (page.locked) {\n return;\n }\n /**\n * There can be more than one workflow with same `scope` for same `app`. That is why;\n * We'll update the workflow reference even though it already had one assign.\n */\n await updatePage(page.id, {\n settings: getNewSettings(page.settings)\n });\n } catch (e) {\n if (e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n};\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { CmsModelField } from "@webiny/api-headless-cms/types";
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
3
  import { ApwChangeRequest, ApwContentReview, ApwContentReviewCrud, ApwContentReviewStep, ApwContentReviewStepStatus, ApwContext, ApwReviewerCrud, ApwWorkflow, ApwWorkflowStep, ApwWorkflowStepTypes } from "../types";
4
- export declare const getNanoid: (size?: number | undefined) => string;
5
4
  export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
6
5
  fieldId?: string;
7
6
  parent: string;
@@ -11,7 +10,7 @@ export interface HasReviewersParams {
11
10
  step: ApwContentReviewStep;
12
11
  getReviewer: ApwReviewerCrud["get"];
13
12
  }
14
- export declare const hasReviewer: (params: HasReviewersParams) => Promise<Boolean>;
13
+ export declare const hasReviewer: (params: HasReviewersParams) => Promise<boolean>;
15
14
  export declare const getValue: (object: Record<string, any>, key: string) => any;
16
15
  export declare const getContentReviewStepInitialStatus: (workflowSteps: ApwWorkflowStep[], index: number, previousStepStatus?: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
17
16
  export declare const getNextStepStatus: (previousStepType: ApwWorkflowStepTypes, previousStepStatus: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
package/plugins/utils.js CHANGED
@@ -1,50 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.workflowByPrecedenceDesc = exports.workflowByCreatedOnDesc = exports.updateContentReviewStep = exports.updateContentReview = exports.safelyGetContentReview = exports.isInstallationPending = exports.hasReviewer = exports.getValue = exports.getNextStepStatus = exports.getNanoid = exports.getContentReviewStepInitialStatus = exports.extractContentReviewIdAndStep = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
7
+ exports.workflowByPrecedenceDesc = exports.workflowByCreatedOnDesc = exports.updateContentReviewStep = exports.updateContentReview = exports.safelyGetContentReview = exports.isInstallationPending = exports.hasReviewer = exports.getValue = exports.getNextStepStatus = exports.getContentReviewStepInitialStatus = exports.extractContentReviewIdAndStep = void 0;
12
8
  var _get = _interopRequireDefault(require("lodash/get"));
13
-
14
- var _nanoid = require("nanoid");
15
-
16
9
  var _types = require("../types");
17
-
18
- const ALPHANUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
19
- const getNanoid = (0, _nanoid.customAlphabet)(ALPHANUMERIC, 10);
20
- exports.getNanoid = getNanoid;
21
-
22
10
  const hasReviewer = async params => {
23
11
  const {
24
12
  getReviewer,
25
13
  identity,
26
14
  step
27
15
  } = params;
28
-
29
16
  for (const stepReviewer of step.reviewers) {
30
17
  const entry = await getReviewer(stepReviewer.id);
31
-
32
18
  if (entry.identityId === identity.id) {
33
19
  return true;
34
20
  }
35
21
  }
36
-
37
22
  return false;
38
23
  };
39
-
40
24
  exports.hasReviewer = hasReviewer;
41
-
42
25
  const getValue = (object, key) => {
43
26
  return (0, _get.default)(object, `values.${key}`);
44
27
  };
45
-
46
28
  exports.getValue = getValue;
47
-
48
29
  const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepStatus) => {
49
30
  /**
50
31
  * Always set first step 'active' by default.
@@ -52,32 +33,23 @@ const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepSta
52
33
  if (index === 0) {
53
34
  return _types.ApwContentReviewStepStatus.ACTIVE;
54
35
  }
55
-
56
36
  const previousStep = workflowSteps[index - 1];
57
-
58
37
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStep.type !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
59
38
  return _types.ApwContentReviewStepStatus.ACTIVE;
60
39
  }
61
-
62
40
  return _types.ApwContentReviewStepStatus.INACTIVE;
63
41
  };
64
-
65
42
  exports.getContentReviewStepInitialStatus = getContentReviewStepInitialStatus;
66
-
67
43
  const getNextStepStatus = (previousStepType, previousStepStatus) => {
68
44
  if (previousStepStatus === _types.ApwContentReviewStepStatus.DONE) {
69
45
  return _types.ApwContentReviewStepStatus.ACTIVE;
70
46
  }
71
-
72
47
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStepType !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
73
48
  return _types.ApwContentReviewStepStatus.ACTIVE;
74
49
  }
75
-
76
50
  return _types.ApwContentReviewStepStatus.INACTIVE;
77
51
  };
78
-
79
52
  exports.getNextStepStatus = getNextStepStatus;
80
-
81
53
  const extractContentReviewIdAndStep = step => {
82
54
  /*
83
55
  * Get associated content review entry.
@@ -89,15 +61,12 @@ const extractContentReviewIdAndStep = step => {
89
61
  stepId
90
62
  };
91
63
  };
92
-
93
64
  exports.extractContentReviewIdAndStep = extractContentReviewIdAndStep;
94
-
95
65
  const safelyGetContentReview = async ({
96
66
  id,
97
67
  contentReviewMethods
98
68
  }) => {
99
69
  let contentReviewEntry = null;
100
-
101
70
  try {
102
71
  contentReviewEntry = await contentReviewMethods.get(id);
103
72
  } catch (e) {
@@ -105,12 +74,9 @@ const safelyGetContentReview = async ({
105
74
  throw e;
106
75
  }
107
76
  }
108
-
109
77
  return contentReviewEntry;
110
78
  };
111
-
112
79
  exports.safelyGetContentReview = safelyGetContentReview;
113
-
114
80
  const updateContentReview = async ({
115
81
  contentReviewMethods,
116
82
  id,
@@ -120,31 +86,26 @@ const updateContentReview = async ({
120
86
  id,
121
87
  contentReviewMethods
122
88
  });
123
-
124
89
  if (contentReviewEntry) {
125
90
  const newContentReviewData = getNewContentReviewData(contentReviewEntry);
126
91
  /**
127
92
  * Update content review entry.
128
93
  */
129
-
130
94
  await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);
131
95
  }
132
96
  };
133
-
134
97
  exports.updateContentReview = updateContentReview;
135
-
136
98
  const updateContentReviewStep = (steps, stepId, updater) => {
137
99
  return steps.map(step => {
138
100
  if (step.id === stepId) {
139
- return (0, _objectSpread2.default)({}, updater(step));
101
+ return {
102
+ ...updater(step)
103
+ };
140
104
  }
141
-
142
105
  return step;
143
106
  });
144
107
  };
145
-
146
108
  exports.updateContentReviewStep = updateContentReviewStep;
147
-
148
109
  const isInstallationPending = ({
149
110
  tenancy,
150
111
  i18n
@@ -154,40 +115,33 @@ const isInstallationPending = ({
154
115
  * installation is completed. So, we need to skip "APW" creation till then.
155
116
  */
156
117
  const tenant = tenancy.getCurrentTenant();
157
-
158
118
  if (!tenant) {
159
119
  return true;
160
120
  }
161
-
162
121
  return !i18n.getContentLocale();
163
122
  };
164
-
165
123
  exports.isInstallationPending = isInstallationPending;
166
124
  const WORKFLOW_PRECEDENCE = {
167
125
  [_types.WorkflowScopeTypes.DEFAULT]: 0,
168
126
  [_types.WorkflowScopeTypes.CUSTOM]: 1
169
127
  };
170
-
171
128
  const workflowByPrecedenceDesc = (a, b) => {
172
129
  const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];
173
130
  const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];
174
131
  /**
175
132
  * In descending order of workflow precedence.
176
133
  */
177
-
178
134
  return scoreB - scoreA;
179
135
  };
180
-
181
136
  exports.workflowByPrecedenceDesc = workflowByPrecedenceDesc;
182
-
183
137
  const workflowByCreatedOnDesc = (a, b) => {
184
138
  const createdOnA = (0, _get.default)(a, "createdOn");
185
139
  const createdOnB = (0, _get.default)(b, "createdOn");
186
140
  /**
187
141
  * In descending order of workflow createdOn i.e. the most recent one first.
188
142
  */
189
-
190
143
  return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();
191
144
  };
145
+ exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
192
146
 
193
- exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
147
+ //# sourceMappingURL=utils.js.map