@webiny/api-apw 5.32.0 → 5.33.0-beta.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-apw",
3
- "version": "5.32.0",
3
+ "version": "5.33.0-beta.1",
4
4
  "keywords": [
5
5
  "apw:base"
6
6
  ],
@@ -17,24 +17,24 @@
17
17
  "@aws-sdk/client-cloudwatch-events": "3.142.0",
18
18
  "@babel/runtime": "7.18.9",
19
19
  "@commodo/fields": "1.1.2-beta.20",
20
- "@webiny/api": "5.32.0",
21
- "@webiny/api-headless-cms": "5.32.0",
22
- "@webiny/api-i18n": "5.32.0",
23
- "@webiny/api-i18n-ddb": "5.32.0",
24
- "@webiny/api-page-builder": "5.32.0",
25
- "@webiny/api-security": "5.32.0",
26
- "@webiny/api-tenancy": "5.32.0",
27
- "@webiny/api-wcp": "5.32.0",
28
- "@webiny/db-dynamodb": "5.32.0",
29
- "@webiny/error": "5.32.0",
30
- "@webiny/handler": "5.32.0",
31
- "@webiny/handler-client": "5.32.0",
32
- "@webiny/handler-db": "5.32.0",
33
- "@webiny/handler-graphql": "5.32.0",
34
- "@webiny/handler-logs": "5.32.0",
35
- "@webiny/plugins": "5.32.0",
36
- "@webiny/pubsub": "5.32.0",
37
- "@webiny/validation": "5.32.0",
20
+ "@webiny/api": "5.33.0-beta.1",
21
+ "@webiny/api-headless-cms": "5.33.0-beta.1",
22
+ "@webiny/api-i18n": "5.33.0-beta.1",
23
+ "@webiny/api-i18n-ddb": "5.33.0-beta.1",
24
+ "@webiny/api-page-builder": "5.33.0-beta.1",
25
+ "@webiny/api-security": "5.33.0-beta.1",
26
+ "@webiny/api-tenancy": "5.33.0-beta.1",
27
+ "@webiny/api-wcp": "5.33.0-beta.1",
28
+ "@webiny/db-dynamodb": "5.33.0-beta.1",
29
+ "@webiny/error": "5.33.0-beta.1",
30
+ "@webiny/handler": "5.33.0-beta.1",
31
+ "@webiny/handler-client": "5.33.0-beta.1",
32
+ "@webiny/handler-db": "5.33.0-beta.1",
33
+ "@webiny/handler-graphql": "5.33.0-beta.1",
34
+ "@webiny/handler-logs": "5.33.0-beta.1",
35
+ "@webiny/plugins": "5.33.0-beta.1",
36
+ "@webiny/pubsub": "5.33.0-beta.1",
37
+ "@webiny/validation": "5.33.0-beta.1",
38
38
  "dayjs": "1.11.4",
39
39
  "lodash": "4.17.21",
40
40
  "mdbid": "1.0.0",
@@ -45,14 +45,14 @@
45
45
  "@babel/core": "^7.5.5",
46
46
  "@babel/preset-env": "^7.5.5",
47
47
  "@babel/preset-flow": "^7.0.0",
48
- "@webiny/api-headless-cms-ddb": "^5.32.0",
49
- "@webiny/api-page-builder-so-ddb": "^5.32.0",
50
- "@webiny/api-security-so-ddb": "^5.32.0",
51
- "@webiny/api-tenancy-so-ddb": "^5.32.0",
52
- "@webiny/cli": "^5.32.0",
53
- "@webiny/handler-aws": "^5.32.0",
54
- "@webiny/project-utils": "^5.32.0",
55
- "@webiny/wcp": "^5.32.0",
48
+ "@webiny/api-headless-cms-ddb": "^5.33.0-beta.1",
49
+ "@webiny/api-page-builder-so-ddb": "^5.33.0-beta.1",
50
+ "@webiny/api-security-so-ddb": "^5.33.0-beta.1",
51
+ "@webiny/api-tenancy-so-ddb": "^5.33.0-beta.1",
52
+ "@webiny/cli": "^5.33.0-beta.1",
53
+ "@webiny/handler-aws": "^5.33.0-beta.1",
54
+ "@webiny/project-utils": "^5.33.0-beta.1",
55
+ "@webiny/wcp": "^5.33.0-beta.1",
56
56
  "get-yarn-workspaces": "^1.0.2",
57
57
  "graphql": "^15.7.2",
58
58
  "jest": "^28.1.0",
@@ -71,5 +71,5 @@
71
71
  "build": "yarn webiny run build",
72
72
  "watch": "yarn webiny run watch"
73
73
  },
74
- "gitHead": "1227aa53c68afa4ccd518c8a4344195a2b8e354b"
74
+ "gitHead": "537fe39e2309315f01aa41b1e4cacddccee9a10b"
75
75
  }
@@ -84,8 +84,8 @@ const assignWorkflowToPage = async ({
84
84
  break;
85
85
  }
86
86
  }
87
- } catch (e) {
88
- throw new _error.default(`Failed to assign workflow to page "${page.pid}".`, e.code, e.data);
87
+ } catch (ex) {
88
+ throw new _error.default(`Failed to assign workflow to page "${page.pid}".`, ex.code, ex.data);
89
89
  }
90
90
  };
91
91
 
