@webiny/api-workflows 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.81ae05e56b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/domain/workflow/workflowModel.js +4 -1
  2. package/domain/workflow/workflowModel.js.map +1 -1
  3. package/domain/workflowState/errors.js +1 -1
  4. package/domain/workflowState/errors.js.map +1 -1
  5. package/domain/workflowState/stateModel.js +4 -1
  6. package/domain/workflowState/stateModel.js.map +1 -1
  7. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js +1 -2
  8. package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js.map +1 -1
  9. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js +1 -2
  10. package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js.map +1 -1
  11. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js +1 -2
  12. package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js.map +1 -1
  13. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js +1 -2
  14. package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js.map +1 -1
  15. package/features/workflowState/ListWorkflowStates/abstractions.d.ts +18 -3
  16. package/features/workflowState/ListWorkflowStates/abstractions.js.map +1 -1
  17. package/graphql/validation/approveWorkflowState.d.ts +1 -7
  18. package/graphql/validation/cancelWorkflowState.d.ts +1 -5
  19. package/graphql/validation/createWorkflowState.d.ts +1 -9
  20. package/graphql/validation/deleteWorkflow.d.ts +1 -7
  21. package/graphql/validation/getTargetWorkflowState.d.ts +1 -7
  22. package/graphql/validation/getWorkflow.d.ts +1 -7
  23. package/graphql/validation/getWorkflowState.d.ts +1 -5
  24. package/graphql/validation/listWorkflowStates.d.ts +14 -96
  25. package/graphql/validation/listWorkflows.d.ts +6 -36
  26. package/graphql/validation/rejectWorkflowState.d.ts +1 -7
  27. package/graphql/validation/startWorkflowState.d.ts +1 -5
  28. package/graphql/validation/step.d.ts +8 -36
  29. package/graphql/validation/storeWorkflow.d.ts +14 -86
  30. package/graphql/validation/takeOverWorkflowStateStep.d.ts +1 -5
  31. package/graphql/validation/workflow.d.ts +13 -60
  32. package/graphql/workflowState.js +36 -7
  33. package/graphql/workflowState.js.map +1 -1
  34. package/index.js +6 -4
  35. package/index.js.map +1 -1
  36. package/package.json +17 -17
  37. package/types.d.ts +11 -4
  38. package/types.js +1 -5
  39. package/types.js.map +1 -1
@@ -3,7 +3,10 @@ import { WORKFLOW_MODEL_ID } from "../../constants.js";
3
3
  export { WORKFLOW_MODEL_ID };
