@webiny/api-apw 0.0.0-unstable.fcdad0bc61 → 0.0.0-unstable.fdd9228b5d

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 (315) hide show
  1. package/ApwChangeRequestNotification.d.ts +1 -1
  2. package/ApwChangeRequestNotification.js +3 -15
  3. package/ApwChangeRequestNotification.js.map +1 -1
  4. package/ApwCommentNotification.d.ts +1 -1
  5. package/ApwCommentNotification.js +3 -15
  6. package/ApwCommentNotification.js.map +1 -1
  7. package/ApwContentReviewNotification.d.ts +1 -1
  8. package/ApwContentReviewNotification.js +3 -15
  9. package/ApwContentReviewNotification.js.map +1 -1
  10. package/ApwContentUrlPlugin.d.ts +1 -1
  11. package/ApwContentUrlPlugin.js +3 -15
  12. package/ApwContentUrlPlugin.js.map +1 -1
  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 +76 -115
  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 +2 -3
  39. package/index.js +6 -19
  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 +2 -13
  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.js +2 -4
  58. package/plugins/cms/notifications/changeRequestNotification.js.map +1 -1
  59. package/plugins/cms/notifications/commentNotification.js +2 -4
  60. package/plugins/cms/notifications/commentNotification.js.map +1 -1
  61. package/plugins/cms/notifications/contentReviewNotification.js +2 -4
  62. package/plugins/cms/notifications/contentReviewNotification.js.map +1 -1
  63. package/plugins/cms/notifications/contentUrl.js +3 -8
  64. package/plugins/cms/notifications/contentUrl.js.map +1 -1
  65. package/plugins/cms/triggerContentReview.d.ts +2 -2
  66. package/plugins/cms/triggerContentReview.js +5 -18
  67. package/plugins/cms/triggerContentReview.js.map +1 -1
  68. package/plugins/cms/updateContentReviewStatus.d.ts +3 -3
  69. package/plugins/cms/updateContentReviewStatus.js +14 -30
  70. package/plugins/cms/updateContentReviewStatus.js.map +1 -1
  71. package/plugins/cms/utils.d.ts +5 -4
  72. package/plugins/cms/utils.js +20 -59
  73. package/plugins/cms/utils.js.map +1 -1
  74. package/plugins/context.d.ts +3 -4
  75. package/plugins/context.js +4 -58
  76. package/plugins/context.js.map +1 -1
  77. package/plugins/graphql/changeRequest.gql.d.ts +1 -1
  78. package/plugins/graphql/changeRequest.gql.js +16 -20
  79. package/plugins/graphql/changeRequest.gql.js.map +1 -1
  80. package/plugins/graphql/comment.gql.d.ts +1 -1
  81. package/plugins/graphql/comment.gql.js +41 -43
  82. package/plugins/graphql/comment.gql.js.map +1 -1
  83. package/plugins/graphql/contentReview.gql.d.ts +1 -1
  84. package/plugins/graphql/contentReview.gql.js +25 -35
  85. package/plugins/graphql/contentReview.gql.js.map +1 -1
  86. package/plugins/graphql/reviewer.gql.d.ts +1 -1
  87. package/plugins/graphql/reviewer.gql.js +15 -20
  88. package/plugins/graphql/reviewer.gql.js.map +1 -1
  89. package/plugins/graphql/utils.d.ts +2 -0
  90. package/plugins/graphql/utils.js +10 -0
  91. package/plugins/graphql/utils.js.map +1 -0
  92. package/plugins/graphql/workflow.gql.d.ts +1 -1
  93. package/plugins/graphql/workflow.gql.js +15 -20
  94. package/plugins/graphql/workflow.gql.js.map +1 -1
  95. package/plugins/graphql.d.ts +1 -1
  96. package/plugins/graphql.js +5 -18
  97. package/plugins/graphql.js.map +1 -1
  98. package/plugins/hooks/createReviewerFromIdentity.d.ts +1 -1
  99. package/plugins/hooks/createReviewerFromIdentity.js +5 -12
  100. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -1
  101. package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +1 -1
  102. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +3 -9
  103. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -1
  104. package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +1 -1
  105. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -8
  106. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -1
  107. package/plugins/hooks/index.d.ts +1 -1
  108. package/plugins/hooks/index.js +2 -14
  109. package/plugins/hooks/index.js.map +1 -1
  110. package/plugins/hooks/initializeContentReviewSteps.d.ts +1 -1
  111. package/plugins/hooks/initializeContentReviewSteps.js +15 -20
  112. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -1
  113. package/plugins/hooks/initializeNotifications.d.ts +1 -1
  114. package/plugins/hooks/initializeNotifications.js +2 -5
  115. package/plugins/hooks/initializeNotifications.js.map +1 -1
  116. package/plugins/hooks/listContentReviews.d.ts +3 -3
  117. package/plugins/hooks/listContentReviews.js +3 -13
  118. package/plugins/hooks/listContentReviews.js.map +1 -1
  119. package/plugins/hooks/notifications/changeRequestAfterCreate.d.ts +1 -1
  120. package/plugins/hooks/notifications/changeRequestAfterCreate.js +7 -38
  121. package/plugins/hooks/notifications/changeRequestAfterCreate.js.map +1 -1
  122. package/plugins/hooks/notifications/changeRequestUrl.js +2 -4
  123. package/plugins/hooks/notifications/changeRequestUrl.js.map +1 -1
  124. package/plugins/hooks/notifications/commentAfterCreate.d.ts +1 -1
  125. package/plugins/hooks/notifications/commentAfterCreate.js +7 -40
  126. package/plugins/hooks/notifications/commentAfterCreate.js.map +1 -1
  127. package/plugins/hooks/notifications/commentUrl.js +2 -4
  128. package/plugins/hooks/notifications/commentUrl.js.map +1 -1
  129. package/plugins/hooks/notifications/contentReviewAfterCreate.d.ts +1 -1
  130. package/plugins/hooks/notifications/contentReviewAfterCreate.js +9 -35
  131. package/plugins/hooks/notifications/contentReviewAfterCreate.js.map +1 -1
  132. package/plugins/hooks/notifications/contentReviewUrl.js +2 -4
  133. package/plugins/hooks/notifications/contentReviewUrl.js.map +1 -1
  134. package/plugins/hooks/notifications/contentUrl.d.ts +2 -2
  135. package/plugins/hooks/notifications/contentUrl.js +2 -5
  136. package/plugins/hooks/notifications/contentUrl.js.map +1 -1
  137. package/plugins/hooks/notifications/getAppUrl.d.ts +2 -0
  138. package/plugins/hooks/notifications/getAppUrl.js +19 -0
  139. package/plugins/hooks/notifications/getAppUrl.js.map +1 -0
  140. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.d.ts +1 -1
  141. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +2 -4
  142. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js.map +1 -1
  143. package/plugins/hooks/notifications/lastCommentNotificationPlugin.d.ts +1 -1
  144. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +2 -4
  145. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js.map +1 -1
  146. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.d.ts +1 -1
  147. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +2 -4
  148. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js.map +1 -1
  149. package/plugins/hooks/notifications/reviewers.d.ts +1 -1
  150. package/plugins/hooks/notifications/reviewers.js +17 -21
  151. package/plugins/hooks/notifications/reviewers.js.map +1 -1
  152. package/plugins/hooks/notifications/sendChangeRequestNotification.d.ts +1 -1
  153. package/plugins/hooks/notifications/sendChangeRequestNotification.js +2 -11
  154. package/plugins/hooks/notifications/sendChangeRequestNotification.js.map +1 -1
  155. package/plugins/hooks/notifications/sendCommentNotification.d.ts +1 -1
  156. package/plugins/hooks/notifications/sendCommentNotification.js +2 -11
  157. package/plugins/hooks/notifications/sendCommentNotification.js.map +1 -1
  158. package/plugins/hooks/notifications/sendContentReviewNotification.d.ts +1 -1
  159. package/plugins/hooks/notifications/sendContentReviewNotification.js +2 -11
  160. package/plugins/hooks/notifications/sendContentReviewNotification.js.map +1 -1
  161. package/plugins/hooks/updatePendingChangeRequests.d.ts +1 -1
  162. package/plugins/hooks/updatePendingChangeRequests.js +7 -13
  163. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -1
  164. package/plugins/hooks/updateTotalComments.d.ts +1 -1
  165. package/plugins/hooks/updateTotalComments.js +21 -23
  166. package/plugins/hooks/updateTotalComments.js.map +1 -1
  167. package/plugins/hooks/validateChangeRequest.d.ts +1 -1
  168. package/plugins/hooks/validateChangeRequest.js +2 -16
  169. package/plugins/hooks/validateChangeRequest.js.map +1 -1
  170. package/plugins/hooks/validateComment.d.ts +1 -1
  171. package/plugins/hooks/validateComment.js +3 -12
  172. package/plugins/hooks/validateComment.js.map +1 -1
  173. package/plugins/hooks/validateContentReview.d.ts +1 -1
  174. package/plugins/hooks/validateContentReview.js +2 -6
  175. package/plugins/hooks/validateContentReview.js.map +1 -1
  176. package/plugins/utils.d.ts +7 -6
  177. package/plugins/utils.js +11 -50
  178. package/plugins/utils.js.map +1 -1
  179. package/scheduler/createScheduleActionMethods.d.ts +1 -1
  180. package/scheduler/createScheduleActionMethods.js +105 -85
  181. package/scheduler/createScheduleActionMethods.js.map +1 -1
  182. package/scheduler/handlers/executeAction/index.d.ts +2 -2
  183. package/scheduler/handlers/executeAction/index.js +47 -41
  184. package/scheduler/handlers/executeAction/index.js.map +1 -1
  185. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +6 -0
  186. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +19 -9
  187. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -1
  188. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +3 -3
  189. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +11 -28
  190. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -1
  191. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +4 -3
  192. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +10 -92
  193. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -1
  194. package/scheduler/handlers/executeAction/security.d.ts +2 -2
  195. package/scheduler/handlers/executeAction/security.js +2 -11
  196. package/scheduler/handlers/executeAction/security.js.map +1 -1
  197. package/scheduler/handlers/scheduleAction/index.d.ts +2 -2
  198. package/scheduler/handlers/scheduleAction/index.js +23 -38
  199. package/scheduler/handlers/scheduleAction/index.js.map +1 -1
  200. package/scheduler/handlers/scheduleAction/scheduleAction.utils.d.ts +3 -3
  201. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +20 -36
  202. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -1
  203. package/scheduler/handlers/utils.d.ts +2 -4
  204. package/scheduler/handlers/utils.js +22 -53
  205. package/scheduler/handlers/utils.js.map +1 -1
  206. package/scheduler/index.d.ts +1 -1
  207. package/scheduler/index.js +2 -3
  208. package/scheduler/index.js.map +1 -1
  209. package/scheduler/types.d.ts +20 -36
  210. package/scheduler/types.js +11 -23
  211. package/scheduler/types.js.map +1 -1
  212. package/storageOperations/changeRequestStorageOperations.d.ts +2 -2
  213. package/storageOperations/changeRequestStorageOperations.js +43 -41
  214. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  215. package/storageOperations/commentStorageOperations.d.ts +3 -3
  216. package/storageOperations/commentStorageOperations.js +16 -44
  217. package/storageOperations/commentStorageOperations.js.map +1 -1
  218. package/storageOperations/contentReviewStorageOperations.d.ts +3 -3
  219. package/storageOperations/contentReviewStorageOperations.js +19 -41
  220. package/storageOperations/contentReviewStorageOperations.js.map +1 -1
  221. package/storageOperations/index.d.ts +3 -9
  222. package/storageOperations/index.js +10 -29
  223. package/storageOperations/index.js.map +1 -1
  224. package/storageOperations/models/changeRequest.model.d.ts +1 -2
  225. package/storageOperations/models/changeRequest.model.js +9 -19
  226. package/storageOperations/models/changeRequest.model.js.map +1 -1
  227. package/storageOperations/models/comment.model.d.ts +1 -2
  228. package/storageOperations/models/comment.model.js +9 -18
  229. package/storageOperations/models/comment.model.js.map +1 -1
  230. package/storageOperations/models/contentReview.model.d.ts +1 -2
  231. package/storageOperations/models/contentReview.model.js +16 -41
  232. package/storageOperations/models/contentReview.model.js.map +1 -1
  233. package/storageOperations/models/index.d.ts +1 -1
  234. package/storageOperations/models/index.js +11 -55
  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 +10 -19
  238. package/storageOperations/models/reviewer.model.js.map +1 -1
  239. package/storageOperations/models/utils.d.ts +2 -2
  240. package/storageOperations/models/utils.js +2 -4
  241. package/storageOperations/models/utils.js.map +1 -1
  242. package/storageOperations/models/workflow.model.d.ts +2 -3
  243. package/storageOperations/models/workflow.model.js +22 -46
  244. package/storageOperations/models/workflow.model.js.map +1 -1
  245. package/storageOperations/reviewerStorageOperations.d.ts +3 -3
  246. package/storageOperations/reviewerStorageOperations.js +23 -50
  247. package/storageOperations/reviewerStorageOperations.js.map +1 -1
  248. package/storageOperations/types.d.ts +2 -2
  249. package/storageOperations/types.js +3 -1
  250. package/storageOperations/types.js.map +1 -1
  251. package/storageOperations/workflowStorageOperations.d.ts +2 -2
  252. package/storageOperations/workflowStorageOperations.js +24 -44
  253. package/storageOperations/workflowStorageOperations.js.map +1 -1
  254. package/types.d.ts +49 -64
  255. package/types.js +121 -43
  256. package/types.js.map +1 -1
  257. package/utils/contentApwSettingsPlugin.d.ts +2 -2
  258. package/utils/contentApwSettingsPlugin.js +2 -6
  259. package/utils/contentApwSettingsPlugin.js.map +1 -1
  260. package/utils/errors.js +2 -17
  261. package/utils/errors.js.map +1 -1
  262. package/utils/fieldResolver.d.ts +2 -2
  263. package/utils/fieldResolver.js +8 -18
  264. package/utils/fieldResolver.js.map +1 -1
  265. package/utils/pickEntryFieldValues.d.ts +3 -0
  266. package/utils/pickEntryFieldValues.js +30 -0
  267. package/utils/pickEntryFieldValues.js.map +1 -0
  268. package/utils/resolve.d.ts +1 -1
  269. package/utils/resolve.js +2 -3
  270. package/utils/resolve.js.map +1 -1
  271. package/plugins/hooks/notifications/appUrl.d.ts +0 -2
  272. package/plugins/hooks/notifications/appUrl.js +0 -22
  273. package/plugins/hooks/notifications/appUrl.js.map +0 -1
  274. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.d.ts +0 -9
  275. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +0 -51
  276. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +0 -1
  277. package/plugins/pageBuilder/apwContentPagePlugins.d.ts +0 -3
  278. package/plugins/pageBuilder/apwContentPagePlugins.js +0 -30
  279. package/plugins/pageBuilder/apwContentPagePlugins.js.map +0 -1
  280. package/plugins/pageBuilder/extendPbPageSettingsSchema.d.ts +0 -3
  281. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +0 -25
  282. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +0 -1
  283. package/plugins/pageBuilder/index.d.ts +0 -11
  284. package/plugins/pageBuilder/index.js +0 -53
  285. package/plugins/pageBuilder/index.js.map +0 -1
  286. package/plugins/pageBuilder/linkContentReviewToPage.d.ts +0 -8
  287. package/plugins/pageBuilder/linkContentReviewToPage.js +0 -105
  288. package/plugins/pageBuilder/linkContentReviewToPage.js.map +0 -1
  289. package/plugins/pageBuilder/linkWorkflowToPage.d.ts +0 -8
  290. package/plugins/pageBuilder/linkWorkflowToPage.js +0 -194
  291. package/plugins/pageBuilder/linkWorkflowToPage.js.map +0 -1
  292. package/plugins/pageBuilder/notifications/changeRequestNotification.d.ts +0 -1
  293. package/plugins/pageBuilder/notifications/changeRequestNotification.js +0 -35
  294. package/plugins/pageBuilder/notifications/changeRequestNotification.js.map +0 -1
  295. package/plugins/pageBuilder/notifications/commentNotification.d.ts +0 -1
  296. package/plugins/pageBuilder/notifications/commentNotification.js +0 -35
  297. package/plugins/pageBuilder/notifications/commentNotification.js.map +0 -1
  298. package/plugins/pageBuilder/notifications/contentReviewNotification.d.ts +0 -1
  299. package/plugins/pageBuilder/notifications/contentReviewNotification.js +0 -35
  300. package/plugins/pageBuilder/notifications/contentReviewNotification.js.map +0 -1
  301. package/plugins/pageBuilder/notifications/contentUrl.d.ts +0 -1
  302. package/plugins/pageBuilder/notifications/contentUrl.js +0 -53
  303. package/plugins/pageBuilder/notifications/contentUrl.js.map +0 -1
  304. package/plugins/pageBuilder/triggerContentReview.d.ts +0 -8
  305. package/plugins/pageBuilder/triggerContentReview.js +0 -50
  306. package/plugins/pageBuilder/triggerContentReview.js.map +0 -1
  307. package/plugins/pageBuilder/updateContentReviewStatus.d.ts +0 -10
  308. package/plugins/pageBuilder/updateContentReviewStatus.js +0 -79
  309. package/plugins/pageBuilder/updateContentReviewStatus.js.map +0 -1
  310. package/plugins/pageBuilder/utils.d.ts +0 -22
  311. package/plugins/pageBuilder/utils.js +0 -184
  312. package/plugins/pageBuilder/utils.js.map +0 -1
  313. package/storageOperations/models/contentModelPluginFactory.d.ts +0 -15
  314. package/storageOperations/models/contentModelPluginFactory.js +0 -28
  315. package/storageOperations/models/contentModelPluginFactory.js.map +0 -1