@@ -1 +1 @@
1
- {"version":3,"names":["isWorkflowApplicable","page","workflow","application","app","ApwWorkflowApplications","PB","scopeType","scope","type","WorkflowScopeTypes","DEFAULT","CUSTOM","categories","get","Array","isArray","includes","category","pages","pid","WebinyError","assignWorkflowToPage","listWorkflow","entries","where","sortedWorkflows","sort","workflowByPrecedenceDesc","workflowByCreatedOnDesc","settings","apw","workflowId","id","contentReviewId","e","code","data","hasPages","shouldUpdatePages","prevScope","prevScopePages","currentScopePages","length","every","getPagesDiff","currentPages","prevPages","addedPages","filter","removedPages","updatePageSettings","getPage","updatePage","uniquePageId","getNewSettings","locked"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport WebinyError from \"@webiny/error\";\nimport {\n ApwWorkflow,\n ApwWorkflowApplications,\n ApwWorkflowCrud,\n ApwWorkflowScope,\n PageWithWorkflow,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { workflowByCreatedOnDesc, workflowByPrecedenceDesc } from \"~/plugins/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\nconst isWorkflowApplicable = (page: PageWithWorkflow, workflow: ApwWorkflow) => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.PB) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n } else if (scopeType === WorkflowScopeTypes.CUSTOM) {\n const categories = get(workflow, \"scope.data.categories\");\n\n if (Array.isArray(categories) && categories.includes(page.category)) {\n return true;\n }\n\n const pages = get(workflow, \"scope.data.pages\");\n if (Array.isArray(pages) && pages.includes(page.pid)) {\n return true;\n }\n return false;\n }\n throw new WebinyError(`Unknown scope type \"${scopeType}\".`, \"UNKNOWN_SCOPE_TYPE\", {\n workflow\n });\n};\n\ninterface AssignWorkflowToPageParams {\n listWorkflow: ApwWorkflowCrud[\"list\"];\n page: PageWithWorkflow;\n}\n\nexport const assignWorkflowToPage = async ({ listWorkflow, page }: AssignWorkflowToPageParams) => {\n /**\n * Lookup and assign \"workflowId\".\n */\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await listWorkflow({\n where: {\n app: ApwWorkflowApplications.PB\n }\n });\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n for (const workflow of sortedWorkflows) {\n /**\n * Assign the first applicable workflow to the page and exit.\n */\n if (isWorkflowApplicable(page, workflow)) {\n page.settings.apw = {\n workflowId: workflow.id,\n contentReviewId: null\n };\n break;\n }\n }\n } catch (e) {\n throw new WebinyError(`Failed to assign workflow to page \"${page.pid}\".`, e.code, e.data);\n }\n};\n\nexport const hasPages = (workflow: ApwWorkflow): Boolean => {\n const { app, scope } = workflow;\n return (\n app === ApwWorkflowApplications.PB &&\n scope.type === WorkflowScopeTypes.CUSTOM &&\n scope.data &&\n Array.isArray(scope.data.pages)\n );\n};\n\nexport const shouldUpdatePages = (\n scope: ApwWorkflowScope,\n prevScope: ApwWorkflowScope\n): Boolean => {\n /**\n * Bail out early if the scope is not \"CUSTOM\" - at that point all pages should be updated.\n */\n if (prevScope.type !== WorkflowScopeTypes.CUSTOM) {\n return true;\n }\n const prevScopePages: string[] = get(prevScope, \"data.pages\");\n const currentScopePages: string[] = get(scope, \"data.pages\");\n /**\n * Bail out early if there were no pages assigned previously.\n */\n if (prevScopePages.length === 0) {\n return true;\n }\n /**\n * Bail out early if number of pages has been changed.\n */\n if (currentScopePages.length !== prevScopePages.length) {\n return true;\n }\n /*\n * Check whether previous scope has the exactly same pages as in the new scope.\n */\n return !prevScopePages.every(pid => currentScopePages.includes(pid));\n};\n\ninterface GetUpdatePageOpsResult {\n addedPages: string[];\n removedPages: string[];\n}\n\nexport const getPagesDiff = (\n currentPages: string[],\n prevPages: string[]\n): GetUpdatePageOpsResult => {\n const addedPages = currentPages.filter(id => !prevPages.includes(id));\n const removedPages = prevPages.filter(id => !currentPages.includes(id));\n\n return {\n addedPages,\n removedPages\n };\n};\n\ninterface UpdatePageSettingsParams {\n getPage: PageBuilderContextObject[\"getPage\"];\n updatePage: PageBuilderContextObject[\"updatePage\"];\n uniquePageId: string;\n getNewSettings: (settings: PageWithWorkflow[\"settings\"]) => PageWithWorkflow[\"settings\"];\n}\n\nexport const updatePageSettings = async ({\n getPage,\n updatePage,\n uniquePageId,\n getNewSettings\n}: UpdatePageSettingsParams) => {\n try {\n /**\n * Currently, we only assign \"workflow\" to latest page.\n */\n const page = await getPage<PageWithWorkflow>(uniquePageId);\n /**\n * We can't update a page that is \"locked\".\n */\n if (page.locked) {\n return;\n }\n /**\n * There can be more than one workflow with same `scope` for same `app`. That is why;\n * We'll update the workflow reference even though it already had one assign.\n */\n await updatePage(page.id, {\n settings: getNewSettings(page.settings)\n });\n } catch (e) {\n if (e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["isWorkflowApplicable","page","workflow","application","app","ApwWorkflowApplications","PB","scopeType","scope","type","WorkflowScopeTypes","DEFAULT","CUSTOM","categories","get","Array","isArray","includes","category","pages","pid","WebinyError","assignWorkflowToPage","listWorkflow","entries","where","sortedWorkflows","sort","workflowByPrecedenceDesc","workflowByCreatedOnDesc","settings","apw","workflowId","id","contentReviewId","ex","code","data","hasPages","shouldUpdatePages","prevScope","prevScopePages","currentScopePages","length","every","getPagesDiff","currentPages","prevPages","addedPages","filter","removedPages","updatePageSettings","getPage","updatePage","uniquePageId","getNewSettings","locked","e"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport WebinyError from \"@webiny/error\";\nimport {\n ApwWorkflow,\n ApwWorkflowApplications,\n ApwWorkflowCrud,\n ApwWorkflowScope,\n PageWithWorkflow,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { workflowByCreatedOnDesc, workflowByPrecedenceDesc } from \"~/plugins/utils\";\nimport { PageBuilderContextObject } from \"@webiny/api-page-builder/graphql/types\";\n\nconst isWorkflowApplicable = (page: PageWithWorkflow, workflow: ApwWorkflow) => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.PB) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n } else if (scopeType === WorkflowScopeTypes.CUSTOM) {\n const categories = get(workflow, \"scope.data.categories\");\n\n if (Array.isArray(categories) && categories.includes(page.category)) {\n return true;\n }\n\n const pages = get(workflow, \"scope.data.pages\");\n if (Array.isArray(pages) && pages.includes(page.pid)) {\n return true;\n }\n return false;\n }\n throw new WebinyError(`Unknown scope type \"${scopeType}\".`, \"UNKNOWN_SCOPE_TYPE\", {\n workflow\n });\n};\n\ninterface AssignWorkflowToPageParams {\n listWorkflow: ApwWorkflowCrud[\"list\"];\n page: PageWithWorkflow;\n}\n\nexport const assignWorkflowToPage = async ({ listWorkflow, page }: AssignWorkflowToPageParams) => {\n /**\n * Lookup and assign \"workflowId\".\n */\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await listWorkflow({\n where: {\n app: ApwWorkflowApplications.PB\n }\n });\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n for (const workflow of sortedWorkflows) {\n /**\n * Assign the first applicable workflow to the page and exit.\n */\n if (isWorkflowApplicable(page, workflow)) {\n page.settings.apw = {\n workflowId: workflow.id,\n contentReviewId: null\n };\n break;\n }\n }\n } catch (ex) {\n throw new WebinyError(`Failed to assign workflow to page \"${page.pid}\".`, ex.code, ex.data);\n }\n};\n\nexport const hasPages = (workflow: ApwWorkflow): Boolean => {\n const { app, scope } = workflow;\n return (\n app === ApwWorkflowApplications.PB &&\n scope.type === WorkflowScopeTypes.CUSTOM &&\n scope.data &&\n Array.isArray(scope.data.pages)\n );\n};\n\nexport const shouldUpdatePages = (\n scope: ApwWorkflowScope,\n prevScope: ApwWorkflowScope\n): Boolean => {\n /**\n * Bail out early if the scope is not \"CUSTOM\" - at that point all pages should be updated.\n */\n if (prevScope.type !== WorkflowScopeTypes.CUSTOM) {\n return true;\n }\n const prevScopePages: string[] = get(prevScope, \"data.pages\");\n const currentScopePages: string[] = get(scope, \"data.pages\");\n /**\n * Bail out early if there were no pages assigned previously.\n */\n if (prevScopePages.length === 0) {\n return true;\n }\n /**\n * Bail out early if number of pages has been changed.\n */\n if (currentScopePages.length !== prevScopePages.length) {\n return true;\n }\n /*\n * Check whether previous scope has the exactly same pages as in the new scope.\n */\n return !prevScopePages.every(pid => currentScopePages.includes(pid));\n};\n\ninterface GetUpdatePageOpsResult {\n addedPages: string[];\n removedPages: string[];\n}\n\nexport const getPagesDiff = (\n currentPages: string[],\n prevPages: string[]\n): GetUpdatePageOpsResult => {\n const addedPages = currentPages.filter(id => !prevPages.includes(id));\n const removedPages = prevPages.filter(id => !currentPages.includes(id));\n\n return {\n addedPages,\n removedPages\n };\n};\n\ninterface UpdatePageSettingsParams {\n getPage: PageBuilderContextObject[\"getPage\"];\n updatePage: PageBuilderContextObject[\"updatePage\"];\n uniquePageId: string;\n getNewSettings: (settings: PageWithWorkflow[\"settings\"]) => PageWithWorkflow[\"settings\"];\n}\n\nexport const updatePageSettings = async ({\n getPage,\n updatePage,\n uniquePageId,\n getNewSettings\n}: UpdatePageSettingsParams) => {\n try {\n /**\n * Currently, we only assign \"workflow\" to latest page.\n */\n const page = await getPage<PageWithWorkflow>(uniquePageId);\n /**\n * We can't update a page that is \"locked\".\n */\n if (page.locked) {\n return;\n }\n /**\n * There can be more than one workflow with same `scope` for same `app`. That is why;\n * We'll update the workflow reference even though it already had one assign.\n */\n await updatePage(page.id, {\n settings: getNewSettings(page.settings)\n });\n } catch (e) {\n if (e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n};\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { CmsModelField } from "@webiny/api-headless-cms/types";
2
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
3
  import { ApwChangeRequest, ApwContentReview, ApwContentReviewCrud, ApwContentReviewStep, ApwContentReviewStepStatus, ApwContext, ApwReviewerCrud, ApwWorkflow, ApwWorkflowStep, ApwWorkflowStepTypes } from "../types";
4
4
  export declare const getNanoid: (size?: number | undefined) => string;
5
- export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "fieldId"> {
5
+ export interface CreateModelFieldParams extends Omit<CmsModelField, "id" | "storageId" | "fieldId"> {
6
6
  parent: string;
7
7
  }
8
8
  export interface HasReviewersParams {
@@ -1 +1 @@
1
- {"version":3,"names":["ALPHANUMERIC","getNanoid","customAlphabet","hasReviewer","params","getReviewer","identity","step","stepReviewer","reviewers","entry","id","identityId","getValue","object","key","get","getContentReviewStepInitialStatus","workflowSteps","index","previousStepStatus","ApwContentReviewStepStatus","ACTIVE","previousStep","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","INACTIVE","getNextStepStatus","previousStepType","DONE","extractContentReviewIdAndStep","entryId","version","stepId","split","revisionId","safelyGetContentReview","contentReviewMethods","contentReviewEntry","e","message","code","updateContentReview","getNewContentReviewData","newContentReviewData","update","updateContentReviewStep","steps","updater","map","isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale","WORKFLOW_PRECEDENCE","WorkflowScopeTypes","DEFAULT","CUSTOM","workflowByPrecedenceDesc","a","b","scoreA","scope","scoreB","workflowByCreatedOnDesc","createdOnA","createdOnB","Date","getTime"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport { customAlphabet } from \"nanoid\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport {\n ApwChangeRequest,\n ApwContentReview,\n ApwContentReviewCrud,\n ApwContentReviewStep,\n ApwContentReviewStepStatus,\n ApwContext,\n ApwReviewerCrud,\n ApwWorkflow,\n ApwWorkflowStep,\n ApwWorkflowStepTypes,\n WorkflowScopeTypes\n} from \"~/types\";\n\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nexport const getNanoid = customAlphabet(ALPHANUMERIC, 10);\n\nexport interface CreateModelFieldParams extends Omit<CmsModelField, \"id\" | \"fieldId\"> {\n parent: string;\n}\n\nexport interface HasReviewersParams {\n identity: SecurityIdentity;\n step: ApwContentReviewStep;\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport const hasReviewer = async (params: HasReviewersParams): Promise<Boolean> => {\n const { getReviewer, identity, step } = params;\n for (const stepReviewer of step.reviewers) {\n const entry = await getReviewer(stepReviewer.id);\n\n if (entry.identityId === identity.id) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const getValue = (object: Record<string, any>, key: string) => {\n return get(object, `values.${key}`);\n};\n\nexport const getContentReviewStepInitialStatus = (\n workflowSteps: ApwWorkflowStep[],\n index: number,\n previousStepStatus?: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n /**\n * Always set first step 'active' by default.\n */\n if (index === 0) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n const previousStep = workflowSteps[index - 1];\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStep.type !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport const getNextStepStatus = (\n previousStepType: ApwWorkflowStepTypes,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n if (previousStepStatus === ApwContentReviewStepStatus.DONE) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStepType !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport interface ExtractContentReviewIdAndStepResult {\n id: string;\n stepId: string;\n}\n\nexport const extractContentReviewIdAndStep = (\n step: ApwChangeRequest[\"step\"]\n): ExtractContentReviewIdAndStepResult => {\n /*\n * Get associated content review entry.\n */\n const [entryId, version, stepId] = step.split(\"#\");\n const revisionId = `${entryId}#${version}`;\n\n return {\n id: revisionId,\n stepId\n };\n};\n\ntype SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, \"id\" | \"contentReviewMethods\">;\n\nexport const safelyGetContentReview = async ({\n id,\n contentReviewMethods\n}: SafelyGetContentReviewParams): Promise<ApwContentReview | null> => {\n let contentReviewEntry = null;\n try {\n contentReviewEntry = await contentReviewMethods.get(id);\n } catch (e) {\n if (e.message !== \"index_not_found_exception\" && e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n\n return contentReviewEntry;\n};\n\nexport interface UpdateContentReviewParams {\n id: string;\n contentReviewMethods: ApwContentReviewCrud;\n getNewContentReviewData: (entry: ApwContentReview) => ApwContentReview;\n}\n\nexport const updateContentReview = async ({\n contentReviewMethods,\n id,\n getNewContentReviewData\n}: UpdateContentReviewParams): Promise<void> => {\n const contentReviewEntry = await safelyGetContentReview({ id, contentReviewMethods });\n if (contentReviewEntry) {\n const newContentReviewData = getNewContentReviewData(contentReviewEntry);\n /**\n * Update content review entry.\n */\n await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);\n }\n};\n\nexport const updateContentReviewStep = (\n steps: ApwContentReviewStep[],\n stepId: string,\n updater: (step: ApwContentReviewStep) => ApwContentReviewStep\n): ApwContentReviewStep[] => {\n return steps.map(step => {\n if (step.id === stepId) {\n return {\n ...updater(step)\n };\n }\n return step;\n });\n};\n\ntype CheckInstallationParams = Pick<ApwContext, \"tenancy\" | \"i18n\">;\n\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"APW\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n\nconst WORKFLOW_PRECEDENCE = {\n [WorkflowScopeTypes.DEFAULT]: 0,\n [WorkflowScopeTypes.CUSTOM]: 1\n};\n\nexport const workflowByPrecedenceDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];\n const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];\n /**\n * In descending order of workflow precedence.\n */\n return scoreB - scoreA;\n};\n\nexport const workflowByCreatedOnDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const createdOnA = get(a, \"createdOn\");\n const createdOnB = get(b, \"createdOn\");\n /**\n * In descending order of workflow createdOn i.e. the most recent one first.\n */\n return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["ALPHANUMERIC","getNanoid","customAlphabet","hasReviewer","params","getReviewer","identity","step","stepReviewer","reviewers","entry","id","identityId","getValue","object","key","get","getContentReviewStepInitialStatus","workflowSteps","index","previousStepStatus","ApwContentReviewStepStatus","ACTIVE","previousStep","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","INACTIVE","getNextStepStatus","previousStepType","DONE","extractContentReviewIdAndStep","entryId","version","stepId","split","revisionId","safelyGetContentReview","contentReviewMethods","contentReviewEntry","e","message","code","updateContentReview","getNewContentReviewData","newContentReviewData","update","updateContentReviewStep","steps","updater","map","isInstallationPending","tenancy","i18n","tenant","getCurrentTenant","getContentLocale","WORKFLOW_PRECEDENCE","WorkflowScopeTypes","DEFAULT","CUSTOM","workflowByPrecedenceDesc","a","b","scoreA","scope","scoreB","workflowByCreatedOnDesc","createdOnA","createdOnB","Date","getTime"],"sources":["utils.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport { customAlphabet } from \"nanoid\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport {\n ApwChangeRequest,\n ApwContentReview,\n ApwContentReviewCrud,\n ApwContentReviewStep,\n ApwContentReviewStepStatus,\n ApwContext,\n ApwReviewerCrud,\n ApwWorkflow,\n ApwWorkflowStep,\n ApwWorkflowStepTypes,\n WorkflowScopeTypes\n} from \"~/types\";\n\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nexport const getNanoid = customAlphabet(ALPHANUMERIC, 10);\n\nexport interface CreateModelFieldParams\n extends Omit<CmsModelField, \"id\" | \"storageId\" | \"fieldId\"> {\n parent: string;\n}\n\nexport interface HasReviewersParams {\n identity: SecurityIdentity;\n step: ApwContentReviewStep;\n getReviewer: ApwReviewerCrud[\"get\"];\n}\n\nexport const hasReviewer = async (params: HasReviewersParams): Promise<Boolean> => {\n const { getReviewer, identity, step } = params;\n for (const stepReviewer of step.reviewers) {\n const entry = await getReviewer(stepReviewer.id);\n\n if (entry.identityId === identity.id) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const getValue = (object: Record<string, any>, key: string) => {\n return get(object, `values.${key}`);\n};\n\nexport const getContentReviewStepInitialStatus = (\n workflowSteps: ApwWorkflowStep[],\n index: number,\n previousStepStatus?: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n /**\n * Always set first step 'active' by default.\n */\n if (index === 0) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n const previousStep = workflowSteps[index - 1];\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStep.type !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport const getNextStepStatus = (\n previousStepType: ApwWorkflowStepTypes,\n previousStepStatus: ApwContentReviewStepStatus\n): ApwContentReviewStepStatus => {\n if (previousStepStatus === ApwContentReviewStepStatus.DONE) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n if (\n previousStepStatus === ApwContentReviewStepStatus.ACTIVE &&\n previousStepType !== ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n return ApwContentReviewStepStatus.ACTIVE;\n }\n\n return ApwContentReviewStepStatus.INACTIVE;\n};\n\nexport interface ExtractContentReviewIdAndStepResult {\n id: string;\n stepId: string;\n}\n\nexport const extractContentReviewIdAndStep = (\n step: ApwChangeRequest[\"step\"]\n): ExtractContentReviewIdAndStepResult => {\n /*\n * Get associated content review entry.\n */\n const [entryId, version, stepId] = step.split(\"#\");\n const revisionId = `${entryId}#${version}`;\n\n return {\n id: revisionId,\n stepId\n };\n};\n\ntype SafelyGetContentReviewParams = Pick<UpdateContentReviewParams, \"id\" | \"contentReviewMethods\">;\n\nexport const safelyGetContentReview = async ({\n id,\n contentReviewMethods\n}: SafelyGetContentReviewParams): Promise<ApwContentReview | null> => {\n let contentReviewEntry = null;\n try {\n contentReviewEntry = await contentReviewMethods.get(id);\n } catch (e) {\n if (e.message !== \"index_not_found_exception\" && e.code !== \"NOT_FOUND\") {\n throw e;\n }\n }\n\n return contentReviewEntry;\n};\n\nexport interface UpdateContentReviewParams {\n id: string;\n contentReviewMethods: ApwContentReviewCrud;\n getNewContentReviewData: (entry: ApwContentReview) => ApwContentReview;\n}\n\nexport const updateContentReview = async ({\n contentReviewMethods,\n id,\n getNewContentReviewData\n}: UpdateContentReviewParams): Promise<void> => {\n const contentReviewEntry = await safelyGetContentReview({ id, contentReviewMethods });\n if (contentReviewEntry) {\n const newContentReviewData = getNewContentReviewData(contentReviewEntry);\n /**\n * Update content review entry.\n */\n await contentReviewMethods.update(contentReviewEntry.id, newContentReviewData);\n }\n};\n\nexport const updateContentReviewStep = (\n steps: ApwContentReviewStep[],\n stepId: string,\n updater: (step: ApwContentReviewStep) => ApwContentReviewStep\n): ApwContentReviewStep[] => {\n return steps.map(step => {\n if (step.id === stepId) {\n return {\n ...updater(step)\n };\n }\n return step;\n });\n};\n\ntype CheckInstallationParams = Pick<ApwContext, \"tenancy\" | \"i18n\">;\n\nexport const isInstallationPending = ({ tenancy, i18n }: CheckInstallationParams): boolean => {\n /**\n * In case of a fresh webiny project \"tenant\" and \"locale\" won't be there until\n * installation is completed. So, we need to skip \"APW\" creation till then.\n */\n const tenant = tenancy.getCurrentTenant();\n if (!tenant) {\n return true;\n }\n\n return !i18n.getContentLocale();\n};\n\nconst WORKFLOW_PRECEDENCE = {\n [WorkflowScopeTypes.DEFAULT]: 0,\n [WorkflowScopeTypes.CUSTOM]: 1\n};\n\nexport const workflowByPrecedenceDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const scoreA = WORKFLOW_PRECEDENCE[a.scope.type];\n const scoreB = WORKFLOW_PRECEDENCE[b.scope.type];\n /**\n * In descending order of workflow precedence.\n */\n return scoreB - scoreA;\n};\n\nexport const workflowByCreatedOnDesc = (a: ApwWorkflow, b: ApwWorkflow) => {\n const createdOnA = get(a, \"createdOn\");\n const createdOnB = get(b, \"createdOn\");\n /**\n * In descending order of workflow createdOn i.e. the most recent one first.\n */\n return new Date(createdOnB).getTime() - new Date(createdOnA).getTime();\n};\n"],"mappings":"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"}
@@ -9,5 +9,5 @@ export interface HandlerArgs {
9
9
  interface Configuration {
10
10
  storageOperations: ApwScheduleActionStorageOperations;
11
11
  }
12
- export declare const executeActionHandlerPlugins: (config: Configuration) => ((import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler").EventPlugin<HandlerArgs, import("@webiny/handler/types").Context, any> | ContextPlugin<import("@webiny/api/types").Context>)[];
12
+ export declare const executeActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler").EventPlugin<HandlerArgs, import("@webiny/handler/types").Context, any> | ContextPlugin<import("@webiny/api/types").Context>)[];
13
13
  export {};
@@ -109,6 +109,16 @@ const createExecuteActionLambda = params => {
109
109
  }
110
110
 
111
111
  const name = plugin.getArn(apwSettings);
112
+
113
+ if (!name) {
114
+ console.error(`There is no FunctionName found for type "${item.data.type}".`);
115
+ console.log(JSON.stringify({
116
+ item,
117
+ settings: apwSettings
118
+ }));
119
+ continue;
120
+ }
121
+
112
122
  const body = plugin.getGraphQLBody(item.data);
113
123
 
114
124
  if (!body) {
@@ -122,19 +132,31 @@ const createExecuteActionLambda = params => {
122
132
  name,
123
133
  payload: {
124
134
  httpMethod: "POST",
135
+ path: `/cms/manage/${locale}`,
125
136
  headers: {
137
+ ["content-type"]: "application/json",
126
138
  Authorization: (0, _utils.encodeToken)({
127
139
  id: item.id,
128
140
  locale: item.locale,
129
141
  tenant: item.tenant
130
- })
142
+ }),
143
+ ["x-tenant"]: tenant,
144
+ ["x-i18n-locale"]: `default:${locale};content:${locale};`
131
145
  },
132
146
  body: JSON.stringify(body)
133
147
  },
134
148
  await: true
135
149
  });
150
+
151
+ if (response !== null && response !== void 0 && response.body) {
152
+ console.log(JSON.stringify({
153
+ body: response.body
154
+ }, null, 2));
155
+ continue;
156
+ }
157
+
136
158
  console.log(JSON.stringify({
137
- body: response.body
159
+ response
138
160
  }, null, 2)); // TODO: Maybe update the status like error in original item in DB.
139
161
  }
140
162
  } catch (e) {
@@ -1 +1 @@
1
- {"version":3,"names":["createExecuteActionLambda","params","storageOperations","createEvent","payload","context","log","console","applicationGraphQLPlugins","plugins","byType","ApplicationGraphQL","type","length","error","applicationGraphQLPluginCache","getApplicationGraphQLPlugin","data","plugin","canUse","apwSettings","getApwSettings","futureDatetime","datetime","locale","tenant","items","list","where","datetime_startsWith","getIsoStringTillMinutes","sort","limit","item","action","JSON","stringify","name","getArn","body","getGraphQLBody","response","handlerClient","invoke","httpMethod","headers","Authorization","encodeToken","id","await","e","executeActionHandlerPlugins","config","ContextPlugin","register","PageBuilderGraphQL","HeadlessCMSGraphQL","basePlugins"],"sources":["index.ts"],"sourcesContent":["import { ApwScheduleActionData, ApwScheduleActionStorageOperations } from \"~/scheduler/types\";\nimport { getIsoStringTillMinutes, encodeToken, basePlugins } from \"~/scheduler/handlers/utils\";\nimport { getApwSettings } from \"~/scheduler/handlers/utils\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { PageBuilderGraphQL } from \"./plugins/PageBuilderGraphQL\";\nimport { HeadlessCMSGraphQL } from \"./plugins/HeadlessCMSGraphQL\";\nimport { ApplicationGraphQL } from \"./plugins/ApplicationGraphQL\";\nimport { createEvent } from \"@webiny/handler\";\n\nexport interface HandlerArgs {\n datetime: string;\n tenant: string;\n locale: string;\n futureDatetime?: string;\n}\n\ninterface Configuration {\n storageOperations: ApwScheduleActionStorageOperations;\n}\n\n/**\n * Handler that execute the provided action(s) for the schedule action workflow.\n */\nconst createExecuteActionLambda = (params: Configuration) => {\n const { storageOperations } = params;\n\n return createEvent<HandlerArgs>(async ({ payload, context }) => {\n const log = console.log;\n\n const applicationGraphQLPlugins = context.plugins.byType<ApplicationGraphQL>(\n ApplicationGraphQL.type\n );\n\n if (applicationGraphQLPlugins.length === 0) {\n console.error(`There are no plugins to determine GraphQL endpoints or mutations.`);\n return;\n }\n\n const applicationGraphQLPluginCache: Record<string, ApplicationGraphQL> = {};\n\n const getApplicationGraphQLPlugin = (\n data: ApwScheduleActionData\n ): ApplicationGraphQL | null => {\n const { type } = data;\n if (applicationGraphQLPluginCache[type]) {\n return applicationGraphQLPluginCache[type];\n }\n for (const plugin of applicationGraphQLPlugins) {\n if (!plugin.canUse(data)) {\n continue;\n }\n applicationGraphQLPluginCache[type] = plugin;\n return plugin;\n }\n return null;\n };\n\n try {\n const apwSettings = await getApwSettings();\n\n const { futureDatetime: datetime, locale, tenant } = payload;\n /**\n * If there is no datetime we bail out early.\n */\n if (!datetime || typeof datetime !== \"string\") {\n log(`Bailing out!!`);\n return;\n }\n\n /**\n * Get tasks from the DB by datetime.\n */\n const [items] = await storageOperations.list({\n where: {\n tenant,\n locale,\n datetime_startsWith: getIsoStringTillMinutes(datetime)\n },\n sort: [\"datetime_ASC\"],\n limit: 1000\n });\n\n /**\n * Execute all actions.\n */\n if (!items || items.length === 0) {\n return;\n }\n log(`Found ${items.length} actions.`);\n for (const item of items) {\n log(\n `Performing mutation \"${item.data.action}\" on \"${item.data.type}\" at \"${item.data.datetime}\"`\n );\n\n const plugin = getApplicationGraphQLPlugin(item.data);\n if (!plugin) {\n console.error(\n `There is no plugin to determine GraphQL endpoint and mutations for type \"${item.data.type}\".`\n );\n console.log(JSON.stringify(item));\n continue;\n }\n\n const name = plugin.getArn(apwSettings);\n\n const body = plugin.getGraphQLBody(item.data);\n\n if (!body) {\n console.error(\n `There is no GraphQL body defined, in the Plugin, for type \"${item.data.type}\".`\n );\n console.log(JSON.stringify(item));\n continue;\n }\n\n // Perform the actual action call.\n const response = await context.handlerClient.invoke({\n name,\n payload: {\n httpMethod: \"POST\",\n headers: {\n Authorization: encodeToken({\n id: item.id,\n locale: item.locale,\n tenant: item.tenant\n })\n },\n body: JSON.stringify(body)\n },\n await: true\n });\n console.log(JSON.stringify({ body: response.body }, null, 2));\n\n // TODO: Maybe update the status like error in original item in DB.\n }\n } catch (e) {\n log(\"[HANDLER_EXECUTE_ACTION] Error => \", e);\n // TODO: Maybe update the status like error in original item in DB.\n }\n });\n};\n\nexport const executeActionHandlerPlugins = (config: Configuration) => [\n new ContextPlugin(async context => {\n context.plugins.register([new PageBuilderGraphQL(), new HeadlessCMSGraphQL()]);\n }),\n basePlugins(),\n createExecuteActionLambda(config)\n];\n"],"mappings":"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"}
1
+ {"version":3,"names":["createExecuteActionLambda","params","storageOperations","createEvent","payload","context","log","console","applicationGraphQLPlugins","plugins","byType","ApplicationGraphQL","type","length","error","applicationGraphQLPluginCache","getApplicationGraphQLPlugin","data","plugin","canUse","apwSettings","getApwSettings","futureDatetime","datetime","locale","tenant","items","list","where","datetime_startsWith","getIsoStringTillMinutes","sort","limit","item","action","JSON","stringify","name","getArn","settings","body","getGraphQLBody","response","handlerClient","invoke","httpMethod","path","headers","Authorization","encodeToken","id","await","e","executeActionHandlerPlugins","config","ContextPlugin","register","PageBuilderGraphQL","HeadlessCMSGraphQL","basePlugins"],"sources":["index.ts"],"sourcesContent":["import { ApwScheduleActionData, ApwScheduleActionStorageOperations } from \"~/scheduler/types\";\nimport { getIsoStringTillMinutes, encodeToken, basePlugins } from \"~/scheduler/handlers/utils\";\nimport { getApwSettings } from \"~/scheduler/handlers/utils\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { PageBuilderGraphQL } from \"./plugins/PageBuilderGraphQL\";\nimport { HeadlessCMSGraphQL } from \"./plugins/HeadlessCMSGraphQL\";\nimport { ApplicationGraphQL } from \"./plugins/ApplicationGraphQL\";\nimport { createEvent } from \"@webiny/handler\";\n\nexport interface HandlerArgs {\n datetime: string;\n tenant: string;\n locale: string;\n futureDatetime?: string;\n}\n\ninterface Configuration {\n storageOperations: ApwScheduleActionStorageOperations;\n}\n\n/**\n * Handler that execute the provided action(s) for the schedule action workflow.\n */\nconst createExecuteActionLambda = (params: Configuration) => {\n const { storageOperations } = params;\n\n return createEvent<HandlerArgs>(async ({ payload, context }) => {\n const log = console.log;\n\n const applicationGraphQLPlugins = context.plugins.byType<ApplicationGraphQL>(\n ApplicationGraphQL.type\n );\n\n if (applicationGraphQLPlugins.length === 0) {\n console.error(`There are no plugins to determine GraphQL endpoints or mutations.`);\n return;\n }\n\n const applicationGraphQLPluginCache: Record<string, ApplicationGraphQL> = {};\n\n const getApplicationGraphQLPlugin = (\n data: ApwScheduleActionData\n ): ApplicationGraphQL | null => {\n const { type } = data;\n if (applicationGraphQLPluginCache[type]) {\n return applicationGraphQLPluginCache[type];\n }\n for (const plugin of applicationGraphQLPlugins) {\n if (!plugin.canUse(data)) {\n continue;\n }\n applicationGraphQLPluginCache[type] = plugin;\n return plugin;\n }\n return null;\n };\n\n try {\n const apwSettings = await getApwSettings();\n\n const { futureDatetime: datetime, locale, tenant } = payload;\n /**\n * If there is no datetime we bail out early.\n */\n if (!datetime || typeof datetime !== \"string\") {\n log(`Bailing out!!`);\n return;\n }\n\n /**\n * Get tasks from the DB by datetime.\n */\n const [items] = await storageOperations.list({\n where: {\n tenant,\n locale,\n datetime_startsWith: getIsoStringTillMinutes(datetime)\n },\n sort: [\"datetime_ASC\"],\n limit: 1000\n });\n\n /**\n * Execute all actions.\n */\n if (!items || items.length === 0) {\n return;\n }\n log(`Found ${items.length} actions.`);\n for (const item of items) {\n log(\n `Performing mutation \"${item.data.action}\" on \"${item.data.type}\" at \"${item.data.datetime}\"`\n );\n\n const plugin = getApplicationGraphQLPlugin(item.data);\n if (!plugin) {\n console.error(\n `There is no plugin to determine GraphQL endpoint and mutations for type \"${item.data.type}\".`\n );\n console.log(JSON.stringify(item));\n continue;\n }\n\n const name = plugin.getArn(apwSettings);\n if (!name) {\n console.error(`There is no FunctionName found for type \"${item.data.type}\".`);\n console.log(\n JSON.stringify({\n item,\n settings: apwSettings\n })\n );\n continue;\n }\n\n const body = plugin.getGraphQLBody(item.data);\n\n if (!body) {\n console.error(\n `There is no GraphQL body defined, in the Plugin, for type \"${item.data.type}\".`\n );\n console.log(JSON.stringify(item));\n continue;\n }\n\n // Perform the actual action call.\n const response = await context.handlerClient.invoke({\n name,\n payload: {\n httpMethod: \"POST\",\n path: `/cms/manage/${locale}`,\n headers: {\n [\"content-type\"]: \"application/json\",\n Authorization: encodeToken({\n id: item.id,\n locale: item.locale,\n tenant: item.tenant\n }),\n [\"x-tenant\"]: tenant,\n [\"x-i18n-locale\"]: `default:${locale};content:${locale};`\n },\n body: JSON.stringify(body)\n },\n await: true\n });\n if (response?.body) {\n console.log(JSON.stringify({ body: response.body }, null, 2));\n continue;\n }\n console.log(JSON.stringify({ response }, null, 2));\n\n // TODO: Maybe update the status like error in original item in DB.\n }\n } catch (e) {\n log(\"[HANDLER_EXECUTE_ACTION] Error => \", e);\n // TODO: Maybe update the status like error in original item in DB.\n }\n });\n};\n\nexport const executeActionHandlerPlugins = (config: Configuration) => [\n new ContextPlugin(async context => {\n context.plugins.register([new PageBuilderGraphQL(), new HeadlessCMSGraphQL()]);\n }),\n basePlugins(),\n createExecuteActionLambda(config)\n];\n"],"mappings":"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"}
@@ -19,4 +19,4 @@ export interface Configuration {
19
19
  executeAction: string;
20
20
  };
21
21
  }
22
- export declare const scheduleActionHandlerPlugins: (config: Configuration) => ((import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any>)[];
22
+ export declare const scheduleActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any>)[];
@@ -19,7 +19,7 @@ export declare const encodeToken: ({ id, tenant, locale }: EncodeTokenParams) =>
19
19
  export declare const TOKEN_PREFIX = "apw-";
20
20
  export declare const decodeToken: (token: string) => Partial<EncodeTokenParams>;
21
21
  export declare const documentClient: DocumentClient;
22
- export declare const basePlugins: () => (import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[];
22
+ export declare const basePlugins: () => (import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[];
23
23
  /**
24
24
  * Get APW settings record from DDB.
25
25
  */
@@ -64,13 +64,18 @@ const createChangeRequestStorageOperations = params => {
64
64
  where: _objectSpread({}, params.where)
65
65
  }));
66
66
  security.enableAuthorization();
67
- const all = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
68
- entry,
69
- fields: _index.baseFields,
70
- context: getCmsContext(),
71
- transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
72
- })));
73
- return [all, meta];
67
+
68
+ try {
69
+ const all = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
70
+ entry,
71
+ fields: _index.baseFields,
72
+ context: getCmsContext(),
73
+ transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
74
+ })));
75
+ return [all, meta];
76
+ } catch (ex) {
77
+ throw new _error.default(ex.message, ex.code, ex.data);
78
+ }
74
79
  },
