@webiny/api-apw 0.0.0-unstable.1e66d121db → 0.0.0-unstable.2aaa1916d9

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 (307) 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.d.ts +1 -1
  14. package/ContentApwSettingsPlugin.js +5 -9
  15. package/ContentApwSettingsPlugin.js.map +1 -1
  16. package/README.md +3 -3
  17. package/crud/createChangeRequestMethods.d.ts +1 -1
  18. package/crud/createChangeRequestMethods.js +7 -12
  19. package/crud/createChangeRequestMethods.js.map +1 -1
  20. package/crud/createCommentMethods.d.ts +1 -1
  21. package/crud/createCommentMethods.js +7 -13
  22. package/crud/createCommentMethods.js.map +1 -1
  23. package/crud/createContentReviewMethods.d.ts +2 -2
  24. package/crud/createContentReviewMethods.js +84 -113
  25. package/crud/createContentReviewMethods.js.map +1 -1
  26. package/crud/createReviewerMethods.d.ts +1 -1
  27. package/crud/createReviewerMethods.js +7 -13
  28. package/crud/createReviewerMethods.js.map +1 -1
  29. package/crud/createWorkflowMethods.d.ts +1 -1
  30. package/crud/createWorkflowMethods.js +7 -18
  31. package/crud/createWorkflowMethods.js.map +1 -1
  32. package/crud/index.d.ts +1 -1
  33. package/crud/index.js +5 -29
  34. package/crud/index.js.map +1 -1
  35. package/crud/utils.d.ts +2 -2
  36. package/crud/utils.js +7 -35
  37. package/crud/utils.js.map +1 -1
  38. package/index.d.ts +3 -4
  39. package/index.js +7 -18
  40. package/index.js.map +1 -1
  41. package/package.json +32 -50
  42. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.d.ts +1 -1
  43. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +4 -19
  44. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -1
  45. package/plugins/cms/apwEntryPlugins.d.ts +2 -2
  46. package/plugins/cms/apwEntryPlugins.js +18 -14
  47. package/plugins/cms/apwEntryPlugins.js.map +1 -1
  48. package/plugins/cms/index.d.ts +4 -4
  49. package/plugins/cms/index.js +7 -10
  50. package/plugins/cms/index.js.map +1 -1
  51. package/plugins/cms/linkContentReviewToEntry.d.ts +2 -2
  52. package/plugins/cms/linkContentReviewToEntry.js +4 -20
  53. package/plugins/cms/linkContentReviewToEntry.js.map +1 -1
  54. package/plugins/cms/linkWorkflowToEntry.d.ts +2 -2
  55. package/plugins/cms/linkWorkflowToEntry.js +18 -46
  56. package/plugins/cms/linkWorkflowToEntry.js.map +1 -1
  57. package/plugins/cms/notifications/changeRequestNotification.d.ts +1 -0
  58. package/plugins/cms/notifications/changeRequestNotification.js +33 -0
  59. package/plugins/cms/notifications/changeRequestNotification.js.map +1 -0
  60. package/plugins/cms/notifications/commentNotification.d.ts +1 -0
  61. package/plugins/cms/notifications/commentNotification.js +33 -0
  62. package/plugins/cms/notifications/commentNotification.js.map +1 -0
  63. package/plugins/cms/notifications/contentReviewNotification.d.ts +1 -0
  64. package/plugins/cms/notifications/contentReviewNotification.js +33 -0
  65. package/plugins/cms/notifications/contentReviewNotification.js.map +1 -0
  66. package/plugins/cms/notifications/contentUrl.d.ts +8 -0
  67. package/plugins/cms/notifications/contentUrl.js +55 -0
  68. package/plugins/cms/notifications/contentUrl.js.map +1 -0
  69. package/plugins/cms/triggerContentReview.d.ts +2 -2
  70. package/plugins/cms/triggerContentReview.js +5 -18
  71. package/plugins/cms/triggerContentReview.js.map +1 -1
  72. package/plugins/cms/updateContentReviewStatus.d.ts +3 -3
  73. package/plugins/cms/updateContentReviewStatus.js +14 -30
  74. package/plugins/cms/updateContentReviewStatus.js.map +1 -1
  75. package/plugins/cms/utils.d.ts +5 -4
  76. package/plugins/cms/utils.js +20 -59
  77. package/plugins/cms/utils.js.map +1 -1
  78. package/plugins/context.d.ts +3 -4
  79. package/plugins/context.js +4 -58
  80. package/plugins/context.js.map +1 -1
  81. package/plugins/graphql/changeRequest.gql.d.ts +1 -1
  82. package/plugins/graphql/changeRequest.gql.js +16 -20
  83. package/plugins/graphql/changeRequest.gql.js.map +1 -1
  84. package/plugins/graphql/comment.gql.d.ts +1 -1
  85. package/plugins/graphql/comment.gql.js +41 -43
  86. package/plugins/graphql/comment.gql.js.map +1 -1
  87. package/plugins/graphql/contentReview.gql.d.ts +1 -1
  88. package/plugins/graphql/contentReview.gql.js +25 -35
  89. package/plugins/graphql/contentReview.gql.js.map +1 -1
  90. package/plugins/graphql/reviewer.gql.d.ts +1 -1
  91. package/plugins/graphql/reviewer.gql.js +17 -20
  92. package/plugins/graphql/reviewer.gql.js.map +1 -1
  93. package/plugins/graphql/utils.d.ts +2 -0
  94. package/plugins/graphql/utils.js +10 -0
  95. package/plugins/graphql/utils.js.map +1 -0
  96. package/plugins/graphql/workflow.gql.d.ts +1 -1
  97. package/plugins/graphql/workflow.gql.js +15 -20
  98. package/plugins/graphql/workflow.gql.js.map +1 -1
  99. package/plugins/graphql.d.ts +1 -1
  100. package/plugins/graphql.js +5 -18
  101. package/plugins/graphql.js.map +1 -1
  102. package/plugins/hooks/createReviewerFromIdentity.d.ts +1 -1
  103. package/plugins/hooks/createReviewerFromIdentity.js +28 -15
  104. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -1
  105. package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +1 -1
  106. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +3 -9
  107. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -1
  108. package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +1 -1
  109. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -8
  110. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -1
  111. package/plugins/hooks/index.d.ts +1 -1
  112. package/plugins/hooks/index.js +4 -13
  113. package/plugins/hooks/index.js.map +1 -1
  114. package/plugins/hooks/initializeContentReviewSteps.d.ts +1 -1
  115. package/plugins/hooks/initializeContentReviewSteps.js +15 -20
  116. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -1
  117. package/plugins/hooks/initializeNotifications.d.ts +2 -0
  118. package/plugins/hooks/initializeNotifications.js +17 -0
  119. package/plugins/hooks/initializeNotifications.js.map +1 -0
  120. package/plugins/hooks/listContentReviews.d.ts +4 -4
  121. package/plugins/hooks/listContentReviews.js +11 -33
  122. package/plugins/hooks/listContentReviews.js.map +1 -1
  123. package/plugins/hooks/notifications/changeRequestAfterCreate.d.ts +2 -0
  124. package/plugins/hooks/notifications/changeRequestAfterCreate.js +113 -0
  125. package/plugins/hooks/notifications/changeRequestAfterCreate.js.map +1 -0
  126. package/plugins/hooks/notifications/changeRequestUrl.d.ts +8 -0
  127. package/plugins/hooks/notifications/changeRequestUrl.js +29 -0
  128. package/plugins/hooks/notifications/changeRequestUrl.js.map +1 -0
  129. package/plugins/hooks/notifications/commentAfterCreate.d.ts +2 -0
  130. package/plugins/hooks/notifications/commentAfterCreate.js +124 -0
  131. package/plugins/hooks/notifications/commentAfterCreate.js.map +1 -0
  132. package/plugins/hooks/notifications/commentUrl.d.ts +8 -0
  133. package/plugins/hooks/notifications/commentUrl.js +29 -0
  134. package/plugins/hooks/notifications/commentUrl.js.map +1 -0
  135. package/plugins/hooks/notifications/contentReviewAfterCreate.d.ts +2 -0
  136. package/plugins/hooks/notifications/contentReviewAfterCreate.js +96 -0
  137. package/plugins/hooks/notifications/contentReviewAfterCreate.js.map +1 -0
  138. package/plugins/hooks/notifications/contentReviewUrl.d.ts +7 -0
  139. package/plugins/hooks/notifications/contentReviewUrl.js +28 -0
  140. package/plugins/hooks/notifications/contentReviewUrl.js.map +1 -0
  141. package/plugins/hooks/notifications/contentUrl.d.ts +7 -0
  142. package/plugins/hooks/notifications/contentUrl.js +26 -0
  143. package/plugins/hooks/notifications/contentUrl.js.map +1 -0
  144. package/plugins/hooks/notifications/getAppUrl.d.ts +2 -0
  145. package/plugins/hooks/notifications/getAppUrl.js +19 -0
  146. package/plugins/hooks/notifications/getAppUrl.js.map +1 -0
  147. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.d.ts +11 -0
  148. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +23 -0
  149. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js.map +1 -0
  150. package/plugins/hooks/notifications/lastCommentNotificationPlugin.d.ts +11 -0
  151. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +23 -0
  152. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js.map +1 -0
  153. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.d.ts +11 -0
  154. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +23 -0
  155. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js.map +1 -0
  156. package/plugins/hooks/notifications/reviewers.d.ts +15 -0
  157. package/plugins/hooks/notifications/reviewers.js +47 -0
  158. package/plugins/hooks/notifications/reviewers.js.map +1 -0
  159. package/plugins/hooks/notifications/sendChangeRequestNotification.d.ts +2 -0
  160. package/plugins/hooks/notifications/sendChangeRequestNotification.js +43 -0
  161. package/plugins/hooks/notifications/sendChangeRequestNotification.js.map +1 -0
  162. package/plugins/hooks/notifications/sendCommentNotification.d.ts +2 -0
  163. package/plugins/hooks/notifications/sendCommentNotification.js +43 -0
  164. package/plugins/hooks/notifications/sendCommentNotification.js.map +1 -0
  165. package/plugins/hooks/notifications/sendContentReviewNotification.d.ts +2 -0
  166. package/plugins/hooks/notifications/sendContentReviewNotification.js +43 -0
  167. package/plugins/hooks/notifications/sendContentReviewNotification.js.map +1 -0
  168. package/plugins/hooks/updatePendingChangeRequests.d.ts +1 -1
  169. package/plugins/hooks/updatePendingChangeRequests.js +7 -13
  170. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -1
  171. package/plugins/hooks/updateTotalComments.d.ts +1 -1
  172. package/plugins/hooks/updateTotalComments.js +21 -23
  173. package/plugins/hooks/updateTotalComments.js.map +1 -1
  174. package/plugins/hooks/validateChangeRequest.d.ts +1 -1
  175. package/plugins/hooks/validateChangeRequest.js +27 -16
  176. package/plugins/hooks/validateChangeRequest.js.map +1 -1
  177. package/plugins/hooks/validateComment.d.ts +1 -1
  178. package/plugins/hooks/validateComment.js +13 -12
  179. package/plugins/hooks/validateComment.js.map +1 -1
  180. package/plugins/hooks/validateContentReview.d.ts +1 -1
  181. package/plugins/hooks/validateContentReview.js +2 -6
  182. package/plugins/hooks/validateContentReview.js.map +1 -1
  183. package/plugins/utils.d.ts +7 -7
  184. package/plugins/utils.js +12 -57
  185. package/plugins/utils.js.map +1 -1
  186. package/scheduler/createScheduleActionMethods.d.ts +1 -1
  187. package/scheduler/createScheduleActionMethods.js +105 -85
  188. package/scheduler/createScheduleActionMethods.js.map +1 -1
  189. package/scheduler/handlers/executeAction/index.d.ts +2 -2
  190. package/scheduler/handlers/executeAction/index.js +47 -41
  191. package/scheduler/handlers/executeAction/index.js.map +1 -1
  192. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +6 -0
  193. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +19 -9
  194. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -1
  195. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +3 -3
  196. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +11 -28
  197. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -1
  198. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +4 -3
  199. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +10 -92
  200. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -1
  201. package/scheduler/handlers/executeAction/security.d.ts +2 -2
  202. package/scheduler/handlers/executeAction/security.js +2 -11
  203. package/scheduler/handlers/executeAction/security.js.map +1 -1
  204. package/scheduler/handlers/scheduleAction/index.d.ts +2 -2
  205. package/scheduler/handlers/scheduleAction/index.js +23 -38
  206. package/scheduler/handlers/scheduleAction/index.js.map +1 -1
  207. package/scheduler/handlers/scheduleAction/scheduleAction.utils.d.ts +3 -3
  208. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +20 -36
  209. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -1
  210. package/scheduler/handlers/utils.d.ts +2 -4
  211. package/scheduler/handlers/utils.js +22 -53
  212. package/scheduler/handlers/utils.js.map +1 -1
  213. package/scheduler/index.d.ts +1 -1
  214. package/scheduler/index.js +2 -3
  215. package/scheduler/index.js.map +1 -1
  216. package/scheduler/types.d.ts +20 -36
  217. package/scheduler/types.js +11 -23
  218. package/scheduler/types.js.map +1 -1
  219. package/storageOperations/changeRequestStorageOperations.d.ts +2 -2
  220. package/storageOperations/changeRequestStorageOperations.js +43 -41
  221. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  222. package/storageOperations/commentStorageOperations.d.ts +3 -3
  223. package/storageOperations/commentStorageOperations.js +16 -44
  224. package/storageOperations/commentStorageOperations.js.map +1 -1
  225. package/storageOperations/contentReviewStorageOperations.d.ts +3 -3
  226. package/storageOperations/contentReviewStorageOperations.js +19 -41
  227. package/storageOperations/contentReviewStorageOperations.js.map +1 -1
  228. package/storageOperations/index.d.ts +3 -9
  229. package/storageOperations/index.js +10 -29
  230. package/storageOperations/index.js.map +1 -1
  231. package/storageOperations/models/changeRequest.model.d.ts +1 -2
  232. package/storageOperations/models/changeRequest.model.js +9 -19
  233. package/storageOperations/models/changeRequest.model.js.map +1 -1
  234. package/storageOperations/models/comment.model.d.ts +1 -2
  235. package/storageOperations/models/comment.model.js +9 -18
  236. package/storageOperations/models/comment.model.js.map +1 -1
  237. package/storageOperations/models/contentReview.model.d.ts +1 -2
  238. package/storageOperations/models/contentReview.model.js +16 -41
  239. package/storageOperations/models/contentReview.model.js.map +1 -1
  240. package/storageOperations/models/index.d.ts +1 -1
  241. package/storageOperations/models/index.js +11 -55
  242. package/storageOperations/models/index.js.map +1 -1
  243. package/storageOperations/models/reviewer.model.d.ts +1 -2
  244. package/storageOperations/models/reviewer.model.js +25 -18
  245. package/storageOperations/models/reviewer.model.js.map +1 -1
  246. package/storageOperations/models/utils.d.ts +2 -2
  247. package/storageOperations/models/utils.js +2 -4
  248. package/storageOperations/models/utils.js.map +1 -1
  249. package/storageOperations/models/workflow.model.d.ts +2 -3
  250. package/storageOperations/models/workflow.model.js +22 -46
  251. package/storageOperations/models/workflow.model.js.map +1 -1
  252. package/storageOperations/reviewerStorageOperations.d.ts +3 -3
  253. package/storageOperations/reviewerStorageOperations.js +19 -38
  254. package/storageOperations/reviewerStorageOperations.js.map +1 -1
  255. package/storageOperations/types.d.ts +2 -2
  256. package/storageOperations/types.js +3 -1
  257. package/storageOperations/types.js.map +1 -1
  258. package/storageOperations/workflowStorageOperations.d.ts +2 -2
  259. package/storageOperations/workflowStorageOperations.js +24 -44
  260. package/storageOperations/workflowStorageOperations.js.map +1 -1
  261. package/types.d.ts +66 -69
  262. package/types.js +121 -43
  263. package/types.js.map +1 -1
  264. package/utils/contentApwSettingsPlugin.d.ts +2 -2
  265. package/utils/contentApwSettingsPlugin.js +2 -6
  266. package/utils/contentApwSettingsPlugin.js.map +1 -1
  267. package/utils/errors.js +2 -17
  268. package/utils/errors.js.map +1 -1
  269. package/utils/fieldResolver.d.ts +2 -2
  270. package/utils/fieldResolver.js +8 -18
  271. package/utils/fieldResolver.js.map +1 -1
  272. package/utils/pickEntryFieldValues.d.ts +3 -0
  273. package/utils/pickEntryFieldValues.js +30 -0
  274. package/utils/pickEntryFieldValues.js.map +1 -0
  275. package/utils/resolve.d.ts +1 -1
  276. package/utils/resolve.js +2 -3
  277. package/utils/resolve.js.map +1 -1
  278. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.d.ts +0 -9
  279. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +0 -51
  280. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +0 -1
  281. package/plugins/pageBuilder/apwContentPagePlugins.d.ts +0 -3
  282. package/plugins/pageBuilder/apwContentPagePlugins.js +0 -30
  283. package/plugins/pageBuilder/apwContentPagePlugins.js.map +0 -1
  284. package/plugins/pageBuilder/extendPbPageSettingsSchema.d.ts +0 -3
  285. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +0 -25
  286. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +0 -1
  287. package/plugins/pageBuilder/index.d.ts +0 -11
  288. package/plugins/pageBuilder/index.js +0 -45
  289. package/plugins/pageBuilder/index.js.map +0 -1
  290. package/plugins/pageBuilder/linkContentReviewToPage.d.ts +0 -8
  291. package/plugins/pageBuilder/linkContentReviewToPage.js +0 -105
  292. package/plugins/pageBuilder/linkContentReviewToPage.js.map +0 -1
  293. package/plugins/pageBuilder/linkWorkflowToPage.d.ts +0 -8
  294. package/plugins/pageBuilder/linkWorkflowToPage.js +0 -194
  295. package/plugins/pageBuilder/linkWorkflowToPage.js.map +0 -1
  296. package/plugins/pageBuilder/triggerContentReview.d.ts +0 -8
  297. package/plugins/pageBuilder/triggerContentReview.js +0 -50
  298. package/plugins/pageBuilder/triggerContentReview.js.map +0 -1
  299. package/plugins/pageBuilder/updateContentReviewStatus.d.ts +0 -10
  300. package/plugins/pageBuilder/updateContentReviewStatus.js +0 -79
  301. package/plugins/pageBuilder/updateContentReviewStatus.js.map +0 -1
  302. package/plugins/pageBuilder/utils.d.ts +0 -22
  303. package/plugins/pageBuilder/utils.js +0 -184
  304. package/plugins/pageBuilder/utils.js.map +0 -1
  305. package/storageOperations/models/contentModelPluginFactory.d.ts +0 -15
  306. package/storageOperations/models/contentModelPluginFactory.js +0 -28
  307. package/storageOperations/models/contentModelPluginFactory.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import { LifeCycleHookCallbackParams } from "../../types";
