@webiny/api-apw 5.23.1 → 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 (87) 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 +23 -23
  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 +2 -1
  28. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -0
  29. package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +1 -1
  30. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -2
  31. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -0
  32. package/plugins/hooks/extendPbPageSchema.js.map +1 -0
  33. package/plugins/hooks/index.js.map +1 -0
  34. package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -2
  35. package/plugins/hooks/initializeContentReviewSteps.js +3 -2
  36. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -0
  37. package/plugins/hooks/linkWorkflowToPage.d.ts +2 -2
  38. package/plugins/hooks/linkWorkflowToPage.js +7 -6
  39. package/plugins/hooks/linkWorkflowToPage.js.map +1 -0
  40. package/plugins/hooks/updatePendingChangeRequests.d.ts +1 -1
  41. package/plugins/hooks/updatePendingChangeRequests.js +19 -16
  42. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -0
  43. package/plugins/utils.d.ts +1 -1
  44. package/plugins/utils.js +7 -5
  45. package/plugins/utils.js.map +1 -0
  46. package/storageOperations/changeRequestStorageOperations.js +15 -3
  47. package/storageOperations/changeRequestStorageOperations.js.map +1 -0
  48. package/storageOperations/commentStorageOperations.js +15 -3
  49. package/storageOperations/commentStorageOperations.js.map +1 -0
  50. package/storageOperations/contentReviewStorageOperations.js +15 -3
  51. package/storageOperations/contentReviewStorageOperations.js.map +1 -0
  52. package/storageOperations/index.d.ts +6 -2
  53. package/storageOperations/index.js +6 -2
  54. package/storageOperations/index.js.map +1 -0
  55. package/storageOperations/models/changeRequest.model.d.ts +2 -7
  56. package/storageOperations/models/changeRequest.model.js +9 -7
  57. package/storageOperations/models/changeRequest.model.js.map +1 -0
  58. package/storageOperations/models/comment.model.d.ts +5 -8
  59. package/storageOperations/models/comment.model.js +9 -7
  60. package/storageOperations/models/comment.model.js.map +1 -0
  61. package/storageOperations/models/contentModelPluginFactory.js.map +1 -0
  62. package/storageOperations/models/contentReview.model.d.ts +6 -25
  63. package/storageOperations/models/contentReview.model.js +9 -7
  64. package/storageOperations/models/contentReview.model.js.map +1 -0
  65. package/storageOperations/models/index.d.ts +2 -1
  66. package/storageOperations/models/index.js +11 -3
  67. package/storageOperations/models/index.js.map +1 -0
  68. package/storageOperations/models/reviewer.model.d.ts +2 -7
  69. package/storageOperations/models/reviewer.model.js +9 -7
  70. package/storageOperations/models/reviewer.model.js.map +1 -0
  71. package/storageOperations/models/utils.js.map +1 -0
  72. package/storageOperations/models/workflow.model.d.ts +11 -17
  73. package/storageOperations/models/workflow.model.js +14 -12
  74. package/storageOperations/models/workflow.model.js.map +1 -0
  75. package/storageOperations/reviewerStorageOperations.js +15 -3
  76. package/storageOperations/reviewerStorageOperations.js.map +1 -0
  77. package/storageOperations/types.js.map +1 -0
  78. package/storageOperations/workflowStorageOperations.js +15 -3
  79. package/storageOperations/workflowStorageOperations.js.map +1 -0
  80. package/types.d.ts +27 -26
  81. package/types.js.map +1 -0
  82. package/utils/errors.js.map +1 -0
  83. package/utils/fieldResolver.d.ts +6 -5
  84. package/utils/fieldResolver.js +9 -7
  85. package/utils/fieldResolver.js.map +1 -0
  86. package/utils/resolve.d.ts +1 -1
  87. package/utils/resolve.js.map +1 -0
@@ -7,10 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.createApwModels = void 0;
9
9
 
10
- var _CmsGroupPlugin = require("@webiny/api-headless-cms/content/plugins/CmsGroupPlugin");
11
-
12
10
  var _contentModelPluginFactory = _interopRequireDefault(require("./contentModelPluginFactory"));
13
11
 
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ var _CmsGroupPlugin = require("@webiny/api-headless-cms/content/plugins/CmsGroupPlugin");
15
+
14
16
  var _workflow = require("./workflow.model");
15
17
 
16
18
  var _contentReview = require("./contentReview.model");
@@ -32,11 +34,17 @@ const createApwModels = context => {
32
34
  }
33
35
 
34
36
  context.security.disableAuthorization();
37
+ const locale = context.i18nContent.locale;
38
+
39
+ if (!locale) {
40
+ throw new _error.default("Missing context.i18nContent.locale in api-apw/storageOperations/index.ts", "LOCALE_ERROR");
41
+ }
35
42
  /**
36
43
  * TODO:@ashutosh
37
44
  * We need to move these plugin in an installation plugin
38
45
  */
39
46
 
47
+
40
48
  const groupId = "contentModelGroup_apw";