@@ -1,16 +1,12 @@
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.validateComment = void 0;
9
-
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
9
  var _utils = require("@webiny/utils");
13
-
14
10
  const validateComment = ({
15
11
  apw
16
12
  }) => {
@@ -23,12 +19,9 @@ const validateComment = ({
23
19
  /**
24
20
  * We need changeRequest to be in a particular format i.e. "contentReviewUniqueId#version"
25
21
  */
26
-
27
22
  let result;
28
-
29
23
  try {
30
24
  result = (0, _utils.parseIdentifier)(changeRequestId);
31
-
32
25
  if (!result) {
33
26
  throw new _error.default("Could not parse changeRequestId.", "MALFORMED_CHANGE_REQUEST_ID", {
34
27
  changeRequestId
@@ -39,19 +32,17 @@ const validateComment = ({
39
32
  input
40
33
  });
41
34
  }
35
+
42
36
  /**
43
37
  * Assign value for "step" field from "changeRequest".
44
38
  */
45
-
46
-
47
39
  const changeRequest = await apw.changeRequest.get(changeRequestId);
48
-
49
40
  if (!changeRequest) {
50
41
  return;
51
42
  }
52
-
53
43
  input.step = changeRequest.step;
54
44
  });
55
45
  };
46
+ exports.validateComment = validateComment;
56
47
 
57
- exports.validateComment = validateComment;
48
+ //# sourceMappingURL=validateComment.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["validateComment","apw","comment","onCommentBeforeCreate","subscribe","input","changeRequest","changeRequestId","result","parseIdentifier","WebinyError","ex","get","step"],"sources":["validateComment.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { LifeCycleHookCallbackParams } from \"~/types\";\nimport { parseIdentifier, ParseIdentifierResult } from \"@webiny/utils\";\n\nexport const validateComment = ({ apw }: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.comment.onCommentBeforeCreate.subscribe(async ({ input }) => {\n const { changeRequest: changeRequestId } = input;\n /**\n * We need changeRequest to be in a particular format i.e. \"contentReviewUniqueId#version\"\n */\n let result: ParseIdentifierResult;\n try {\n result = parseIdentifier(changeRequestId);\n if (!result) {\n throw new WebinyError(\n \"Could not parse changeRequestId.\",\n \"MALFORMED_CHANGE_REQUEST_ID\",\n {\n changeRequestId\n }\n );\n }\n } catch (ex) {\n throw new WebinyError(\n `The\"changeRequest\" property in input is not properly formatted.`,\n \"MALFORMED_CHANGE_REQUEST_ID\",\n {\n input\n }\n );\n }\n\n /**\n * Assign value for \"step\" field from \"changeRequest\".\n */\n const changeRequest = await apw.changeRequest.get(changeRequestId);\n if (!changeRequest) {\n return;\n }\n input.step = changeRequest.step;\n });\n};\n"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEO,MAAMA,eAAe,GAAG,CAAC;EAAEC;AAAF,CAAD,KAAuD;EAClFA,GAAG,CAACC,OAAJ,CAAYC,qBAAZ,CAAkCC,SAAlC,CAA4C,OAAO;IAAEC;EAAF,CAAP,KAAqB;IAC7D,MAAM;MAAEC,aAAa,EAAEC;IAAjB,IAAqCF,KAA3C;IACA;AACR;AACA;;IACQ,IAAIG,MAAJ;;IACA,IAAI;MACAA,MAAM,GAAG,IAAAC,sBAAA,EAAgBF,eAAhB,CAAT;;MACA,IAAI,CAACC,MAAL,EAAa;QACT,MAAM,IAAIE,cAAJ,CACF,kCADE,EAEF,6BAFE,EAGF;UACIH;QADJ,CAHE,CAAN;MAOH;IACJ,CAXD,CAWE,OAAOI,EAAP,EAAW;MACT,MAAM,IAAID,cAAJ,CACD,iEADC,EAEF,6BAFE,EAGF;QACIL;MADJ,CAHE,CAAN;IAOH;IAED;AACR;AACA;;;IACQ,MAAMC,aAAa,GAAG,MAAML,GAAG,CAACK,aAAJ,CAAkBM,GAAlB,CAAsBL,eAAtB,CAA5B;;IACA,IAAI,CAACD,aAAL,EAAoB;MAChB;IACH;;IACDD,KAAK,CAACQ,IAAN,GAAaP,aAAa,CAACO,IAA3B;EACH,CAnCD;AAoCH,CArCM"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_utils","validateComment","apw","comment","onCommentBeforeCreate","subscribe","input","changeRequest","changeRequestId","result","parseIdentifier","WebinyError","ex","get","step","exports"],"sources":["validateComment.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { LifeCycleHookCallbackParams } from \"~/types\";\nimport type { ParseIdentifierResult } from \"@webiny/utils\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nexport const validateComment = ({ apw }: Pick<LifeCycleHookCallbackParams, \"apw\">) => {\n apw.comment.onCommentBeforeCreate.subscribe(async ({ input }) => {\n const { changeRequest: changeRequestId } = input;\n /**\n * We need changeRequest to be in a particular format i.e. \"contentReviewUniqueId#version\"\n */\n let result: ParseIdentifierResult;\n try {\n result = parseIdentifier(changeRequestId);\n if (!result) {\n throw new WebinyError(\n \"Could not parse changeRequestId.\",\n \"MALFORMED_CHANGE_REQUEST_ID\",\n {\n changeRequestId\n }\n );\n }\n } catch (ex) {\n throw new WebinyError(\n `The\"changeRequest\" property in input is not properly formatted.`,\n \"MALFORMED_CHANGE_REQUEST_ID\",\n {\n input\n }\n );\n }\n\n /**\n * Assign value for \"step\" field from \"changeRequest\".\n */\n const changeRequest = await apw.changeRequest.get(changeRequestId);\n if (!changeRequest) {\n return;\n }\n input.step = changeRequest.step;\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAGA,CAAC;EAAEC;AAA8C,CAAC,KAAK;EAClFA,GAAG,CAACC,OAAO,CAACC,qBAAqB,CAACC,SAAS,CAAC,OAAO;IAAEC;EAAM,CAAC,KAAK;IAC7D,MAAM;MAAEC,aAAa,EAAEC;IAAgB,CAAC,GAAGF,KAAK;IAChD;AACR;AACA;IACQ,IAAIG,MAA6B;IACjC,IAAI;MACAA,MAAM,GAAG,IAAAC,sBAAe,EAACF,eAAe,CAAC;MACzC,IAAI,CAACC,MAAM,EAAE;QACT,MAAM,IAAIE,cAAW,CACjB,kCAAkC,EAClC,6BAA6B,EAC7B;UACIH;QACJ,CACJ,CAAC;MACL;IACJ,CAAC,CAAC,OAAOI,EAAE,EAAE;MACT,MAAM,IAAID,cAAW,CACjB,iEAAiE,EACjE,6BAA6B,EAC7B;QACIL;MACJ,CACJ,CAAC;IACL;;IAEA;AACR;AACA;IACQ,MAAMC,aAAa,GAAG,MAAML,GAAG,CAACK,aAAa,CAACM,GAAG,CAACL,eAAe,CAAC;IAClE,IAAI,CAACD,aAAa,EAAE;MAChB;IACJ;IACAD,KAAK,CAACQ,IAAI,GAAGP,aAAa,CAACO,IAAI;EACnC,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAd,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -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,6 +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";
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";
4
5
  export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
5
6
  fieldId?: string;
6
7
  parent: string;
@@ -10,7 +11,7 @@ export interface HasReviewersParams {
10
11
  step: ApwContentReviewStep;
11
12
  getReviewer: ApwReviewerCrud["get"];
12
13
  }
13
- export declare const hasReviewer: (params: HasReviewersParams) => Promise<Boolean>;
14
+ export declare const hasReviewer: (params: HasReviewersParams) => Promise<boolean>;
14
15
  export declare const getValue: (object: Record<string, any>, key: string) => any;
15
16
  export declare const getContentReviewStepInitialStatus: (workflowSteps: ApwWorkflowStep[], index: number, previousStepStatus?: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
16
17
  export declare const getNextStepStatus: (previousStepType: ApwWorkflowStepTypes, previousStepStatus: ApwContentReviewStepStatus) => ApwContentReviewStepStatus;
@@ -19,7 +20,7 @@ export interface ExtractContentReviewIdAndStepResult {
19
20
  stepId: string;
20
21
  }
21
22
  export declare const extractContentReviewIdAndStep: (step: ApwChangeRequest["step"]) => ExtractContentReviewIdAndStepResult;
22
- declare type SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, "id" | "contentReviewMethods">;
23
+ type SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, "id" | "contentReviewMethods">;
23
24
  export declare const safelyGetContentReview: ({ id, contentReviewMethods }: SafelyGetContentReviewParams) => Promise<ApwContentReview | null>;
24
25
  export interface UpdateContentReviewParams {
25
26
  id: string;
@@ -28,7 +29,7 @@ export interface UpdateContentReviewParams {
28
29
  }
29
30
  export declare const updateContentReview: ({ contentReviewMethods, id, getNewContentReviewData }: UpdateContentReviewParams) => Promise<void>;
30
31
  export declare const updateContentReviewStep: (steps: ApwContentReviewStep[], stepId: string, updater: (step: ApwContentReviewStep) => ApwContentReviewStep) => ApwContentReviewStep[];
31
- declare type CheckInstallationParams = Pick<ApwContext, "tenancy" | "i18n">;
32
+ type CheckInstallationParams = Pick<ApwContext, "tenancy" | "i18n">;
32
33
  export declare const isInstallationPending: ({ tenancy, i18n }: CheckInstallationParams) => boolean;
33
34
  export declare const workflowByPrecedenceDesc: (a: ApwWorkflow, b: ApwWorkflow) => number;
34
35
  export declare const workflowByCreatedOnDesc: (a: ApwWorkflow, b: ApwWorkflow) => number;
package/plugins/utils.js CHANGED
@@ -1,44 +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
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;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _get = _interopRequireDefault(require("lodash/get"));
13
-
14
7
  var _types = require("../types");
15
-
16
8
  const hasReviewer = async params => {
17
9
  const {
18
10
  getReviewer,
19
11
  identity,
20
12
  step
21
13
  } = params;
22
-
23
14
  for (const stepReviewer of step.reviewers) {
24
15
  const entry = await getReviewer(stepReviewer.id);
25
-
26
16
  if (entry.identityId === identity.id) {
27
17
  return true;
28
18
  }
29
19
  }
30
-
31
20
  return false;
32
21
  };
33
-
34
22
  exports.hasReviewer = hasReviewer;
35
-
36
23
  const getValue = (object, key) => {
37
- return (0, _get.default)(object, `values.${key}`);
24
+ if (!object.values) {
25
+ return undefined;
26
+ }
27
+ return object.values[key];
38
28
  };
39
-
40
29
  exports.getValue = getValue;
41
-
42
30
  const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepStatus) => {
43
31
  /**
44
32
  * Always set first step 'active' by default.
@@ -46,32 +34,23 @@ const getContentReviewStepInitialStatus = (workflowSteps, index, previousStepSta
46
34
  if (index === 0) {
47
35
  return _types.ApwContentReviewStepStatus.ACTIVE;
48
36
  }
49
-
50
37
  const previousStep = workflowSteps[index - 1];
51
-
52
38
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStep.type !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
53
39
  return _types.ApwContentReviewStepStatus.ACTIVE;
54
40
  }
55
-
56
41
  return _types.ApwContentReviewStepStatus.INACTIVE;
57
42
  };
58
-
59
43
  exports.getContentReviewStepInitialStatus = getContentReviewStepInitialStatus;
60
-
61
44
  const getNextStepStatus = (previousStepType, previousStepStatus) => {
62
45
  if (previousStepStatus === _types.ApwContentReviewStepStatus.DONE) {
63
46
  return _types.ApwContentReviewStepStatus.ACTIVE;
64
47
  }
65
-
66
48
  if (previousStepStatus === _types.ApwContentReviewStepStatus.ACTIVE && previousStepType !== _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
67
49
  return _types.ApwContentReviewStepStatus.ACTIVE;
68
50
  }
69
-
70
51
  return _types.ApwContentReviewStepStatus.INACTIVE;
71
52
  };
72
-
73
53
  exports.getNextStepStatus = getNextStepStatus;
74
-
75
54
  const extractContentReviewIdAndStep = step => {
76
55
  /*
77
56
  * Get associated content review entry.
@@ -83,15 +62,12 @@ const extractContentReviewIdAndStep = step => {
83
62
  stepId
84
63
  };
85
64
  };
86
-
87
65
  exports.extractContentReviewIdAndStep = extractContentReviewIdAndStep;
88
-
89
66
  const safelyGetContentReview = async ({
90
67
  id,
91
68
  contentReviewMethods
92
69
  }) => {
93
70
  let contentReviewEntry = null;
94
-
95
71
  try {
96
72
  contentReviewEntry = await contentReviewMethods.get(id);
97
73
  } catch (e) {
@@ -99,12 +75,9 @@ const safelyGetContentReview = async ({
99
75
  throw e;
100
76
  }
101
77
  }
102
-
103
78
  return contentReviewEntry;
104
79
  };
105
-
106
80
  exports.safelyGetContentReview = safelyGetContentReview;
107
-
108
81
  const updateContentReview = async ({
109
82
  contentReviewMethods,
110
83
  id,
@@ -114,31 +87,26 @@ const updateContentReview = async ({
114
87
  id,
115
88
  contentReviewMethods
116
89
  });
117
-
118
90
  if (contentReviewEntry) {
119
91
  const newContentReviewData = getNewContentReviewData(contentReviewEntry);
120
92
  /**
121
93
  * Update content review entry.
122
94
  */
123
-
124
95
  await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);
125
96
  }
126
97
  };
127
-
128
98
  exports.updateContentReview = updateContentReview;
129
-
130
99
  const updateContentReviewStep = (steps, stepId, updater) => {
131
100
  return steps.map(step => {
132
101
  if (step.id === stepId) {
133
- return (0, _objectSpread2.default)({}, updater(step));
102
+ return {
103
+ ...updater(step)
104
+ };
134
105
  }
135
-
136
106
  return step;
137
107
  });
138
108
  };
139
-
140
109
  exports.updateContentReviewStep = updateContentReviewStep;
141
-
142
110
  const isInstallationPending = ({
143
111
  tenancy,
144
112
  i18n
@@ -148,40 +116,33 @@ const isInstallationPending = ({
148
116
  * installation is completed. So, we need to skip "APW" creation till then.
149
117
  */
150
118
  const tenant = tenancy.getCurrentTenant();
151
-
152
119
  if (!tenant) {
153
120
  return true;
154
121
  }
155
-
156
122
  return !i18n.getContentLocale();
157
123
  };
158
-
159
124
  exports.isInstallationPending = isInstallationPending;
160
125
  const WORKFLOW_PRECEDENCE = {
161
126
  [_types.WorkflowScopeTypes.DEFAULT]: 0,
162
127
  [_types.WorkflowScopeTypes.CUSTOM]: 1
163
128
  };
164
-
165
129
  const workflowByPrecedenceDesc = (a, b) => {
166
130
  const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];
167
131
  const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];
168
132
  /**
169
133
  * In descending order of workflow precedence.
170
134
  */
171
-
172
135
  return scoreB - scoreA;
173
136
  };
174
-
175
137
  exports.workflowByPrecedenceDesc = workflowByPrecedenceDesc;
176
-
177
138
  const workflowByCreatedOnDesc = (a, b) => {
178
- const createdOnA = (0, _get.default)(a, "createdOn");
179
- const createdOnB = (0, _get.default)(b, "createdOn");
139
+ const createdOnA = a.createdOn;
140
+ const createdOnB = b.createdOn;
180
141
  /**
181
142
  * In descending order of workflow createdOn i.e. the most recent one first.
182
143
  */
183
-
184
144
  return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();
185
145
  };
146
+ exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
186
147
 
187
- exports.workflowByCreatedOnDesc = workflowByCreatedOnDesc;
148
+ //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["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 { 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\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