1
+ import type { LifeCycleHookCallbackParams } from "../../types";
2
2
  export declare const validateContentReview: ({ apw }: Pick<LifeCycleHookCallbackParams, "apw">) => void;
@@ -1,14 +1,11 @@
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.validateContentReview = void 0;
9
-
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
9
  const validateContentReview = ({
13
10
  apw
14
11
  }) => {
@@ -21,11 +18,9 @@ const validateContentReview = ({
21
18
  /**
22
19
  * Check whether a contentReview already exists for provided content.
23
20
  */
24
-
25
21
  const {
26
22
  contentReviewId
27
23
  } = await apw.contentReview.isReviewRequired(content);
28
-
29
24
  if (contentReviewId) {
30
25
  throw new _error.default(`A peer review for this content has been already requested.`, "REVIEW_ALREADY_EXIST", {
31
26
  contentReviewId,
@@ -34,5 +29,6 @@ const validateContentReview = ({
34
29
  }
35
30
  });
36
31
  };
32
+ exports.validateContentReview = validateContentReview;
37
33
 
38
- exports.validateContentReview = validateContentReview;
34
+ //# sourceMappingURL=validateContentReview.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["validateContentReview","apw","contentReview","onContentReviewBeforeCreate","subscribe","input","content","contentReviewId","isReviewRequired","WebinyError"],"sources":["validateContentReview.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { LifeCycleHookCallbackParams } from \"~/types\";\n\nexport const validateContentReview = ({ apw }: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.contentReview.onContentReviewBeforeCreate.subscribe(async ({ input }) => {\n const { content } = input;\n /**\n * Check whether a contentReview already exists for provided content.\n */\n const { contentReviewId } = await apw.contentReview.isReviewRequired(content);\n if (contentReviewId) {\n throw new WebinyError(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n content\n }\n );\n }\n });\n};\n"],"mappings":";;;;;;;;;AAAA;;AAGO,MAAMA,qBAAqB,GAAG,CAAC;EAAEC;AAAF,CAAD,KAAuD;EACxFA,GAAG,CAACC,aAAJ,CAAkBC,2BAAlB,CAA8CC,SAA9C,CAAwD,OAAO;IAAEC;EAAF,CAAP,KAAqB;IACzE,MAAM;MAAEC;IAAF,IAAcD,KAApB;IACA;AACR;AACA;;IACQ,MAAM;MAAEE;IAAF,IAAsB,MAAMN,GAAG,CAACC,aAAJ,CAAkBM,gBAAlB,CAAmCF,OAAnC,CAAlC;;IACA,IAAIC,eAAJ,EAAqB;MACjB,MAAM,IAAIE,cAAJ,CACD,4DADC,EAEF,sBAFE,EAGF;QACIF,eADJ;QAEID;MAFJ,CAHE,CAAN;IAQH;EACJ,CAhBD;AAiBH,CAlBM"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","validateContentReview","apw","contentReview","onContentReviewBeforeCreate","subscribe","input","content","contentReviewId","isReviewRequired","WebinyError","exports"],"sources":["validateContentReview.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { LifeCycleHookCallbackParams } from \"~/types\";\n\nexport const validateContentReview = ({ apw }: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.contentReview.onContentReviewBeforeCreate.subscribe(async ({ input }) => {\n const { content } = input;\n /**\n * Check whether a contentReview already exists for provided content.\n */\n const { contentReviewId } = await apw.contentReview.isReviewRequired(content);\n if (contentReviewId) {\n throw new WebinyError(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n content\n }\n );\n }\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAA8C,CAAC,KAAK;EACxFA,GAAG,CAACC,aAAa,CAACC,2BAA2B,CAACC,SAAS,CAAC,OAAO;IAAEC;EAAM,CAAC,KAAK;IACzE,MAAM;MAAEC;IAAQ,CAAC,GAAGD,KAAK;IACzB;AACR;AACA;IACQ,MAAM;MAAEE;IAAgB,CAAC,GAAG,MAAMN,GAAG,CAACC,aAAa,CAACM,gBAAgB,CAACF,OAAO,CAAC;IAC7E,IAAIC,eAAe,EAAE;MACjB,MAAM,IAAIE,cAAW,CACjB,4DAA4D,EAC5D,sBAAsB,EACtB;QACIF,eAAe;QACfD;MACJ,CACJ,CAAC;IACL;EACJ,CAAC,CAAC;AACN,CAAC;AAACI,OAAA,CAAAV,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { CmsModelField } from "@webiny/api-headless-cms/types";
2
- import { SecurityIdentity } from "@webiny/api-security/types";
3
- import { ApwChangeRequest, ApwContentReview, ApwContentReviewCrud, ApwContentReviewStep, ApwContentReviewStepStatus, ApwContext, ApwReviewerCrud, ApwWorkflow, ApwWorkflowStep, ApwWorkflowStepTypes } from "../types";
4
- export declare const getNanoid: (size?: number | undefined) => string;
1
+ import type { CmsModelField } from "@webiny/api-headless-cms/types";
2
+ import type { SecurityIdentity } from "@webiny/api-security/types";
3
+ import type { ApwChangeRequest, ApwContentReview, ApwContentReviewCrud, ApwContentReviewStep, ApwContext, ApwReviewerCrud, ApwWorkflow, ApwWorkflowStep } from "../types";
4
+ import { ApwContentReviewStepStatus, ApwWorkflowStepTypes } from "../types";
5
5
  export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
6
6
  fieldId?: string;
7
7
  parent: string;
@@ -11,7 +11,7 @@ export interface HasReviewersParams {
11
11
  step: ApwContentReviewStep;
12
12
  getReviewer: ApwReviewerCrud["get"];
13
13
  }
14
- export declare const hasReviewer: (params: HasReviewersParams) => Promise<Boolean>;
14
+ export declare const hasReviewer: (params: HasReviewersParams) => Promise<boolean>;
15
15
  export declare const getValue: (object: Record<string, any>, key: string) => any;
16
16
  export declare const getContentReviewStepInitialStatus: (workflowSteps: ApwWorkflowStep[], index: number, previousStepStatus?: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
17
17
  export declare const getNextStepStatus: (previousStepType: ApwWorkflowStepTypes, previousStepStatus: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
@@ -20,7 +20,7 @@ export interface ExtractContentReviewIdAndStepResult {
20
20
  stepId: string;
21
21
  }
22
22
  export declare const extractContentReviewIdAndStep: (step: ApwChangeRequest["step"]) => ExtractContentReviewIdAndStepResult;
23
- declare type SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, "id" | "contentReviewMethods">;
23
+ type SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, "id" | "contentReviewMethods">;
24
24
  export declare const safelyGetContentReview: ({ id, contentReviewMethods }: SafelyGetContentReviewParams) => Promise<ApwContentReview | null>;
25
25
  export interface UpdateContentReviewParams {
26
26
  id: string;
@@ -29,7 +29,7 @@ export interface UpdateContentReviewParams {
29
29
  }
30
30
  export declare const updateContentReview: ({ contentReviewMethods, id, getNewContentReviewData }: UpdateContentReviewParams) => Promise<void>;
31
31
  export declare const updateContentReviewStep: (steps: ApwContentReviewStep[], stepId: string, updater: (step: ApwContentReviewStep) => ApwContentReviewStep) => ApwContentReviewStep[];
32
- declare type CheckInstallationParams = Pick<ApwContext, "tenancy" | "i18n">;
32
+ type CheckInstallationParams = Pick<ApwContext, "tenancy" | "i18n">;
33
33
  export declare const isInstallationPending: ({ tenancy, i18n }: CheckInstallationParams) => boolean;
34
34
  export declare const workflowByPrecedenceDesc: (a: ApwWorkflow, b: ApwWorkflow) => number;
35
35
  export declare const workflowByCreatedOnDesc: (a: ApwWorkflow, b: ApwWorkflow) => number;
package/plugins/utils.js CHANGED
@@ -1,50 +1,32 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
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
-
12
- var _get = _interopRequireDefault(require("lodash/get"));
13
-
14
- var _nanoid = require("nanoid");
15
-
6
+ exports.workflowByPrecedenceDesc = exports.workflowByCreatedOnDesc = exports.updateContentReviewStep = exports.updateContentReview = exports.safelyGetContentReview = exports.isInstallationPending = exports.hasReviewer = exports.getValue = exports.getNextStepStatus = exports.getContentReviewStepInitialStatus = exports.extractContentReviewIdAndStep = void 0;
16
7
  var _types = require("../types");
17
-
18
- const ALPHANUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
19
- const getNanoid = (0, _nanoid.customAlphabet)(ALPHANUMERIC, 10);
20
- exports.getNanoid = getNanoid;
21
-
22
8
  const hasReviewer = async params => {
23
9
  const {
24
10
  getReviewer,
25
11
  identity,
26
12
  step
27
13
  } = params;
28
-
29
14
  for (const stepReviewer of step.reviewers) {
30
15
  const entry = await getReviewer(stepReviewer.id);
31
-
32
16
  if (entry.identityId === identity.id) {
33
17
  return true;
34
18
  }
35
19
  }
36
-
37
20
  return false;
38
21
  };
39
-
40
22
  exports.hasReviewer = hasReviewer;
41
-
42
23
  const getValue = (object, key) => {
43
- return (0, _get.default)(object, `values.${key}`);
24
+ if (!object.values) {
25
+ return undefined;
26
+ }
27
+ return object.values[key];
44
28
  };
45
-
46
29
  exports.getValue = getValue;
47
-
48
30
  const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepStatus) => {
49
31
  /**
50
32
  * Always set first step 'active' by default.
@@ -52,32 +34,23 @@ const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepSta
52
34
  if (index === 0) {
53
35
  return _types.ApwContentReviewStepStatus.ACTIVE;
54
36
  }
55
-
56
37
  const previousStep = workflowSteps[index - 1];
57
-
58
38
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStep.type !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
59
39
  return _types.ApwContentReviewStepStatus.ACTIVE;
60
40
  }
61
-
62
41
  return _types.ApwContentReviewStepStatus.INACTIVE;
63
42
  };
64
-
65
43
  exports.getContentReviewStepInitialStatus = getContentReviewStepInitialStatus;
66
-
67
44
  const getNextStepStatus = (previousStepType, previousStepStatus) => {
68
45
  if (previousStepStatus === _types.ApwContentReviewStepStatus.DONE) {
69
46
  return _types.ApwContentReviewStepStatus.ACTIVE;
70
47
  }
71
-
72
48
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStepType !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
73
49
  return _types.ApwContentReviewStepStatus.ACTIVE;
74
50
  }
75
-
76
51
  return _types.ApwContentReviewStepStatus.INACTIVE;
77
52
  };
78
-
79
53
  exports.getNextStepStatus = getNextStepStatus;
80
-
81
54
  const extractContentReviewIdAndStep = step => {
82
55
  /*
83
56
  * Get associated content review entry.
@@ -89,15 +62,12 @@ const extractContentReviewIdAndStep = step => {
89
62
  stepId
90
63
  };
91
64
  };
92
-
93
65
  exports.extractContentReviewIdAndStep = extractContentReviewIdAndStep;
94
-
95
66
  const safelyGetContentReview = async ({
96
67
  id,
97
68
  contentReviewMethods
98
69
  }) => {
99
70
  let contentReviewEntry = null;
100
-
101
71
  try {
102
72
  contentReviewEntry = await contentReviewMethods.get(id);
103
73
  } catch (e) {
@@ -105,12 +75,9 @@ const safelyGetContentReview = async ({
105
75
  throw e;
106
76
  }
107
77
  }
108
-
109
78
  return contentReviewEntry;
110
79
  };
111
-
112
80
  exports.safelyGetContentReview = safelyGetContentReview;
113
-
114
81
  const updateContentReview = async ({
115
82
  contentReviewMethods,
116
83
  id,
@@ -120,31 +87,26 @@ const updateContentReview = async ({
120
87
  id,
121
88
  contentReviewMethods
122
89
  });
123
-
124
90
  if (contentReviewEntry) {
125
91
  const newContentReviewData = getNewContentReviewData(contentReviewEntry);
126
92
  /**
127
93
  * Update content review entry.
128
94
  */
129
-
130
95
  await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);
131
96
  }
132
97
  };
133
-
134
98
  exports.updateContentReview = updateContentReview;
135
-
136
99
  const updateContentReviewStep = (steps, stepId, updater) => {
137
100
  return steps.map(step => {
138
101
  if (step.id === stepId) {
139
- return (0, _objectSpread2.default)({}, updater(step));
102
+ return {
103
+ ...updater(step)
104
+ };
140
105
  }
141
-
142
106
  return step;
143
107
  });
144
108
  };
145
-
146
109
  exports.updateContentReviewStep = updateContentReviewStep;
147
-
148
110
  const isInstallationPending = ({
149
111
  tenancy,
150
112
  i18n
@@ -154,40 +116,33 @@ const isInstallationPending = ({
154
116
  * installation is completed. So, we need to skip "APW" creation till then.
155
117
  */
156
118
  const tenant = tenancy.getCurrentTenant();
157
-
158
119
  if (!tenant) {
159
120
  return true;
160
121
  }
161
-
162
122
  return !i18n.getContentLocale();
163
123
  };
164
-
165
124
  exports.isInstallationPending = isInstallationPending;
166
125
  const WORKFLOW_PRECEDENCE = {
167
126
  [_types.WorkflowScopeTypes.DEFAULT]: 0,
168
127
  [_types.WorkflowScopeTypes.CUSTOM]: 1
169
128
  };
170
-
171
129
  const workflowByPrecedenceDesc = (a, b) => {
172
130
  const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];
173
131
  const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];
174
132
  /**
175
133
  * In descending order of workflow precedence.
176
134
  */
177
-
178
135
  return scoreB - scoreA;
179
136
  };
180
-
181
137
  exports.workflowByPrecedenceDesc = workflowByPrecedenceDesc;
182
-
183
138
  const workflowByCreatedOnDesc = (a, b) => {
184
- const createdOnA = (0, _get.default)(a, "createdOn");
185
- const createdOnB = (0, _get.default)(b, "createdOn");
139
+ const createdOnA = a.createdOn;
140
+ const createdOnB = b.createdOn;
186
141
  /**
187
142
  * In descending order of workflow createdOn i.e. the most recent one first.
188
143
  */
189
-
190
144
  return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();
191
145
  };
146
+ exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
192
147
 
193
- exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
148
+ //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ALPHANUMERIC","getNanoid","customAlphabet","hasReviewer","params","getReviewer","identity","step","stepReviewer","reviewers","entry","id","identityId","getValue","object","key","get","getContentReviewStepInitialStatus","workflowSteps","index","previousStepStatus","ApwContentReviewStepStatus","ACTIVE","previousStep","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","INACTIVE","getNextStepStatus","previousStepType","DONE","extractContentReviewIdAndStep","entryId","version","stepId","split","revisionId","safelyGetContentReview","contentReviewMethods","contentReviewEntry","e","message","code","updateContentReview","getNewContentReviewData","newContentReviewData","update","updateContentReviewStep","steps","updater","map","isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale","WORKFLOW_PRECEDENCE","WorkflowScopeTypes","DEFAULT","CUSTOM","workflowByPrecedenceDesc","a","b","scoreA","scope","scoreB","workflowByCreatedOnDesc","createdOnA","createdOnB","Date","getTime"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport { customAlphabet } from \"nanoid\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport {\n ApwChangeRequest,\n ApwContentReview,\n ApwContentReviewCrud,\n ApwContentReviewStep,\n ApwContentReviewStepStatus,\n ApwContext,\n ApwReviewerCrud,\n ApwWorkflow,\n ApwWorkflowStep,\n ApwWorkflowStepTypes,\n WorkflowScopeTypes\n} from \"~/types\";\n\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nexport const getNanoid = customAlphabet(ALPHANUMERIC, 10);\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n parent: string;\n}\n\nexport interface HasReviewersParams {\n identity: SecurityIdentity;\n step: ApwContentReviewStep;\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport const hasReviewer = async (params: HasReviewersParams): Promise<Boolean> => {\n const { getReviewer, identity, step } = params;\n for (const stepReviewer of step.reviewers) {\n const entry = await getReviewer(stepReviewer.id);\n\n if (entry.identityId === identity.id) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const getValue = (object: Record<string, any>, key: string) => {\n return get(object, `values.${key}`);\n};\n\nexport const getContentReviewStepInitialStatus = (\n workflowSteps: ApwWorkflowStep[],\n index: number,\n previousStepStatus?: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n /**\n * Always set first step 'active' by default.\n */\n if (index === 0) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n const previousStep = workflowSteps[index - 1];\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStep.type !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport const getNextStepStatus = (\n previousStepType: ApwWorkflowStepTypes,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n if (previousStepStatus === ApwContentReviewStepStatus.DONE) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStepType !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport interface ExtractContentReviewIdAndStepResult {\n id: string;\n stepId: string;\n}\n\nexport const extractContentReviewIdAndStep = (\n step: ApwChangeRequest[\"step\"]\n): ExtractContentReviewIdAndStepResult => {\n /*\n * Get associated content review entry.\n */\n const [entryId, version, stepId] = step.split(\"#\");\n const revisionId = `${entryId}#${version}`;\n\n return {\n id: revisionId,\n stepId\n };\n};\n\ntype SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, \"id\" | \"contentReviewMethods\">;\n\nexport const safelyGetContentReview = async ({\n id,\n contentReviewMethods\n}: SafelyGetContentReviewParams): Promise<ApwContentReview | null> => {\n let contentReviewEntry = null;\n try {\n contentReviewEntry = await contentReviewMethods.get(id);\n } catch (e) {\n if (e.message !== \"index_not_found_exception\" && e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n\n return contentReviewEntry;\n};\n\nexport interface UpdateContentReviewParams {\n id: string;\n contentReviewMethods: ApwContentReviewCrud;\n getNewContentReviewData: (entry: ApwContentReview) => ApwContentReview;\n}\n\nexport const updateContentReview = async ({\n contentReviewMethods,\n id,\n getNewContentReviewData\n}: UpdateContentReviewParams): Promise<void> => {\n const contentReviewEntry = await safelyGetContentReview({ id, contentReviewMethods });\n if (contentReviewEntry) {\n const newContentReviewData = getNewContentReviewData(contentReviewEntry);\n /**\n * Update content review entry.\n */\n await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);\n }\n};\n\nexport const updateContentReviewStep = (\n steps: ApwContentReviewStep[],\n stepId: string,\n updater: (step: ApwContentReviewStep) => ApwContentReviewStep\n): ApwContentReviewStep[] => {\n return steps.map(step => {\n if (step.id === stepId) {\n return {\n ...updater(step)\n };\n }\n return step;\n });\n};\n\ntype CheckInstallationParams = Pick<ApwContext, \"tenancy\" | \"i18n\">;\n\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"APW\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n\nconst WORKFLOW_PRECEDENCE = {\n [WorkflowScopeTypes.DEFAULT]: 0,\n [WorkflowScopeTypes.CUSTOM]: 1\n};\n\nexport const workflowByPrecedenceDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];\n const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];\n /**\n * In descending order of workflow precedence.\n */\n return scoreB - scoreA;\n};\n\nexport const workflowByCreatedOnDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const createdOnA = get(a, \"createdOn\");\n const createdOnB = get(b, \"createdOn\");\n /**\n * In descending order of workflow createdOn i.e. the most recent one first.\n */\n return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","hasReviewer","params","getReviewer","identity","step","stepReviewer","reviewers","entry","id","identityId","exports","getValue","object","key","values","undefined","getContentReviewStepInitialStatus","workflowSteps","index","previousStepStatus","ApwContentReviewStepStatus","ACTIVE","previousStep","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","INACTIVE","getNextStepStatus","previousStepType","DONE","extractContentReviewIdAndStep","entryId","version","stepId","split","revisionId","safelyGetContentReview","contentReviewMethods","contentReviewEntry","get","e","message","code","updateContentReview","getNewContentReviewData","newContentReviewData","update","updateContentReviewStep","steps","updater","map","isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale","WORKFLOW_PRECEDENCE","WorkflowScopeTypes","DEFAULT","CUSTOM","workflowByPrecedenceDesc","a","b","scoreA","scope","scoreB","workflowByCreatedOnDesc","createdOnA","createdOn","createdOnB","Date","getTime"],"sources":["utils.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport type {\n ApwChangeRequest,\n ApwContentReview,\n ApwContentReviewCrud,\n ApwContentReviewStep,\n ApwContext,\n ApwReviewerCrud,\n ApwWorkflow,\n ApwWorkflowStep\n} from \"~/types\";\nimport { ApwContentReviewStepStatus, ApwWorkflowStepTypes, WorkflowScopeTypes } from \"~/types\";\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n fieldId?: string;\n parent: string;\n}\n\nexport interface HasReviewersParams {\n identity: SecurityIdentity;\n step: ApwContentReviewStep;\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport const hasReviewer = async (params: HasReviewersParams): Promise<boolean> => {\n const { getReviewer, identity, step } = params;\n for (const stepReviewer of step.reviewers) {\n const entry = await getReviewer(stepReviewer.id);\n\n if (entry.identityId === identity.id) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const getValue = (object: Record<string, any>, key: string) => {\n if (!object.values) {\n return undefined;\n }\n return object.values[key];\n};\n\nexport const getContentReviewStepInitialStatus = (\n workflowSteps: ApwWorkflowStep[],\n index: number,\n previousStepStatus?: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n /**\n * Always set first step 'active' by default.\n */\n if (index === 0) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n const previousStep = workflowSteps[index - 1];\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStep.type !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport const getNextStepStatus = (\n previousStepType: ApwWorkflowStepTypes,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n if (previousStepStatus === ApwContentReviewStepStatus.DONE) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStepType !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport interface ExtractContentReviewIdAndStepResult {\n id: string;\n stepId: string;\n}\n\nexport const extractContentReviewIdAndStep = (\n step: ApwChangeRequest[\"step\"]\n): ExtractContentReviewIdAndStepResult => {\n /*\n * Get associated content review entry.\n */\n const [entryId, version, stepId] = step.split(\"#\");\n const revisionId = `${entryId}#${version}`;\n\n return {\n id: revisionId,\n stepId\n };\n};\n\ntype SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, \"id\" | \"contentReviewMethods\">;\n\nexport const safelyGetContentReview = async ({\n id,\n contentReviewMethods\n}: SafelyGetContentReviewParams): Promise<ApwContentReview | null> => {\n let contentReviewEntry = null;\n try {\n contentReviewEntry = await contentReviewMethods.get(id);\n } catch (e) {\n if (e.message !== \"index_not_found_exception\" && e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n\n return contentReviewEntry;\n};\n\nexport interface UpdateContentReviewParams {\n id: string;\n contentReviewMethods: ApwContentReviewCrud;\n getNewContentReviewData: (entry: ApwContentReview) => ApwContentReview;\n}\n\nexport const updateContentReview = async ({\n contentReviewMethods,\n id,\n getNewContentReviewData\n}: UpdateContentReviewParams): Promise<void> => {\n const contentReviewEntry = await safelyGetContentReview({ id, contentReviewMethods });\n if (contentReviewEntry) {\n const newContentReviewData = getNewContentReviewData(contentReviewEntry);\n /**\n * Update content review entry.\n */\n await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);\n }\n};\n\nexport const updateContentReviewStep = (\n steps: ApwContentReviewStep[],\n stepId: string,\n updater: (step: ApwContentReviewStep) => ApwContentReviewStep\n): ApwContentReviewStep[] => {\n return steps.map(step => {\n if (step.id === stepId) {\n return {\n ...updater(step)\n };\n }\n return step;\n });\n};\n\ntype CheckInstallationParams = Pick<ApwContext, \"tenancy\" | \"i18n\">;\n\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"APW\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n\nconst WORKFLOW_PRECEDENCE = {\n [WorkflowScopeTypes.DEFAULT]: 0,\n [WorkflowScopeTypes.CUSTOM]: 1\n};\n\nexport const workflowByPrecedenceDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];\n const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];\n /**\n * In descending order of workflow precedence.\n */\n return scoreB - scoreA;\n};\n\nexport const workflowByCreatedOnDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const createdOnA = a.createdOn;\n const createdOnB = b.createdOn;\n /**\n * In descending order of workflow createdOn i.e. the most recent one first.\n */\n return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { ApwScheduleActionCrud, CreateScheduleActionParams } from "./types";
1
+ import type { ApwScheduleActionCrud, CreateScheduleActionParams } from "./types";
2
2
  export declare function createScheduleActionMethods({ storageOperations, getIdentity, getTenant, getLocale }: CreateScheduleActionParams): ApwScheduleActionCrud;
@@ -1,59 +1,64 @@
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.createScheduleActionMethods = createScheduleActionMethods;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _mdbid = _interopRequireDefault(require("mdbid"));
13
-
14
- var _fields = require("@commodo/fields");
15
-
16
- var _validation = require("@webiny/validation");
17
-
8
+ var _utils = require("@webiny/utils");
18
9
  var _types = require("./types");
19
-
20
- /**
21
- * Package mdbid does not have types.
22
- */
23
- // @ts-ignore
24
-
25
- /**
26
- * Package @commodo/fields does not have types.
27
- */
28
- // @ts-ignore
29
- const CreateDataModel = (0, _fields.withFields)(instance => {
30
- return {
31
- datetime: (0, _fields.string)({
32
- validation: _validation.validation.create(`required`)
33
- }),
34
- type: (0, _fields.string)({
35
- validation: _validation.validation.create(`required,in:${_types.ApwContentTypes.PAGE}:${_types.ApwContentTypes.CMS_ENTRY}`)
36
- }),
37
- action: (0, _fields.string)({
38
- validation: _validation.validation.create(`required,in:${_types.ApwScheduleActionTypes.PUBLISH}:${_types.ApwScheduleActionTypes.UNPUBLISH}`)
39
- }),
40
- entryId: (0, _fields.string)({
41
- validation: _validation.validation.create(`required`)
42
- }),
43
- modelId: (0, _fields.string)({
44
- validation: value => {
45
- if (instance.type !== _types.ApwContentTypes.CMS_ENTRY) {
46
- return true;
47
- } else if (!!value) {
48
- return true;
49
- }
50
-
51
- throw new Error(`There is no modelId defined when type is "${_types.ApwContentTypes.CMS_ENTRY}"`);
52
- }
53
- })
54
- };
10
+ var _zod = _interopRequireDefault(require("zod"));
11
+ /*
12
+ const CreateDataModel = withFields((instance: any) => {
13
+ return {
14
+ datetime: string({
15
+ validation: validation.create(`required`)
16
+ }),
17
+ type: string({
18
+ validation: validation.create(
19
+ `required,in:${ApwContentTypes.PAGE}:${ApwContentTypes.CMS_ENTRY}`
20
+ )
21
+ }),
22
+ action: string({
23
+ validation: validation.create(
24
+ `required,in:${ApwScheduleActionTypes.PUBLISH}:${ApwScheduleActionTypes.UNPUBLISH}`
25
+ )
26
+ }),
27
+ entryId: string({
28
+ validation: validation.create(`required`)
29
+ }),
30
+ modelId: string({
31
+ validation: (value: string) => {
32
+ if (instance.type !== ApwContentTypes.CMS_ENTRY) {
33
+ return true;
34
+ } else if (!!value) {
35
+ return true;
36
+ }
37
+ throw new Error(
38
+ `There is no modelId defined when type is "${ApwContentTypes.CMS_ENTRY}"`
39
+ );
40
+ }
41
+ })
42
+ };
55
43
  })();
56
-
44
+ */
45
+
46
+ const createDataModelValidation = _zod.default.object({
47
+ datetime: _zod.default.string(),
48
+ type: _zod.default.enum([_types.ApwContentTypes.PAGE, _types.ApwContentTypes.CMS_ENTRY]),
49
+ action: _zod.default.enum([_types.ApwScheduleActionTypes.PUBLISH, _types.ApwScheduleActionTypes.UNPUBLISH]),
50
+ entryId: _zod.default.string(),
51
+ modelId: _zod.default.string().optional()
52
+ }).refine(data => {
53
+ if (data.type !== _types.ApwContentTypes.CMS_ENTRY) {
54
+ return true;
55
+ } else if (!!data.modelId) {
56
+ return true;
57
+ }
58
+ return false;
59
+ }, {
60
+ message: `There is no modelId defined when type is "${_types.ApwContentTypes.CMS_ENTRY}"`
61
+ });
57
62
  function createScheduleActionMethods({
58
63
  storageOperations,
59
64
  getIdentity,
@@ -68,82 +73,97 @@ function createScheduleActionMethods({
68
73
  locale
69
74
  };
70
75
  };
71
-
72
76
  return {
73
77
  async get(id) {
74
78
  return storageOperations.get({
75
- where: (0, _objectSpread2.default)({
76
- id
77
- }, getTenantAndLocale())
79
+ where: {
80
+ id,
81
+ ...getTenantAndLocale()
82
+ }
78
83
  });
79
84
  },
80
-
81
85
  async list(params) {
82
- return storageOperations.list((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
83
- where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params.where), getTenantAndLocale())
84
- }));
86
+ return storageOperations.list({
87
+ ...params,
88
+ where: {
89
+ ...params.where,
90
+ ...getTenantAndLocale()
91
+ }
92
+ });
85
93
  },
86
-
87
94
  async create(input) {
88
- const createDataModel = new CreateDataModel().populate(input);
89
- await createDataModel.validate();
90
- const id = (0, _mdbid.default)();
91
- const identity = getIdentity();
92
- const data = await createDataModel.toJSON();
93
- const scheduleAction = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, getTenantAndLocale()), {}, {
95
+ const validation = createDataModelValidation.safeParse(input);
96
+ if (!validation.success) {
97
+ throw (0, _utils.createZodError)(validation.error);
98
+ }
99
+ const data = validation.data;
100
+ const id = (0, _utils.mdbid)();
101
+ const currentDateTime = new Date();
102
+ const currentIdentity = getIdentity();
103
+ const scheduleAction = {
104
+ ...getTenantAndLocale(),
94
105
  data,
95
106
  id,
96
- createdOn: new Date().toISOString(),
97
- savedOn: new Date().toISOString(),
107
+ createdOn: currentDateTime.toISOString(),
108
+ modifiedOn: null,
109
+ savedOn: currentDateTime.toISOString(),
98
110
  createdBy: {
99
- id: identity.id,
100
- type: identity.type,
101
- displayName: identity.displayName
111
+ id: currentIdentity.id,
112
+ type: currentIdentity.type,
113
+ displayName: currentIdentity.displayName
114
+ },
115
+ modifiedBy: null,
116
+ savedBy: {
117
+ id: currentIdentity.id,
118
+ type: currentIdentity.type,
119
+ displayName: currentIdentity.displayName
102
120
  }
103
- });
121
+ };
104
122
  return await storageOperations.create({
105
123
  item: scheduleAction,
106
124
  input
107
125
  });
108
126
  },
109
-
110
- async update(id, data) {
111
- const updateDataModel = new CreateDataModel().populate(data);
112
- await updateDataModel.validate();
127
+ async update(id, input) {
128
+ const validation = createDataModelValidation.safeParse(input);
129
+ if (!validation.success) {
130
+ throw (0, _utils.createZodError)(validation.error);
131
+ }
132
+ const data = validation.data;
113
133
  const original = await this.get(id);
114
-
115
134
  if (!original) {
116
135
  throw new Error("Not found!");
117
136
  }
118
-
119
137
  return await storageOperations.update({
120
138
  item: original,
121
139
  input: data
122
140
  });
123
141
  },
124
-
125
142
  async delete(id) {
126
- await storageOperations.delete((0, _objectSpread2.default)({
127
- id
128
- }, getTenantAndLocale()));
143
+ await storageOperations.delete({
144
+ id,
145
+ ...getTenantAndLocale()
146
+ });
129
147
  return true;
130
148
  },
131
-
132
149
  async getCurrentTask() {
133
150
  return await storageOperations.getCurrentTask({
134
- where: (0, _objectSpread2.default)({}, getTenantAndLocale())
151
+ where: {
152
+ ...getTenantAndLocale()
153
+ }
135
154
  });
136
155
  },
137
-
138
156
  async updateCurrentTask(item) {
139
157
  return await storageOperations.updateCurrentTask({
140
158
  item
141
159
  });
142
160
  },
143
-
144
161
  async deleteCurrentTask() {
145
- return await storageOperations.deleteCurrentTask((0, _objectSpread2.default)({}, getTenantAndLocale()));
162
+ return await storageOperations.deleteCurrentTask({
163
+ ...getTenantAndLocale()
164
+ });
146
165
  }
147
-
148
166
  };
149
- }
167
+ }
168
+
169
+ //# sourceMappingURL=createScheduleActionMethods.js.map