41
49
  /**
42
50
  * Create a CmsGroup.
@@ -70,7 +78,7 @@ const createApwModels = context => {
70
78
  const cmsModelPlugin = (0, _contentModelPluginFactory.default)({
71
79
  group: cmsGroupPlugin.contentModelGroup,
72
80
  tenant: context.tenancy.getCurrentTenant().id,
73
- locale: context.i18nContent.locale.code,
81
+ locale: locale.code,
74
82
  modelDefinition
75
83
  });
76
84
  cmsModelPlugins.push(cmsModelPlugin);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["createApwModels","context","cms","console","warn","security","disableAuthorization","locale","i18nContent","WebinyError","groupId","cmsGroupPlugin","CmsGroupPlugin","id","slug","name","description","changeRequestModelDefinition","reviewerModelDefinition","workflowModelDefinition","reviewerModelId","modelId","commentModelDefinition","contentReviewModelDefinition","modelDefinitions","cmsModelPlugins","modelDefinition","cmsModelPlugin","group","contentModelGroup","tenant","tenancy","getCurrentTenant","code","push","plugins","register","enableAuthorization"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,MAAMA,eAAe,GAAIC,OAAD,IAAyB;AACpD;AACJ;AACA;AACA;AACI,MAAI,CAACA,OAAO,CAACC,GAAb,EAAkB;AACdC,IAAAA,OAAO,CAACC,IAAR,CAAa,iCAAb;AACA;AACH;;AACDH,EAAAA,OAAO,CAACI,QAAR,CAAiBC,oBAAjB;AAEA,QAAMC,MAAM,GAAGN,OAAO,CAACO,WAAR,CAAoBD,MAAnC;;AACA,MAAI,CAACA,MAAL,EAAa;AACT,UAAM,IAAIE,cAAJ,CACF,0EADE,EAEF,cAFE,CAAN;AAIH;AACD;AACJ;AACA;AACA;;;AACI,QAAMC,OAAO,GAAG,uBAAhB;AACA;AACJ;AACA;;AACI,QAAMC,cAAc,GAAG,IAAIC,8BAAJ,CAAmB;AACtCC,IAAAA,EAAE,EAAEH,OADkC;AAEtCI,IAAAA,IAAI,EAAE,KAFgC;AAGtCC,IAAAA,IAAI,EAAE,KAHgC;AAItCC,IAAAA,WAAW,EAAE;AAJyB,GAAnB,CAAvB;AAOA;AACJ;AACA;;AACI,QAAMC,4BAA4B,GAAG,wDAArC;AACA,QAAMC,uBAAuB,GAAG,8CAAhC;AACA,QAAMC,uBAAuB,GAAG,6CAA8B;AAC1DC,IAAAA,eAAe,EAAEF,uBAAuB,CAACG;AADiB,GAA9B,CAAhC;AAGA,QAAMC,sBAAsB,GAAG,2CAA6B;AACxDD,IAAAA,OAAO,EAAEJ,4BAA4B,CAACI;AADkB,GAA7B,CAA/B;AAGA,QAAME,4BAA4B,GAAG,uDAAmC;AACpEH,IAAAA,eAAe,EAAEF,uBAAuB,CAACG;AAD2B,GAAnC,CAArC;AAIA,QAAMG,gBAAgB,GAAG,CACrBL,uBADqB,EAErBI,4BAFqB,EAGrBL,uBAHqB,EAIrBD,4BAJqB,EAKrBK,sBALqB,CAAzB;AAQA,QAAMG,eAAe,GAAG,EAAxB;;AACA,OAAK,MAAMC,eAAX,IAA8BF,gBAA9B,EAAgD;AAC5C,UAAMG,cAAc,GAAG,wCAA0B;AAC7CC,MAAAA,KAAK,EAAEjB,cAAc,CAACkB,iBADuB;AAE7CC,MAAAA,MAAM,EAAE7B,OAAO,CAAC8B,OAAR,CAAgBC,gBAAhB,GAAmCnB,EAFE;AAG7CN,MAAAA,MAAM,EAAEA,MAAM,CAAC0B,IAH8B;AAI7CP,MAAAA;AAJ6C,KAA1B,CAAvB;AAMAD,IAAAA,eAAe,CAACS,IAAhB,CAAqBP,cAArB;AACH;AAED;AACJ;AACA;;;AACI1B,EAAAA,OAAO,CAACkC,OAAR,CAAgBC,QAAhB,CAAyB,CAACzB,cAAD,EAAiBc,eAAjB,CAAzB;AAEAxB,EAAAA,OAAO,CAACI,QAAR,CAAiBgC,mBAAjB;AACH,CAzEM","sourcesContent":["import contentModelPluginFactory from \"./contentModelPluginFactory\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsGroupPlugin } from \"@webiny/api-headless-cms/content/plugins/CmsGroupPlugin\";\nimport { createWorkflowModelDefinition } from \"./workflow.model\";\nimport { createContentReviewModelDefinition } from \"./contentReview.model\";\nimport { createReviewerModelDefinition } from \"./reviewer.model\";\nimport { createCommentModelDefinition } from \"./comment.model\";\nimport { createChangeRequestModelDefinition } from \"./changeRequest.model\";\nimport { CmsContext } from \"@webiny/api-headless-cms/types\";\n\nexport const createApwModels = (context: CmsContext) => {\n /**\n * This should never happen in the actual project.\n * It is to make sure that we load setup context before the CRUD init in our internal code.\n */\n if (!context.cms) {\n console.warn(\"Creating model before cms init.\");\n return;\n }\n context.security.disableAuthorization();\n\n const locale = context.i18nContent.locale;\n if (!locale) {\n throw new WebinyError(\n \"Missing context.i18nContent.locale in api-apw/storageOperations/index.ts\",\n \"LOCALE_ERROR\"\n );\n }\n /**\n * TODO:@ashutosh\n * We need to move these plugin in an installation plugin\n */\n const groupId = \"contentModelGroup_apw\";\n /**\n * Create a CmsGroup.\n */\n const cmsGroupPlugin = new CmsGroupPlugin({\n id: groupId,\n slug: \"apw\",\n name: \"APW\",\n description: \"Group for Advanced Publishing Workflow\"\n });\n\n /**\n * Create CmsModel plugins.\n */\n const changeRequestModelDefinition = createChangeRequestModelDefinition();\n const reviewerModelDefinition = createReviewerModelDefinition();\n const workflowModelDefinition = createWorkflowModelDefinition({\n reviewerModelId: reviewerModelDefinition.modelId\n });\n const commentModelDefinition = createCommentModelDefinition({\n modelId: changeRequestModelDefinition.modelId\n });\n const contentReviewModelDefinition = createContentReviewModelDefinition({\n reviewerModelId: reviewerModelDefinition.modelId\n });\n\n const modelDefinitions = [\n workflowModelDefinition,\n contentReviewModelDefinition,\n reviewerModelDefinition,\n changeRequestModelDefinition,\n commentModelDefinition\n ];\n\n const cmsModelPlugins = [];\n for (const modelDefinition of modelDefinitions) {\n const cmsModelPlugin = contentModelPluginFactory({\n group: cmsGroupPlugin.contentModelGroup,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: locale.code,\n modelDefinition\n });\n cmsModelPlugins.push(cmsModelPlugin);\n }\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);\n\n context.security.enableAuthorization();\n};\n"]}
