@webiny/api-apw 5.24.0 → 5.25.0-beta.2

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 (73) hide show
  1. package/createApw/createChangeRequestMethods.js.map +1 -0
  2. package/createApw/createCommentMethods.js.map +1 -0
  3. package/createApw/createContentReviewMethods.js.map +1 -0
  4. package/createApw/createReviewerMethods.js.map +1 -0
  5. package/createApw/createWorkflowMethods.js.map +1 -0
  6. package/createApw/index.js +4 -2
  7. package/createApw/index.js.map +1 -0
  8. package/index.js.map +1 -0
  9. package/package.json +22 -22
  10. package/plugins/context.js +29 -6
  11. package/plugins/context.js.map +1 -0
  12. package/plugins/createManageCMSPlugin.js.map +1 -0
  13. package/plugins/graphql/changeRequest.gql.js +3 -0
  14. package/plugins/graphql/changeRequest.gql.js.map +1 -0
  15. package/plugins/graphql/comment.gql.js +3 -0
  16. package/plugins/graphql/comment.gql.js.map +1 -0
  17. package/plugins/graphql/contentReview.gql.js +3 -0
  18. package/plugins/graphql/contentReview.gql.js.map +1 -0
  19. package/plugins/graphql/reviewer.gql.js +3 -0
  20. package/plugins/graphql/reviewer.gql.js.map +1 -0
  21. package/plugins/graphql/workflow.gql.js +3 -0
  22. package/plugins/graphql/workflow.gql.js.map +1 -0
  23. package/plugins/graphql.js +1 -0
  24. package/plugins/graphql.js.map +1 -0
  25. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -0
  26. package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +1 -1
  27. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -0
  28. package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +1 -1
  29. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +1 -1
  30. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -0
  31. package/plugins/hooks/extendPbPageSchema.js.map +1 -0
  32. package/plugins/hooks/index.js.map +1 -0
  33. package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -2
  34. package/plugins/hooks/initializeContentReviewSteps.js +3 -2
  35. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -0
  36. package/plugins/hooks/linkWorkflowToPage.d.ts +2 -2
  37. package/plugins/hooks/linkWorkflowToPage.js +7 -6
  38. package/plugins/hooks/linkWorkflowToPage.js.map +1 -0
  39. package/plugins/hooks/updatePendingChangeRequests.d.ts +1 -1
  40. package/plugins/hooks/updatePendingChangeRequests.js +19 -16
  41. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -0
  42. package/plugins/utils.d.ts +1 -1
  43. package/plugins/utils.js +7 -5
  44. package/plugins/utils.js.map +1 -0
  45. package/storageOperations/changeRequestStorageOperations.js +15 -3
  46. package/storageOperations/changeRequestStorageOperations.js.map +1 -0
  47. package/storageOperations/commentStorageOperations.js +15 -3
  48. package/storageOperations/commentStorageOperations.js.map +1 -0
  49. package/storageOperations/contentReviewStorageOperations.js +15 -3
  50. package/storageOperations/contentReviewStorageOperations.js.map +1 -0
  51. package/storageOperations/index.js.map +1 -0
  52. package/storageOperations/models/changeRequest.model.js.map +1 -0
  53. package/storageOperations/models/comment.model.js.map +1 -0
  54. package/storageOperations/models/contentModelPluginFactory.js.map +1 -0
  55. package/storageOperations/models/contentReview.model.js.map +1 -0
  56. package/storageOperations/models/index.js +11 -3
  57. package/storageOperations/models/index.js.map +1 -0
  58. package/storageOperations/models/reviewer.model.js.map +1 -0
  59. package/storageOperations/models/utils.js.map +1 -0
  60. package/storageOperations/models/workflow.model.js.map +1 -0
  61. package/storageOperations/reviewerStorageOperations.js +15 -3
  62. package/storageOperations/reviewerStorageOperations.js.map +1 -0
  63. package/storageOperations/types.js.map +1 -0
  64. package/storageOperations/workflowStorageOperations.js +15 -3
  65. package/storageOperations/workflowStorageOperations.js.map +1 -0
  66. package/types.d.ts +26 -25
  67. package/types.js.map +1 -0
  68. package/utils/errors.js.map +1 -0
  69. package/utils/fieldResolver.d.ts +6 -5
  70. package/utils/fieldResolver.js +9 -7
  71. package/utils/fieldResolver.js.map +1 -0
  72. package/utils/resolve.d.ts +1 -1
  73. package/utils/resolve.js.map +1 -0
package/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference types="web" />
1
2
  import { Page, OnBeforePageCreateFromTopicParams } from "@webiny/api-page-builder/types";
2
3
  import { CmsContext, CmsModel } from "@webiny/api-headless-cms/types";
3
4
  import { Context } from "@webiny/handler/types";
@@ -26,13 +27,13 @@ export interface ListParams {
26
27
  where: ListWhere;
27
28
  sort?: string[];
28
29
  limit?: number;
29
- after?: string;
30
+ after?: string | null;
30
31
  }