4
4
  class WorkflowModelImpl {
5
5
  async execute(builder) {
6
- return [builder.private().modelId(WORKFLOW_MODEL_ID).name("Workflow").fields(fields => ({
6
+ return [builder.private({
7
+ modelId: WORKFLOW_MODEL_ID,
8
+ name: "Workflow"
9
+ }).fields(fields => ({
7
10
  name: fields.text().label("Name").required("Workflow name is required."),
8
11
  app: fields.text().label("App").required("App is required."),
9
12
  steps: fields.object().label("Steps").list().required("Steps are required.").listMinLength(1, "At least one step is required.").fields(fields => ({
@@ -1 +1 @@
1
- {"version":3,"names":["ModelFactory","WORKFLOW_MODEL_ID","WorkflowModelImpl","execute","builder","private","modelId","name","fields","text","label","required","app","steps","object","list","listMinLength","id","title","color","description","teams","teamFields","notifications","WorkflowModel","createImplementation","implementation","dependencies"],"sources":["workflowModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WORKFLOW_MODEL_ID } from \"~/constants.js\";\n\nexport { WORKFLOW_MODEL_ID };\n\nclass WorkflowModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private()\n .modelId(WORKFLOW_MODEL_ID)\n .name(\"Workflow\")\n .fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Workflow name is required.\"),\n app: fields.text().label(\"App\").required(\"App is required.\"),\n steps: fields\n .object()\n .label(\"Steps\")\n .list()\n .required(\"Steps are required.\")\n .listMinLength(1, \"At least one step is required.\")\n .fields(fields => ({\n id: fields.text().label(\"ID\").required(\"ID is required.\"),\n title: fields.text().label(\"Title\").required(\"Title is required.\"),\n color: fields.text().label(\"Color\"),\n description: fields.text().label(\"Description\"),\n teams: fields\n .object()\n .label(\"Teams\")\n .list()\n .fields(teamFields => ({\n id: teamFields.text().label(\"ID\").required(\"ID is required.\")\n })),\n notifications: fields\n .object()\n .list()\n .label(\"Notifications\")\n .fields(fields => ({\n id: fields.text().label(\"Id\").required(\"Id is required.\")\n }))\n }))\n }))\n ];\n }\n}\n\nexport const WorkflowModel = ModelFactory.createImplementation({\n implementation: WorkflowModelImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AACtF,SAASC,iBAAiB;AAE1B,SAASA,iBAAiB;AAE1B,MAAMC,iBAAiB,CAAmC;EACtD,MAAaC,OAAOA,CAACC,OAA6B,EAAE;IAChD,OAAO,CACHA,OAAO,CACFC,OAAO,CAAC,CAAC,CACTC,OAAO,CAACL,iBAAiB,CAAC,CAC1BM,IAAI,CAAC,UAAU,CAAC,CAChBC,MAAM,CAACA,MAAM,KAAK;MACfD,IAAI,EAAEC,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAACC,QAAQ,CAAC,4BAA4B,CAAC;MACxEC,GAAG,EAAEJ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC;MAC5DE,KAAK,EAAEL,MAAM,CACRM,MAAM,CAAC,CAAC,CACRJ,KAAK,CAAC,OAAO,CAAC,CACdK,IAAI,CAAC,CAAC,CACNJ,QAAQ,CAAC,qBAAqB,CAAC,CAC/BK,aAAa,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAClDR,MAAM,CAACA,MAAM,KAAK;QACfS,EAAE,EAAET,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB,CAAC;QACzDO,KAAK,EAAEV,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC,oBAAoB,CAAC;QAClEQ,KAAK,EAAEX,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC;QACnCU,WAAW,EAAEZ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,aAAa,CAAC;QAC/CW,KAAK,EAAEb,MAAM,CACRM,MAAM,CAAC,CAAC,CACRJ,KAAK,CAAC,OAAO,CAAC,CACdK,IAAI,CAAC,CAAC,CACNP,MAAM,CAACc,UAAU,KAAK;UACnBL,EAAE,EAAEK,UAAU,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB;QAChE,CAAC,CAAC,CAAC;QACPY,aAAa,EAAEf,MAAM,CAChBM,MAAM,CAAC,CAAC,CACRC,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBF,MAAM,CAACA,MAAM,KAAK;UACfS,EAAE,EAAET,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB;QAC5D,CAAC,CAAC;MACV,CAAC,CAAC;IACV,CAAC,CAAC,CAAC,CACV;EACL;AACJ;AAEA,OAAO,MAAMa,aAAa,GAAGxB,YAAY,CAACyB,oBAAoB,CAAC;EAC3DC,cAAc,EAAExB,iBAAiB;EACjCyB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ModelFactory","WORKFLOW_MODEL_ID","WorkflowModelImpl","execute","builder","private","modelId","name","fields","text","label","required","app","steps","object","list","listMinLength","id","title","color","description","teams","teamFields","notifications","WorkflowModel","createImplementation","implementation","dependencies"],"sources":["workflowModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WORKFLOW_MODEL_ID } from \"~/constants.js\";\n\nexport { WORKFLOW_MODEL_ID };\n\nclass WorkflowModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: WORKFLOW_MODEL_ID,\n name: \"Workflow\"\n })\n .fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Workflow name is required.\"),\n app: fields.text().label(\"App\").required(\"App is required.\"),\n steps: fields\n .object()\n .label(\"Steps\")\n .list()\n .required(\"Steps are required.\")\n .listMinLength(1, \"At least one step is required.\")\n .fields(fields => ({\n id: fields.text().label(\"ID\").required(\"ID is required.\"),\n title: fields.text().label(\"Title\").required(\"Title is required.\"),\n color: fields.text().label(\"Color\"),\n description: fields.text().label(\"Description\"),\n teams: fields\n .object()\n .label(\"Teams\")\n .list()\n .fields(teamFields => ({\n id: teamFields.text().label(\"ID\").required(\"ID is required.\")\n })),\n notifications: fields\n .object()\n .list()\n .label(\"Notifications\")\n .fields(fields => ({\n id: fields.text().label(\"Id\").required(\"Id is required.\")\n }))\n }))\n }))\n ];\n }\n}\n\nexport const WorkflowModel = ModelFactory.createImplementation({\n implementation: WorkflowModelImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AACtF,SAASC,iBAAiB;AAE1B,SAASA,iBAAiB;AAE1B,MAAMC,iBAAiB,CAAmC;EACtD,MAAaC,OAAOA,CAACC,OAA6B,EAAE;IAChD,OAAO,CACHA,OAAO,CACFC,OAAO,CAAC;MACLC,OAAO,EAAEL,iBAAiB;MAC1BM,IAAI,EAAE;IACV,CAAC,CAAC,CACDC,MAAM,CAACA,MAAM,KAAK;MACfD,IAAI,EAAEC,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAACC,QAAQ,CAAC,4BAA4B,CAAC;MACxEC,GAAG,EAAEJ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC;MAC5DE,KAAK,EAAEL,MAAM,CACRM,MAAM,CAAC,CAAC,CACRJ,KAAK,CAAC,OAAO,CAAC,CACdK,IAAI,CAAC,CAAC,CACNJ,QAAQ,CAAC,qBAAqB,CAAC,CAC/BK,aAAa,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAClDR,MAAM,CAACA,MAAM,KAAK;QACfS,EAAE,EAAET,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB,CAAC;QACzDO,KAAK,EAAEV,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC,oBAAoB,CAAC;QAClEQ,KAAK,EAAEX,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC;QACnCU,WAAW,EAAEZ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,aAAa,CAAC;QAC/CW,KAAK,EAAEb,MAAM,CACRM,MAAM,CAAC,CAAC,CACRJ,KAAK,CAAC,OAAO,CAAC,CACdK,IAAI,CAAC,CAAC,CACNP,MAAM,CAACc,UAAU,KAAK;UACnBL,EAAE,EAAEK,UAAU,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB;QAChE,CAAC,CAAC,CAAC;QACPY,aAAa,EAAEf,MAAM,CAChBM,MAAM,CAAC,CAAC,CACRC,IAAI,CAAC,CAAC,CACNL,KAAK,CAAC,eAAe,CAAC,CACtBF,MAAM,CAACA,MAAM,KAAK;UACfS,EAAE,EAAET,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,QAAQ,CAAC,iBAAiB;QAC5D,CAAC,CAAC;MACV,CAAC,CAAC;IACV,CAAC,CAAC,CAAC,CACV;EACL;AACJ;AAEA,OAAO,MAAMa,aAAa,GAAGxB,YAAY,CAACyB,oBAAoB,CAAC;EAC3DC,cAAc,EAAExB,iBAAiB;EACjCyB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -62,7 +62,7 @@ export class WorkflowStateStepCannotReviewError extends BaseError {
62
62
  code = "Workflows/State/Step/CannotReview";
63
63
  constructor(step) {
64
64
  super({
65
- message: "You do not have permissions to review this workflow state step.",
65
+ message: "You do not have permissions to review this content review step.",
66
66
  data: {
67
67
  step
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseError","WorkflowStateNotFoundError","code","constructor","data","message","WorkflowStateNotAuthorizedError","WorkflowStatePersistenceError","error","WorkflowStateValidationError","ActiveStateExistsError","MultipleWorkflowsFoundError","WorkflowStateNoPendingStepError","WorkflowStateStepCannotReviewError","step","WorkflowStateStepCannotTakeOverError","WorkflowStateStepNotStepOwnerError","WorkflowStateInReviewError","state","WorkflowStateRejectedError","WorkflowStateNotInReview","WorkflowStateNoCurrentStepError","steps"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\nimport type { IWorkflowStateRecord, IWorkflowStateRecordStep } from \"./abstractions.js\";\n\nexport class WorkflowStateNotFoundError extends BaseError<{\n id?: string;\n app?: string;\n targetRevisionId?: string;\n}> {\n override readonly code = \"Workflows/State/NotFound\" as const;\n\n constructor(data: { id?: string; app?: string; targetRevisionId?: string }) {\n super({\n message: \"Workflow state not found.\",\n data\n });\n }\n}\n\nexport class WorkflowStateNotAuthorizedError extends BaseError {\n override readonly code = \"Workflows/State/NotAuthorized\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class WorkflowStatePersistenceError extends BaseError {\n override readonly code = \"Workflows/State/Persistence\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class WorkflowStateValidationError extends BaseError {\n override readonly code = \"Workflows/State/Validation\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class ActiveStateExistsError extends BaseError<{ app: string; targetRevisionId: string }> {\n override readonly code = \"Workflows/State/ActiveExists\" as const;\n\n constructor(data: { app: string; targetRevisionId: string }) {\n super({\n message: \"An active workflow state already exists for this target\",\n data\n });\n }\n}\n\nexport class MultipleWorkflowsFoundError extends BaseError {\n override readonly code = \"Workflows/State/MultipleFound\" as const;\n\n constructor(data: any) {\n super({\n message: \"Multiple workflows found when only one was expected\",\n data\n });\n }\n}\n\nexport class WorkflowStateNoPendingStepError extends BaseError {\n override readonly code = \"Workflows/State/NoPendingStep\" as const;\n\n constructor() {\n super({\n message: \"No pending step found in workflow state\"\n });\n }\n}\n\nexport class WorkflowStateStepCannotReviewError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/CannotReview\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You do not have permissions to review this workflow state step.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateStepCannotTakeOverError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/CannotTakeOver\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You do not have permissions to take over this workflow state step.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateStepNotStepOwnerError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/NotStepOwner\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You must be the owner of this workflow state step to perform this action.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateInReviewError extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/InReview\" as const;\n\n constructor(state: IWorkflowStateRecord) {\n super({\n message: \"The workflow state is already in review and cannot proceed.\",\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateRejectedError extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/Rejected\" as const;\n\n constructor(state: IWorkflowStateRecord) {\n super({\n message: \"Cannot perform this action on a workflow state that has been rejected.\",\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateNotInReview extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/NotInReview\" as const;\n\n constructor(message: string, state: IWorkflowStateRecord) {\n super({\n message,\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateNoCurrentStepError extends BaseError<{\n steps: IWorkflowStateRecordStep[];\n}> {\n override readonly code = \"Workflows/State/NoCurrentStep\" as const;\n\n constructor(steps: IWorkflowStateRecordStep[]) {\n super({\n message: \"Cannot determine the current step of the workflow state.\",\n data: { steps }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BaseError","WorkflowStateNotFoundError","code","constructor","data","message","WorkflowStateNotAuthorizedError","WorkflowStatePersistenceError","error","WorkflowStateValidationError","ActiveStateExistsError","MultipleWorkflowsFoundError","WorkflowStateNoPendingStepError","WorkflowStateStepCannotReviewError","step","WorkflowStateStepCannotTakeOverError","WorkflowStateStepNotStepOwnerError","WorkflowStateInReviewError","state","WorkflowStateRejectedError","WorkflowStateNotInReview","WorkflowStateNoCurrentStepError","steps"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\nimport type { IWorkflowStateRecord, IWorkflowStateRecordStep } from \"./abstractions.js\";\n\nexport class WorkflowStateNotFoundError extends BaseError<{\n id?: string;\n app?: string;\n targetRevisionId?: string;\n}> {\n override readonly code = \"Workflows/State/NotFound\" as const;\n\n constructor(data: { id?: string; app?: string; targetRevisionId?: string }) {\n super({\n message: \"Workflow state not found.\",\n data\n });\n }\n}\n\nexport class WorkflowStateNotAuthorizedError extends BaseError {\n override readonly code = \"Workflows/State/NotAuthorized\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class WorkflowStatePersistenceError extends BaseError {\n override readonly code = \"Workflows/State/Persistence\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n\nexport class WorkflowStateValidationError extends BaseError {\n override readonly code = \"Workflows/State/Validation\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class ActiveStateExistsError extends BaseError<{ app: string; targetRevisionId: string }> {\n override readonly code = \"Workflows/State/ActiveExists\" as const;\n\n constructor(data: { app: string; targetRevisionId: string }) {\n super({\n message: \"An active workflow state already exists for this target\",\n data\n });\n }\n}\n\nexport class MultipleWorkflowsFoundError extends BaseError {\n override readonly code = \"Workflows/State/MultipleFound\" as const;\n\n constructor(data: any) {\n super({\n message: \"Multiple workflows found when only one was expected\",\n data\n });\n }\n}\n\nexport class WorkflowStateNoPendingStepError extends BaseError {\n override readonly code = \"Workflows/State/NoPendingStep\" as const;\n\n constructor() {\n super({\n message: \"No pending step found in workflow state\"\n });\n }\n}\n\nexport class WorkflowStateStepCannotReviewError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/CannotReview\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You do not have permissions to review this content review step.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateStepCannotTakeOverError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/CannotTakeOver\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You do not have permissions to take over this workflow state step.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateStepNotStepOwnerError extends BaseError<{\n step: IWorkflowStateRecordStep;\n}> {\n override readonly code = \"Workflows/State/Step/NotStepOwner\" as const;\n\n constructor(step: IWorkflowStateRecordStep) {\n super({\n message: \"You must be the owner of this workflow state step to perform this action.\",\n data: { step }\n });\n }\n}\n\nexport class WorkflowStateInReviewError extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/InReview\" as const;\n\n constructor(state: IWorkflowStateRecord) {\n super({\n message: \"The workflow state is already in review and cannot proceed.\",\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateRejectedError extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/Rejected\" as const;\n\n constructor(state: IWorkflowStateRecord) {\n super({\n message: \"Cannot perform this action on a workflow state that has been rejected.\",\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateNotInReview extends BaseError<{ state: IWorkflowStateRecord }> {\n override readonly code = \"Workflows/State/NotInReview\" as const;\n\n constructor(message: string, state: IWorkflowStateRecord) {\n super({\n message,\n data: { state }\n });\n }\n}\n\nexport class WorkflowStateNoCurrentStepError extends BaseError<{\n steps: IWorkflowStateRecordStep[];\n}> {\n override readonly code = \"Workflows/State/NoCurrentStep\" as const;\n\n constructor(steps: IWorkflowStateRecordStep[]) {\n super({\n message: \"Cannot determine the current step of the workflow state.\",\n data: { steps }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,10 @@ const states = [{
16
16
  }];
17
17
  class WorkflowStateModelImpl {
18
18
  async execute(builder) {
19
- return [builder.private().modelId(WORKFLOW_STATE_MODEL_ID).name("RecordWorkflow State").fields(fields => ({
19
+ return [builder.private({
20
+ modelId: WORKFLOW_STATE_MODEL_ID,
21
+ name: "RecordWorkflow State"
22
+ }).fields(fields => ({
20
23
  workflowId: fields.text().label("Workflow ID"),
21
24
  app: fields.text().label("App").required("App is required."),
22
25
  title: fields.text().label("Title").required("Title is required."),
@@ -1 +1 @@
1
- {"version":3,"names":["ModelFactory","WorkflowStateRecordState","WORKFLOW_STATE_MODEL_ID","states","label","value","pending","inReview","approved","rejected","WorkflowStateModelImpl","execute","builder","private","modelId","name","fields","workflowId","text","app","required","title","targetRevisionId","targetId","isActive","boolean","comment","state","predefinedValues","steps","object","list","listMinLength","stepFields","id","color","description","teams","teamFields","notifications","notificationFields","savedBy","userFields","displayName","type","WorkflowStateModel","createImplementation","implementation","dependencies"],"sources":["stateModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\n\nexport const WORKFLOW_STATE_MODEL_ID = \"wbyWorkflowState\";\n\nconst states = [\n {\n label: \"Pending\",\n value: WorkflowStateRecordState.pending\n },\n {\n label: \"In Review\",\n value: WorkflowStateRecordState.inReview\n },\n {\n label: \"Approved\",\n value: WorkflowStateRecordState.approved\n },\n {\n label: \"Rejected\",\n value: WorkflowStateRecordState.rejected\n }\n];\n\nclass WorkflowStateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private()\n .modelId(WORKFLOW_STATE_MODEL_ID)\n .name(\"RecordWorkflow State\")\n .fields(fields => ({\n workflowId: fields.text().label(\"Workflow ID\"),\n app: fields.text().label(\"App\").required(\"App is required.\"),\n title: fields.text().label(\"Title\").required(\"Title is required.\"),\n targetRevisionId: fields.text().label(\"Target Revision ID\"),\n targetId: fields.text().label(\"Target ID\"),\n isActive: fields.boolean().label(\"Is Active\"),\n comment: fields.text().label(\"Comment\"),\n state: fields.text().label(\"State\").predefinedValues(states),\n steps: fields\n .object()\n .label(\"Steps\")\n .list()\n .required(\"Steps are required.\")\n .listMinLength(1, \"At least one step is required.\")\n .fields(stepFields => ({\n id: stepFields.text().label(\"ID\").required(\"ID is required.\"),\n title: stepFields.text().label(\"Title\").required(\"Title is required.\"),\n color: stepFields.text().label(\"Color\").required(\"Color is required.\"),\n description: stepFields.text().label(\"Description\"),\n teams: stepFields\n .object()\n .label(\"Teams\")\n .list()\n .required(\"At least one team is required.\")\n .listMinLength(1, \"At least one team is required.\")\n .fields(teamFields => ({\n id: teamFields.text().label(\"ID\").required(\"ID is required.\")\n })),\n notifications: stepFields\n .object()\n .label(\"Notifications\")\n .list()\n .fields(notificationFields => ({\n id: notificationFields\n .text()\n .label(\"ID\")\n .required(\"ID is required.\")\n })),\n state: stepFields.text().label(\"State\").predefinedValues(states),\n savedBy: stepFields\n .object()\n .label(\"User\")\n .fields(userFields => ({\n id: userFields.text().label(\"ID\").required(\"ID is required.\"),\n displayName: userFields\n .text()\n .label(\"Display Name\")\n .required(\"Display name is required.\"),\n type: userFields\n .text()\n .label(\"Type\")\n .required(\"Type is required.\")\n })),\n comment: stepFields.text().label(\"Comment\")\n }))\n }))\n ];\n }\n}\n\nexport const WorkflowStateModel = ModelFactory.createImplementation({\n implementation: WorkflowStateModelImpl,\n dependencies: []\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ModelFactory","WorkflowStateRecordState","WORKFLOW_STATE_MODEL_ID","states","label","value","pending","inReview","approved","rejected","WorkflowStateModelImpl","execute","builder","private","modelId","name","fields","workflowId","text","app","required","title","targetRevisionId","targetId","isActive","boolean","comment","state","predefinedValues","steps","object","list","listMinLength","stepFields","id","color","description","teams","teamFields","notifications","notificationFields","savedBy","userFields","displayName","type","WorkflowStateModel","createImplementation","implementation","dependencies"],"sources":["stateModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\n\nexport const WORKFLOW_STATE_MODEL_ID = \"wbyWorkflowState\";\n\nconst states = [\n {\n label: \"Pending\",\n value: WorkflowStateRecordState.pending\n },\n {\n label: \"In Review\",\n value: WorkflowStateRecordState.inReview\n },\n {\n label: \"Approved\",\n value: WorkflowStateRecordState.approved\n },\n {\n label: \"Rejected\",\n value: WorkflowStateRecordState.rejected\n }\n];\n\nclass WorkflowStateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: WORKFLOW_STATE_MODEL_ID,\n name: \"RecordWorkflow State\"\n })\n .fields(fields => ({\n workflowId: fields.text().label(\"Workflow ID\"),\n app: fields.text().label(\"App\").required(\"App is required.\"),\n title: fields.text().label(\"Title\").required(\"Title is required.\"),\n targetRevisionId: fields.text().label(\"Target Revision ID\"),\n targetId: fields.text().label(\"Target ID\"),\n isActive: fields.boolean().label(\"Is Active\"),\n comment: fields.text().label(\"Comment\"),\n state: fields.text().label(\"State\").predefinedValues(states),\n steps: fields\n .object()\n .label(\"Steps\")\n .list()\n .required(\"Steps are required.\")\n .listMinLength(1, \"At least one step is required.\")\n .fields(stepFields => ({\n id: stepFields.text().label(\"ID\").required(\"ID is required.\"),\n title: stepFields.text().label(\"Title\").required(\"Title is required.\"),\n color: stepFields.text().label(\"Color\").required(\"Color is required.\"),\n description: stepFields.text().label(\"Description\"),\n teams: stepFields\n .object()\n .label(\"Teams\")\n .list()\n .required(\"At least one team is required.\")\n .listMinLength(1, \"At least one team is required.\")\n .fields(teamFields => ({\n id: teamFields.text().label(\"ID\").required(\"ID is required.\")\n })),\n notifications: stepFields\n .object()\n .label(\"Notifications\")\n .list()\n .fields(notificationFields => ({\n id: notificationFields\n .text()\n .label(\"ID\")\n .required(\"ID is required.\")\n })),\n state: stepFields.text().label(\"State\").predefinedValues(states),\n savedBy: stepFields\n .object()\n .label(\"User\")\n .fields(userFields => ({\n id: userFields.text().label(\"ID\").required(\"ID is required.\"),\n displayName: userFields\n .text()\n .label(\"Display Name\")\n .required(\"Display name is required.\"),\n type: userFields\n .text()\n .label(\"Type\")\n .required(\"Type is required.\")\n })),\n comment: stepFields.text().label(\"Comment\")\n }))\n }))\n ];\n }\n}\n\nexport const WorkflowStateModel = ModelFactory.createImplementation({\n implementation: WorkflowStateModelImpl,\n dependencies: []\n});\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,6 @@ import { Result } from "@webiny/feature/api";
2
2
  import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
3
3
  import { ListNotificationTypesRepository, ListNotificationTypesUseCase as UseCase } from "./abstractions.js";
4
4
  import { WORKFLOWS_PERMISSION } from "../../../constants.js";
5
- import { WorkflowsSecurityPermissionAccessLevel } from "../../../types.js";
6
5
  import { NotificationAuthorizedError } from "../../../domain/notifications/errors.js";
7
6
  class ListNotificationTypesUseCaseImpl {
8
7
  constructor(identityContext, repository) {
@@ -25,7 +24,7 @@ class ListNotificationTypesUseCaseImpl {
25
24
  for (const permission of permissions) {
26
25
  if (permission.name === "*") {
27
26
  return Result.ok();
28
- } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {
27
+ } else if (permission.editor) {
29
28
  return Result.ok();
30
29
  }
31
30
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","ListNotificationTypesRepository","ListNotificationTypesUseCase","UseCase","WORKFLOWS_PERMISSION","WorkflowsSecurityPermissionAccessLevel","NotificationAuthorizedError","ListNotificationTypesUseCaseImpl","constructor","identityContext","repository","execute","hasAccess","ensureAccess","isFail","fail","error","result","ok","value","permissions","getPermissions","permission","name","editor","YES","createImplementation","implementation","dependencies"],"sources":["ListNotificationTypesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport {\n ListNotificationTypesRepository,\n ListNotificationTypesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { WorkflowsSecurityPermissionAccessLevel } from \"~/types.js\";\nimport { NotificationAuthorizedError } from \"~/domain/notifications/errors.js\";\n\nclass ListNotificationTypesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private identityContext: IdentityContext.Interface,\n private repository: ListNotificationTypesRepository.Interface\n ) {}\n\n public async execute(): UseCase.Return {\n const hasAccess = await this.ensureAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const result = await this.repository.execute();\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n\n private async ensureAccess(): Promise<Result<void, NotificationAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {\n return Result.ok();\n }\n }\n\n return Result.fail(new NotificationAuthorizedError(\"You cannot list notifications.\"));\n }\n}\n\nexport const ListNotificationTypesUseCase = UseCase.createImplementation({\n implementation: ListNotificationTypesUseCaseImpl,\n dependencies: [IdentityContext, ListNotificationTypesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SACIC,+BAA+B,EAC/BC,4BAA4B,IAAIC,OAAO;AAE3C,SAASC,oBAAoB;AAE7B,SAASC,sCAAsC;AAC/C,SAASC,2BAA2B;AAEpC,MAAMC,gCAAgC,CAA8B;EACzDC,WAAWA,CACNC,eAA0C,EAC1CC,UAAqD,EAC/D;IAAA,KAFUD,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAqD,GAArDA,UAAqD;EAC9D;EAEH,MAAaC,OAAOA,CAAA,EAAmB;IACnC,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAC3C,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOf,MAAM,CAACgB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,UAAU,CAACC,OAAO,CAAC,CAAC;IAC9C,IAAIM,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,OAAOlB,MAAM,CAACmB,EAAE,CAACD,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAAcN,YAAYA,CAAA,EAAuD;IAC7E,MAAMO,WAAW,GACb,MAAM,IAAI,CAACX,eAAe,CAACY,cAAc,CACrCjB,oBACJ,CAAC;IAEL,KAAK,MAAMkB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOxB,MAAM,CAACmB,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAII,UAAU,CAACE,MAAM,KAAKnB,sCAAsC,CAACoB,GAAG,EAAE;QACzE,OAAO1B,MAAM,CAACmB,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOnB,MAAM,CAACgB,IAAI,CAAC,IAAIT,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;EACzF;AACJ;AAEA,OAAO,MAAMJ,4BAA4B,GAAGC,OAAO,CAACuB,oBAAoB,CAAC;EACrEC,cAAc,EAAEpB,gCAAgC;EAChDqB,YAAY,EAAE,CAAC5B,eAAe,EAAEC,+BAA+B;AACnE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","ListNotificationTypesRepository","ListNotificationTypesUseCase","UseCase","WORKFLOWS_PERMISSION","NotificationAuthorizedError","ListNotificationTypesUseCaseImpl","constructor","identityContext","repository","execute","hasAccess","ensureAccess","isFail","fail","error","result","ok","value","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["ListNotificationTypesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport {\n ListNotificationTypesRepository,\n ListNotificationTypesUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { NotificationAuthorizedError } from \"~/domain/notifications/errors.js\";\n\nclass ListNotificationTypesUseCaseImpl implements UseCase.Interface {\n public constructor(\n private identityContext: IdentityContext.Interface,\n private repository: ListNotificationTypesRepository.Interface\n ) {}\n\n public async execute(): UseCase.Return {\n const hasAccess = await this.ensureAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const result = await this.repository.execute();\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n\n private async ensureAccess(): Promise<Result<void, NotificationAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new NotificationAuthorizedError(\"You cannot list notifications.\"));\n }\n}\n\nexport const ListNotificationTypesUseCase = UseCase.createImplementation({\n implementation: ListNotificationTypesUseCaseImpl,\n dependencies: [IdentityContext, ListNotificationTypesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SACIC,+BAA+B,EAC/BC,4BAA4B,IAAIC,OAAO;AAE3C,SAASC,oBAAoB;AAE7B,SAASC,2BAA2B;AAEpC,MAAMC,gCAAgC,CAA8B;EACzDC,WAAWA,CACNC,eAA0C,EAC1CC,UAAqD,EAC/D;IAAA,KAFUD,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAqD,GAArDA,UAAqD;EAC9D;EAEH,MAAaC,OAAOA,CAAA,EAAmB;IACnC,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAC3C,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOd,MAAM,CAACe,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACP,UAAU,CAACC,OAAO,CAAC,CAAC;IAC9C,IAAIM,MAAM,CAACH,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOG,MAAM;IACjB;IAEA,OAAOjB,MAAM,CAACkB,EAAE,CAACD,MAAM,CAACE,KAAK,CAAC;EAClC;EAEA,MAAcN,YAAYA,CAAA,EAAuD;IAC7E,MAAMO,WAAW,GACb,MAAM,IAAI,CAACX,eAAe,CAACY,cAAc,CACrChB,oBACJ,CAAC;IAEL,KAAK,MAAMiB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOvB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAII,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOxB,MAAM,CAACkB,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOlB,MAAM,CAACe,IAAI,CAAC,IAAIT,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;EACzF;AACJ;AAEA,OAAO,MAAMH,4BAA4B,GAAGC,OAAO,CAACqB,oBAAoB,CAAC;EACrEC,cAAc,EAAEnB,gCAAgC;EAChDoB,YAAY,EAAE,CAAC1B,eAAe,EAAEC,+BAA+B;AACnE,CAAC,CAAC","ignoreList":[]}
@@ -5,7 +5,6 @@ import { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from "./ab
5
5
  import { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from "./events.js";
6
6
  import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
7
7
  import { WORKFLOWS_PERMISSION } from "../../../constants.js";
8
- import { WorkflowsSecurityPermissionAccessLevel } from "../../../types.js";
9
8
  class CreateWorkflowUseCaseImpl {
10
9
  constructor(identityContext, eventPublisher, repository) {
11
10
  this.identityContext = identityContext;
@@ -42,7 +41,7 @@ class CreateWorkflowUseCaseImpl {
42
41
  for (const permission of permissions) {
43
42
  if (permission.name === "*") {
44
43
  return Result.ok();
45
- } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {
44
+ } else if (permission.editor) {
46
45
  return Result.ok();
47
46
  }
48
47
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","CreateWorkflowRepository","CreateWorkflowUseCase","UseCase","WorkflowAfterCreateEvent","WorkflowBeforeCreateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","WorkflowsSecurityPermissionAccessLevel","CreateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","YES","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { WorkflowsSecurityPermissionAccessLevel } from \"~/types.js\";\n\nclass CreateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: CreateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeCreateEvent({\n workflow,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterCreateEvent({\n workflow: result.value,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const CreateWorkflowUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAE7B,SAASC,sCAAsC;AAE/C,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAkB;IAChD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAEP,KAAK,CAACO,EAAE;MACZC,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,IAAI,EAAET,KAAK,CAACS,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACU;IACjB,CAAC;IAED,MAAM,IAAI,CAACb,cAAc,CAACc,OAAO,CAC7B,IAAIrB,yBAAyB,CAAC;MAC1BgB,QAAQ;MACRN;IACJ,CAAC,CACL,CAAC;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAACf,cAAc,CAACc,OAAO,CAC7B,IAAItB,wBAAwB,CAAC;MACzBiB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb;IACJ,CAAC,CACL,CAAC;IAED,OAAOjB,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO1B,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,KAAKzB,sCAAsC,CAAC0B,GAAG,EAAE;QACzE,OAAOpC,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO/B,MAAM,CAACqB,IAAI,CAAC,IAAIb,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACgC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACtC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","CreateWorkflowRepository","CreateWorkflowUseCase","UseCase","WorkflowAfterCreateEvent","WorkflowBeforeCreateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","CreateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["CreateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { CreateWorkflowRepository, CreateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterCreateEvent, WorkflowBeforeCreateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass CreateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: CreateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeCreateEvent({\n workflow,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterCreateEvent({\n workflow: result.value,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const CreateWorkflowUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, CreateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAkB;IAChD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOnB,MAAM,CAACoB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAEP,KAAK,CAACO,EAAE;MACZC,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,IAAI,EAAET,KAAK,CAACS,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACU;IACjB,CAAC;IAED,MAAM,IAAI,CAACb,cAAc,CAACc,OAAO,CAC7B,IAAIpB,yBAAyB,CAAC;MAC1Be,QAAQ;MACRN;IACJ,CAAC,CACL,CAAC;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAACf,cAAc,CAACc,OAAO,CAC7B,IAAIrB,wBAAwB,CAAC;MACzBgB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC8B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOzB,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOlC,MAAM,CAAC8B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO9B,MAAM,CAACoB,IAAI,CAAC,IAAIZ,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC8B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE1B,yBAAyB;EACzC2B,YAAY,EAAE,CAACpC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -6,7 +6,6 @@ import { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from "./ab
6
6
  import { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from "./events.js";
7
7
  import { WorkflowNotAuthorizedError, WorkflowNotFoundError } from "../../../domain/workflow/errors.js";
8
8
  import { WORKFLOWS_PERMISSION } from "../../../constants.js";
9
- import { WorkflowsSecurityPermissionAccessLevel } from "../../../types.js";
10
9
  class DeleteWorkflowUseCaseImpl {
11
10
  constructor(identityContext, eventPublisher, getWorkflow, repository) {
12
11
  this.identityContext = identityContext;
@@ -44,7 +43,7 @@ class DeleteWorkflowUseCaseImpl {
44
43
  for (const permission of permissions) {
45
44
  if (permission.name === "*") {
46
45
  return Result.ok();
47
- } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {
46
+ } else if (permission.editor) {
48
47
  return Result.ok();
49
48
  }
50
49
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository","DeleteWorkflowUseCase","UseCase","WorkflowAfterDeleteEvent","WorkflowBeforeDeleteEvent","WorkflowNotAuthorizedError","WorkflowNotFoundError","WORKFLOWS_PERMISSION","WorkflowsSecurityPermissionAccessLevel","DeleteWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","getWorkflow","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflowResult","id","app","workflow","value","publish","result","ok","permissions","getPermissions","permission","name","editor","YES","createImplementation","implementation","dependencies"],"sources":["DeleteWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError, WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { WorkflowsSecurityPermissionAccessLevel } from \"~/types.js\";\n\nclass DeleteWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private repository: DeleteWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflowResult = await this.getWorkflow.execute(input);\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = workflowResult.value;\n\n await this.eventPublisher.publish(\n new WorkflowBeforeDeleteEvent({\n workflow\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterDeleteEvent({\n workflow\n })\n );\n\n return Result.ok();\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const DeleteWorkflowUseCase = UseCase.createImplementation({\n implementation: DeleteWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, GetWorkflowUseCase, DeleteWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B,EAAEC,qBAAqB;AAC1D,SAASC,oBAAoB;AAE7B,SAASC,sCAAsC;AAE/C,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,EACxD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAqB,EAAkB;IACjD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOvB,MAAM,CAACwB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACT,WAAW,CAACE,OAAO,CAACC,KAAK,CAAC;IAC5D,IAAIM,cAAc,CAACH,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOvB,MAAM,CAACwB,IAAI,CACd,IAAId,qBAAqB,CAAC;QACtBiB,EAAE,EAAEP,KAAK,CAACO,EAAE;QACZC,GAAG,EAAER,KAAK,CAACQ;MACf,CAAC,CACL,CAAC;IACL;IAEA,MAAMC,QAAQ,GAAGH,cAAc,CAACI,KAAK;IAErC,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAIvB,yBAAyB,CAAC;MAC1BqB;IACJ,CAAC,CACL,CAAC;IAED,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAIxB,wBAAwB,CAAC;MACzBsB;IACJ,CAAC,CACL,CAAC;IAED,OAAO7B,MAAM,CAACiC,EAAE,CAAC,CAAC;EACtB;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMY,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOrC,MAAM,CAACiC,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACE,MAAM,KAAK1B,sCAAsC,CAAC2B,GAAG,EAAE;QACzE,OAAOvC,MAAM,CAACiC,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOjC,MAAM,CAACwB,IAAI,CAAC,IAAIf,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACkC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE5B,yBAAyB;EACzC6B,YAAY,EAAE,CAACzC,eAAe,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,wBAAwB;AAChG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository","DeleteWorkflowUseCase","UseCase","WorkflowAfterDeleteEvent","WorkflowBeforeDeleteEvent","WorkflowNotAuthorizedError","WorkflowNotFoundError","WORKFLOWS_PERMISSION","DeleteWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","getWorkflow","repository","execute","input","hasAccess","ensureManageAccess","isFail","fail","error","workflowResult","id","app","workflow","value","publish","result","ok","permissions","getPermissions","permission","name","editor","createImplementation","implementation","dependencies"],"sources":["DeleteWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError, WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass DeleteWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private repository: DeleteWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflowResult = await this.getWorkflow.execute(input);\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = workflowResult.value;\n\n await this.eventPublisher.publish(\n new WorkflowBeforeDeleteEvent({\n workflow\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterDeleteEvent({\n workflow\n })\n );\n\n return Result.ok();\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const DeleteWorkflowUseCase = UseCase.createImplementation({\n implementation: DeleteWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, GetWorkflowUseCase, DeleteWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B,EAAEC,qBAAqB;AAC1D,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,EACxD;IAAA,KAJUH,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAqB,EAAkB;IACjD,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOtB,MAAM,CAACuB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACT,WAAW,CAACE,OAAO,CAACC,KAAK,CAAC;IAC5D,IAAIM,cAAc,CAACH,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOtB,MAAM,CAACuB,IAAI,CACd,IAAIb,qBAAqB,CAAC;QACtBgB,EAAE,EAAEP,KAAK,CAACO,EAAE;QACZC,GAAG,EAAER,KAAK,CAACQ;MACf,CAAC,CACL,CAAC;IACL;IAEA,MAAMC,QAAQ,GAAGH,cAAc,CAACI,KAAK;IAErC,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAItB,yBAAyB,CAAC;MAC1BoB;IACJ,CAAC,CACL,CAAC;IAED,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACd,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIY,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAIvB,wBAAwB,CAAC;MACzBqB;IACJ,CAAC,CACL,CAAC;IAED,OAAO5B,MAAM,CAACgC,EAAE,CAAC,CAAC;EACtB;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMY,WAAW,GACb,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACrCvB,oBACJ,CAAC;IAEL,KAAK,MAAMwB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACC,IAAI,KAAK,GAAG,EAAE;QACzB,OAAOpC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACE,MAAM,EAAE;QAC1B,OAAOrC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOhC,MAAM,CAACuB,IAAI,CAAC,IAAId,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACgC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACvC,eAAe,EAAEC,cAAc,EAAEC,kBAAkB,EAAEC,wBAAwB;AAChG,CAAC,CAAC","ignoreList":[]}
@@ -5,7 +5,6 @@ import { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from "./ab
5
5
  import { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from "./events.js";
6
6
  import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
7
7
  import { WORKFLOWS_PERMISSION } from "../../../constants.js";
8
- import { WorkflowsSecurityPermissionAccessLevel } from "../../../types.js";
9
8
  class UpdateWorkflowUseCaseImpl {
10
9
  constructor(identityContext, eventPublisher, repository) {
11
10
  this.identityContext = identityContext;
@@ -44,7 +43,7 @@ class UpdateWorkflowUseCaseImpl {
44
43
  for (const permission of permissions) {
45
44
  if (permission.name === "*") {
46
45
  return Result.ok();
47
- } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {
46
+ } else if (permission.editor) {
48
47
  return Result.ok();
49
48
  }
50
49
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Result","IdentityContext","EventPublisher","UpdateWorkflowRepository","UpdateWorkflowUseCase","UseCase","WorkflowAfterUpdateEvent","WorkflowBeforeUpdateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","WorkflowsSecurityPermissionAccessLevel","UpdateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","original","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","YES","createImplementation","implementation","dependencies"],"sources":["UpdateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\nimport { WorkflowsSecurityPermissionAccessLevel } from \"~/types.js\";\n\nclass UpdateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input, original: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeUpdateEvent({\n workflow,\n original,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterUpdateEvent({\n workflow: result.value,\n original,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor === WorkflowsSecurityPermissionAccessLevel.YES) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const UpdateWorkflowUseCase = UseCase.createImplementation({\n implementation: UpdateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, UpdateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAE7B,SAASC,sCAAsC;AAE/C,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAEC,QAAuB,EAAkB;IACzE,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOrB,MAAM,CAACsB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,GAAG,EAAET,KAAK,CAACS,GAAG;MACdC,IAAI,EAAEV,KAAK,CAACU,IAAI;MAChBC,KAAK,EAAEX,KAAK,CAACW;IACjB,CAAC;IAED,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAItB,yBAAyB,CAAC;MAC1BiB,QAAQ;MACRN,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACf,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIa,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAIvB,wBAAwB,CAAC;MACzBkB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,OAAOjB,MAAM,CAACgC,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACpB,eAAe,CAACqB,cAAc,CACrCzB,oBACJ,CAAC;IAEL,KAAK,MAAM0B,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO3B,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,KAAK1B,sCAAsC,CAAC2B,GAAG,EAAE;QACzE,OAAOrC,MAAM,CAACgC,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAOhC,MAAM,CAACsB,IAAI,CAAC,IAAId,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAACiC,oBAAoB,CAAC;EAC9DC,cAAc,EAAE5B,yBAAyB;EACzC6B,YAAY,EAAE,CAACvC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Result","IdentityContext","EventPublisher","UpdateWorkflowRepository","UpdateWorkflowUseCase","UseCase","WorkflowAfterUpdateEvent","WorkflowBeforeUpdateEvent","WorkflowNotAuthorizedError","WORKFLOWS_PERMISSION","UpdateWorkflowUseCaseImpl","constructor","identityContext","eventPublisher","repository","execute","input","original","hasAccess","ensureManageAccess","isFail","fail","error","workflow","id","app","name","steps","publish","result","value","ok","permissions","getPermissions","permission","editor","createImplementation","implementation","dependencies"],"sources":["UpdateWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport { UpdateWorkflowRepository, UpdateWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterUpdateEvent, WorkflowBeforeUpdateEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass UpdateWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private repository: UpdateWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input, original: UseCase.Input): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflow = {\n id: input.id,\n app: input.app,\n name: input.name,\n steps: input.steps\n };\n\n await this.eventPublisher.publish(\n new WorkflowBeforeUpdateEvent({\n workflow,\n original,\n input\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterUpdateEvent({\n workflow: result.value,\n original,\n input\n })\n );\n\n return Result.ok(result.value);\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const UpdateWorkflowUseCase = UseCase.createImplementation({\n implementation: UpdateWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, UpdateWorkflowRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,eAAe,QAAQ,2CAA2C;AAC3E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,wBAAwB,EAAEC,qBAAqB,IAAIC,OAAO;AACnE,SAASC,wBAAwB,EAAEC,yBAAyB;AAC5D,SAASC,0BAA0B;AACnC,SAASC,oBAAoB;AAG7B,MAAMC,yBAAyB,CAA8B;EACzDC,WAAWA,CACCC,eAA0C,EAC1CC,cAAwC,EACxCC,UAA8C,EACxD;IAAA,KAHUF,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,cAAwC,GAAxCA,cAAwC;IAAA,KACxCC,UAA8C,GAA9CA,UAA8C;EACvD;EAEH,MAAMC,OAAOA,CAACC,KAAoB,EAAEC,QAAuB,EAAkB;IACzE,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACjD,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOpB,MAAM,CAACqB,IAAI,CAACH,SAAS,CAACI,KAAK,CAAC;IACvC;IAEA,MAAMC,QAAQ,GAAG;MACbC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,GAAG,EAAET,KAAK,CAACS,GAAG;MACdC,IAAI,EAAEV,KAAK,CAACU,IAAI;MAChBC,KAAK,EAAEX,KAAK,CAACW;IACjB,CAAC;IAED,MAAM,IAAI,CAACd,cAAc,CAACe,OAAO,CAC7B,IAAIrB,yBAAyB,CAAC;MAC1BgB,QAAQ;MACRN,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACf,UAAU,CAACC,OAAO,CAACC,KAAK,CAAC;IACnD,IAAIa,MAAM,CAACT,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOS,MAAM;IACjB;IAEA,MAAM,IAAI,CAAChB,cAAc,CAACe,OAAO,CAC7B,IAAItB,wBAAwB,CAAC;MACzBiB,QAAQ,EAAEM,MAAM,CAACC,KAAK;MACtBb,QAAQ;MACRD;IACJ,CAAC,CACL,CAAC;IAED,OAAOhB,MAAM,CAAC+B,EAAE,CAACF,MAAM,CAACC,KAAK,CAAC;EAClC;EAEA,MAAcX,kBAAkBA,CAAA,EAAsD;IAClF,MAAMa,WAAW,GACb,MAAM,IAAI,CAACpB,eAAe,CAACqB,cAAc,CACrCxB,oBACJ,CAAC;IAEL,KAAK,MAAMyB,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAIE,UAAU,CAACR,IAAI,KAAK,GAAG,EAAE;QACzB,OAAO1B,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB,CAAC,MAAM,IAAIG,UAAU,CAACC,MAAM,EAAE;QAC1B,OAAOnC,MAAM,CAAC+B,EAAE,CAAC,CAAC;MACtB;IACJ;IAEA,OAAO/B,MAAM,CAACqB,IAAI,CAAC,IAAIb,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;EACtF;AACJ;AAEA,OAAO,MAAMJ,qBAAqB,GAAGC,OAAO,CAAC+B,oBAAoB,CAAC;EAC9DC,cAAc,EAAE3B,yBAAyB;EACzC4B,YAAY,EAAE,CAACrC,eAAe,EAAEC,cAAc,EAAEC,wBAAwB;AAC5E,CAAC,CAAC","ignoreList":[]}
@@ -1,11 +1,26 @@
1
1
  import type { Result } from "@webiny/feature/api";
2
- import type { CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types";
3
- import type { IWorkflowStateRecord } from "../../../domain/workflowState/abstractions.js";
2
+ import type { CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types/index.js";
3
+ import { type IWorkflowStateRecord, WorkflowStateRecordState } from "../../../domain/workflowState/abstractions.js";
4
4
  import type { WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
5
5
  import type { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
6
6
  import type { IMeta } from "../../../types.js";
7
+ export interface IListWorkflowStatesParamsWhere extends CmsEntryListWhere {
8
+ app?: string;
9
+ app_in?: string[];
10
+ targetRevisionId?: string;
11
+ targetRevisionId_in?: string[];
12
+ state?: WorkflowStateRecordState;
13
+ state_in?: WorkflowStateRecordState[];
14
+ workflowId?: string;
15
+ workflowId_in?: string[];
16
+ targetId?: string;
17
+ targetId_in?: string[];
18
+ savedBy?: string;
19
+ createdBy?: string;
20
+ isActive?: boolean;
21
+ }
7
22
  export interface IListWorkflowStatesParams {
8
- where?: CmsEntryListWhere;
23
+ where?: IListWorkflowStatesParamsWhere;
9
24
  sort?: CmsEntryListSort;
10
25
  limit?: number;
11
26
  after?: string;
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","ListWorkflowStatesUseCase","ListWorkflowStatesRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport type { IWorkflowStateRecord } from \"~/domain/workflowState/abstractions.js\";\nimport type { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport type { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport type { IMeta } from \"~/types.js\";\n\nexport interface IListWorkflowStatesParams {\n where?: CmsEntryListWhere;\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string;\n}\n\nexport interface IListWorkflowStatesResponse {\n items: WorkflowState[];\n meta: IMeta;\n}\n\nexport interface IListWorkflowStatesRecordResponse {\n items: IWorkflowStateRecord[];\n meta: IMeta;\n}\n\n/**\n * ListWorkflowStates use case interface\n */\nexport interface IListWorkflowStatesUseCase {\n execute(\n params?: IListWorkflowStatesParams\n ): Promise<Result<IListWorkflowStatesResponse, UseCaseError>>;\n}\n\nexport interface IListWorkflowStatesUseCaseErrors {\n persistence: WorkflowStatePersistenceError;\n}\n\ntype UseCaseError = IListWorkflowStatesUseCaseErrors[keyof IListWorkflowStatesUseCaseErrors];\n\nexport const ListWorkflowStatesUseCase = createAbstraction<IListWorkflowStatesUseCase>(\n \"ListWorkflowStatesUseCase\"\n);\n\nexport namespace ListWorkflowStatesUseCase {\n export type Interface = IListWorkflowStatesUseCase;\n export type Params = IListWorkflowStatesParams;\n export type Response = IListWorkflowStatesResponse;\n export type Return = Promise<Result<IListWorkflowStatesResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * ListWorkflowStates repository interface\n */\nexport interface IListWorkflowStatesRepository {\n execute(\n params?: IListWorkflowStatesParams\n ): Promise<Result<IListWorkflowStatesRecordResponse, RepositoryError>>;\n}\n\nexport interface IListWorkflowStatesRepositoryErrors {\n persistence: WorkflowStatePersistenceError;\n}\n\ntype RepositoryError =\n IListWorkflowStatesRepositoryErrors[keyof IListWorkflowStatesRepositoryErrors];\n\nexport const ListWorkflowStatesRepository = createAbstraction<IListWorkflowStatesRepository>(\n \"ListWorkflowStatesRepository\"\n);\n\nexport namespace ListWorkflowStatesRepository {\n export type Interface = IListWorkflowStatesRepository;\n export type Params = IListWorkflowStatesParams;\n export type Return = Promise<Result<IListWorkflowStatesRecordResponse, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAyBvD;AACA;AACA;;AAaA,OAAO,MAAMC,yBAAyB,GAAGD,iBAAiB,CACtD,2BACJ,CAAC;;AAUD;AACA;AACA;;AAcA,OAAO,MAAME,4BAA4B,GAAGF,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","ListWorkflowStatesUseCase","ListWorkflowStatesRepository"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\nimport {\n type IWorkflowStateRecord,\n WorkflowStateRecordState\n} from \"~/domain/workflowState/abstractions.js\";\nimport type { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport type { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport type { IMeta } from \"~/types.js\";\n\nexport interface IListWorkflowStatesParamsWhere extends CmsEntryListWhere {\n app?: string;\n app_in?: string[];\n targetRevisionId?: string;\n targetRevisionId_in?: string[];\n state?: WorkflowStateRecordState;\n state_in?: WorkflowStateRecordState[];\n workflowId?: string;\n workflowId_in?: string[];\n targetId?: string;\n targetId_in?: string[];\n savedBy?: string;\n createdBy?: string;\n isActive?: boolean;\n}\n\nexport interface IListWorkflowStatesParams {\n where?: IListWorkflowStatesParamsWhere;\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string;\n}\n\nexport interface IListWorkflowStatesResponse {\n items: WorkflowState[];\n meta: IMeta;\n}\n\nexport interface IListWorkflowStatesRecordResponse {\n items: IWorkflowStateRecord[];\n meta: IMeta;\n}\n\n/**\n * ListWorkflowStates use case interface\n */\nexport interface IListWorkflowStatesUseCase {\n execute(\n params?: IListWorkflowStatesParams\n ): Promise<Result<IListWorkflowStatesResponse, UseCaseError>>;\n}\n\nexport interface IListWorkflowStatesUseCaseErrors {\n persistence: WorkflowStatePersistenceError;\n}\n\ntype UseCaseError = IListWorkflowStatesUseCaseErrors[keyof IListWorkflowStatesUseCaseErrors];\n\nexport const ListWorkflowStatesUseCase = createAbstraction<IListWorkflowStatesUseCase>(\n \"ListWorkflowStatesUseCase\"\n);\n\nexport namespace ListWorkflowStatesUseCase {\n export type Interface = IListWorkflowStatesUseCase;\n export type Params = IListWorkflowStatesParams;\n export type Response = IListWorkflowStatesResponse;\n export type Return = Promise<Result<IListWorkflowStatesResponse, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * ListWorkflowStates repository interface\n */\nexport interface IListWorkflowStatesRepository {\n execute(\n params?: IListWorkflowStatesParams\n ): Promise<Result<IListWorkflowStatesRecordResponse, RepositoryError>>;\n}\n\nexport interface IListWorkflowStatesRepositoryErrors {\n persistence: WorkflowStatePersistenceError;\n}\n\ntype RepositoryError =\n IListWorkflowStatesRepositoryErrors[keyof IListWorkflowStatesRepositoryErrors];\n\nexport const ListWorkflowStatesRepository = createAbstraction<IListWorkflowStatesRepository>(\n \"ListWorkflowStatesRepository\"\n);\n\nexport namespace ListWorkflowStatesRepository {\n export type Interface = IListWorkflowStatesRepository;\n export type Params = IListWorkflowStatesParams;\n export type Return = Promise<Result<IListWorkflowStatesRecordResponse, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AA4CvD;AACA;AACA;;AAaA,OAAO,MAAMC,yBAAyB,GAAGD,iBAAiB,CACtD,2BACJ,CAAC;;AAUD;AACA;AACA;;AAcA,OAAO,MAAME,4BAA4B,GAAGF,iBAAiB,CACzD,8BACJ,CAAC","ignoreList":[]}
@@ -2,10 +2,4 @@ import zod from "zod";
2
2
  export declare const approveWorkflowStateValidation: zod.ZodObject<{
3
3
  id: zod.ZodString;
4
4
  comment: zod.ZodOptional<zod.ZodString>;
5
- }, "strip", zod.ZodTypeAny, {
6
- id: string;
7
- comment?: string | undefined;
8
- }, {
9
- id: string;
10
- comment?: string | undefined;
11
- }>;
5
+ }, zod.core.$strip>;
@@ -1,8 +1,4 @@
1
1
  import zod from "zod";
2
2
  export declare const cancelWorkflowStateValidation: zod.ZodObject<{
3
3
  id: zod.ZodString;
4
- }, "strip", zod.ZodTypeAny, {
5
- id: string;
6
- }, {
7
- id: string;
8
- }>;
4
+ }, zod.core.$strip>;
@@ -3,12 +3,4 @@ export declare const createWorkflowStateValidation: zod.ZodObject<{
3
3
  app: zod.ZodString;
4
4
  targetRevisionId: zod.ZodString;
5
5
  title: zod.ZodString;
6
- }, "strip", zod.ZodTypeAny, {
7
- app: string;
8
- title: string;
9
- targetRevisionId: string;
10
- }, {
11
- app: string;
12
- title: string;
13
- targetRevisionId: string;
14
- }>;
6
+ }, zod.core.$strip>;
@@ -2,10 +2,4 @@ import zod from "zod";
2
2
  export declare const deleteWorkflowValidation: zod.ZodObject<{
3
3
  app: zod.ZodString;
4
4
  id: zod.ZodString;
5
- }, "strip", zod.ZodTypeAny, {
6
- app: string;
7
- id: string;
8
- }, {
9
- app: string;
10
- id: string;
11
- }>;
5
+ }, zod.core.$strip>;
@@ -2,10 +2,4 @@ import zod from "zod";
2
2
  export declare const getTargetWorkflowStateValidation: zod.ZodObject<{
3
3
  app: zod.ZodString;
4
4
  targetRevisionId: zod.ZodString;
5
- }, "strip", zod.ZodTypeAny, {
6
- app: string;
7
- targetRevisionId: string;
8
- }, {
9
- app: string;
10
- targetRevisionId: string;
11
- }>;
5
+ }, zod.core.$strip>;
@@ -2,10 +2,4 @@ import zod from "zod";
2
2
  export declare const getWorkflowValidation: zod.ZodObject<{
3
3
  app: zod.ZodString;
4
4
  id: zod.ZodString;
5
- }, "strip", zod.ZodTypeAny, {
6
- app: string;
7
- id: string;
8
- }, {
9
- app: string;
10
- id: string;
11
- }>;
5
+ }, zod.core.$strip>;
@@ -1,8 +1,4 @@
1
1
  import zod from "zod";
2
2
  export declare const getWorkflowStateValidation: zod.ZodObject<{
3
3
  id: zod.ZodString;
4
- }, "strip", zod.ZodTypeAny, {
5
- id: string;
6
- }, {
7
- id: string;
8
- }>;
4
+ }, zod.core.$strip>;
@@ -3,106 +3,24 @@ import { WorkflowStateRecordState } from "../../domain/workflowState/abstraction
3
3
  export declare const listWorkflowStatesValidation: zod.ZodOptional<zod.ZodObject<{
4
4
  where: zod.ZodOptional<zod.ZodObject<{
5
5
  app: zod.ZodOptional<zod.ZodString>;
6
- app_in: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
6
+ app_in: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
7
7
  workflowId: zod.ZodOptional<zod.ZodString>;
8
- workflowId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
8
+ workflowId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9
9
  targetId: zod.ZodOptional<zod.ZodString>;
10
- targetId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
10
+ targetId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
11
11
  targetRevisionId: zod.ZodOptional<zod.ZodString>;
12
- targetRevisionId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
13
- state: zod.ZodOptional<zod.ZodNativeEnum<typeof WorkflowStateRecordState>>;
14
- state_in: zod.ZodOptional<zod.ZodArray<zod.ZodNativeEnum<typeof WorkflowStateRecordState>, "many">>;
15
- createdOn_gte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, unknown>;
16
- createdOn_lte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, unknown>;
17
- savedOn_gte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, unknown>;
18
- savedOn_lte: zod.ZodEffects<zod.ZodOptional<zod.ZodDate>, Date | undefined, unknown>;
12
+ targetRevisionId_in: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
13
+ state: zod.ZodOptional<zod.ZodEnum<typeof WorkflowStateRecordState>>;
14
+ state_in: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<typeof WorkflowStateRecordState>>>;
15
+ createdOn_gte: zod.ZodPipe<zod.ZodTransform<Date | undefined, unknown>, zod.ZodOptional<zod.ZodDate>>;
16
+ createdOn_lte: zod.ZodPipe<zod.ZodTransform<Date | undefined, unknown>, zod.ZodOptional<zod.ZodDate>>;
17
+ savedOn_gte: zod.ZodPipe<zod.ZodTransform<Date | undefined, unknown>, zod.ZodOptional<zod.ZodDate>>;
18
+ savedOn_lte: zod.ZodPipe<zod.ZodTransform<Date | undefined, unknown>, zod.ZodOptional<zod.ZodDate>>;
19
19
  createdBy: zod.ZodOptional<zod.ZodString>;
20
20
  savedBy: zod.ZodOptional<zod.ZodString>;
21
21
  isActive: zod.ZodOptional<zod.ZodBoolean>;
22
- }, "strip", zod.ZodTypeAny, {
23
- app?: string | undefined;
24
- savedBy?: string | undefined;
25
- createdBy?: string | undefined;
26
- workflowId?: string | undefined;
27
- targetId?: string | undefined;
28
- targetRevisionId?: string | undefined;
29
- isActive?: boolean | undefined;
30
- state?: WorkflowStateRecordState | undefined;
31
- app_in?: string[] | undefined;
32
- workflowId_in?: string[] | undefined;
33
- targetId_in?: string[] | undefined;
34
- targetRevisionId_in?: string[] | undefined;
35
- state_in?: WorkflowStateRecordState[] | undefined;
36
- createdOn_gte?: Date | undefined;
37
- createdOn_lte?: Date | undefined;
38
- savedOn_gte?: Date | undefined;
39
- savedOn_lte?: Date | undefined;
40
- }, {
41
- app?: string | undefined;
42
- savedBy?: string | undefined;
43
- createdBy?: string | undefined;
44
- workflowId?: string | undefined;
45
- targetId?: string | undefined;
46
- targetRevisionId?: string | undefined;
47
- isActive?: boolean | undefined;
48
- state?: WorkflowStateRecordState | undefined;
49
- app_in?: string[] | undefined;
50
- workflowId_in?: string[] | undefined;
51
- targetId_in?: string[] | undefined;
52
- targetRevisionId_in?: string[] | undefined;
53
- state_in?: WorkflowStateRecordState[] | undefined;
54
- createdOn_gte?: unknown;
55
- createdOn_lte?: unknown;
56
- savedOn_gte?: unknown;
57
- savedOn_lte?: unknown;
58
- }>>;
22
+ }, zod.core.$strip>>;
59
23
  limit: zod.ZodOptional<zod.ZodNumber>;
60
- sort: zod.ZodOptional<zod.ZodArray<zod.ZodEffects<zod.ZodString, `${string}_DESC` | `${string}_ASC`, string>, "many">>;
61
- after: zod.ZodEffects<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodString>>>, string | undefined, string | null | undefined>;
62
- }, "strip", zod.ZodTypeAny, {
63
- limit?: number | undefined;
64
- sort?: (`${string}_DESC` | `${string}_ASC`)[] | undefined;
65
- after?: string | undefined;
66
- where?: {
67
- app?: string | undefined;
68
- savedBy?: string | undefined;
69
- createdBy?: string | undefined;
70
- workflowId?: string | undefined;
71
- targetId?: string | undefined;
72
- targetRevisionId?: string | undefined;
73
- isActive?: boolean | undefined;
74
- state?: WorkflowStateRecordState | undefined;
75
- app_in?: string[] | undefined;
76
- workflowId_in?: string[] | undefined;
77
- targetId_in?: string[] | undefined;
78
- targetRevisionId_in?: string[] | undefined;
79
- state_in?: WorkflowStateRecordState[] | undefined;
80
- createdOn_gte?: Date | undefined;
81
- createdOn_lte?: Date | undefined;
82
- savedOn_gte?: Date | undefined;
83
- savedOn_lte?: Date | undefined;
84
- } | undefined;
85
- }, {
86
- limit?: number | undefined;
87
- sort?: string[] | undefined;
88
- after?: string | null | undefined;
89
- where?: {
90
- app?: string | undefined;
91
- savedBy?: string | undefined;
92
- createdBy?: string | undefined;
93
- workflowId?: string | undefined;
94
- targetId?: string | undefined;
95
- targetRevisionId?: string | undefined;
96
- isActive?: boolean | undefined;
97
- state?: WorkflowStateRecordState | undefined;
98
- app_in?: string[] | undefined;
99
- workflowId_in?: string[] | undefined;
100
- targetId_in?: string[] | undefined;
101
- targetRevisionId_in?: string[] | undefined;
102
- state_in?: WorkflowStateRecordState[] | undefined;
103
- createdOn_gte?: unknown;
104
- createdOn_lte?: unknown;
105
- savedOn_gte?: unknown;
106
- savedOn_lte?: unknown;
107
- } | undefined;
108
- }>>;
24
+ sort: zod.ZodOptional<zod.ZodArray<zod.ZodPipe<zod.ZodString, zod.ZodTransform<`${string}_DESC` | `${string}_ASC`, string>>>>;
25
+ after: zod.ZodPipe<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodString>>>, zod.ZodTransform<string | undefined, string | null | undefined>>;
26
+ }, zod.core.$strip>>;