@@ -1,7 +1,2 @@
1
- export declare const createReviewerModelDefinition: () => {
2
- name: string;
3
- modelId: string;
4
- titleFieldId: string;
5
- layout: string[][];
6
- fields: import("@webiny/api-headless-cms/types").CmsModelField[];
7
- };
1
+ import { WorkflowModelDefinition } from "../../types";
2
+ export declare const createReviewerModelDefinition: () => WorkflowModelDefinition;
@@ -37,12 +37,14 @@ const typeField = () => (0, _utils.createModelField)({
37
37
  }]
38
38
  });
39
39
 
40
- const createReviewerModelDefinition = () => ({
41
- name: "APW - Reviewer",
42
- modelId: "apwReviewerModelDefinition",
43
- titleFieldId: "displayName",
44
- layout: [["reviewer_id"], ["reviewer_displayName"]],
45
- fields: [idField(), displayNameField(), typeField()]
46
- });
40
+ const createReviewerModelDefinition = () => {
41
+ return {
42
+ name: "APW - Reviewer",
43
+ modelId: "apwReviewerModelDefinition",
44
+ titleFieldId: "displayName",
45
+ layout: [["reviewer_id"], ["reviewer_displayName"]],
46
+ fields: [idField(), displayNameField(), typeField()]
47
+ };
48
+ };
47
49
 