75
80
 
76
81
  async createChangeRequest(params) {
@@ -1 +1 @@
1
- {"version":3,"names":["createChangeRequestStorageOperations","params","cms","getCmsContext","security","getChangeRequestModel","disableAuthorization","model","getModel","enableAuthorization","WebinyError","getChangeRequest","id","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","listChangeRequests","entries","meta","listLatestEntries","where","all","Promise","map","createChangeRequest","createEntry","data","updateChangeRequest","existingEntry","updateEntry","deleteChangeRequest","deleteEntry"],"sources":["changeRequestStorageOperations.ts"],"sourcesContent":["import { ApwChangeRequestStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwChangeRequest } from \"~/types\";\n\nexport const createChangeRequestStorageOperations = (\n params: CreateApwStorageOperationsParams\n): ApwChangeRequestStorageOperations => {\n const { cms, getCmsContext, security } = params;\n const getChangeRequestModel = async () => {\n security.disableAuthorization();\n const model = await cms.getModel(\"apwChangeRequestModelDefinition\");\n security.enableAuthorization();\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwChangeRequestModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getChangeRequest: ApwChangeRequestStorageOperations[\"getChangeRequest\"] = async ({\n id\n }) => {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.getEntryById(model, id);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getChangeRequestModel,\n getChangeRequest,\n async listChangeRequests(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where\n }\n });\n security.enableAuthorization();\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwChangeRequest>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n },\n async createChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.createEntry(model, params.data);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateChangeRequest(params) {\n const model = await getChangeRequestModel();\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 getChangeRequest({ id: params.id });\n\n security.disableAuthorization();\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n await cms.deleteEntry(model, params.id);\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createChangeRequestStorageOperations","params","cms","getCmsContext","security","getChangeRequestModel","disableAuthorization","model","getModel","enableAuthorization","WebinyError","getChangeRequest","id","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","listChangeRequests","entries","meta","listLatestEntries","where","all","Promise","map","ex","message","code","data","createChangeRequest","createEntry","updateChangeRequest","existingEntry","updateEntry","deleteChangeRequest","deleteEntry"],"sources":["changeRequestStorageOperations.ts"],"sourcesContent":["import { ApwChangeRequestStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwChangeRequest } from \"~/types\";\n\nexport const createChangeRequestStorageOperations = (\n params: CreateApwStorageOperationsParams\n): ApwChangeRequestStorageOperations => {\n const { cms, getCmsContext, security } = params;\n const getChangeRequestModel = async () => {\n security.disableAuthorization();\n const model = await cms.getModel(\"apwChangeRequestModelDefinition\");\n security.enableAuthorization();\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwChangeRequestModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getChangeRequest: ApwChangeRequestStorageOperations[\"getChangeRequest\"] = async ({\n id\n }) => {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.getEntryById(model, id);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getChangeRequestModel,\n getChangeRequest,\n async listChangeRequests(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where\n }\n });\n security.enableAuthorization();\n try {\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwChangeRequest>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code, ex.data);\n }\n },\n async createChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.createEntry(model, params.data);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateChangeRequest(params) {\n const model = await getChangeRequestModel();\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 getChangeRequest({ id: params.id });\n\n security.disableAuthorization();\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n await cms.deleteEntry(model, params.id);\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":"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"}
@@ -48,8 +48,8 @@ const createChangeRequestModelDefinition = () => {
48
48
  return {
49
49
  name: "APW - Change Request",
50
50
  modelId: CHANGE_REQUEST_MODEL_ID,
51
- titleFieldId: "changeRequest_title",
52
- layout: [["changeRequest_body"], ["changeRequest_title"]],
51
+ titleFieldId: "title",
52
+ layout: [["changeRequest_body"], ["changeRequest_title"], ["changeRequest_resolved"], ["changeRequest_media"], ["changeRequest_step"]],
53
53
  fields: [bodyField(), titleField(), resolvedField(), mediaField(), stepField()],
54
54
  description: "",
55
55
  isPrivate: true
@@ -1 +1 @@
1
- {"version":3,"names":["bodyField","createModelField","label","type","parent","titleField","resolvedField","mediaField","stepField","validation","message","name","CHANGE_REQUEST_MODEL_ID","createChangeRequestModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["changeRequest.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst bodyField = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"changeRequest\"\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"changeRequest\"\n });\n\nconst resolvedField = () =>\n createModelField({\n label: \"Resolved\",\n type: \"boolean\",\n parent: \"changeRequest\"\n });\n\nconst mediaField = () =>\n createModelField({\n label: \"Media\",\n type: \"file\",\n parent: \"changeRequest\"\n });\n\nconst stepField = () =>\n createModelField({\n label: \"Step\",\n type: \"text\",\n parent: \"changeRequest\",\n validation: [\n {\n message: \"`step` field value is required in changeRequest.\",\n name: \"required\"\n }\n ]\n });\n\nexport const CHANGE_REQUEST_MODEL_ID = \"apwChangeRequestModelDefinition\";\n\nexport const createChangeRequestModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Change Request\",\n modelId: CHANGE_REQUEST_MODEL_ID,\n titleFieldId: \"changeRequest_title\",\n layout: [[\"changeRequest_body\"], [\"changeRequest_title\"]],\n fields: [bodyField(), titleField(), resolvedField(), mediaField(), stepField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,SAAS,GAAG,MACd,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,WAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,UAAU,GAAG,MACf,IAAAJ,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAME,aAAa,GAAG,MAClB,IAAAL,uBAAA,EAAiB;EACbC,KAAK,EAAE,UADM;EAEbC,IAAI,EAAE,SAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMG,UAAU,GAAG,MACf,IAAAN,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMI,SAAS,GAAG,MACd,IAAAP,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,eAHK;EAIbK,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,kDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMC,uBAAuB,GAAG,iCAAhC;;;AAEA,MAAMC,kCAAkC,GAAG,MAA+B;EAC7E,OAAO;IACHF,IAAI,EAAE,sBADH;IAEHG,OAAO,EAAEF,uBAFN;IAGHG,YAAY,EAAE,qBAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,oBAAD,CAAD,EAAyB,CAAC,qBAAD,CAAzB,CAJL;IAKHC,MAAM,EAAE,CAACjB,SAAS,EAAV,EAAcK,UAAU,EAAxB,EAA4BC,aAAa,EAAzC,EAA6CC,UAAU,EAAvD,EAA2DC,SAAS,EAApE,CALL;IAMHU,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAVM"}
1
+ {"version":3,"names":["bodyField","createModelField","label","type","parent","titleField","resolvedField","mediaField","stepField","validation","message","name","CHANGE_REQUEST_MODEL_ID","createChangeRequestModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["changeRequest.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst bodyField = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"changeRequest\"\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"changeRequest\"\n });\n\nconst resolvedField = () =>\n createModelField({\n label: \"Resolved\",\n type: \"boolean\",\n parent: \"changeRequest\"\n });\n\nconst mediaField = () =>\n createModelField({\n label: \"Media\",\n type: \"file\",\n parent: \"changeRequest\"\n });\n\nconst stepField = () =>\n createModelField({\n label: \"Step\",\n type: \"text\",\n parent: \"changeRequest\",\n validation: [\n {\n message: \"`step` field value is required in changeRequest.\",\n name: \"required\"\n }\n ]\n });\n\nexport const CHANGE_REQUEST_MODEL_ID = \"apwChangeRequestModelDefinition\";\n\nexport const createChangeRequestModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Change Request\",\n modelId: CHANGE_REQUEST_MODEL_ID,\n titleFieldId: \"title\",\n layout: [\n [\"changeRequest_body\"],\n [\"changeRequest_title\"],\n [\"changeRequest_resolved\"],\n [\"changeRequest_media\"],\n [\"changeRequest_step\"]\n ],\n fields: [bodyField(), titleField(), resolvedField(), mediaField(), stepField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,SAAS,GAAG,MACd,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,WAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,UAAU,GAAG,MACf,IAAAJ,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAME,aAAa,GAAG,MAClB,IAAAL,uBAAA,EAAiB;EACbC,KAAK,EAAE,UADM;EAEbC,IAAI,EAAE,SAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMG,UAAU,GAAG,MACf,IAAAN,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMI,SAAS,GAAG,MACd,IAAAP,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,eAHK;EAIbK,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,kDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMC,uBAAuB,GAAG,iCAAhC;;;AAEA,MAAMC,kCAAkC,GAAG,MAA+B;EAC7E,OAAO;IACHF,IAAI,EAAE,sBADH;IAEHG,OAAO,EAAEF,uBAFN;IAGHG,YAAY,EAAE,OAHX;IAIHC,MAAM,EAAE,CACJ,CAAC,oBAAD,CADI,EAEJ,CAAC,qBAAD,CAFI,EAGJ,CAAC,wBAAD,CAHI,EAIJ,CAAC,qBAAD,CAJI,EAKJ,CAAC,oBAAD,CALI,CAJL;IAWHC,MAAM,EAAE,CAACjB,SAAS,EAAV,EAAcK,UAAU,EAAxB,EAA4BC,aAAa,EAAzC,EAA6CC,UAAU,EAAvD,EAA2DC,SAAS,EAApE,CAXL;IAYHU,WAAW,EAAE,EAZV;IAaHC,SAAS,EAAE;EAbR,CAAP;AAeH,CAhBM"}
@@ -49,8 +49,8 @@ const createCommentModelDefinition = ({
49
49
  return {
50
50
  name: "APW - Comment",
51
51
  modelId: COMMENT_MODEL_ID,
52
- titleFieldId: "displayName",
53
- layout: [["comment_body"], ["comment_displayName"]],
52
+ titleFieldId: "step",
53
+ layout: [["comment_body"], ["comment_changeRequest"], ["comment_step"], ["comment_media"]],
54
54
  fields: [commentBody(), changeRequestRef(modelId), stepField(), mediaField()],
55
55
  description: "",
56
56
  isPrivate: true
@@ -1 +1 @@
1
- {"version":3,"names":["commentBody","createModelField","label","type","parent","changeRequestRef","modelId","settings","models","stepField","validation","message","name","mediaField","COMMENT_MODEL_ID","createCommentModelDefinition","titleFieldId","layout","fields","description","isPrivate"],"sources":["comment.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst commentBody = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"comment\"\n });\n\nconst changeRequestRef = (modelId: string) =>\n createModelField({\n label: \"Change Request\",\n type: \"ref\",\n parent: \"comment\",\n settings: {\n models: [\n {\n modelId\n }\n ]\n }\n });\n\nconst stepField = () =>\n createModelField({\n label: \"Step\",\n type: \"text\",\n parent: \"comment\",\n validation: [\n {\n message: \"`step` field value is required in comment.\",\n name: \"required\"\n }\n ]\n });\n\nconst mediaField = () =>\n createModelField({\n label: \"Media\",\n type: \"file\",\n parent: \"comment\"\n });\n\ninterface CreateCommentModelDefinitionParams {\n modelId: string;\n}\n\nexport const COMMENT_MODEL_ID = \"apwCommentModelDefinition\";\n\nexport const createCommentModelDefinition = ({\n modelId\n}: CreateCommentModelDefinitionParams): WorkflowModelDefinition => {\n return {\n name: \"APW - Comment\",\n modelId: COMMENT_MODEL_ID,\n titleFieldId: \"displayName\",\n layout: [[\"comment_body\"], [\"comment_displayName\"]],\n fields: [commentBody(), changeRequestRef(modelId), stepField(), mediaField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,WAAW,GAAG,MAChB,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,WAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,gBAAgB,GAAIC,OAAD,IACrB,IAAAL,uBAAA,EAAiB;EACbC,KAAK,EAAE,gBADM;EAEbC,IAAI,EAAE,KAFO;EAGbC,MAAM,EAAE,SAHK;EAIbG,QAAQ,EAAE;IACNC,MAAM,EAAE,CACJ;MACIF;IADJ,CADI;EADF;AAJG,CAAjB,CADJ;;AAcA,MAAMG,SAAS,GAAG,MACd,IAAAR,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,SAHK;EAIbM,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,4CADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAMC,UAAU,GAAG,MACf,IAAAZ,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAWO,MAAMU,gBAAgB,GAAG,2BAAzB;;;AAEA,MAAMC,4BAA4B,GAAG,CAAC;EACzCT;AADyC,CAAD,KAEuB;EAC/D,OAAO;IACHM,IAAI,EAAE,eADH;IAEHN,OAAO,EAAEQ,gBAFN;IAGHE,YAAY,EAAE,aAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,cAAD,CAAD,EAAmB,CAAC,qBAAD,CAAnB,CAJL;IAKHC,MAAM,EAAE,CAAClB,WAAW,EAAZ,EAAgBK,gBAAgB,CAACC,OAAD,CAAhC,EAA2CG,SAAS,EAApD,EAAwDI,UAAU,EAAlE,CALL;IAMHM,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAZM"}
1
+ {"version":3,"names":["commentBody","createModelField","label","type","parent","changeRequestRef","modelId","settings","models","stepField","validation","message","name","mediaField","COMMENT_MODEL_ID","createCommentModelDefinition","titleFieldId","layout","fields","description","isPrivate"],"sources":["comment.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst commentBody = () =>\n createModelField({\n label: \"Body\",\n type: \"rich-text\",\n parent: \"comment\"\n });\n\nconst changeRequestRef = (modelId: string) =>\n createModelField({\n label: \"Change Request\",\n type: \"ref\",\n parent: \"comment\",\n settings: {\n models: [\n {\n modelId\n }\n ]\n }\n });\n\nconst stepField = () =>\n createModelField({\n label: \"Step\",\n type: \"text\",\n parent: \"comment\",\n validation: [\n {\n message: \"`step` field value is required in comment.\",\n name: \"required\"\n }\n ]\n });\n\nconst mediaField = () =>\n createModelField({\n label: \"Media\",\n type: \"file\",\n parent: \"comment\"\n });\n\ninterface CreateCommentModelDefinitionParams {\n modelId: string;\n}\n\nexport const COMMENT_MODEL_ID = \"apwCommentModelDefinition\";\n\nexport const createCommentModelDefinition = ({\n modelId\n}: CreateCommentModelDefinitionParams): WorkflowModelDefinition => {\n return {\n name: \"APW - Comment\",\n modelId: COMMENT_MODEL_ID,\n titleFieldId: \"step\",\n layout: [[\"comment_body\"], [\"comment_changeRequest\"], [\"comment_step\"], [\"comment_media\"]],\n fields: [commentBody(), changeRequestRef(modelId), stepField(), mediaField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,WAAW,GAAG,MAChB,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,WAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAOA,MAAMC,gBAAgB,GAAIC,OAAD,IACrB,IAAAL,uBAAA,EAAiB;EACbC,KAAK,EAAE,gBADM;EAEbC,IAAI,EAAE,KAFO;EAGbC,MAAM,EAAE,SAHK;EAIbG,QAAQ,EAAE;IACNC,MAAM,EAAE,CACJ;MACIF;IADJ,CADI;EADF;AAJG,CAAjB,CADJ;;AAcA,MAAMG,SAAS,GAAG,MACd,IAAAR,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,SAHK;EAIbM,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,4CADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAMC,UAAU,GAAG,MACf,IAAAZ,uBAAA,EAAiB;EACbC,KAAK,EAAE,OADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE;AAHK,CAAjB,CADJ;;AAWO,MAAMU,gBAAgB,GAAG,2BAAzB;;;AAEA,MAAMC,4BAA4B,GAAG,CAAC;EACzCT;AADyC,CAAD,KAEuB;EAC/D,OAAO;IACHM,IAAI,EAAE,eADH;IAEHN,OAAO,EAAEQ,gBAFN;IAGHE,YAAY,EAAE,MAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,cAAD,CAAD,EAAmB,CAAC,uBAAD,CAAnB,EAA8C,CAAC,cAAD,CAA9C,EAAgE,CAAC,eAAD,CAAhE,CAJL;IAKHC,MAAM,EAAE,CAAClB,WAAW,EAAZ,EAAgBK,gBAAgB,CAACC,OAAD,CAAhC,EAA2CG,SAAS,EAApD,EAAwDI,UAAU,EAAlE,CALL;IAMHM,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAZM"}
@@ -162,6 +162,7 @@ const stepStatusField = () => ({
162
162
  message: "`status` field value is required in contentReview steps status.",
163
163
  name: "required"
164
164
  }],
165
+ storageId: "status",
165
166
  fieldId: "status"
166
167
  });
167
168
 
@@ -225,11 +226,12 @@ const stepsField = fields => ({
225
226
  type: "object",
226
227
  settings: {
227
228
  fields,
228
- layout: fields.map(field => [field.fieldId])
229
+ layout: fields.map(field => [field.storageId])
229
230
  },
230
231
  listValidation: [],
231
232
  validation: [],
232
233
  fieldId: "steps",
234
+ storageId: "steps",
233
235
  multipleValues: true,
234
236
  predefinedValues: {
235
237
  values: [],
@@ -246,7 +248,7 @@ const createContentReviewModelDefinition = ({
246
248
  name: "APW - Content Review",
247
249
  modelId: CONTENT_REVIEW_MODEL_ID,
248
250
  titleFieldId: "content",
249
- layout: [["contentReview_content"], ["contentReview_reviewRequestedBy"], ["contentReview_steps"], ["contentReview_changeRequested"]],
251
+ layout: [["contentReview_title"], ["contentReview_content"], ["contentReview_status"], ["contentReview_reviewRequestedBy"], ["contentReview_steps"], ["contentReview_changeRequested"], ["contentReview_latestCommentId"]],
250
252
  fields: [titleField(), contentField([contentIdField(), contentTypeField(), contentWorkflowIdField(), contentSettingsField([contentSettingsModelIdField()]), contentScheduledOnField(), contentScheduledByField(), scheduledActionIdField(), contentPublishedByField()]), contentStatus(), stepsField([(0, _workflow.stepTitleField)(), (0, _workflow.stepTypeField)(), (0, _workflow.stepIdField)(), (0, _workflow.stepReviewersField)(reviewerModelId), stepStatusField(), stepPendingChangeRequests(), stepTotalComments(), stepSignOffProvidedOn(), stepSignOffProvidedBy([stepSignOffProvidedById(), stepSignOffProvidedByDisplayName()])]), latestCommentId()],
251
253
  description: "",
252
254
  isPrivate: true
@@ -1 +1 @@
1
- {"version":3,"names":["contentField","fields","createModelField","label","parent","type","multipleValues","settings","validation","message","name","contentStatus","predefinedValues","enabled","values","value","titleField","contentIdField","contentWorkflowIdField","contentTypeField","contentSettingsField","contentSettingsModelIdField","scheduledActionIdField","contentScheduledOnField","contentScheduledByField","contentPublishedByField","stepStatusField","listValidation","renderer","id","fieldId","stepPendingChangeRequests","stepTotalComments","latestCommentId","stepSignOffProvidedOn","stepSignOffProvidedBy","stepSignOffProvidedById","stepSignOffProvidedByDisplayName","stepsField","layout","map","field","CONTENT_REVIEW_MODEL_ID","createContentReviewModelDefinition","reviewerModelId","modelId","titleFieldId","stepTitleField","stepTypeField","stepIdField","stepReviewersField","description","isPrivate"],"sources":["contentReview.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { stepTitleField, stepTypeField, stepIdField, stepReviewersField } from \"./workflow.model\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst contentField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Content\",\n parent: \"contentReview\",\n type: \"object\",\n multipleValues: false,\n settings: { fields },\n validation: [\n {\n message: \"`content` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentStatus = () =>\n createModelField({\n label: \"Status\",\n parent: \"contentReview\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Under review\",\n value: \"underReview\"\n },\n {\n label: \"Ready to be published\",\n value: \"readyToBePublished\"\n },\n {\n label: \"Published\",\n value: \"published\"\n }\n ]\n },\n validation: [\n {\n message: \"`status` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"contentReview\",\n validation: [\n {\n message: \"`title` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentIdField = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`id` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentWorkflowIdField = () =>\n createModelField({\n label: \"Workflow Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`workflowId` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"contentReview Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Page\",\n value: \"page\"\n },\n { value: \"cms-entry\", label: \"CMS Entry\" }\n ]\n },\n validation: [\n {\n message: \"`type` field value is required in contentReview Type.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentSettingsField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Settings\",\n parent: \"contentReview Content\",\n type: \"object\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst contentSettingsModelIdField = () =>\n createModelField({\n label: \"Model Id\",\n parent: \"contentReview Settings\",\n type: \"text\"\n });\n\nconst scheduledActionIdField = () =>\n createModelField({\n label: \"Scheduled action Id\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledOnField = () =>\n createModelField({\n label: \"Scheduled on\",\n type: \"datetime\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledByField = () =>\n createModelField({\n label: \"Scheduled by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentPublishedByField = () =>\n createModelField({\n label: \"Published by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst stepStatusField = (): CmsModelField => ({\n multipleValues: false,\n listValidation: [],\n renderer: {\n name: \"radio-buttons\"\n },\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"done\",\n label: \"Steps done\"\n },\n {\n value: \"active\",\n label: \"Step active\"\n },\n {\n value: \"inactive\",\n label: \"Step inactive\"\n }\n ]\n },\n label: \"Status\",\n id: \"contentReview_steps_status\",\n type: \"text\",\n validation: [\n {\n message: \"`status` field value is required in contentReview steps status.\",\n name: \"required\"\n }\n ],\n fieldId: \"status\"\n});\n\nconst stepPendingChangeRequests = () =>\n createModelField({\n label: \"Pending change requests\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`pendingChangeRequests` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst stepTotalComments = () =>\n createModelField({\n label: \"Total comments\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`totalComments` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst latestCommentId = () =>\n createModelField({\n label: \"Latest comment Id\",\n type: \"text\",\n parent: \"contentReview\"\n });\n\nconst stepSignOffProvidedOn = () =>\n createModelField({\n label: \"Sign off provided on\",\n type: \"datetime\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedBy = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Sign off provided By\",\n type: \"object\",\n parent: \"contentReview Step\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst stepSignOffProvidedById = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedByDisplayName = () =>\n createModelField({\n label: \"DisplayName\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepsField = (fields: CmsModelField[]): CmsModelField => ({\n id: \"contentReview_steps\",\n label: \"Steps\",\n type: \"object\",\n settings: {\n fields,\n layout: fields.map(field => [field.fieldId])\n },\n listValidation: [],\n validation: [],\n fieldId: \"steps\",\n multipleValues: true,\n predefinedValues: {\n values: [],\n enabled: false\n }\n});\n\ninterface CreateContentReviewModelDefinitionParams {\n reviewerModelId: string;\n}\n\nexport const CONTENT_REVIEW_MODEL_ID = \"apwContentReviewModelDefinition\";\n\nexport const createContentReviewModelDefinition = ({\n reviewerModelId\n}: CreateContentReviewModelDefinitionParams): WorkflowModelDefinition => ({\n name: \"APW - Content Review\",\n modelId: CONTENT_REVIEW_MODEL_ID,\n titleFieldId: \"content\",\n layout: [\n [\"contentReview_content\"],\n [\"contentReview_reviewRequestedBy\"],\n [\"contentReview_steps\"],\n [\"contentReview_changeRequested\"]\n ],\n fields: [\n titleField(),\n contentField([\n contentIdField(),\n contentTypeField(),\n contentWorkflowIdField(),\n contentSettingsField([contentSettingsModelIdField()]),\n contentScheduledOnField(),\n contentScheduledByField(),\n scheduledActionIdField(),\n contentPublishedByField()\n ]),\n contentStatus(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepIdField(),\n stepReviewersField(reviewerModelId),\n stepStatusField(),\n stepPendingChangeRequests(),\n stepTotalComments(),\n stepSignOffProvidedOn(),\n stepSignOffProvidedBy([stepSignOffProvidedById(), stepSignOffProvidedByDisplayName()])\n ]),\n latestCommentId()\n ],\n description: \"\",\n isPrivate: true\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["contentField","fields","createModelField","label","parent","type","multipleValues","settings","validation","message","name","contentStatus","predefinedValues","enabled","values","value","titleField","contentIdField","contentWorkflowIdField","contentTypeField","contentSettingsField","contentSettingsModelIdField","scheduledActionIdField","contentScheduledOnField","contentScheduledByField","contentPublishedByField","stepStatusField","listValidation","renderer","id","storageId","fieldId","stepPendingChangeRequests","stepTotalComments","latestCommentId","stepSignOffProvidedOn","stepSignOffProvidedBy","stepSignOffProvidedById","stepSignOffProvidedByDisplayName","stepsField","layout","map","field","CONTENT_REVIEW_MODEL_ID","createContentReviewModelDefinition","reviewerModelId","modelId","titleFieldId","stepTitleField","stepTypeField","stepIdField","stepReviewersField","description","isPrivate"],"sources":["contentReview.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { stepTitleField, stepTypeField, stepIdField, stepReviewersField } from \"./workflow.model\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst contentField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Content\",\n parent: \"contentReview\",\n type: \"object\",\n multipleValues: false,\n settings: { fields },\n validation: [\n {\n message: \"`content` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentStatus = () =>\n createModelField({\n label: \"Status\",\n parent: \"contentReview\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Under review\",\n value: \"underReview\"\n },\n {\n label: \"Ready to be published\",\n value: \"readyToBePublished\"\n },\n {\n label: \"Published\",\n value: \"published\"\n }\n ]\n },\n validation: [\n {\n message: \"`status` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"contentReview\",\n validation: [\n {\n message: \"`title` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentIdField = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`id` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentWorkflowIdField = () =>\n createModelField({\n label: \"Workflow Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`workflowId` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"contentReview Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Page\",\n value: \"page\"\n },\n { value: \"cms-entry\", label: \"CMS Entry\" }\n ]\n },\n validation: [\n {\n message: \"`type` field value is required in contentReview Type.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentSettingsField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Settings\",\n parent: \"contentReview Content\",\n type: \"object\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst contentSettingsModelIdField = () =>\n createModelField({\n label: \"Model Id\",\n parent: \"contentReview Settings\",\n type: \"text\"\n });\n\nconst scheduledActionIdField = () =>\n createModelField({\n label: \"Scheduled action Id\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledOnField = () =>\n createModelField({\n label: \"Scheduled on\",\n type: \"datetime\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledByField = () =>\n createModelField({\n label: \"Scheduled by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentPublishedByField = () =>\n createModelField({\n label: \"Published by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst stepStatusField = (): CmsModelField => ({\n multipleValues: false,\n listValidation: [],\n renderer: {\n name: \"radio-buttons\"\n },\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"done\",\n label: \"Steps done\"\n },\n {\n value: \"active\",\n label: \"Step active\"\n },\n {\n value: \"inactive\",\n label: \"Step inactive\"\n }\n ]\n },\n label: \"Status\",\n id: \"contentReview_steps_status\",\n type: \"text\",\n validation: [\n {\n message: \"`status` field value is required in contentReview steps status.\",\n name: \"required\"\n }\n ],\n storageId: \"status\",\n fieldId: \"status\"\n});\n\nconst stepPendingChangeRequests = () =>\n createModelField({\n label: \"Pending change requests\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`pendingChangeRequests` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst stepTotalComments = () =>\n createModelField({\n label: \"Total comments\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`totalComments` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst latestCommentId = () =>\n createModelField({\n label: \"Latest comment Id\",\n type: \"text\",\n parent: \"contentReview\"\n });\n\nconst stepSignOffProvidedOn = () =>\n createModelField({\n label: \"Sign off provided on\",\n type: \"datetime\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedBy = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Sign off provided By\",\n type: \"object\",\n parent: \"contentReview Step\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst stepSignOffProvidedById = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedByDisplayName = () =>\n createModelField({\n label: \"DisplayName\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepsField = (fields: CmsModelField[]): CmsModelField => ({\n id: \"contentReview_steps\",\n label: \"Steps\",\n type: \"object\",\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [],\n validation: [],\n fieldId: \"steps\",\n storageId: \"steps\",\n multipleValues: true,\n predefinedValues: {\n values: [],\n enabled: false\n }\n});\n\ninterface CreateContentReviewModelDefinitionParams {\n reviewerModelId: string;\n}\n\nexport const CONTENT_REVIEW_MODEL_ID = \"apwContentReviewModelDefinition\";\n\nexport const createContentReviewModelDefinition = ({\n reviewerModelId\n}: CreateContentReviewModelDefinitionParams): WorkflowModelDefinition => ({\n name: \"APW - Content Review\",\n modelId: CONTENT_REVIEW_MODEL_ID,\n titleFieldId: \"content\",\n layout: [\n [\"contentReview_title\"],\n [\"contentReview_content\"],\n [\"contentReview_status\"],\n [\"contentReview_reviewRequestedBy\"],\n [\"contentReview_steps\"],\n [\"contentReview_changeRequested\"],\n [\"contentReview_latestCommentId\"]\n ],\n fields: [\n titleField(),\n contentField([\n contentIdField(),\n contentTypeField(),\n contentWorkflowIdField(),\n contentSettingsField([contentSettingsModelIdField()]),\n contentScheduledOnField(),\n contentScheduledByField(),\n scheduledActionIdField(),\n contentPublishedByField()\n ]),\n contentStatus(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepIdField(),\n stepReviewersField(reviewerModelId),\n stepStatusField(),\n stepPendingChangeRequests(),\n stepTotalComments(),\n stepSignOffProvidedOn(),\n stepSignOffProvidedBy([stepSignOffProvidedById(), stepSignOffProvidedByDisplayName()])\n ]),\n latestCommentId()\n ],\n description: \"\",\n isPrivate: true\n});\n"],"mappings":"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"}
@@ -45,7 +45,7 @@ const createReviewerModelDefinition = () => {
45
45
  name: "APW - Reviewer",
46
46
  modelId: REVIEWER_MODEL_ID,
47
47
  titleFieldId: "displayName",
48
- layout: [["reviewer_id"], ["reviewer_displayName"]],
48
+ layout: [["reviewer_identityId"], ["reviewer_displayName"], ["reviewer_type"]],
49
49
  fields: [idField(), displayNameField(), typeField()],
50
50
  description: "",
51
51
  isPrivate: true
@@ -1 +1 @@
1
- {"version":3,"names":["idField","createModelField","label","type","parent","validation","message","name","displayNameField","typeField","REVIEWER_MODEL_ID","createReviewerModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["reviewer.model.ts"],"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: [\n {\n message: \"`identityId` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst displayNameField = () =>\n createModelField({\n label: \"Display Name\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`displayName` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`type` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nexport const REVIEWER_MODEL_ID = \"apwReviewerModelDefinition\";\n\nexport const createReviewerModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Reviewer\",\n modelId: REVIEWER_MODEL_ID,\n titleFieldId: \"displayName\",\n layout: [[\"reviewer_id\"], [\"reviewer_displayName\"]],\n fields: [idField(), displayNameField(), typeField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,OAAO,GAAG,MACZ,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,aADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,mDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAMC,gBAAgB,GAAG,MACrB,IAAAP,uBAAA,EAAiB;EACbC,KAAK,EAAE,cADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,oDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAME,SAAS,GAAG,MACd,IAAAR,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,6CADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMG,iBAAiB,GAAG,4BAA1B;;;AAEA,MAAMC,6BAA6B,GAAG,MAA+B;EACxE,OAAO;IACHJ,IAAI,EAAE,gBADH;IAEHK,OAAO,EAAEF,iBAFN;IAGHG,YAAY,EAAE,aAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,aAAD,CAAD,EAAkB,CAAC,sBAAD,CAAlB,CAJL;IAKHC,MAAM,EAAE,CAACf,OAAO,EAAR,EAAYQ,gBAAgB,EAA5B,EAAgCC,SAAS,EAAzC,CALL;IAMHO,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAVM"}
1
+ {"version":3,"names":["idField","createModelField","label","type","parent","validation","message","name","displayNameField","typeField","REVIEWER_MODEL_ID","createReviewerModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["reviewer.model.ts"],"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: [\n {\n message: \"`identityId` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst displayNameField = () =>\n createModelField({\n label: \"Display Name\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`displayName` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`type` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nexport const REVIEWER_MODEL_ID = \"apwReviewerModelDefinition\";\n\nexport const createReviewerModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Reviewer\",\n modelId: REVIEWER_MODEL_ID,\n titleFieldId: \"displayName\",\n layout: [[\"reviewer_identityId\"], [\"reviewer_displayName\"], [\"reviewer_type\"]],\n fields: [idField(), displayNameField(), typeField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,OAAO,GAAG,MACZ,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,aADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,mDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAMC,gBAAgB,GAAG,MACrB,IAAAP,uBAAA,EAAiB;EACbC,KAAK,EAAE,cADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,oDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAME,SAAS,GAAG,MACd,IAAAR,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,6CADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMG,iBAAiB,GAAG,4BAA1B;;;AAEA,MAAMC,6BAA6B,GAAG,MAA+B;EACxE,OAAO;IACHJ,IAAI,EAAE,gBADH;IAEHK,OAAO,EAAEF,iBAFN;IAGHG,YAAY,EAAE,aAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,qBAAD,CAAD,EAA0B,CAAC,sBAAD,CAA1B,EAAoD,CAAC,eAAD,CAApD,CAJL;IAKHC,MAAM,EAAE,CAACf,OAAO,EAAR,EAAYQ,gBAAgB,EAA5B,EAAgCC,SAAS,EAAzC,CALL;IAMHO,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAVM"}
@@ -18,6 +18,7 @@ const createModelField = params => {
18
18
  const fieldId = (0, _camelCase.default)(label);
19
19
  return {
20
20
  id: `${(0, _camelCase.default)(parent)}_${fieldId}`,
21
+ storageId: fieldId,
21
22
  fieldId,
22
23
  label,
23
24
  type,
@@ -1 +1 @@
1
- {"version":3,"names":["createModelField","params","label","type","parent","fieldId","camelCase","id","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled"],"sources":["utils.ts"],"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"],"mappings":";;;;;;;;;AAAA;;AAIO,MAAMA,gBAAgB,GAAIC,MAAD,IAAmD;EAC/E,MAAM;IAAEC,KAAF;IAASC,IAAT;IAAeC;EAAf,IAA0BH,MAAhC;EACA,MAAMI,OAAO,GAAG,IAAAC,kBAAA,EAAUJ,KAAV,CAAhB;EAEA,OAAO;IACHK,EAAE,EAAG,GAAE,IAAAD,kBAAA,EAAUF,MAAV,CAAkB,IAAGC,OAAQ,EADjC;IAEHA,OAFG;IAGHH,KAHG;IAIHC,IAJG;IAKHK,QAAQ,EAAEP,MAAM,CAACO,QAAP,IAAmB,EAL1B;IAMHC,cAAc,EAAER,MAAM,CAACQ,cAAP,IAAyB,EANtC;IAOHC,UAAU,EAAET,MAAM,CAACS,UAAP,IAAqB,EAP9B;IAQHC,cAAc,EAAEV,MAAM,CAACU,cAAP,IAAyB,KARtC;IASHC,gBAAgB,EAAEX,MAAM,CAACW,gBAAP,IAA2B;MACzCC,MAAM,EAAE,EADiC;MAEzCC,OAAO,EAAE;IAFgC;EAT1C,CAAP;AAcH,CAlBM"}
1
+ {"version":3,"names":["createModelField","params","label","type","parent","fieldId","camelCase","id","storageId","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled"],"sources":["utils.ts"],"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 return {\n id: `${camelCase(parent)}_${fieldId}`,\n storageId: 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"],"mappings":";;;;;;;;;AAAA;;AAIO,MAAMA,gBAAgB,GAAIC,MAAD,IAAmD;EAC/E,MAAM;IAAEC,KAAF;IAASC,IAAT;IAAeC;EAAf,IAA0BH,MAAhC;EACA,MAAMI,OAAO,GAAG,IAAAC,kBAAA,EAAUJ,KAAV,CAAhB;EACA,OAAO;IACHK,EAAE,EAAG,GAAE,IAAAD,kBAAA,EAAUF,MAAV,CAAkB,IAAGC,OAAQ,EADjC;IAEHG,SAAS,EAAEH,OAFR;IAGHA,OAHG;IAIHH,KAJG;IAKHC,IALG;IAMHM,QAAQ,EAAER,MAAM,CAACQ,QAAP,IAAmB,EAN1B;IAOHC,cAAc,EAAET,MAAM,CAACS,cAAP,IAAyB,EAPtC;IAQHC,UAAU,EAAEV,MAAM,CAACU,UAAP,IAAqB,EAR9B;IASHC,cAAc,EAAEX,MAAM,CAACW,cAAP,IAAyB,KATtC;IAUHC,gBAAgB,EAAEZ,MAAM,CAACY,gBAAP,IAA2B;MACzCC,MAAM,EAAE,EADiC;MAEzCC,OAAO,EAAE;IAFgC;EAV1C,CAAP;AAeH,CAlBM"}
@@ -31,12 +31,12 @@ const getFieldValues = async params => {
31
31
  */
32
32
 
33
33
 
34
- for (let i = 0; i < transformers.length; i++) {
34
+ for (const transformer of transformers) {
35
35
  const {
36
36
  fieldId,
37
37
  model,
38
38
  field
39
- } = transformers[i]; // Get transformed value (eg. data decompression)
39
+ } = transformer; // Get transformed value (eg. data decompression)
40
40
 
41
41
  values[fieldId] = await (0, _apiHeadlessCms.entryFieldFromStorageTransform)({
42
42
  context,
@@ -1 +1 @@
1
- {"version":3,"names":["getFieldValues","params","entry","context","transformers","fields","values","pick","i","length","fieldId","model","field","entryFieldFromStorageTransform","value","getTransformer","find"],"sources":["fieldResolver.ts"],"sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsContext, CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { entryFieldFromStorageTransform } from \"@webiny/api-headless-cms\";\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"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;AAgBO,MAAMA,cAAc,GAAG,MAC1BC,MAD0B,IAEb;EACb,MAAM;IAAEC,KAAF;IAASC,OAAT;IAAkBC,YAAY,GAAG,EAAjC;IAAqCC;EAArC,IAAgDJ,MAAtD;;EACA,MAAMK,MAAM,mCACL,IAAAC,aAAA,EAAKL,KAAL,EAAYG,MAAZ,CADK,GAELH,KAAK,CAACI,MAFD,CAAZ;EAIA;AACJ;AACA;;;EACI,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,YAAY,CAACK,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;IAC1C,MAAM;MAAEE,OAAF;MAAWC,KAAX;MAAkBC;IAAlB,IAA4BR,YAAY,CAACI,CAAD,CAA9C,CAD0C,CAE1C;;IACAF,MAAM,CAACI,OAAD,CAAN,GAAkB,MAAM,IAAAG,8CAAA,EAA+B;MACnDV,OADmD;MAEnDQ,KAFmD;MAGnDC,KAHmD;MAInDE,KAAK,EAAER,MAAM,CAACI,OAAD;IAJsC,CAA/B,CAAxB;EAMH;;EAED,OAAOJ,MAAP;AACH,CAvBM;;;;AAyBA,MAAMS,cAAc,GAAG,CAACJ,KAAD,EAAkBD,OAAlB,MAAoD;EAC9EA,OAAO,EAAEA,OADqE;EAE9EC,KAAK,EAAEA,KAFuE;EAG9EC,KAAK,EAAED,KAAK,CAACN,MAAN,CAAaW,IAAb,CAAkBJ,KAAK,IAAIA,KAAK,CAACF,OAAN,KAAkBA,OAA7C;AAHuE,CAApD,CAAvB"}
1
+ {"version":3,"names":["getFieldValues","params","entry","context","transformers","fields","values","pick","transformer","fieldId","model","field","entryFieldFromStorageTransform","value","getTransformer","find"],"sources":["fieldResolver.ts"],"sourcesContent":["import pick from \"lodash/pick\";\nimport { CmsContext, CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { entryFieldFromStorageTransform } from \"@webiny/api-headless-cms\";\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 (const transformer of transformers) {\n const { fieldId, model, field } = transformer;\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"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;AAgBO,MAAMA,cAAc,GAAG,MAC1BC,MAD0B,IAEb;EACb,MAAM;IAAEC,KAAF;IAASC,OAAT;IAAkBC,YAAY,GAAG,EAAjC;IAAqCC;EAArC,IAAgDJ,MAAtD;;EACA,MAAMK,MAAM,mCACL,IAAAC,aAAA,EAAKL,KAAL,EAAYG,MAAZ,CADK,GAELH,KAAK,CAACI,MAFD,CAAZ;EAIA;AACJ;AACA;;;EACI,KAAK,MAAME,WAAX,IAA0BJ,YAA1B,EAAwC;IACpC,MAAM;MAAEK,OAAF;MAAWC,KAAX;MAAkBC;IAAlB,IAA4BH,WAAlC,CADoC,CAEpC;;IACAF,MAAM,CAACG,OAAD,CAAN,GAAkB,MAAM,IAAAG,8CAAA,EAA+B;MACnDT,OADmD;MAEnDO,KAFmD;MAGnDC,KAHmD;MAInDE,KAAK,EAAEP,MAAM,CAACG,OAAD;IAJsC,CAA/B,CAAxB;EAMH;;EAED,OAAOH,MAAP;AACH,CAvBM;;;;AAyBA,MAAMQ,cAAc,GAAG,CAACJ,KAAD,EAAkBD,OAAlB,MAAoD;EAC9EA,OAAO,EAAEA,OADqE;EAE9EC,KAAK,EAAEA,KAFuE;EAG9EC,KAAK,EAAED,KAAK,CAACL,MAAN,CAAaU,IAAb,CAAkBJ,KAAK,IAAIA,KAAK,CAACF,OAAN,KAAkBA,OAA7C;AAHuE,CAApD,CAAvB"}
@@ -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;