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

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 +25 -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
@@ -26,13 +26,13 @@ export interface ListParams {
26
26
  where: ListWhere;
27
27
  sort?: string[];
28
28
  limit?: number;
29
- after?: string;
29
+ after?: string | null;
30
30
  }
31
31
  export interface ListMeta {
32
32
  /**
33
33
  * A cursor for pagination.
34
34
  */
35
- cursor: string;
35
+ cursor: string | null;
36
36
  /**
37
37
  * Is there more items to load?
38
38
  */
@@ -83,33 +83,33 @@ export interface CreatedBy {
83
83
  /**
84
84
  * Full name of the user.
85
85
  */
86
- displayName: string;
86
+ displayName: string | null;
87
87
  /**
88
88
  * Type of the user (admin, user)
89
89
  */
90
90
  type: string;
91
91
  }
92
- interface BaseFields {
92
+ export interface ApwBaseFields {
93
93
  id: string;
94
94
  createdOn: string;
95
95
  savedOn: string;
96
96
  createdBy: CreatedBy;
97
97
  }
98
- export interface ApwReviewer extends BaseFields {
98
+ export interface ApwReviewer extends ApwBaseFields {
99
99
  identityId: string;
100
- displayName: string;
100
+ displayName: string | null;
101
101
  type: string;
102
102
  }
103
- export interface ApwComment extends BaseFields {
104
- body: JSON;
103
+ export interface ApwComment extends ApwBaseFields {
104
+ body: Record<string, any>;
105
105
  changeRequest: {
106
106
  id: string;
107
107
  entryId: string;
108
108
  modelId: string;
109
109
  };
110
110
  }
111
- export interface ApwChangeRequest extends BaseFields {
112
- body: JSON;
111
+ export interface ApwChangeRequest extends ApwBaseFields {
112
+ body: Record<string, any>;
113
113
  title: string;
114
114
  resolved: boolean;
115
115
  step: string;
@@ -122,19 +122,19 @@ export interface ApwContentReviewStep {
122
122
  reviewers: ApwReviewer[];
123
123
  status: ApwContentReviewStepStatus;
124
124
  pendingChangeRequests: number;
125
- signOffProvidedOn: string;
126
- signOffProvidedBy: CreatedBy;
125
+ signOffProvidedOn: string | null;
126
+ signOffProvidedBy: CreatedBy | null;
127
127
  }
128
- export interface ApwContentReview extends BaseFields {
128
+ export interface ApwContentReview extends ApwBaseFields {
129
129
  status: ApwContentReviewStatus;
130
130
  content: {
131
131
  id: string;
132
132
  type: string;
133
- settings: JSON;
133
+ settings: Record<string, any>;
134
134
  };
135
135
  steps: Array<ApwContentReviewStep>;
136
136
  }
137
- export interface ApwWorkflow extends BaseFields {
137
+ export interface ApwWorkflow extends ApwBaseFields {
138
138
  title: string;
139
139
  steps: ApwWorkflowStep[];
140
140
  scope: ApwWorkflowScope;
@@ -187,7 +187,7 @@ export interface ListWorkflowsParams extends ListParams {
187
187
  }
188
188
  interface CreateReviewerParams {
189
189
  identityId: string;
190
- displayName: string;
190
+ displayName: string | null;
191
191
  type: string;
192
192
  }
193
193
  interface CreateApwCommentParams {
@@ -201,15 +201,15 @@ interface UpdateApwCommentParams {
201
201
  }
202
202
  interface CreateApwChangeRequestParams {
203
203
  title: string;
204
- body: JSON;
204
+ body: Record<string, any>;
205
205
  resolved: boolean;
206
- media: JSON;
206
+ media: Record<string, any>;
207
207
  }
208
208
  interface UpdateApwChangeRequestParams {
209
209
  title: string;
210
- body: JSON;
210
+ body: Record<string, any>;
211
211
  resolved: boolean;
212
- media: JSON;
212
+ media: Record<string, any>;
213
213
  }
214
214
  export interface ApwContentReviewContent {
215
215
  id: string;
@@ -312,7 +312,7 @@ export interface ApwContentReviewCrud extends BaseApwCrud<ApwContentReview, Crea
312
312
  }
313
313
  export declare type WorkflowGetter = (id: string, settings: {
314
314
  modelId?: string;
315
- }) => Promise<string>;
315
+ }) => Promise<string | null>;
316
316
  export interface AdvancedPublishingWorkflow {
317
317
  addWorkflowGetter: (type: ApwContentTypes, func: WorkflowGetter) => void;
318
318
  getWorkflowGetter: (type: ApwContentTypes) => WorkflowGetter;
@@ -328,14 +328,14 @@ export interface ApwContext extends Context, CmsContext {
328
328
  }
329
329
  export interface LifeCycleHookCallbackParams {
330
330
  apw: ApwContext["apw"];
331
- security?: ApwContext["security"];
331
+ security: ApwContext["security"];
332
332
  cms?: ApwContext["cms"];
333
333
  }
334
334
  export interface CreateApwParams {
335
335
  getLocale: () => I18NLocale;
336
336
  getIdentity: () => SecurityIdentity;
337
337
  getTenant: () => Tenant;
338
- getPermission: (name: string) => Promise<SecurityPermission>;
338
+ getPermission: (name: string) => Promise<SecurityPermission | null>;
339
339
  storageOperations: ApwStorageOperations;
340
340
  }
341
341
  interface StorageOperationsGetReviewerParams {
@@ -344,12 +344,12 @@ interface StorageOperationsGetReviewerParams {
344
344
  declare type StorageOperationsListReviewersParams = ApwReviewerListParams;
345
345
  interface CreateApwReviewerData {
346
346
  identityId: string;
347
- displayName: string;
347
+ displayName: string | null;
348
348
  type: string;
349
349
  }
350
350
  interface UpdateApwReviewerData {
351
351
  identityId: string;
352
- displayName: string;
352
+ displayName: string | null;
353
353
  type: string;
354
354
  }
355
355
  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"]}