48
50
  exports.createReviewerModelDefinition = createReviewerModelDefinition;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["reviewer.model.ts"],"names":["idField","label","type","parent","validation","message","name","displayNameField","typeField","createReviewerModelDefinition","modelId","titleFieldId","layout","fields"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,OAAO,GAAG,MACZ,6BAAiB;AACbC,EAAAA,KAAK,EAAE,aADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE,UAHK;AAIbC,EAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,oBAAX;AAAiCC,IAAAA,IAAI,EAAE;AAAvC,GAAD;AAJC,CAAjB,CADJ;;AAQA,MAAMC,gBAAgB,GAAG,MACrB,6BAAiB;AACbN,EAAAA,KAAK,EAAE,cADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE,UAHK;AAIbC,EAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,oBAAX;AAAiCC,IAAAA,IAAI,EAAE;AAAvC,GAAD;AAJC,CAAjB,CADJ;;AAQA,MAAME,SAAS,GAAG,MACd,6BAAiB;AACbP,EAAAA,KAAK,EAAE,MADM;AAEbC,EAAAA,IAAI,EAAE,MAFO;AAGbC,EAAAA,MAAM,EAAE,UAHK;AAIbC,EAAAA,UAAU,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,oBAAX;AAAiCC,IAAAA,IAAI,EAAE;AAAvC,GAAD;AAJC,CAAjB,CADJ;;AAQO,MAAMG,6BAA6B,GAAG,MAA+B;AACxE,SAAO;AACHH,IAAAA,IAAI,EAAE,gBADH;AAEHI,IAAAA,OAAO,EAAE,4BAFN;AAGHC,IAAAA,YAAY,EAAE,aAHX;AAIHC,IAAAA,MAAM,EAAE,CAAC,CAAC,aAAD,CAAD,EAAkB,CAAC,sBAAD,CAAlB,CAJL;AAKHC,IAAAA,MAAM,EAAE,CAACb,OAAO,EAAR,EAAYO,gBAAgB,EAA5B,EAAgCC,SAAS,EAAzC;AALL,GAAP;AAOH,CARM","sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst idField = () =>\n createModelField({\n label: \"Identity Id\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [{ message: \"Value is required.\", name: \"required\" }]\n });\n\nconst displayNameField = () =>\n createModelField({\n label: \"Display Name\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [{ message: \"Value is required.\", name: \"required\" }]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [{ message: \"Value is required.\", name: \"required\" }]\n });\n\nexport const createReviewerModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Reviewer\",\n modelId: \"apwReviewerModelDefinition\",\n titleFieldId: \"displayName\",\n layout: [[\"reviewer_id\"], [\"reviewer_displayName\"]],\n fields: [idField(), displayNameField(), typeField()]\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils.ts"],"names":["createModelField","params","label","type","parent","fieldId","id","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled"],"mappings":";;;;;;;;;AAAA;;AAIO,MAAMA,gBAAgB,GAAIC,MAAD,IAAmD;AAC/E,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA;AAAf,MAA0BH,MAAhC;AACA,QAAMI,OAAO,GAAG,wBAAUH,KAAV,CAAhB;AAEA,SAAO;AACHI,IAAAA,EAAE,EAAG,GAAE,wBAAUF,MAAV,CAAkB,IAAGC,OAAQ,EADjC;AAEHA,IAAAA,OAFG;AAGHH,IAAAA,KAHG;AAIHC,IAAAA,IAJG;AAKHI,IAAAA,QAAQ,EAAEN,MAAM,CAACM,QAAP,IAAmB,EAL1B;AAMHC,IAAAA,cAAc,EAAEP,MAAM,CAACO,cAAP,IAAyB,EANtC;AAOHC,IAAAA,UAAU,EAAER,MAAM,CAACQ,UAAP,IAAqB,EAP9B;AAQHC,IAAAA,cAAc,EAAET,MAAM,CAACS,cAAP,IAAyB,KARtC;AASHC,IAAAA,gBAAgB,EAAEV,MAAM,CAACU,gBAAP,IAA2B;AACzCC,MAAAA,MAAM,EAAE,EADiC;AAEzCC,MAAAA,OAAO,EAAE;AAFgC;AAT1C,GAAP;AAcH,CAlBM","sourcesContent":["import camelCase from \"lodash/camelCase\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { CreateModelFieldParams } from \"~/plugins/utils\";\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const { label, type, parent } = params;\n const fieldId = camelCase(label);\n\n return {\n id: `${camelCase(parent)}_${fieldId}`,\n fieldId,\n label,\n type,\n settings: params.settings || {},\n listValidation: params.listValidation || [],\n validation: params.validation || [],\n multipleValues: params.multipleValues || false,\n predefinedValues: params.predefinedValues || {\n values: [],\n enabled: false\n }\n };\n};\n"]}
@@ -1,17 +1,11 @@
1
- export declare const stepTitleField: () => import("@webiny/api-headless-cms/types").CmsModelField;
2
- export declare const stepTypeField: () => import("@webiny/api-headless-cms/types").CmsModelField;
3
- export declare const stepSlugField: () => import("@webiny/api-headless-cms/types").CmsModelField;
4
- export declare const stepReviewersField: (reviewerModelId: any) => import("@webiny/api-headless-cms/types").CmsModelField;
5
- export declare const createWorkflowModelDefinition: ({ reviewerModelId }: {
6
- reviewerModelId: any;
7
- }) => {
8
- name: string;
9
- /**
10
- * Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.
11
- */
12
- modelId: string;
13
- layout: string[][];
14
- titleFieldId: string;
15
- description: any;
16
- fields: import("@webiny/api-headless-cms/types").CmsModelField[];
17
- };
1
+ import { CmsModelField } from "@webiny/api-headless-cms/types";
2
+ import { WorkflowModelDefinition } from "../../types";
3
+ export declare const stepTitleField: () => CmsModelField;
4
+ export declare const stepTypeField: () => CmsModelField;
5
+ export declare const stepSlugField: () => CmsModelField;
6
+ export declare const stepReviewersField: (reviewerModelId: string) => CmsModelField;
7
+ interface CreateWorkflowModelDefinitionParams {
8
+ reviewerModelId: string;
9
+ }
10
+ export declare const createWorkflowModelDefinition: ({ reviewerModelId }: CreateWorkflowModelDefinitionParams) => WorkflowModelDefinition;
11
+ export {};
@@ -188,17 +188,19 @@ const applicationField = () => (0, _utils.createModelField)({
188
188
 
189
189
  const createWorkflowModelDefinition = ({
190
190
  reviewerModelId
191
- }) => ({
192
- name: "APW - Workflow",
193
-
194
- /**
195
- * Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.
196
- */
197
- modelId: "apwWorkflowModelDefinition",
198
- layout: [["workflow_title"], ["workflow_steps"], ["workflow_scope"], ["workflow_app"]],
199
- titleFieldId: "title",
200
- description: null,
201
- fields: [titleField(), stepsField([stepTitleField(), stepTypeField(), stepSlugField(), stepReviewersField(reviewerModelId)]), scopeField([scopeTypeField(), scopeDataField([scopeDataPbCategories(), scopeDataPbPages(), scopeDataCmsModels(), scopeDataCmsEntries()])]), applicationField()]
202
- });
191
+ }) => {
192
+ return {
193
+ name: "APW - Workflow",
194
+
195
+ /**
196
+ * Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.
197
+ */
198
+ modelId: "apwWorkflowModelDefinition",
199
+ layout: [["workflow_title"], ["workflow_steps"], ["workflow_scope"], ["workflow_app"]],
200
+ titleFieldId: "title",
201
+ description: null,
202
+ fields: [titleField(), stepsField([stepTitleField(), stepTypeField(), stepSlugField(), stepReviewersField(reviewerModelId)]), scopeField([scopeTypeField(), scopeDataField([scopeDataPbCategories(), scopeDataPbPages(), scopeDataCmsModels(), scopeDataCmsEntries()])]), applicationField()]
203
+ };
204
+ };
203
205
 
204
206
  exports.createWorkflowModelDefinition = createWorkflowModelDefinition;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["workflow.model.ts"],"names":["titleField","label","type","parent","validation","message","name","stepsField","fields","settings","multipleValues","stepTitleField","stepTypeField","predefinedValues","enabled","values","value","stepSlugField","stepReviewersField","reviewerModelId","models","modelId","listValidation","scopeField","scopeTypeField","scopeDataField","scopeDataPbCategories","scopeDataPbPages","scopeDataCmsModels","scopeDataCmsEntries","applicationField","createWorkflowModelDefinition","layout","titleFieldId","description"],"mappings":"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","sourcesContent":["import { createModelField } from \"./utils\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"workflow\",\n validation: [\n {\n message: \"Value is required.\",\n name: \"required\"\n }\n ]\n });\n\nconst stepsField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Steps\",\n type: \"object\",\n parent: \"workflow\",\n settings: {\n fields\n },\n multipleValues: true\n });\n\nexport const stepTitleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"workflow steps\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const stepTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"workflow steps\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"mandatoryBlocking\",\n label: \"Mandatory, blocking - An approval from a reviewer is required before being able to move to the next step and publish the content. \"\n },\n {\n value: \"mandatoryNonBlocking\",\n label: \"Mandatory, non-blocking - An approval from a reviewer is to publish the content, but the next step in the review workflow is not blocked. \"\n },\n {\n value: \"notMandatory\",\n label: \"Not mandatory - This is an optional review step. The content can be published regardless if an approval is provided or not.\"\n }\n ]\n },\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const stepSlugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n parent: \"workflow steps\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nexport const stepReviewersField = (reviewerModelId: string) =>\n createModelField({\n label: \"Reviewers\",\n type: \"ref\",\n parent: \"workflow steps\",\n multipleValues: true,\n settings: {\n models: [\n {\n modelId: reviewerModelId\n }\n ]\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"Value is too short.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst scopeField = (fields: CmsModelField[]) =>\n createModelField({\n type: \"object\",\n label: \"Scope\",\n parent: \"workflow\",\n settings: {\n fields\n }\n });\n\nconst scopeTypeField = () =>\n createModelField({\n label: \"Type\",\n parent: \"workflow scope\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"default\",\n label: \"Default - Catch all scope that applies to all content that's being published.\"\n },\n {\n value: \"pb\",\n label: \"Page category (Page Builder only) - The workflow will apply to all pages inside specific categories.\"\n },\n {\n value: \"cms\",\n label: \"Content model (Headless CMS only) - The workflow will apply to all the content inside the specific content models. \"\n }\n ]\n }\n });\n\nconst scopeDataField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Data\",\n parent: \"workflow scope\",\n type: \"object\",\n settings: {\n fields\n }\n });\n\nconst scopeDataPbCategories = () =>\n createModelField({\n label: \"Categories\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataPbPages = () =>\n createModelField({\n label: \"Pages\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataCmsModels = () =>\n createModelField({\n label: \"Models\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataCmsEntries = () =>\n createModelField({\n label: \"Category\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\n\nconst applicationField = () =>\n createModelField({\n parent: \"workflow\",\n type: \"text\",\n label: \"App\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n { label: \"Page Builder\", value: \"pageBuilder\" },\n { label: \"Headless CMS\", value: \"cms\" }\n ]\n }\n });\n\ninterface CreateWorkflowModelDefinitionParams {\n reviewerModelId: string;\n}\nexport const createWorkflowModelDefinition = ({\n reviewerModelId\n}: CreateWorkflowModelDefinitionParams): WorkflowModelDefinition => {\n return {\n name: \"APW - Workflow\",\n /**\n * Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.\n */\n modelId: \"apwWorkflowModelDefinition\",\n layout: [[\"workflow_title\"], [\"workflow_steps\"], [\"workflow_scope\"], [\"workflow_app\"]],\n titleFieldId: \"title\",\n description: null,\n fields: [\n titleField(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepSlugField(),\n stepReviewersField(reviewerModelId)\n ]),\n scopeField([\n scopeTypeField(),\n scopeDataField([\n scopeDataPbCategories(),\n scopeDataPbPages(),\n scopeDataCmsModels(),\n scopeDataCmsEntries()\n ])\n ]),\n applicationField()\n ]\n };\n};\n"]}
@@ -11,6 +11,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _index = require("./index");
13
13
 
14
+ var _error = _interopRequireDefault(require("@webiny/error"));
15
+
14
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
17
 
16
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; }
@@ -18,8 +20,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
20
  const createReviewerStorageOperations = ({
19
21
  cms
20
22
  }) => {
21
- const getReviewerModel = () => {
22
- return cms.getModel("apwReviewerModelDefinition");
23
+ const getReviewerModel = async () => {
24
+ const model = await cms.getModel("apwReviewerModelDefinition");
25
+
26
+ if (!model) {
27
+ throw new _error.default("Could not find `apwReviewerModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
28
+ }
29
+
30
+ return model;
23
31
  };
24
32
 
25
33
  const getReviewer = async ({
@@ -36,7 +44,11 @@ const createReviewerStorageOperations = ({
36
44
 
37
45
  async listReviewers(params) {
38
46
  const model = await getReviewerModel();
39
- const [entries, meta] = await cms.listLatestEntries(model, params);
47
+ const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
48
+ where: _objectSpread(_objectSpread({}, params.where), {}, {
49
+ tenant: model.tenant
50
+ })
51
+ }));
40
52
  return [entries.map(entry => (0, _index.getFieldValues)(entry, _index.baseFields)), meta];
41
53
  },
42
54
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["reviewerStorageOperations.ts"],"names":["createReviewerStorageOperations","cms","getReviewerModel","model","getModel","WebinyError","getReviewer","id","entry","getEntryById","baseFields","listReviewers","params","entries","meta","listLatestEntries","where","tenant","map","createReviewer","createEntry","data","updateReviewer","existingEntry","updateEntry","deleteReviewer","deleteEntry"],"mappings":";;;;;;;;;;;AACA;;AAKA;;;;;;AAEO,MAAMA,+BAA+B,GAAG,CAAC;AAC5CC,EAAAA;AAD4C,CAAD,KAEoC;AAC/E,QAAMC,gBAAgB,GAAG,YAAY;AACjC,UAAMC,KAAK,GAAG,MAAMF,GAAG,CAACG,QAAJ,CAAa,4BAAb,CAApB;;AACA,QAAI,CAACD,KAAL,EAAY;AACR,YAAM,IAAIE,cAAJ,CACF,oDADE,EAEF,uBAFE,CAAN;AAIH;;AACD,WAAOF,KAAP;AACH,GATD;;AAUA,QAAMG,WAAwD,GAAG,OAAO;AAAEC,IAAAA;AAAF,GAAP,KAAkB;AAC/E,UAAMJ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,UAAMM,KAAK,GAAG,MAAMP,GAAG,CAACQ,YAAJ,CAAiBN,KAAjB,EAAwBI,EAAxB,CAApB;AACA,WAAO,2BAAeC,KAAf,EAAsBE,iBAAtB,CAAP;AACH,GAJD;;AAKA,SAAO;AACHR,IAAAA,gBADG;AAEHI,IAAAA,WAFG;;AAGH,UAAMK,aAAN,CAAoBC,MAApB,EAA4B;AACxB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAM,CAACW,OAAD,EAAUC,IAAV,IAAkB,MAAMb,GAAG,CAACc,iBAAJ,CAAsBZ,KAAtB,kCACvBS,MADuB;AAE1BI,QAAAA,KAAK,kCACEJ,MAAM,CAACI,KADT;AAEDC,UAAAA,MAAM,EAAEd,KAAK,CAACc;AAFb;AAFqB,SAA9B;AAOA,aAAO,CAACJ,OAAO,CAACK,GAAR,CAAYV,KAAK,IAAI,2BAAeA,KAAf,EAAsBE,iBAAtB,CAArB,CAAD,EAA0DI,IAA1D,CAAP;AACH,KAbE;;AAcH,UAAMK,cAAN,CAAqBP,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAMM,KAAK,GAAG,MAAMP,GAAG,CAACmB,WAAJ,CAAgBjB,KAAhB,EAAuBS,MAAM,CAACS,IAA9B,CAApB;AACA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAlBE;;AAmBH,UAAMY,cAAN,CAAqBV,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA;AACZ;AACA;AACA;;AACY,YAAMqB,aAAa,GAAG,MAAMjB,WAAW,CAAC;AAAEC,QAAAA,EAAE,EAAEK,MAAM,CAACL;AAAb,OAAD,CAAvC;AAEA,YAAMC,KAAK,GAAG,MAAMP,GAAG,CAACuB,WAAJ,CAAgBrB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,kCACbgB,aADa,GAEbX,MAAM,CAACS,IAFM,EAApB;AAIA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAhCE;;AAiCH,UAAMe,cAAN,CAAqBb,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAMD,GAAG,CAACyB,WAAJ,CAAgBvB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,CAAN;AACA,aAAO,IAAP;AACH;;AArCE,GAAP;AAuCH,CAzDM","sourcesContent":["import { ApwReviewerStorageOperations } from \"./types\";\nimport {\n baseFields,\n CreateApwStorageOperationsParams,\n getFieldValues\n} from \"~/storageOperations/index\";\nimport WebinyError from \"@webiny/error\";\n\nexport const createReviewerStorageOperations = ({\n cms\n}: Pick<CreateApwStorageOperationsParams, \"cms\">): ApwReviewerStorageOperations => {\n const getReviewerModel = async () => {\n const model = await cms.getModel(\"apwReviewerModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwReviewerModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getReviewer: ApwReviewerStorageOperations[\"getReviewer\"] = async ({ id }) => {\n const model = await getReviewerModel();\n const entry = await cms.getEntryById(model, id);\n return getFieldValues(entry, baseFields);\n };\n return {\n getReviewerModel,\n getReviewer,\n async listReviewers(params) {\n const model = await getReviewerModel();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where,\n tenant: model.tenant\n }\n });\n return [entries.map(entry => getFieldValues(entry, baseFields)), meta];\n },\n async createReviewer(params) {\n const model = await getReviewerModel();\n const entry = await cms.createEntry(model, params.data);\n return getFieldValues(entry, baseFields);\n },\n async updateReviewer(params) {\n const model = await getReviewerModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getReviewer({ id: params.id });\n\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n return getFieldValues(entry, baseFields);\n },\n async deleteReviewer(params) {\n const model = await getReviewerModel();\n await cms.deleteEntry(model, params.id);\n return true;\n }\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -11,6 +11,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _index = require("./index");
13
13
 
14
+ var _error = _interopRequireDefault(require("@webiny/error"));
15
+
14
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
17
 
16
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; }
@@ -18,8 +20,14 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
20
  const createWorkflowStorageOperations = ({
19
21
  cms
20
22
  }) => {
21
- const getWorkflowModel = () => {
22
- return cms.getModel("apwWorkflowModelDefinition");
23
+ const getWorkflowModel = async () => {
24
+ const model = await cms.getModel("apwWorkflowModelDefinition");
25
+
26
+ if (!model) {
27
+ throw new _error.default("Could not find `apwWorkflowModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
28
+ }
29
+
30
+ return model;
23
31
  };
24
32
 
25
33
  const getWorkflow = async ({
@@ -36,7 +44,11 @@ const createWorkflowStorageOperations = ({
36
44
 
37
45
  async listWorkflows(params) {
38
46
  const model = await getWorkflowModel();
39
- const [entries, meta] = await cms.listLatestEntries(model, params);
47
+ const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
48
+ where: _objectSpread(_objectSpread({}, params.where), {}, {
49
+ tenant: model.tenant
50
+ })
51
+ }));
40
52
  return [entries.map(entry => (0, _index.getFieldValues)(entry, _index.baseFields)), meta];
41
53
  },
42
54
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["workflowStorageOperations.ts"],"names":["createWorkflowStorageOperations","cms","getWorkflowModel","model","getModel","WebinyError","getWorkflow","id","entry","getEntryById","baseFields","listWorkflows","params","entries","meta","listLatestEntries","where","tenant","map","createWorkflow","createEntry","data","updateWorkflow","existingEntry","updateEntry","deleteWorkflow","deleteEntry"],"mappings":";;;;;;;;;;;AACA;;AAKA;;;;;;AAEO,MAAMA,+BAA+B,GAAG,CAAC;AAC5CC,EAAAA;AAD4C,CAAD,KAEoC;AAC/E,QAAMC,gBAAgB,GAAG,YAAY;AACjC,UAAMC,KAAK,GAAG,MAAMF,GAAG,CAACG,QAAJ,CAAa,4BAAb,CAApB;;AACA,QAAI,CAACD,KAAL,EAAY;AACR,YAAM,IAAIE,cAAJ,CACF,oDADE,EAEF,uBAFE,CAAN;AAIH;;AACD,WAAOF,KAAP;AACH,GATD;;AAUA,QAAMG,WAAwD,GAAG,OAAO;AAAEC,IAAAA;AAAF,GAAP,KAAkB;AAC/E,UAAMJ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,UAAMM,KAAK,GAAG,MAAMP,GAAG,CAACQ,YAAJ,CAAiBN,KAAjB,EAAwBI,EAAxB,CAApB;AACA,WAAO,2BAAeC,KAAf,EAAsBE,iBAAtB,CAAP;AACH,GAJD;;AAKA,SAAO;AACHR,IAAAA,gBADG;AAEHI,IAAAA,WAFG;;AAGH,UAAMK,aAAN,CAAoBC,MAApB,EAA4B;AACxB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAM,CAACW,OAAD,EAAUC,IAAV,IAAkB,MAAMb,GAAG,CAACc,iBAAJ,CAAsBZ,KAAtB,kCACvBS,MADuB;AAE1BI,QAAAA,KAAK,kCACEJ,MAAM,CAACI,KADT;AAEDC,UAAAA,MAAM,EAAEd,KAAK,CAACc;AAFb;AAFqB,SAA9B;AAOA,aAAO,CAACJ,OAAO,CAACK,GAAR,CAAYV,KAAK,IAAI,2BAAeA,KAAf,EAAsBE,iBAAtB,CAArB,CAAD,EAA0DI,IAA1D,CAAP;AACH,KAbE;;AAcH,UAAMK,cAAN,CAAqBP,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAMM,KAAK,GAAG,MAAMP,GAAG,CAACmB,WAAJ,CAAgBjB,KAAhB,EAAuBS,MAAM,CAACS,IAA9B,CAApB;AACA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAlBE;;AAmBH,UAAMY,cAAN,CAAqBV,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA;AACZ;AACA;AACA;;AACY,YAAMqB,aAAa,GAAG,MAAMjB,WAAW,CAAC;AAAEC,QAAAA,EAAE,EAAEK,MAAM,CAACL;AAAb,OAAD,CAAvC;AAEA,YAAMC,KAAK,GAAG,MAAMP,GAAG,CAACuB,WAAJ,CAAgBrB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,kCACbgB,aADa,GAEbX,MAAM,CAACS,IAFM,EAApB;AAIA,aAAO,2BAAeb,KAAf,EAAsBE,iBAAtB,CAAP;AACH,KAhCE;;AAiCH,UAAMe,cAAN,CAAqBb,MAArB,EAA6B;AACzB,YAAMT,KAAK,GAAG,MAAMD,gBAAgB,EAApC;AACA,YAAMD,GAAG,CAACyB,WAAJ,CAAgBvB,KAAhB,EAAuBS,MAAM,CAACL,EAA9B,CAAN;AACA,aAAO,IAAP;AACH;;AArCE,GAAP;AAuCH,CAzDM","sourcesContent":["import { ApwWorkflowStorageOperations } from \"./types\";\nimport {\n baseFields,\n CreateApwStorageOperationsParams,\n getFieldValues\n} from \"~/storageOperations/index\";\nimport WebinyError from \"@webiny/error\";\n\nexport const createWorkflowStorageOperations = ({\n cms\n}: Pick<CreateApwStorageOperationsParams, \"cms\">): ApwWorkflowStorageOperations => {\n const getWorkflowModel = async () => {\n const model = await cms.getModel(\"apwWorkflowModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwWorkflowModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getWorkflow: ApwWorkflowStorageOperations[\"getWorkflow\"] = async ({ id }) => {\n const model = await getWorkflowModel();\n const entry = await cms.getEntryById(model, id);\n return getFieldValues(entry, baseFields);\n };\n return {\n getWorkflowModel,\n getWorkflow,\n async listWorkflows(params) {\n const model = await getWorkflowModel();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where,\n tenant: model.tenant\n }\n });\n return [entries.map(entry => getFieldValues(entry, baseFields)), meta];\n },\n async createWorkflow(params) {\n const model = await getWorkflowModel();\n const entry = await cms.createEntry(model, params.data);\n return getFieldValues(entry, baseFields);\n },\n async updateWorkflow(params) {\n const model = await getWorkflowModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getWorkflow({ id: params.id });\n\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n return getFieldValues(entry, baseFields);\n },\n async deleteWorkflow(params) {\n const model = await getWorkflowModel();\n await cms.deleteEntry(model, params.id);\n return true;\n }\n };\n};\n"]}
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Page, OnBeforePageCreateFromTopicParams } from "@webiny/api-page-builder/types";
2
- import { CmsContext } from "@webiny/api-headless-cms/types";
2
+ import { CmsContext, CmsModel } from "@webiny/api-headless-cms/types";
3
3
  import { Context } from "@webiny/handler/types";
4
4
  import { PageBuilderContextObject } from "@webiny/api-page-builder/graphql/types";
5
5
  import { SecurityIdentity, SecurityPermission } from "@webiny/api-security/types";
@@ -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 {
@@ -643,4 +643,5 @@ export interface OnBeforeWorkflowDeleteTopicParams {
643
643
  export interface OnAfterWorkflowDeleteTopicParams {
644
644
  workflow: ApwWorkflow;
645
645
  }
646
+ export declare type WorkflowModelDefinition = Pick<CmsModel, "name" | "modelId" | "layout" | "titleFieldId" | "description" | "fields">;
646
647
  export {};
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: 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"]}