31
32
  export interface ListMeta {
32
33
  /**
33
34
  * A cursor for pagination.
34
35
  */
35
- cursor: string;
36
+ cursor: string | null;
36
37
  /**
37
38
  * Is there more items to load?
38
39
  */
@@ -83,33 +84,33 @@ export interface CreatedBy {
83
84
  /**
84
85
  * Full name of the user.
85
86
  */
86
- displayName: string;
87
+ displayName: string | null;
87
88
  /**
88
89
  * Type of the user (admin, user)
89
90
  */
90
91
  type: string;
91
92
  }
92
- interface BaseFields {
93
+ export interface ApwBaseFields {
93
94
  id: string;
94
95
  createdOn: string;
95
96
  savedOn: string;
96
97
  createdBy: CreatedBy;
97
98
  }
98
- export interface ApwReviewer extends BaseFields {
99
+ export interface ApwReviewer extends ApwBaseFields {
99
100
  identityId: string;
100
- displayName: string;
101
+ displayName: string | null;
101
102
  type: string;
102
103
  }
103
- export interface ApwComment extends BaseFields {
104
- body: JSON;
104
+ export interface ApwComment extends ApwBaseFields {
105
+ body: Record<string, any>;
105
106
  changeRequest: {
106
107
  id: string;
107
108
  entryId: string;
108
109
  modelId: string;
109
110
  };
110
111
  }
111
- export interface ApwChangeRequest extends BaseFields {
112
- body: JSON;
112
+ export interface ApwChangeRequest extends ApwBaseFields {
113
+ body: Record<string, any>;
113
114
  title: string;
114
115
  resolved: boolean;
115
116
  step: string;
@@ -122,19 +123,19 @@ export interface ApwContentReviewStep {
122
123
  reviewers: ApwReviewer[];
123
124
  status: ApwContentReviewStepStatus;
124
125
  pendingChangeRequests: number;
125
- signOffProvidedOn: string;
126
- signOffProvidedBy: CreatedBy;
126
+ signOffProvidedOn: string | null;
127
+ signOffProvidedBy: CreatedBy | null;
127
128
  }
128
- export interface ApwContentReview extends BaseFields {
129
+ export interface ApwContentReview extends ApwBaseFields {
129
130
  status: ApwContentReviewStatus;
130
131
  content: {
131
132
  id: string;
132
133
  type: string;
133
- settings: JSON;
134
+ settings: Record<string, any>;
134
135
  };
135
136
  steps: Array<ApwContentReviewStep>;
136
137
  }
137
- export interface ApwWorkflow extends BaseFields {
138
+ export interface ApwWorkflow extends ApwBaseFields {
138
139
  title: string;
139
140
  steps: ApwWorkflowStep[];
140
141
  scope: ApwWorkflowScope;
@@ -187,7 +188,7 @@ export interface ListWorkflowsParams extends ListParams {
187
188
  }
188
189
  interface CreateReviewerParams {
189
190
  identityId: string;
190
- displayName: string;
191
+ displayName: string | null;
191
192
  type: string;
192
193
  }
193
194
  interface CreateApwCommentParams {
@@ -201,15 +202,15 @@ interface UpdateApwCommentParams {
201
202
  }
202
203
  interface CreateApwChangeRequestParams {
203
204
  title: string;
204
- body: JSON;
205
+ body: Record<string, any>;
205
206
  resolved: boolean;
206
- media: JSON;
207
+ media: Record<string, any>;
207
208
  }
208
209
  interface UpdateApwChangeRequestParams {
209
210
  title: string;
210
- body: JSON;
211
+ body: Record<string, any>;
211
212
  resolved: boolean;
212
- media: JSON;
213
+ media: Record<string, any>;
213
214
  }
214
215
  export interface ApwContentReviewContent {
215
216
  id: string;
@@ -312,7 +313,7 @@ export interface ApwContentReviewCrud extends BaseApwCrud<ApwContentReview, Crea
312
313
  }
313
314
  export declare type WorkflowGetter = (id: string, settings: {
314
315
  modelId?: string;
315
- }) => Promise<string>;
316
+ }) => Promise<string | null>;
316
317
  export interface AdvancedPublishingWorkflow {
317
318
  addWorkflowGetter: (type: ApwContentTypes, func: WorkflowGetter) => void;
318
319
  getWorkflowGetter: (type: ApwContentTypes) => WorkflowGetter;
@@ -328,14 +329,14 @@ export interface ApwContext extends Context, CmsContext {
328
329
  }
329
330
  export interface LifeCycleHookCallbackParams {
330
331
  apw: ApwContext["apw"];
331
- security?: ApwContext["security"];
332
+ security: ApwContext["security"];
332
333
  cms?: ApwContext["cms"];
333
334
  }
334
335
  export interface CreateApwParams {
335
336
  getLocale: () => I18NLocale;
336
337
  getIdentity: () => SecurityIdentity;
337
338
  getTenant: () => Tenant;
338
- getPermission: (name: string) => Promise<SecurityPermission>;
339
+ getPermission: (name: string) => Promise<SecurityPermission | null>;
339
340
  storageOperations: ApwStorageOperations;
340
341
  }
341
342
  interface StorageOperationsGetReviewerParams {
@@ -344,12 +345,12 @@ interface StorageOperationsGetReviewerParams {
344
345
  declare type StorageOperationsListReviewersParams = ApwReviewerListParams;
345
346
  interface CreateApwReviewerData {
346
347
  identityId: string;
347
- displayName: string;
348
+ displayName: string | null;
348
349
  type: string;
349
350
  }
350
351
  interface UpdateApwReviewerData {
351
352
  identityId: string;
352
- displayName: string;
353
+ displayName: string | null;
353
354
  type: string;
354
355
  }
355
356
  interface StorageOperationsCreateReviewerParams {
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["types.ts"],"names":["ApwContentTypes","WorkflowScopeTypes","ApwContentReviewStepStatus","ApwWorkflowApplications","ApwWorkflowStepTypes","ApwContentReviewStatus"],"mappings":";;;;;;IAgDYA,e;;;WAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,+BAAAA,e;;IAiBAC,kB;;;WAAAA,kB;AAAAA,EAAAA,kB;AAAAA,EAAAA,kB;AAAAA,EAAAA,kB;GAAAA,kB,kCAAAA,kB;;IAMAC,0B;;;WAAAA,0B;AAAAA,EAAAA,0B;AAAAA,EAAAA,0B;AAAAA,EAAAA,0B;GAAAA,0B,0CAAAA,0B;;IAMAC,uB;AAKZ;AACA;AACA;AACA;AACA;;;;WATYA,uB;AAAAA,EAAAA,uB;AAAAA,EAAAA,uB;GAAAA,uB,uCAAAA,uB;;IA6FAC,oB;;;WAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;GAAAA,oB,oCAAAA,oB;;IAMAC,sB;;;WAAAA,sB;AAAAA,EAAAA,sB;AAAAA,EAAAA,sB;AAAAA,EAAAA,sB;GAAAA,sB,sCAAAA,sB","sourcesContent":["import { Page, OnBeforePageCreateFromTopicParams } from \"@webiny/api-page-builder/types\";\nimport { CmsContext, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { Context } from \"@webiny/handler/types\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\nimport { SecurityIdentity, SecurityPermission } from \"@webiny/api-security/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\n\nexport interface ListWhere {\n /**\n * Fields.\n */\n id?: string;\n id_in?: string[];\n id_not?: string;\n id_not_in?: string[];\n /**\n * Who created the entry?\n */\n createdBy?: string;\n createdBy_not?: string;\n createdBy_in?: string[];\n createdBy_not_in?: string[];\n}\n\nexport interface ListParams {\n where: ListWhere;\n sort?: string[];\n limit?: number;\n after?: string | null;\n}\n\nexport interface ListMeta {\n /**\n * A cursor for pagination.\n */\n cursor: string | null;\n /**\n * Is there more items to load?\n */\n hasMoreItems: boolean;\n /**\n * Total count of the items in the storage.\n */\n totalCount: number;\n}\n\nexport enum ApwContentTypes {\n PAGE = \"page\",\n CMS_ENTRY = \"cms_entry\"\n}\n\nexport interface PageWithWorkflow extends Page {\n settings: Page[\"settings\"] & {\n apw: {\n workflowId: string;\n };\n };\n}\n\nexport interface CustomEventParams extends OnBeforePageCreateFromTopicParams {\n page: PageWithWorkflow;\n}\n\nexport enum WorkflowScopeTypes {\n DEFAULT = \"default\",\n PB = \"pb\",\n CMS = \"cms\"\n}\n\nexport enum ApwContentReviewStepStatus {\n DONE = \"done\",\n ACTIVE = \"active\",\n INACTIVE = \"inactive\"\n}\n\nexport enum ApwWorkflowApplications {\n PB = \"pageBuilder\",\n CMS = \"cms\"\n}\n\n/**\n * A interface describing the reference to a user that created some data in the database.\n *\n * @category General\n */\nexport interface CreatedBy {\n /**\n * ID if the user.\n */\n id: string;\n /**\n * Full name of the user.\n */\n displayName: string | null;\n /**\n * Type of the user (admin, user)\n */\n type: string;\n}\n\nexport interface ApwBaseFields {\n id: string;\n createdOn: string;\n savedOn: string;\n createdBy: CreatedBy;\n}\n\nexport interface ApwReviewer extends ApwBaseFields {\n identityId: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface ApwComment extends ApwBaseFields {\n body: Record<string, any>;\n changeRequest: {\n id: string;\n entryId: string;\n modelId: string;\n };\n}\n\nexport interface ApwChangeRequest extends ApwBaseFields {\n body: Record<string, any>;\n title: string;\n resolved: boolean;\n step: string;\n media: File;\n}\n\nexport interface ApwContentReviewStep {\n type: ApwWorkflowStepTypes;\n title: string;\n slug: string;\n reviewers: ApwReviewer[];\n status: ApwContentReviewStepStatus;\n pendingChangeRequests: number;\n signOffProvidedOn: string | null;\n signOffProvidedBy: CreatedBy | null;\n}\n\nexport interface ApwContentReview extends ApwBaseFields {\n status: ApwContentReviewStatus;\n content: {\n id: string;\n type: string;\n settings: Record<string, any>;\n };\n steps: Array<ApwContentReviewStep>;\n}\n\nexport interface ApwWorkflow extends ApwBaseFields {\n title: string;\n steps: ApwWorkflowStep[];\n scope: ApwWorkflowScope;\n app: string;\n}\n\ninterface ApwWorkflowScope {\n type: WorkflowScopeTypes;\n data: {\n categories?: string[];\n pages?: string[];\n models?: string[];\n entries?: string[];\n };\n}\n\nexport enum ApwWorkflowStepTypes {\n MANDATORY_BLOCKING = \"mandatoryBlocking\",\n MANDATORY_NON_BLOCKING = \"mandatoryNonBlocking\",\n NON_MANDATORY = \"notMandatory\"\n}\n\nexport enum ApwContentReviewStatus {\n UNDER_REVIEW = \"underReview\",\n READY_TO_BE_PUBLISHED = \"readyToBePublished\",\n PUBLISHED = \"published\"\n}\n\nexport interface ApwWorkflowStep {\n title: string;\n type: ApwWorkflowStepTypes;\n reviewers: ApwReviewer[];\n slug: string;\n}\n\nexport interface ApwContentReviewStep extends ApwWorkflowStep {\n status: ApwContentReviewStepStatus;\n pendingChangeRequests: number;\n}\n\ninterface CreateApwWorkflowParams {\n app: ApwWorkflowApplications;\n title: string;\n scope: ApwWorkflowScope;\n steps: ApwWorkflowStep[];\n}\n\ninterface UpdateApwWorkflowParams {\n title?: string;\n scope?: ApwWorkflowScope;\n steps?: ApwWorkflowStep[];\n}\n\nexport interface ListWorkflowsParams extends ListParams {\n where: ListWhere & {\n app?: ApwWorkflowApplications;\n };\n}\n\ninterface CreateReviewerParams {\n identityId: string;\n displayName: string | null;\n type: string;\n}\n\ninterface CreateApwCommentParams {\n body: Record<string, any>;\n changeRequest: {\n id: string;\n };\n}\n\ninterface UpdateApwCommentParams {\n body: Record<string, any>;\n}\n\ninterface CreateApwChangeRequestParams {\n title: string;\n body: Record<string, any>;\n resolved: boolean;\n media: Record<string, any>;\n}\n\ninterface UpdateApwChangeRequestParams {\n title: string;\n body: Record<string, any>;\n resolved: boolean;\n media: Record<string, any>;\n}\n\nexport interface ApwContentReviewContent {\n id: string;\n type: ApwContentTypes;\n settings: Record<string, any>;\n}\n\nexport interface CreateApwContentReviewParams {\n content: ApwContentReviewContent;\n workflow: string;\n steps: ApwContentReviewStep[];\n status: ApwContentReviewStatus;\n}\n\ninterface UpdateApwContentReviewParams {\n steps: ApwContentReviewStep[];\n}\n\ninterface BaseApwCrud<TEntry, TCreateEntryParams, TUpdateEntryParams> {\n get(id: string): Promise<TEntry>;\n\n create(data: TCreateEntryParams): Promise<TEntry>;\n\n update(id: string, data: TUpdateEntryParams): Promise<TEntry>;\n\n delete(id: string): Promise<Boolean>;\n}\n\nexport interface ApwWorkflowCrud\n extends BaseApwCrud<ApwWorkflow, CreateApwWorkflowParams, UpdateApwWorkflowParams> {\n list(params: ListWorkflowsParams): Promise<[ApwWorkflow[], ListMeta]>;\n\n /**\n * Lifecycle events\n */\n onBeforeWorkflowCreate: Topic<OnBeforeWorkflowCreateTopicParams>;\n onAfterWorkflowCreate: Topic<OnAfterWorkflowCreateTopicParams>;\n onBeforeWorkflowUpdate: Topic<OnBeforeWorkflowUpdateTopicParams>;\n onAfterWorkflowUpdate: Topic<OnAfterWorkflowUpdateTopicParams>;\n onBeforeWorkflowDelete: Topic<OnBeforeWorkflowDeleteTopicParams>;\n onAfterWorkflowDelete: Topic<OnAfterWorkflowDeleteTopicParams>;\n}\n\nexport interface ApwReviewerListParams extends ListParams {\n where: ListParams[\"where\"] & {\n identityId?: string;\n };\n}\n\nexport interface ApwReviewerCrud\n extends BaseApwCrud<ApwReviewer, CreateReviewerParams, UpdateApwReviewerData> {\n list(params: ApwReviewerListParams): Promise<[ApwReviewer[], ListMeta]>;\n\n /**\n * Lifecycle events\n */\n onBeforeReviewerCreate: Topic<OnBeforeReviewerCreateTopicParams>;\n onAfterReviewerCreate: Topic<OnAfterReviewerCreateTopicParams>;\n onBeforeReviewerUpdate: Topic<OnBeforeReviewerUpdateTopicParams>;\n onAfterReviewerUpdate: Topic<OnAfterReviewerUpdateTopicParams>;\n onBeforeReviewerDelete: Topic<OnBeforeReviewerDeleteTopicParams>;\n onAfterReviewerDelete: Topic<OnAfterReviewerDeleteTopicParams>;\n}\n\nexport interface ApwCommentListParams extends ListParams {\n where: ListParams[\"where\"] & {\n changeRequest?: {\n id?: string;\n };\n };\n}\n\nexport interface ApwCommentCrud\n extends BaseApwCrud<ApwComment, CreateApwCommentParams, UpdateApwCommentParams> {\n list(params: ApwCommentListParams): Promise<[ApwComment[], ListMeta]>;\n\n /**\n * Lifecycle events\n */\n onBeforeCommentCreate: Topic<OnBeforeCommentCreateTopicParams>;\n onAfterCommentCreate: Topic<OnAfterCommentCreateTopicParams>;\n onBeforeCommentUpdate: Topic<OnBeforeCommentUpdateTopicParams>;\n onAfterCommentUpdate: Topic<OnAfterCommentUpdateTopicParams>;\n onBeforeCommentDelete: Topic<OnBeforeCommentDeleteTopicParams>;\n onAfterCommentDelete: Topic<OnAfterCommentDeleteTopicParams>;\n}\n\nexport interface ApwChangeRequestListParams extends ListParams {\n where: ListParams[\"where\"] & {\n step?: string;\n };\n}\n\nexport interface ApwChangeRequestCrud\n extends BaseApwCrud<\n ApwChangeRequest,\n CreateApwChangeRequestParams,\n UpdateApwChangeRequestParams\n > {\n list(params: ApwChangeRequestListParams): Promise<[ApwChangeRequest[], ListMeta]>;\n\n /**\n * Lifecycle events\n */\n onBeforeChangeRequestCreate: Topic<OnBeforeChangeRequestCreateTopicParams>;\n onAfterChangeRequestCreate: Topic<OnAfterChangeRequestCreateTopicParams>;\n onBeforeChangeRequestUpdate: Topic<OnBeforeChangeRequestUpdateTopicParams>;\n onAfterChangeRequestUpdate: Topic<OnAfterChangeRequestUpdateTopicParams>;\n onBeforeChangeRequestDelete: Topic<OnBeforeChangeRequestDeleteTopicParams>;\n onAfterChangeRequestDelete: Topic<OnAfterChangeRequestDeleteTopicParams>;\n}\n\nexport interface ApwContentReviewCrud\n extends BaseApwCrud<\n ApwContentReview,\n CreateApwContentReviewParams,\n UpdateApwContentReviewParams\n > {\n list(params: ListParams): Promise<[ApwContentReview[], ListMeta]>;\n\n provideSignOff(id: string, step: string): Promise<Boolean>;\n\n retractSignOff(id: string, step: string): Promise<Boolean>;\n\n /**\n * Lifecycle events\n */\n onBeforeContentReviewCreate: Topic<OnBeforeContentReviewCreateTopicParams>;\n onAfterContentReviewCreate: Topic<OnAfterContentReviewCreateTopicParams>;\n onBeforeContentReviewUpdate: Topic<OnBeforeContentReviewUpdateTopicParams>;\n onAfterContentReviewUpdate: Topic<OnAfterContentReviewUpdateTopicParams>;\n onBeforeContentReviewDelete: Topic<OnBeforeContentReviewDeleteTopicParams>;\n onAfterContentReviewDelete: Topic<OnAfterContentReviewDeleteTopicParams>;\n}\n\nexport type WorkflowGetter = (id: string, settings: { modelId?: string }) => Promise<string | null>;\n\nexport interface AdvancedPublishingWorkflow {\n addWorkflowGetter: (type: ApwContentTypes, func: WorkflowGetter) => void;\n getWorkflowGetter: (type: ApwContentTypes) => WorkflowGetter;\n workflow: ApwWorkflowCrud;\n reviewer: ApwReviewerCrud;\n comment: ApwCommentCrud;\n changeRequest: ApwChangeRequestCrud;\n contentReview: ApwContentReviewCrud;\n}\n\nexport interface ApwContext extends Context, CmsContext {\n apw: AdvancedPublishingWorkflow;\n pageBuilder: PageBuilderContextObject;\n}\n\nexport interface LifeCycleHookCallbackParams {\n apw: ApwContext[\"apw\"];\n security: ApwContext[\"security\"];\n cms?: ApwContext[\"cms\"];\n}\n\nexport interface CreateApwParams {\n getLocale: () => I18NLocale;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getPermission: (name: string) => Promise<SecurityPermission | null>;\n storageOperations: ApwStorageOperations;\n}\n\ninterface StorageOperationsGetReviewerParams {\n id: string;\n}\n\ntype StorageOperationsListReviewersParams = ApwReviewerListParams;\n\ninterface CreateApwReviewerData {\n identityId: string;\n displayName: string | null;\n type: string;\n}\n\ninterface UpdateApwReviewerData {\n identityId: string;\n displayName: string | null;\n type: string;\n}\n\ninterface StorageOperationsCreateReviewerParams {\n data: CreateApwReviewerData;\n}\n\ninterface StorageOperationsUpdateReviewerParams {\n id: string;\n data: UpdateApwReviewerData;\n}\n\ninterface StorageOperationsDeleteReviewerParams {\n id: string;\n}\n\ninterface StorageOperationsGetParams {\n id: string;\n}\n\ninterface StorageOperationsDeleteParams {\n id: string;\n}\n\ntype StorageOperationsGetWorkflowParams = StorageOperationsGetParams;\n\ntype StorageOperationsListWorkflowsParams = ListParams;\n\ninterface StorageOperationsCreateWorkflowParams {\n data: CreateApwWorkflowParams;\n}\n\ninterface StorageOperationsUpdateWorkflowParams {\n id: string;\n data: UpdateApwWorkflowParams;\n}\n\ntype StorageOperationsDeleteWorkflowParams = StorageOperationsDeleteParams;\ntype StorageOperationsGetContentReviewParams = StorageOperationsGetParams;\ntype StorageOperationsListContentReviewsParams = ListParams;\n\ninterface StorageOperationsCreateContentReviewParams {\n data: CreateApwContentReviewParams;\n}\n\ninterface StorageOperationsUpdateContentReviewParams {\n id: string;\n data: UpdateApwContentReviewParams;\n}\n\ntype StorageOperationsDeleteContentReviewParams = StorageOperationsDeleteParams;\n\ntype StorageOperationsGetChangeRequestParams = StorageOperationsGetParams;\ntype StorageOperationsListChangeRequestsParams = ApwChangeRequestListParams;\n\ninterface StorageOperationsCreateChangeRequestParams {\n data: CreateApwChangeRequestParams;\n}\n\ninterface StorageOperationsUpdateChangeRequestParams {\n id: string;\n data: UpdateApwChangeRequestParams;\n}\n\ntype StorageOperationsDeleteChangeRequestParams = StorageOperationsDeleteParams;\n\ntype StorageOperationsGetCommentParams = StorageOperationsGetParams;\n\ntype StorageOperationsDeleteCommentParams = StorageOperationsDeleteParams;\ntype StorageOperationsListCommentsParams = ApwCommentListParams;\n\ninterface StorageOperationsCreateCommentParams {\n data: CreateApwCommentParams;\n}\n\ninterface StorageOperationsUpdateCommentParams {\n id: string;\n data: UpdateApwCommentParams;\n}\n\nexport interface ApwReviewerStorageOperations {\n /*\n * Reviewer methods\n */\n getReviewer(params: StorageOperationsGetReviewerParams): Promise<ApwReviewer>;\n\n listReviewers(params: StorageOperationsListReviewersParams): Promise<[ApwReviewer[], ListMeta]>;\n\n createReviewer(params: StorageOperationsCreateReviewerParams): Promise<ApwReviewer>;\n\n updateReviewer(params: StorageOperationsUpdateReviewerParams): Promise<ApwReviewer>;\n\n deleteReviewer(params: StorageOperationsDeleteReviewerParams): Promise<Boolean>;\n}\n\nexport interface ApwWorkflowStorageOperations {\n /*\n * Workflow methods\n */\n getWorkflow(params: StorageOperationsGetWorkflowParams): Promise<ApwWorkflow>;\n\n listWorkflows(params: StorageOperationsListWorkflowsParams): Promise<[ApwWorkflow[], ListMeta]>;\n\n createWorkflow(params: StorageOperationsCreateWorkflowParams): Promise<ApwWorkflow>;\n\n updateWorkflow(params: StorageOperationsUpdateWorkflowParams): Promise<ApwWorkflow>;\n\n deleteWorkflow(params: StorageOperationsDeleteWorkflowParams): Promise<Boolean>;\n}\n\nexport interface ApwContentReviewStorageOperations {\n /*\n * ContentReview methods\n */\n getContentReview(params: StorageOperationsGetContentReviewParams): Promise<ApwContentReview>;\n\n listContentReviews(\n params: StorageOperationsListContentReviewsParams\n ): Promise<[ApwContentReview[], ListMeta]>;\n\n createContentReview(\n params: StorageOperationsCreateContentReviewParams\n ): Promise<ApwContentReview>;\n\n updateContentReview(\n params: StorageOperationsUpdateContentReviewParams\n ): Promise<ApwContentReview>;\n\n deleteContentReview(params: StorageOperationsDeleteContentReviewParams): Promise<Boolean>;\n}\n\nexport interface ApwChangeRequestStorageOperations {\n /*\n * ChangeRequest methods\n */\n getChangeRequest(params: StorageOperationsGetChangeRequestParams): Promise<ApwChangeRequest>;\n\n listChangeRequests(\n params: StorageOperationsListChangeRequestsParams\n ): Promise<[ApwChangeRequest[], ListMeta]>;\n\n createChangeRequest(\n params: StorageOperationsCreateChangeRequestParams\n ): Promise<ApwChangeRequest>;\n\n updateChangeRequest(\n params: StorageOperationsUpdateChangeRequestParams\n ): Promise<ApwChangeRequest>;\n\n deleteChangeRequest(params: StorageOperationsDeleteChangeRequestParams): Promise<Boolean>;\n}\n\nexport interface ApwCommentStorageOperations {\n /*\n * Comment methods\n */\n getComment(params: StorageOperationsGetCommentParams): Promise<ApwComment>;\n\n listComments(params: StorageOperationsListCommentsParams): Promise<[ApwComment[], ListMeta]>;\n\n createComment(params: StorageOperationsCreateCommentParams): Promise<ApwComment>;\n\n updateComment(params: StorageOperationsUpdateCommentParams): Promise<ApwComment>;\n\n deleteComment(params: StorageOperationsDeleteCommentParams): Promise<Boolean>;\n}\n\nexport interface ApwStorageOperations\n extends ApwReviewerStorageOperations,\n ApwWorkflowStorageOperations,\n ApwContentReviewStorageOperations,\n ApwChangeRequestStorageOperations,\n ApwCommentStorageOperations {}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeCommentCreateTopicParams {\n input: CreateApwCommentParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterCommentCreateTopicParams {\n comment: ApwComment;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeCommentUpdateTopicParams {\n original: ApwComment;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterCommentUpdateTopicParams {\n original: ApwComment;\n comment: ApwComment;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeCommentDeleteTopicParams {\n comment: ApwComment;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterCommentDeleteTopicParams {\n comment: ApwComment;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeChangeRequestCreateTopicParams {\n input: CreateApwChangeRequestParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterChangeRequestCreateTopicParams {\n changeRequest: ApwChangeRequest;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeChangeRequestUpdateTopicParams {\n original: ApwChangeRequest;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterChangeRequestUpdateTopicParams {\n original: ApwChangeRequest;\n changeRequest: ApwChangeRequest;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeChangeRequestDeleteTopicParams {\n changeRequest: ApwChangeRequest;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterChangeRequestDeleteTopicParams {\n changeRequest: ApwChangeRequest;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeContentReviewCreateTopicParams {\n input: CreateApwContentReviewParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterContentReviewCreateTopicParams {\n contentReview: ApwContentReview;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeContentReviewUpdateTopicParams {\n original: ApwContentReview;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterContentReviewUpdateTopicParams {\n original: ApwContentReview;\n contentReview: ApwContentReview;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeContentReviewDeleteTopicParams {\n contentReview: ApwContentReview;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterContentReviewDeleteTopicParams {\n contentReview: ApwContentReview;\n}\n\nexport interface CreateApwReviewerParams {\n type: string;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeReviewerCreateTopicParams {\n input: CreateApwReviewerParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterReviewerCreateTopicParams {\n reviewer: ApwReviewer;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeReviewerUpdateTopicParams {\n original: ApwReviewer;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterReviewerUpdateTopicParams {\n original: ApwReviewer;\n reviewer: ApwReviewer;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeReviewerDeleteTopicParams {\n reviewer: ApwReviewer;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterReviewerDeleteTopicParams {\n reviewer: ApwReviewer;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeWorkflowCreateTopicParams {\n input: CreateApwWorkflowParams;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterWorkflowCreateTopicParams {\n workflow: ApwWorkflow;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeWorkflowUpdateTopicParams {\n original: ApwWorkflow;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterWorkflowUpdateTopicParams {\n original: ApwWorkflow;\n workflow: ApwWorkflow;\n input: Record<string, any>;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnBeforeWorkflowDeleteTopicParams {\n workflow: ApwWorkflow;\n}\n\n/**\n * @category Lifecycle events\n */\nexport interface OnAfterWorkflowDeleteTopicParams {\n workflow: ApwWorkflow;\n}\n\nexport type WorkflowModelDefinition = Pick<\n CmsModel,\n \"name\" | \"modelId\" | \"layout\" | \"titleFieldId\" | \"description\" | \"fields\"\n>;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["errors.ts"],"names":["NotAuthorizedError","Error","constructor","data","code","message","StepMissingError","PendingChangeRequestsError","StepInActiveError","NoSignOffProvidedError"],"mappings":";;;;;;;;;AAAA;;AAEO,MAAMA,kBAAN,SAAiCC,cAAjC,CAAuC;AAC1CC,EAAAA,WAAW,CAACC,IAAD,EAA4B;AACnC,UAAM;AACFC,MAAAA,IAAI,EAAE,gBADJ;AAEFC,MAAAA,OAAO,EAAG,4CAFR;AAGFF,MAAAA,IAAI,EAAEA,IAAI,IAAI;AAHZ,KAAN;AAKH;;AAPyC;;;;AAUvC,MAAMG,gBAAN,SAA+BL,cAA/B,CAAqC;AACxCC,EAAAA,WAAW,CAACC,IAAD,EAA4B;AACnC,UAAM;AACFC,MAAAA,IAAI,EAAE,cADJ;AAEFC,MAAAA,OAAO,EAAG,uCAFR;AAGFF,MAAAA,IAAI,EAAEA,IAAI,IAAI;AAHZ,KAAN;AAKH;;AAPuC;;;;AAUrC,MAAMI,0BAAN,SAAyCN,cAAzC,CAA+C;AAClDC,EAAAA,WAAW,CAACC,IAAD,EAA4B;AACnC,UAAM;AACFC,MAAAA,IAAI,EAAE,yBADJ;AAEFC,MAAAA,OAAO,EAAG,wDAFR;AAGFF,MAAAA,IAAI,EAAEA,IAAI,IAAI;AAHZ,KAAN;AAKH;;AAPiD;;;;AAU/C,MAAMK,iBAAN,SAAgCP,cAAhC,CAAsC;AACzCC,EAAAA,WAAW,CAACC,IAAD,EAA4B;AACnC,UAAM;AACFC,MAAAA,IAAI,EAAE,iBADJ;AAEFC,MAAAA,OAAO,EAAG,6DAFR;AAGFF,MAAAA,IAAI,EAAEA,IAAI,IAAI;AAHZ,KAAN;AAKH;;AAPwC;;;;AAUtC,MAAMM,sBAAN,SAAqCR,cAArC,CAA2C;AAC9CC,EAAAA,WAAW,CAACC,IAAD,EAA4B;AACnC,UAAM;AACFC,MAAAA,IAAI,EAAE,sBADJ;AAEFC,MAAAA,OAAO,EAAG,4DAFR;AAGFF,MAAAA,IAAI,EAAEA,IAAI,IAAI;AAHZ,KAAN;AAKH;;AAP6C","sourcesContent":["import Error from \"@webiny/error\";\n\nexport class NotAuthorizedError extends Error {\n constructor(data: Record<string, any>) {\n super({\n code: \"NOT_AUTHORISED\",\n message: `Not a reviewer, couldn't provide sign-off.`,\n data: data || null\n });\n }\n}\n\nexport class StepMissingError extends Error {\n constructor(data: Record<string, any>) {\n super({\n code: \"MISSING_STEP\",\n message: `Please complete previous steps first.`,\n data: data || null\n });\n }\n}\n\nexport class PendingChangeRequestsError extends Error {\n constructor(data: Record<string, any>) {\n super({\n code: \"PENDING_CHANGE_REQUESTS\",\n message: `Change requests are pending couldn't provide sign-off.`,\n data: data || null\n });\n }\n}\n\nexport class StepInActiveError extends Error {\n constructor(data: Record<string, any>) {\n super({\n code: \"STEP_NOT_ACTIVE\",\n message: `Step needs to be in active state before providing sign-off.`,\n data: data || null\n });\n }\n}\n\nexport class NoSignOffProvidedError extends Error {\n constructor(data: Record<string, any>) {\n super({\n code: \"NO_SIGN_OFF_PROVIDED\",\n message: `Sign-off must be provided in order for it to be retracted.`,\n data: data || null\n });\n }\n}\n"]}
@@ -1,15 +1,16 @@
1
- import { CmsContext, CmsModel } from "@webiny/api-headless-cms/types";
1
+ import { CmsContext, CmsEntry, CmsModel } from "@webiny/api-headless-cms/types";
2
+ import { ApwBaseFields } from "../types";
2
3
  interface Transformer {
3
- fieldId: string;
4
+ fieldId: keyof ApwBaseFields;
4
5
  model: any;
5
6
  field: any;
6
7
  }
7
8
  interface GetFieldValuesParams {
8
- entry: Record<string, any>;
9
+ entry: CmsEntry;
9
10
  fields: string[];
10
- transformers?: Array<Transformer>;
11
+ transformers?: Transformer[];
11
12
  context: CmsContext;
12
13
  }
13
- export declare const getFieldValues: ({ entry, context, transformers, fields }: GetFieldValuesParams) => Promise<any>;
14
+ export declare const getFieldValues: <T extends ApwBaseFields>(params: GetFieldValuesParams) => Promise<T>;
14
15
  export declare const getTransformer: (model: CmsModel, fieldId: string) => Transformer;
15
16
  export {};
@@ -17,12 +17,14 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
17
17
 
18
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
- const getFieldValues = async ({
21
- entry,
22
- context,
23
- transformers,
24
- fields
25
- }) => {
20
+ const getFieldValues = async params => {
21
+ const {
22
+ entry,
23
+ context,
24
+ transformers = [],
25
+ fields
26
+ } = params;
27
+
26
28
  const values = _objectSpread(_objectSpread({}, (0, _pick.default)(entry, fields)), entry.values);
27
29
  /**
28
30
  * Transform field value for each transformers.
@@ -50,7 +52,7 @@ const getFieldValues = async ({
50
52
  exports.getFieldValues = getFieldValues;
51
53
 
52
54
  const getTransformer = (model, fieldId) => ({
53
- fieldId,
55
+ fieldId: fieldId,
54
56
  model: model,
55
57
  field: model.fields.find(field => field.fieldId === fieldId)
56
58
  });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["fieldResolver.ts"],"names":["getFieldValues","params","entry","context","transformers","fields","values","i","length","fieldId","model","field","value","getTransformer","find"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;AAgBO,MAAMA,cAAc,GAAG,MAC1BC,MAD0B,IAEb;AACb,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,OAAT;AAAkBC,IAAAA,YAAY,GAAG,EAAjC;AAAqCC,IAAAA;AAArC,MAAgDJ,MAAtD;;AACA,QAAMK,MAAM,mCACL,mBAAKJ,KAAL,EAAYG,MAAZ,CADK,GAELH,KAAK,CAACI,MAFD,CAAZ;AAIA;AACJ;AACA;;;AACI,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC1C,UAAM;AAAEE,MAAAA,OAAF;AAAWC,MAAAA,KAAX;AAAkBC,MAAAA;AAAlB,QAA4BP,YAAY,CAACG,CAAD,CAA9C,CAD0C,CAE1C;;AACAD,IAAAA,MAAM,CAACG,OAAD,CAAN,GAAkB,MAAM,kDAA+B;AACnDN,MAAAA,OADmD;AAEnDO,MAAAA,KAFmD;AAGnDC,MAAAA,KAHmD;AAInDC,MAAAA,KAAK,EAAEN,MAAM,CAACG,OAAD;AAJsC,KAA/B,CAAxB;AAMH;;AAED,SAAOH,MAAP;AACH,CAvBM;;;;AAyBA,MAAMO,cAAc,GAAG,CAACH,KAAD,EAAkBD,OAAlB,MAAoD;AAC9EA,EAAAA,OAAO,EAAEA,OADqE;AAE9EC,EAAAA,KAAK,EAAEA,KAFuE;AAG9EC,EAAAA,KAAK,EAAED,KAAK,CAACL,MAAN,CAAaS,IAAb,CAAkBH,KAAK,IAAIA,KAAK,CAACF,OAAN,KAAkBA,OAA7C;AAHuE,CAApD,CAAvB","sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsContext, CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { entryFieldFromStorageTransform } from \"@webiny/api-headless-cms/content/plugins/utils/entryStorage\";\nimport { ApwBaseFields } from \"~/types\";\n\ninterface Transformer {\n fieldId: keyof ApwBaseFields;\n model: any;\n field: any;\n}\n\ninterface GetFieldValuesParams {\n entry: CmsEntry;\n fields: string[];\n transformers?: Transformer[];\n context: CmsContext;\n}\n\nexport const getFieldValues = async <T extends ApwBaseFields>(\n params: GetFieldValuesParams\n): Promise<T> => {\n const { entry, context, transformers = [], fields } = params;\n const values = {\n ...pick(entry, fields),\n ...entry.values\n } as T;\n /**\n * Transform field value for each transformers.\n */\n for (let i = 0; i < transformers.length; i++) {\n const { fieldId, model, field } = transformers[i];\n // Get transformed value (eg. data decompression)\n values[fieldId] = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: values[fieldId]\n });\n }\n\n return values;\n};\n\nexport const getTransformer = (model: CmsModel, fieldId: string): Transformer => ({\n fieldId: fieldId as unknown as keyof ApwBaseFields,\n model: model,\n field: model.fields.find(field => field.fieldId === fieldId)\n});\n"]}
@@ -1,3 +1,3 @@
1
1
  import { Response, ErrorResponse } from "@webiny/handler-graphql";
2
- declare const _default: (fn: () => Promise<any>) => Promise<ErrorResponse | Response<any>>;
2
+ declare const _default: (fn: () => Promise<any>) => Promise<Response<any> | ErrorResponse>;
3
3
  export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["resolve.ts"],"names":["fn","Response","e","ErrorResponse"],"mappings":";;;;;;;AAAA;;eAEe,MAAOA,EAAP,IAAkC;AAC7C,MAAI;AACA,WAAO,IAAIC,wBAAJ,CAAa,MAAMD,EAAE,EAArB,CAAP;AACH,GAFD,CAEE,OAAOE,CAAP,EAAU;AACR,WAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ,C","sourcesContent":["import { Response, ErrorResponse } from \"@webiny/handler-graphql\";\n\nexport default async (fn: () => Promise<any>) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n"]}