@webiny/api-workflows 6.4.11 → 6.6.0-alpha.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.
Files changed (104) hide show
  1. package/WorkflowsFeature.d.ts +5 -0
  2. package/WorkflowsFeature.js +70 -0
  3. package/WorkflowsFeature.js.map +1 -0
  4. package/WorkflowsSchemaFactory.d.ts +8 -0
  5. package/WorkflowsSchemaFactory.js +19 -0
  6. package/WorkflowsSchemaFactory.js.map +1 -0
  7. package/domain/workflow/abstractions.d.ts +13 -3
  8. package/domain/workflow/abstractions.js +2 -2
  9. package/domain/workflow/abstractions.js.map +1 -1
  10. package/domain/workflowState/WorkflowState.d.ts +1 -0
  11. package/domain/workflowState/WorkflowState.js +3 -0
  12. package/domain/workflowState/WorkflowState.js.map +1 -1
  13. package/domain/workflowState/WorkflowStateMapper.js +4 -2
  14. package/domain/workflowState/WorkflowStateMapper.js.map +1 -1
  15. package/domain/workflowState/abstractions.d.ts +16 -3
  16. package/domain/workflowState/abstractions.js +2 -2
  17. package/domain/workflowState/abstractions.js.map +1 -1
  18. package/domain/workflowState/stateModel.js +1 -0
  19. package/domain/workflowState/stateModel.js.map +1 -1
  20. package/features/WorkflowModelProviders.d.ts +34 -0
  21. package/features/WorkflowModelProviders.js +40 -0
  22. package/features/WorkflowModelProviders.js.map +1 -0
  23. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.d.ts +3 -3
  24. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +6 -5
  25. package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -1
  26. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.d.ts +3 -3
  27. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +6 -5
  28. package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -1
  29. package/features/workflow/GetWorkflow/GetWorkflowRepository.d.ts +3 -3
  30. package/features/workflow/GetWorkflow/GetWorkflowRepository.js +6 -5
  31. package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -1
  32. package/features/workflow/ListWorkflows/ListWorkflowsRepository.d.ts +3 -3
  33. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +7 -6
  34. package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -1
  35. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.d.ts +3 -3
  36. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +6 -5
  37. package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js.map +1 -1
  38. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.d.ts +3 -3
  39. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +6 -5
  40. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -1
  41. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.d.ts +3 -1
  42. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +10 -3
  43. package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -1
  44. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.d.ts +9 -0
  45. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js +13 -0
  46. package/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js.map +1 -0
  47. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.d.ts +13 -0
  48. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js +5 -0
  49. package/features/workflowState/CreateWorkflowState/WorkflowStateContextProvider.js.map +1 -0
  50. package/features/workflowState/CreateWorkflowState/feature.js +2 -0
  51. package/features/workflowState/CreateWorkflowState/feature.js.map +1 -1
  52. package/features/workflowState/CreateWorkflowState/index.d.ts +1 -0
  53. package/features/workflowState/CreateWorkflowState/index.js +1 -0
  54. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +0 -1
  55. package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -1
  56. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.d.ts +3 -3
  57. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +6 -5
  58. package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -1
  59. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.d.ts +3 -3
  60. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +6 -5
  61. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map +1 -1
  62. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +0 -1
  63. package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -1
  64. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.d.ts +3 -3
  65. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +6 -5
  66. package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -1
  67. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +0 -1
  68. package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -1
  69. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.d.ts +9 -0
  70. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js +13 -0
  71. package/features/workflowState/ListWorkflowStates/DefaultWorkflowStateFilter.js.map +1 -0
  72. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.d.ts +3 -3
  73. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +7 -6
  74. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -1
  75. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.d.ts +3 -1
  76. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +38 -8
  77. package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -1
  78. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.d.ts +8 -0
  79. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js +5 -0
  80. package/features/workflowState/ListWorkflowStates/WorkflowStateFilter.js.map +1 -0
  81. package/features/workflowState/ListWorkflowStates/feature.js +2 -0
  82. package/features/workflowState/ListWorkflowStates/feature.js.map +1 -1
  83. package/features/workflowState/ListWorkflowStates/index.d.ts +1 -0
  84. package/features/workflowState/ListWorkflowStates/index.js +1 -0
  85. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.d.ts +3 -3
  86. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +7 -6
  87. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -1
  88. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +0 -1
  89. package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -1
  90. package/graphql/notifications.d.ts +2 -2
  91. package/graphql/notifications.js +44 -43
  92. package/graphql/notifications.js.map +1 -1
  93. package/graphql/validation/listWorkflowStates.d.ts +1 -1
  94. package/graphql/validation/listWorkflows.d.ts +1 -1
  95. package/graphql/workflowState.d.ts +2 -2
  96. package/graphql/workflowState.js +378 -306
  97. package/graphql/workflowState.js.map +1 -1
  98. package/graphql/workflows.d.ts +2 -2
  99. package/graphql/workflows.js +200 -178
  100. package/graphql/workflows.js.map +1 -1
  101. package/index.d.ts +1 -2
  102. package/index.js +1 -97
  103. package/package.json +15 -15
  104. package/index.js.map +0 -1
@@ -1,16 +1,17 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
3
3
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
4
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
4
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
5
5
  import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
6
6
  import { CreateWorkflowRepository } from "./abstractions.js";
7
7
  class CreateWorkflowRepositoryImpl {
8
- constructor(createEntry, model, mapper){
8
+ constructor(createEntry, modelProvider, mapper){
9
9
  this.createEntry = createEntry;
10
- this.model = model;
10
+ this.modelProvider = modelProvider;
11
11
  this.mapper = mapper;
12
12
  }
13
13
  async execute(input) {
14
+ const model = await this.modelProvider.get();
14
15
  const { id } = parseIdentifier(input.id);
15
16
  const values = this.mapper.toCmsEntry({
16
17
  id,
@@ -19,7 +20,7 @@ class CreateWorkflowRepositoryImpl {
19
20
  steps: input.steps
20
21
  });
21
22
  try {
22
- const createResult = await this.createEntry.execute(this.model, {
23
+ const createResult = await this.createEntry.execute(model, {
23
24
  id,
24
25
  values
25
26
  });
@@ -37,7 +38,7 @@ const CreateWorkflowRepository_CreateWorkflowRepository = CreateWorkflowReposito
37
38
  implementation: CreateWorkflowRepositoryImpl,
38
39
  dependencies: [
39
40
  CreateEntryUseCase,
40
- WorkflowModel,
41
+ WorkflowModelProvider,
41
42
  WorkflowMapper
42
43
  ]
43
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflow/CreateWorkflow/CreateWorkflowRepository.js","sources":["../../../../src/features/workflow/CreateWorkflow/CreateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { CreateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n try {\n const createResult = await this.createEntry.execute<IWorkflow>(this.model, {\n id,\n values\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(createResult.error));\n }\n\n return Result.ok({ ...values, id });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error));\n }\n }\n}\n\nexport const CreateWorkflowRepository = Repository.createImplementation({\n implementation: CreateWorkflowRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["CreateWorkflowRepositoryImpl","createEntry","model","mapper","input","id","parseIdentifier","values","createResult","Result","WorkflowPersistenceError","error","CreateWorkflowRepository","Repository","CreateEntryUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBF,MAAM,EAAE;QAEvC,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKD,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QACA,IAAI;YACA,MAAMI,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAE;gBACvEH;gBACAE;YACJ;YAEA,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBAAE,GAAGF,MAAM;gBAAEF;YAAG;QACrC,EAAE,OAAOM,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBb;IAChB,cAAc;QAACc;QAAoBC;QAAeC;KAAe;AACrE"}
1
+ {"version":3,"file":"features/workflow/CreateWorkflow/CreateWorkflowRepository.js","sources":["../../../../src/features/workflow/CreateWorkflow/CreateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { CreateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n const model = await this.modelProvider.get();\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n try {\n const createResult = await this.createEntry.execute<IWorkflow>(model, {\n id,\n values\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(createResult.error));\n }\n\n return Result.ok({ ...values, id });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error));\n }\n }\n}\n\nexport const CreateWorkflowRepository = Repository.createImplementation({\n implementation: CreateWorkflowRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowModelProvider, WorkflowMapper]\n});\n"],"names":["CreateWorkflowRepositoryImpl","createEntry","modelProvider","mapper","input","model","id","parseIdentifier","values","createResult","Result","WorkflowPersistenceError","error","CreateWorkflowRepository","Repository","CreateEntryUseCase","WorkflowModelProvider","WorkflowMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAA8C,EAC9CC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBH,MAAM,EAAE;QAEvC,MAAMI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKF,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QACA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAYJ,OAAO;gBAClEC;gBACAE;YACJ;YAEA,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBAAE,GAAGF,MAAM;gBAAEF;YAAG;QACrC,EAAE,OAAOM,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAuBC;KAAe;AAC7E"}
@@ -1,10 +1,10 @@
1
1
  import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
2
- import { WorkflowModel } from "../../../domain/workflow/abstractions.js";
2
+ import { WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
3
3
  import { DeleteWorkflowRepository as Repository } from "./abstractions.js";
4
4
  declare class DeleteWorkflowRepositoryImpl implements Repository.Interface {
5
5
  private deleteEntry;
6
- private model;
7
- constructor(deleteEntry: DeleteEntryUseCase.Interface, model: WorkflowModel.Interface);
6
+ private modelProvider;
7
+ constructor(deleteEntry: DeleteEntryUseCase.Interface, modelProvider: WorkflowModelProvider.Interface);
8
8
  execute(input: Repository.Params): Repository.Return;
9
9
  }
10
10
  export declare const DeleteWorkflowRepository: typeof DeleteWorkflowRepositoryImpl & {
@@ -1,21 +1,22 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { createIdentifier } from "@webiny/utils";
3
3
  import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
4
- import { WorkflowModel } from "../../../domain/workflow/abstractions.js";
4
+ import { WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
5
5
  import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
6
6
  import { DeleteWorkflowRepository } from "./abstractions.js";
7
7
  class DeleteWorkflowRepositoryImpl {
8
- constructor(deleteEntry, model){
8
+ constructor(deleteEntry, modelProvider){
9
9
  this.deleteEntry = deleteEntry;
10
- this.model = model;
10
+ this.modelProvider = modelProvider;
11
11
  }
12
12
  async execute(input) {
13
+ const model = await this.modelProvider.get();
13
14
  const workflowId = createIdentifier({
14
15
  id: input.id,
15
16
  version: 1
16
17
  });
17
18
  try {
18
- const result = await this.deleteEntry.execute(this.model, workflowId);
19
+ const result = await this.deleteEntry.execute(model, workflowId);
19
20
  if (result.isFail()) return Result.fail(new WorkflowPersistenceError(result.error));
20
21
  return Result.ok();
21
22
  } catch (error) {
@@ -27,7 +28,7 @@ const DeleteWorkflowRepository_DeleteWorkflowRepository = DeleteWorkflowReposito
27
28
  implementation: DeleteWorkflowRepositoryImpl,
28
29
  dependencies: [
29
30
  DeleteEntryUseCase,
30
- WorkflowModel
31
+ WorkflowModelProvider
31
32
  ]
32
33
  });
33
34
  export { DeleteWorkflowRepository_DeleteWorkflowRepository as DeleteWorkflowRepository };
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js","sources":["../../../../src/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { DeleteWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass DeleteWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private model: WorkflowModel.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const workflowId = createIdentifier({\n id: input.id,\n version: 1\n });\n\n try {\n const result = await this.deleteEntry.execute(this.model, workflowId);\n\n if (result.isFail()) {\n return Result.fail(new WorkflowPersistenceError(result.error));\n }\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const DeleteWorkflowRepository = Repository.createImplementation({\n implementation: DeleteWorkflowRepositoryImpl,\n dependencies: [DeleteEntryUseCase, WorkflowModel]\n});\n"],"names":["DeleteWorkflowRepositoryImpl","deleteEntry","model","input","workflowId","createIdentifier","result","Result","WorkflowPersistenceError","error","DeleteWorkflowRepository","Repository","DeleteEntryUseCase","WorkflowModel"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,CACxC;aAFUD,WAAW,GAAXA;aACAC,KAAK,GAALA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,aAAaC,iBAAiB;YAChC,IAAIF,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,IAAI;YACA,MAAMG,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAEF;YAE1D,IAAIE,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,OAAO,KAAK;YAGhE,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOE,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBX;IAChB,cAAc;QAACY;QAAoBC;KAAc;AACrD"}
1
+ {"version":3,"file":"features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js","sources":["../../../../src/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { WorkflowModelProvider } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { DeleteWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass DeleteWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private deleteEntry: DeleteEntryUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const workflowId = createIdentifier({\n id: input.id,\n version: 1\n });\n\n try {\n const result = await this.deleteEntry.execute(model, workflowId);\n\n if (result.isFail()) {\n return Result.fail(new WorkflowPersistenceError(result.error));\n }\n\n return Result.ok();\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const DeleteWorkflowRepository = Repository.createImplementation({\n implementation: DeleteWorkflowRepositoryImpl,\n dependencies: [DeleteEntryUseCase, WorkflowModelProvider]\n});\n"],"names":["DeleteWorkflowRepositoryImpl","deleteEntry","modelProvider","input","model","workflowId","createIdentifier","result","Result","WorkflowPersistenceError","error","DeleteWorkflowRepository","Repository","DeleteEntryUseCase","WorkflowModelProvider"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAA8C,CACxD;aAFUD,WAAW,GAAXA;aACAC,aAAa,GAAbA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,aAAaC,iBAAiB;YAChC,IAAIH,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,IAAI;YACA,MAAMI,SAAS,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACH,OAAOC;YAErD,IAAIE,OAAO,MAAM,IACb,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,OAAO,KAAK;YAGhE,OAAOC,OAAO,EAAE;QACpB,EAAE,OAAOE,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;KAAsB;AAC7D"}
@@ -1,11 +1,11 @@
1
1
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
2
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
2
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
3
3
  import { GetWorkflowRepository as Repository } from "./abstractions.js";
4
4
  declare class GetWorkflowRepositoryImpl implements Repository.Interface {
5
5
  private getEntryById;
6
- private model;
6
+ private modelProvider;
7
7
  private mapper;
8
- constructor(getEntryById: GetEntryByIdUseCase.Interface, model: WorkflowModel.Interface, mapper: WorkflowMapper.Interface);
8
+ constructor(getEntryById: GetEntryByIdUseCase.Interface, modelProvider: WorkflowModelProvider.Interface, mapper: WorkflowMapper.Interface);
9
9
  execute(input: Repository.Params): Repository.Return;
10
10
  }
11
11
  export declare const GetWorkflowRepository: typeof GetWorkflowRepositoryImpl & {
@@ -1,21 +1,22 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { createIdentifier } from "@webiny/utils";
3
3
  import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
4
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
4
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
5
5
  import { WorkflowNotFoundError, WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
6
6
  import { GetWorkflowRepository } from "./abstractions.js";
7
7
  class GetWorkflowRepositoryImpl {
8
- constructor(getEntryById, model, mapper){
8
+ constructor(getEntryById, modelProvider, mapper){
9
9
  this.getEntryById = getEntryById;
10
- this.model = model;
10
+ this.modelProvider = modelProvider;
11
11
  this.mapper = mapper;
12
12
  }
13
13
  async execute(input) {
14
+ const model = await this.modelProvider.get();
14
15
  const id = createIdentifier({
15
16
  id: input.id,
16
17
  version: 1
17
18
  });
18
- const entryResult = await this.getEntryById.execute(this.model, id);
19
+ const entryResult = await this.getEntryById.execute(model, id);
19
20
  if (entryResult.isFail()) {
20
21
  if ("Cms/Entry/NotFound" === entryResult.error.code) return Result.fail(new WorkflowNotFoundError({
21
22
  id: input.id,
@@ -36,7 +37,7 @@ const GetWorkflowRepository_GetWorkflowRepository = GetWorkflowRepository.create
36
37
  implementation: GetWorkflowRepositoryImpl,
37
38
  dependencies: [
38
39
  GetEntryByIdUseCase,
39
- WorkflowModel,
40
+ WorkflowModelProvider,
40
41
  WorkflowMapper
41
42
  ]
42
43
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowRepository.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowNotFoundError, WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { GetWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const id = createIdentifier({\n id: input.id,\n version: 1\n });\n\n const entryResult = await this.getEntryById.execute<IWorkflow>(this.model, id);\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n return Result.fail(new WorkflowPersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n // Check if the app matches\n if (entry.values.app !== input.app) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = this.mapper.fromCmsEntry(entry);\n return Result.ok(workflow);\n }\n}\n\nexport const GetWorkflowRepository = Repository.createImplementation({\n implementation: GetWorkflowRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["GetWorkflowRepositoryImpl","getEntryById","model","mapper","input","id","createIdentifier","entryResult","Result","WorkflowNotFoundError","WorkflowPersistenceError","entry","workflow","GetWorkflowRepository","Repository","GetEntryByIdUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,YAAY,GAAZA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,KAAKC,iBAAiB;YACxB,IAAIF,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,MAAMG,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAEF;QAE3E,IAAIE,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CACd,IAAIC,sBAAsB;gBACtB,IAAIL,MAAM,EAAE;gBACZ,KAAKA,MAAM,GAAG;YAClB;YAIR,OAAOI,OAAO,IAAI,CAAC,IAAIE,yBAAyBH,YAAY,KAAK;QACrE;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAG/B,IAAII,MAAM,MAAM,CAAC,GAAG,KAAKP,MAAM,GAAG,EAC9B,OAAOI,OAAO,IAAI,CACd,IAAIC,sBAAsB;YACtB,IAAIL,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMQ,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QAC1C,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA+B,CAAC;IACjE,gBAAgBd;IAChB,cAAc;QAACe;QAAqBC;QAAeC;KAAe;AACtE"}
1
+ {"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowRepository.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowNotFoundError, WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { GetWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const id = createIdentifier({\n id: input.id,\n version: 1\n });\n\n const entryResult = await this.getEntryById.execute<IWorkflow>(model, id);\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n return Result.fail(new WorkflowPersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n // Check if the app matches\n if (entry.values.app !== input.app) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = this.mapper.fromCmsEntry(entry);\n return Result.ok(workflow);\n }\n}\n\nexport const GetWorkflowRepository = Repository.createImplementation({\n implementation: GetWorkflowRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowModelProvider, WorkflowMapper]\n});\n"],"names":["GetWorkflowRepositoryImpl","getEntryById","modelProvider","mapper","input","model","id","createIdentifier","entryResult","Result","WorkflowNotFoundError","WorkflowPersistenceError","entry","workflow","GetWorkflowRepository","Repository","GetEntryByIdUseCase","WorkflowModelProvider","WorkflowMapper"],"mappings":";;;;;;AAWA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,aAA8C,EAC9CC,MAAgC,CAC1C;aAHUF,YAAY,GAAZA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,KAAKC,iBAAiB;YACxB,IAAIH,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,MAAMI,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAYH,OAAOC;QAEtE,IAAIE,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CACd,IAAIC,sBAAsB;gBACtB,IAAIN,MAAM,EAAE;gBACZ,KAAKA,MAAM,GAAG;YAClB;YAIR,OAAOK,OAAO,IAAI,CAAC,IAAIE,yBAAyBH,YAAY,KAAK;QACrE;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAG/B,IAAII,MAAM,MAAM,CAAC,GAAG,KAAKR,MAAM,GAAG,EAC9B,OAAOK,OAAO,IAAI,CACd,IAAIC,sBAAsB;YACtB,IAAIN,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMS,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QAC1C,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA+B,CAAC;IACjE,gBAAgBf;IAChB,cAAc;QAACgB;QAAqBC;QAAuBC;KAAe;AAC9E"}
@@ -1,13 +1,13 @@
1
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
1
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
2
2
  import { ListWorkflowsRepository as Repository } from "./abstractions.js";
3
3
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
4
4
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
5
5
  declare class ListWorkflowsRepositoryImpl implements Repository.Interface {
6
6
  private listLatestEntries;
7
- private model;
7
+ private modelProvider;
8
8
  private mapper;
9
9
  private cmsWhereMapper;
10
- constructor(listLatestEntries: ListLatestEntriesUseCase.Interface, model: WorkflowModel.Interface, mapper: WorkflowMapper.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
10
+ constructor(listLatestEntries: ListLatestEntriesUseCase.Interface, modelProvider: WorkflowModelProvider.Interface, mapper: WorkflowMapper.Interface, cmsWhereMapper: CmsWhereMapper.Interface);
11
11
  execute(input: Repository.Params): Repository.Return;
12
12
  private convertListWhere;
13
13
  private convertWorkflowId;
@@ -1,23 +1,24 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { createIdentifier, parseIdentifier } from "@webiny/utils";
3
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
3
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
4
4
  import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
5
5
  import { ListWorkflowsRepository } from "./abstractions.js";
6
6
  import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
7
7
  import { CmsWhereMapper } from "@webiny/api-headless-cms";
8
8
  class ListWorkflowsRepositoryImpl {
9
- constructor(listLatestEntries, model, mapper, cmsWhereMapper){
9
+ constructor(listLatestEntries, modelProvider, mapper, cmsWhereMapper){
10
10
  this.listLatestEntries = listLatestEntries;
11
- this.model = model;
11
+ this.modelProvider = modelProvider;
12
12
  this.mapper = mapper;
13
13
  this.cmsWhereMapper = cmsWhereMapper;
14
14
  }
15
15
  async execute(input) {
16
+ const model = await this.modelProvider.get();
16
17
  const where = this.cmsWhereMapper.map({
17
18
  input: this.convertListWhere(input.where),
18
- fields: this.model.fields
19
+ fields: model.fields
19
20
  });
20
- const listResult = await this.listLatestEntries.execute(this.model, {
21
+ const listResult = await this.listLatestEntries.execute(model, {
21
22
  sort: [
22
23
  "createdOn_ASC"
23
24
  ],
@@ -52,7 +53,7 @@ const ListWorkflowsRepository_ListWorkflowsRepository = ListWorkflowsRepository.
52
53
  implementation: ListWorkflowsRepositoryImpl,
53
54
  dependencies: [
54
55
  ListLatestEntriesUseCase,
55
- WorkflowModel,
56
+ WorkflowModelProvider,
56
57
  WorkflowMapper,
57
58
  CmsWhereMapper
58
59
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsRepository.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { type IListWorkflowsWhere, ListWorkflowsRepository as Repository } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowsRepositoryImpl implements Repository.Interface {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const where = this.cmsWhereMapper.map({\n input: this.convertListWhere(input.where),\n fields: this.model.fields\n });\n\n const listResult = await this.listLatestEntries.execute<IWorkflow>(this.model, {\n sort: [\"createdOn_ASC\"],\n limit: 100,\n ...input,\n where\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const items = entries.map(entry => this.mapper.fromCmsEntry(entry));\n\n return Result.ok({\n items,\n meta\n });\n }\n\n private convertListWhere(input?: IListWorkflowsWhere): IListWorkflowsWhere | undefined {\n if (!input || Object.keys(input).length === 0) {\n return undefined;\n }\n const where = structuredClone(input);\n if (where.id) {\n where.id = this.convertWorkflowId(where.id);\n }\n if (where.id_in) {\n where.id_in = where.id_in.map(id => this.convertWorkflowId(id));\n }\n return where;\n }\n\n private convertWorkflowId(input: string): string {\n const { id } = parseIdentifier(input);\n return createIdentifier({\n id,\n version: 1\n });\n }\n}\n\nexport const ListWorkflowsRepository = Repository.createImplementation({\n implementation: ListWorkflowsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, WorkflowModel, WorkflowMapper, CmsWhereMapper]\n});\n"],"names":["ListWorkflowsRepositoryImpl","listLatestEntries","model","mapper","cmsWhereMapper","input","where","listResult","Result","WorkflowPersistenceError","entries","meta","items","entry","Object","structuredClone","id","parseIdentifier","createIdentifier","ListWorkflowsRepository","Repository","ListLatestEntriesUseCase","WorkflowModel","WorkflowMapper","CmsWhereMapper"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,KAA8B,EAC9BC,MAAgC,EAChCC,cAAwC,CAClD;aAJUH,iBAAiB,GAAjBA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAClC,OAAO,IAAI,CAAC,gBAAgB,CAACD,MAAM,KAAK;YACxC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;QAC7B;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAE;YAC3E,MAAM;gBAAC;aAAgB;YACvB,OAAO;YACP,GAAGF,KAAK;YACRC;QACJ;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,WAAW,KAAK;QAGpE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE5D,OAAOL,OAAO,EAAE,CAAC;YACbI;YACAD;QACJ;IACJ;IAEQ,iBAAiBN,KAA2B,EAAmC;QACnF,IAAI,CAACA,SAASS,AAA8B,MAA9BA,OAAO,IAAI,CAACT,OAAO,MAAM,EACnC;QAEJ,MAAMC,QAAQS,gBAAgBV;QAC9B,IAAIC,MAAM,EAAE,EACRA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAACA,MAAM,EAAE;QAE9C,IAAIA,MAAM,KAAK,EACXA,MAAM,KAAK,GAAGA,MAAM,KAAK,CAAC,GAAG,CAACU,CAAAA,KAAM,IAAI,CAAC,iBAAiB,CAACA;QAE/D,OAAOV;IACX;IAEQ,kBAAkBD,KAAa,EAAU;QAC7C,MAAM,EAAEW,EAAE,EAAE,GAAGC,gBAAgBZ;QAC/B,OAAOa,iBAAiB;YACpBF;YACA,SAAS;QACb;IACJ;AACJ;AAEO,MAAMG,kDAA0BC,wBAAAA,oBAA+B,CAAC;IACnE,gBAAgBpB;IAChB,cAAc;QAACqB;QAA0BC;QAAeC;QAAgBC;KAAe;AAC3F"}
1
+ {"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsRepository.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { type IListWorkflowsWhere, ListWorkflowsRepository as Repository } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowsRepositoryImpl implements Repository.Interface {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const model = await this.modelProvider.get();\n const where = this.cmsWhereMapper.map({\n input: this.convertListWhere(input.where),\n fields: model.fields\n });\n\n const listResult = await this.listLatestEntries.execute<IWorkflow>(model, {\n sort: [\"createdOn_ASC\"],\n limit: 100,\n ...input,\n where\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const items = entries.map(entry => this.mapper.fromCmsEntry(entry));\n\n return Result.ok({\n items,\n meta\n });\n }\n\n private convertListWhere(input?: IListWorkflowsWhere): IListWorkflowsWhere | undefined {\n if (!input || Object.keys(input).length === 0) {\n return undefined;\n }\n const where = structuredClone(input);\n if (where.id) {\n where.id = this.convertWorkflowId(where.id);\n }\n if (where.id_in) {\n where.id_in = where.id_in.map(id => this.convertWorkflowId(id));\n }\n return where;\n }\n\n private convertWorkflowId(input: string): string {\n const { id } = parseIdentifier(input);\n return createIdentifier({\n id,\n version: 1\n });\n }\n}\n\nexport const ListWorkflowsRepository = Repository.createImplementation({\n implementation: ListWorkflowsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, WorkflowModelProvider, WorkflowMapper, CmsWhereMapper]\n});\n"],"names":["ListWorkflowsRepositoryImpl","listLatestEntries","modelProvider","mapper","cmsWhereMapper","input","model","where","listResult","Result","WorkflowPersistenceError","entries","meta","items","entry","Object","structuredClone","id","parseIdentifier","createIdentifier","ListWorkflowsRepository","Repository","ListLatestEntriesUseCase","WorkflowModelProvider","WorkflowMapper","CmsWhereMapper"],"mappings":";;;;;;;AAYA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,aAA8C,EAC9CC,MAAgC,EAChCC,cAAwC,CAClD;aAJUH,iBAAiB,GAAjBA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAMC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAClC,OAAO,IAAI,CAAC,gBAAgB,CAACF,MAAM,KAAK;YACxC,QAAQC,MAAM,MAAM;QACxB;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAYF,OAAO;YACtE,MAAM;gBAAC;aAAgB;YACvB,OAAO;YACP,GAAGD,KAAK;YACRE;QACJ;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,WAAW,KAAK;QAGpE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE5D,OAAOL,OAAO,EAAE,CAAC;YACbI;YACAD;QACJ;IACJ;IAEQ,iBAAiBP,KAA2B,EAAmC;QACnF,IAAI,CAACA,SAASU,AAA8B,MAA9BA,OAAO,IAAI,CAACV,OAAO,MAAM,EACnC;QAEJ,MAAME,QAAQS,gBAAgBX;QAC9B,IAAIE,MAAM,EAAE,EACRA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAACA,MAAM,EAAE;QAE9C,IAAIA,MAAM,KAAK,EACXA,MAAM,KAAK,GAAGA,MAAM,KAAK,CAAC,GAAG,CAACU,CAAAA,KAAM,IAAI,CAAC,iBAAiB,CAACA;QAE/D,OAAOV;IACX;IAEQ,kBAAkBF,KAAa,EAAU;QAC7C,MAAM,EAAEY,EAAE,EAAE,GAAGC,gBAAgBb;QAC/B,OAAOc,iBAAiB;YACpBF;YACA,SAAS;QACb;IACJ;AACJ;AAEO,MAAMG,kDAA0BC,wBAAAA,oBAA+B,CAAC;IACnE,gBAAgBrB;IAChB,cAAc;QAACsB;QAA0BC;QAAuBC;QAAgBC;KAAe;AACnG"}
@@ -1,12 +1,12 @@
1
1
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
2
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
2
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
3
3
  import type { IUpdateWorkflowInput } from "./abstractions.js";
4
4
  import { UpdateWorkflowRepository as Repository } from "./abstractions.js";
5
5
  declare class UpdateWorkflowRepositoryImpl implements Repository.Interface {
6
6
  private updateEntry;
7
- private model;
7
+ private modelProvider;
8
8
  private mapper;
9
- constructor(updateEntry: UpdateEntryUseCase.Interface, model: WorkflowModel.Interface, mapper: WorkflowMapper.Interface);
9
+ constructor(updateEntry: UpdateEntryUseCase.Interface, modelProvider: WorkflowModelProvider.Interface, mapper: WorkflowMapper.Interface);
10
10
  execute(input: IUpdateWorkflowInput): Repository.Return;
11
11
  }
12
12
  export declare const UpdateWorkflowRepository: typeof UpdateWorkflowRepositoryImpl & {
@@ -2,16 +2,17 @@ import { Result } from "@webiny/feature/api";
2
2
  import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
3
3
  import { createIdentifier } from "@webiny/utils";
4
4
  import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
5
- import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
5
+ import { WorkflowMapper, WorkflowModelProvider } from "../../../domain/workflow/abstractions.js";
6
6
  import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
7
7
  import { UpdateWorkflowRepository } from "./abstractions.js";
8
8
  class UpdateWorkflowRepositoryImpl {
9
- constructor(updateEntry, model, mapper){
9
+ constructor(updateEntry, modelProvider, mapper){
10
10
  this.updateEntry = updateEntry;
11
- this.model = model;
11
+ this.modelProvider = modelProvider;
12
12
  this.mapper = mapper;
13
13
  }
14
14
  async execute(input) {
15
+ const model = await this.modelProvider.get();
15
16
  const { id } = parseIdentifier(input.id);
16
17
  const values = this.mapper.toCmsEntry({
17
18
  id,
@@ -24,7 +25,7 @@ class UpdateWorkflowRepositoryImpl {
24
25
  version: 1
25
26
  });
26
27
  try {
27
- const updateResult = await this.updateEntry.execute(this.model, workflowId, {
28
+ const updateResult = await this.updateEntry.execute(model, workflowId, {
28
29
  values
29
30
  });
30
31
  if (updateResult.isFail()) return Result.fail(new WorkflowPersistenceError(updateResult.error));
@@ -41,7 +42,7 @@ const UpdateWorkflowRepository_UpdateWorkflowRepository = UpdateWorkflowReposito
41
42
  implementation: UpdateWorkflowRepositoryImpl,
42
43
  dependencies: [
43
44
  UpdateEntryUseCase,
44
- WorkflowModel,
45
+ WorkflowModelProvider,
45
46
  WorkflowMapper
46
47
  ]
47
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { IUpdateWorkflowInput } from \"./abstractions.js\";\nimport { UpdateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass UpdateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: IUpdateWorkflowInput): Repository.Return {\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n\n const workflowId = createIdentifier({\n id,\n version: 1\n });\n\n try {\n const updateResult = await this.updateEntry.execute<IWorkflow>(this.model, workflowId, {\n values\n });\n\n if (updateResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(updateResult.error));\n }\n\n return Result.ok({\n ...values,\n id\n });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateWorkflowRepository = Repository.createImplementation({\n implementation: UpdateWorkflowRepositoryImpl,\n dependencies: [UpdateEntryUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["UpdateWorkflowRepositoryImpl","updateEntry","model","mapper","input","id","parseIdentifier","values","workflowId","createIdentifier","updateResult","Result","WorkflowPersistenceError","error","UpdateWorkflowRepository","Repository","UpdateEntryUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAA2B,EAAqB;QAC1D,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBF,MAAM,EAAE;QAEvC,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKD,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAMI,aAAaC,iBAAiB;YAChCJ;YACA,SAAS;QACb;QAEA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAEF,YAAY;gBACnFD;YACJ;YAEA,IAAIG,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBACb,GAAGJ,MAAM;gBACTF;YACJ;QACJ,EAAE,OAAOQ,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBf;IAChB,cAAc;QAACgB;QAAoBC;QAAeC;KAAe;AACrE"}
1
+ {"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport {\n type IWorkflow,\n WorkflowMapper,\n WorkflowModelProvider\n} from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { IUpdateWorkflowInput } from \"./abstractions.js\";\nimport { UpdateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass UpdateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private modelProvider: WorkflowModelProvider.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: IUpdateWorkflowInput): Repository.Return {\n const model = await this.modelProvider.get();\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n\n const workflowId = createIdentifier({\n id,\n version: 1\n });\n\n try {\n const updateResult = await this.updateEntry.execute<IWorkflow>(model, workflowId, {\n values\n });\n\n if (updateResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(updateResult.error));\n }\n\n return Result.ok({\n ...values,\n id\n });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateWorkflowRepository = Repository.createImplementation({\n implementation: UpdateWorkflowRepositoryImpl,\n dependencies: [UpdateEntryUseCase, WorkflowModelProvider, WorkflowMapper]\n});\n"],"names":["UpdateWorkflowRepositoryImpl","updateEntry","modelProvider","mapper","input","model","id","parseIdentifier","values","workflowId","createIdentifier","updateResult","Result","WorkflowPersistenceError","error","UpdateWorkflowRepository","Repository","UpdateEntryUseCase","WorkflowModelProvider","WorkflowMapper"],"mappings":";;;;;;;AAaA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAA8C,EAC9CC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAA2B,EAAqB;QAC1D,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBH,MAAM,EAAE;QAEvC,MAAMI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKF,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAMK,aAAaC,iBAAiB;YAChCJ;YACA,SAAS;QACb;QAEA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAYN,OAAOI,YAAY;gBAC9ED;YACJ;YAEA,IAAIG,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBACb,GAAGJ,MAAM;gBACTF;YACJ;QACJ,EAAE,OAAOQ,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBhB;IAChB,cAAc;QAACiB;QAAoBC;QAAuBC;KAAe;AAC7E"}
@@ -1,11 +1,11 @@
1
1
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
2
- import { WorkflowStateMapper, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
2
+ import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
3
3
  import { CreateWorkflowStateRepository as Repository } from "./abstractions.js";
4
4
  declare class CreateWorkflowStateRepositoryImpl implements Repository.Interface {
5
5
  private createEntry;
6
- private model;
6
+ private modelProvider;
7
7
  private mapper;
8
- constructor(createEntry: CreateEntryUseCase.Interface, model: WorkflowStateModel.Interface, mapper: WorkflowStateMapper.Interface);
8
+ constructor(createEntry: CreateEntryUseCase.Interface, modelProvider: WorkflowStateModelProvider.Interface, mapper: WorkflowStateMapper.Interface);
9
9
  execute(input: Repository.Input): Repository.Return;
10
10
  }
11
11
  export declare const CreateWorkflowStateRepository: typeof CreateWorkflowStateRepositoryImpl & {
@@ -1,17 +1,18 @@
1
1
  import { Result } from "@webiny/feature/api";
2
2
  import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
3
- import { WorkflowStateMapper, WorkflowStateModel } from "../../../domain/workflowState/abstractions.js";
3
+ import { WorkflowStateMapper, WorkflowStateModelProvider } from "../../../domain/workflowState/abstractions.js";
4
4
  import { WorkflowStatePersistenceError } from "../../../domain/workflowState/errors.js";
5
5
  import { CreateWorkflowStateRepository } from "./abstractions.js";
6
6
  class CreateWorkflowStateRepositoryImpl {
7
- constructor(createEntry, model, mapper){
7
+ constructor(createEntry, modelProvider, mapper){
8
8
  this.createEntry = createEntry;
9
- this.model = model;
9
+ this.modelProvider = modelProvider;
10
10
  this.mapper = mapper;
11
11
  }
12
12
  async execute(input) {
13
+ const model = await this.modelProvider.get();
13
14
  try {
14
- const createResult = await this.createEntry.execute(this.model, {
15
+ const createResult = await this.createEntry.execute(model, {
15
16
  values: input
16
17
  });
17
18
  if (createResult.isFail()) return Result.fail(new WorkflowStatePersistenceError(createResult.error));
@@ -26,7 +27,7 @@ const CreateWorkflowStateRepository_CreateWorkflowStateRepository = CreateWorkfl
26
27
  implementation: CreateWorkflowStateRepositoryImpl,
27
28
  dependencies: [
28
29
  CreateEntryUseCase,
29
- WorkflowStateModel,
30
+ WorkflowStateModelProvider,
30
31
  WorkflowStateMapper
31
32
  ]
32
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { WorkflowStateMapper, WorkflowStateModel } from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport { CreateWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private model: WorkflowStateModel.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n try {\n const createResult = await this.createEntry.execute<Repository.Input>(this.model, {\n values: input\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(createResult.error));\n }\n\n const record = this.mapper.fromCmsEntry(createResult.value);\n return Result.ok(record);\n } catch (error) {\n return Result.fail(new WorkflowStatePersistenceError(error as Error));\n }\n }\n}\n\nexport const CreateWorkflowStateRepository = Repository.createImplementation({\n implementation: CreateWorkflowStateRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowStateModel, WorkflowStateMapper]\n});\n"],"names":["CreateWorkflowStateRepositoryImpl","createEntry","model","mapper","input","createResult","Result","WorkflowStatePersistenceError","record","error","CreateWorkflowStateRepository","Repository","CreateEntryUseCase","WorkflowStateModel","WorkflowStateMapper"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAAmC,EACnCC,MAAqC,CAC/C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,IAAI;YACA,MAAMC,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmB,IAAI,CAAC,KAAK,EAAE;gBAC9E,QAAQD;YACZ;YAEA,IAAIC,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,aAAa,KAAK;YAG3E,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACH,aAAa,KAAK;YAC1D,OAAOC,OAAO,EAAE,CAACE;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOH,OAAO,IAAI,CAAC,IAAIC,8BAA8BE;QACzD;IACJ;AACJ;AAEO,MAAMC,8DAAgCC,8BAAAA,oBAA+B,CAAC;IACzE,gBAAgBX;IAChB,cAAc;QAACY;QAAoBC;QAAoBC;KAAoB;AAC/E"}
1
+ {"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport {\n WorkflowStateMapper,\n WorkflowStateModelProvider\n} from \"~/domain/workflowState/abstractions.js\";\nimport { WorkflowStatePersistenceError } from \"~/domain/workflowState/errors.js\";\nimport { CreateWorkflowStateRepository as Repository } from \"./abstractions.js\";\n\nclass CreateWorkflowStateRepositoryImpl implements Repository.Interface {\n constructor(\n private createEntry: CreateEntryUseCase.Interface,\n private modelProvider: WorkflowStateModelProvider.Interface,\n private mapper: WorkflowStateMapper.Interface\n ) {}\n\n async execute(input: Repository.Input): Repository.Return {\n const model = await this.modelProvider.get();\n try {\n const createResult = await this.createEntry.execute<Repository.Input>(model, {\n values: input\n });\n\n if (createResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(createResult.error));\n }\n\n const record = this.mapper.fromCmsEntry(createResult.value);\n return Result.ok(record);\n } catch (error) {\n return Result.fail(new WorkflowStatePersistenceError(error as Error));\n }\n }\n}\n\nexport const CreateWorkflowStateRepository = Repository.createImplementation({\n implementation: CreateWorkflowStateRepositoryImpl,\n dependencies: [CreateEntryUseCase, WorkflowStateModelProvider, WorkflowStateMapper]\n});\n"],"names":["CreateWorkflowStateRepositoryImpl","createEntry","modelProvider","mapper","input","model","createResult","Result","WorkflowStatePersistenceError","record","error","CreateWorkflowStateRepository","Repository","CreateEntryUseCase","WorkflowStateModelProvider","WorkflowStateMapper"],"mappings":";;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,aAAmD,EACnDC,MAAqC,CAC/C;aAHUF,WAAW,GAAXA;aACAC,aAAa,GAAbA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAuB,EAAqB;QACtD,MAAMC,QAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG;QAC1C,IAAI;YACA,MAAMC,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAmBD,OAAO;gBACzE,QAAQD;YACZ;YAEA,IAAIE,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,8BAA8BF,aAAa,KAAK;YAG3E,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACH,aAAa,KAAK;YAC1D,OAAOC,OAAO,EAAE,CAACE;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOH,OAAO,IAAI,CAAC,IAAIC,8BAA8BE;QACzD;IACJ;AACJ;AAEO,MAAMC,8DAAgCC,8BAAAA,oBAA+B,CAAC;IACzE,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;QAA4BC;KAAoB;AACvF"}
@@ -4,6 +4,7 @@ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.j
4
4
  import { ListWorkflowsUseCase } from "../../../features/workflow/ListWorkflows/index.js";
5
5
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
6
6
  import { CreateWorkflowStateRepository, CreateWorkflowStateUseCase as UseCase } from "./abstractions.js";
7
+ import { WorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
7
8
  declare class CreateWorkflowStateUseCaseImpl implements UseCase.Interface {
8
9
  private identityContext;
9
10
  private getUserTeams;
@@ -11,7 +12,8 @@ declare class CreateWorkflowStateUseCaseImpl implements UseCase.Interface {
11
12
  private listWorkflows;
12
13
  private getTargetState;
13
14
  private repository;
14
- constructor(identityContext: IdentityContext.Interface, getUserTeams: GetUserTeamsUseCase.Interface, eventPublisher: EventPublisher.Interface, listWorkflows: ListWorkflowsUseCase.Interface, getTargetState: GetTargetWorkflowStateUseCase.Interface, repository: CreateWorkflowStateRepository.Interface);
15
+ private targetContextProvider;
16
+ constructor(identityContext: IdentityContext.Interface, getUserTeams: GetUserTeamsUseCase.Interface, eventPublisher: EventPublisher.Interface, listWorkflows: ListWorkflowsUseCase.Interface, getTargetState: GetTargetWorkflowStateUseCase.Interface, repository: CreateWorkflowStateRepository.Interface, targetContextProvider: WorkflowStateContextProvider.Interface);
15
17
  execute(input: UseCase.Input): UseCase.Return;
16
18
  }
17
19
  export declare const CreateWorkflowStateUseCase: typeof CreateWorkflowStateUseCaseImpl & {
@@ -7,18 +7,20 @@ import { ListWorkflowsUseCase } from "../../workflow/ListWorkflows/index.js";
7
7
  import { GetTargetWorkflowStateUseCase } from "../GetTargetWorkflowState/index.js";
8
8
  import { CreateWorkflowStateRepository, CreateWorkflowStateUseCase } from "./abstractions.js";
9
9
  import { WorkflowStateAfterCreateEvent } from "./events.js";
10
+ import { WorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
10
11
  import { WorkflowState } from "../../../domain/workflowState/WorkflowState.js";
11
12
  import { WorkflowStateRecordState } from "../../../domain/workflowState/abstractions.js";
12
13
  import { ActiveStateExistsError, MultipleWorkflowsFoundError, WorkflowStatePersistenceError, WorkflowStateValidationError } from "../../../domain/workflowState/errors.js";
13
14
  import { WorkflowNotFoundError } from "../../../domain/workflow/errors.js";
14
15
  class CreateWorkflowStateUseCaseImpl {
15
- constructor(identityContext, getUserTeams, eventPublisher, listWorkflows, getTargetState, repository){
16
+ constructor(identityContext, getUserTeams, eventPublisher, listWorkflows, getTargetState, repository, targetContextProvider){
16
17
  this.identityContext = identityContext;
17
18
  this.getUserTeams = getUserTeams;
18
19
  this.eventPublisher = eventPublisher;
19
20
  this.listWorkflows = listWorkflows;
20
21
  this.getTargetState = getTargetState;
21
22
  this.repository = repository;
23
+ this.targetContextProvider = targetContextProvider;
22
24
  }
23
25
  async execute(input) {
24
26
  const { id: targetId, version } = parseIdentifier(input.targetRevisionId);
@@ -52,6 +54,10 @@ class CreateWorkflowStateUseCaseImpl {
52
54
  }));
53
55
  if (0 === workflow.steps.length) return Result.fail(new WorkflowStateValidationError("Cannot create a workflow state for a workflow that has no steps defined."));
54
56
  const identity = this.identityContext.getIdentity();
57
+ const targetContext = await this.targetContextProvider.provide({
58
+ app: input.app,
59
+ targetRevisionId: input.targetRevisionId
60
+ });
55
61
  const record = {
56
62
  workflowId: workflow.id,
57
63
  comment: void 0,
@@ -61,6 +67,7 @@ class CreateWorkflowStateUseCaseImpl {
61
67
  targetId,
62
68
  isActive: true,
63
69
  targetRevisionId: input.targetRevisionId,
70
+ targetContext,
64
71
  steps: workflow.steps.map((step)=>({
65
72
  ...step,
66
73
  state: WorkflowStateRecordState.pending,
@@ -72,7 +79,6 @@ class CreateWorkflowStateUseCaseImpl {
72
79
  if (createResult.isFail()) return Result.fail(createResult.error);
73
80
  const createdRecord = createResult.value;
74
81
  const teamsResult = await this.getUserTeams.execute(identity.id);
75
- if (teamsResult.isFail()) return Result.fail(teamsResult.error);
76
82
  const teams = teamsResult.value;
77
83
  const workflowState = new WorkflowState(createdRecord, teams, identity);
78
84
  await this.eventPublisher.publish(new WorkflowStateAfterCreateEvent({
@@ -89,7 +95,8 @@ const CreateWorkflowStateUseCase_CreateWorkflowStateUseCase = CreateWorkflowStat
89
95
  EventPublisher,
90
96
  ListWorkflowsUseCase,
91
97
  GetTargetWorkflowStateUseCase,
92
- CreateWorkflowStateRepository
98
+ CreateWorkflowStateRepository,
99
+ WorkflowStateContextProvider
93
100
  ]
94
101
  });
95
102
  export { CreateWorkflowStateUseCase_CreateWorkflowStateUseCase as CreateWorkflowStateUseCase };
@@ -1 +1 @@
1
- {"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n if (teamsResult.isFail()) {\n return Result.fail(teamsResult.error);\n }\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository\n ]\n});\n"],"names":["CreateWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","input","targetId","version","parseIdentifier","Result","WorkflowStateValidationError","workflowsResult","WorkflowStatePersistenceError","workflows","meta","workflow","WorkflowNotFoundError","MultipleWorkflowsFoundError","existingStateResult","ActiveStateExistsError","identity","record","undefined","WorkflowStateRecordState","step","createResult","createdRecord","teamsResult","teams","workflowState","WorkflowState","WorkflowStateAfterCreateEvent","CreateWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository"],"mappings":"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"}
1
+ {"version":3,"file":"features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { GetUserTeamsUseCase } from \"~/features/internal/GetUserTeams/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { ListWorkflowsUseCase } from \"~/features/workflow/ListWorkflows/index.js\";\nimport { GetTargetWorkflowStateUseCase } from \"../GetTargetWorkflowState/index.js\";\nimport {\n CreateWorkflowStateRepository,\n CreateWorkflowStateUseCase as UseCase\n} from \"./abstractions.js\";\nimport { WorkflowStateAfterCreateEvent } from \"./events.js\";\nimport { WorkflowStateContextProvider } from \"./WorkflowStateContextProvider.js\";\nimport { WorkflowState } from \"~/domain/workflowState/WorkflowState.js\";\nimport { WorkflowStateRecordState } from \"~/domain/workflowState/abstractions.js\";\nimport {\n WorkflowStateValidationError,\n ActiveStateExistsError,\n MultipleWorkflowsFoundError,\n WorkflowStatePersistenceError\n} from \"~/domain/workflowState/errors.js\";\nimport { WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\n\nclass CreateWorkflowStateUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private getUserTeams: GetUserTeamsUseCase.Interface,\n private eventPublisher: EventPublisher.Interface,\n private listWorkflows: ListWorkflowsUseCase.Interface,\n private getTargetState: GetTargetWorkflowStateUseCase.Interface,\n private repository: CreateWorkflowStateRepository.Interface,\n private targetContextProvider: WorkflowStateContextProvider.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const { id: targetId, version } = parseIdentifier(input.targetRevisionId);\n if (!version) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state without version of a target record.\"\n )\n );\n }\n\n const workflowsResult = await this.listWorkflows.execute({\n where: {\n app: input.app\n },\n limit: 1\n });\n\n if (workflowsResult.isFail()) {\n return Result.fail(new WorkflowStatePersistenceError(workflowsResult.error));\n }\n\n const { items: workflows, meta } = workflowsResult.value;\n const workflow = workflows[0];\n\n if (!workflow) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: \"\",\n app: input.app\n })\n );\n }\n\n if (meta.totalCount > 1) {\n return Result.fail(\n new MultipleWorkflowsFoundError({\n app: input.app,\n targetRevisionId: input.targetRevisionId,\n workflows,\n meta\n })\n );\n }\n\n const existingStateResult = await this.getTargetState.execute({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n if (existingStateResult.isOk()) {\n return Result.fail(\n new ActiveStateExistsError({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n })\n );\n }\n\n if (workflow.steps.length === 0) {\n return Result.fail(\n new WorkflowStateValidationError(\n \"Cannot create a workflow state for a workflow that has no steps defined.\"\n )\n );\n }\n\n const identity = this.identityContext.getIdentity();\n\n const targetContext = await this.targetContextProvider.provide({\n app: input.app,\n targetRevisionId: input.targetRevisionId\n });\n\n const record: CreateWorkflowStateRepository.Input = {\n workflowId: workflow.id,\n comment: undefined,\n state: WorkflowStateRecordState.pending,\n app: input.app,\n title: input.title,\n targetId,\n isActive: true,\n targetRevisionId: input.targetRevisionId,\n targetContext,\n steps: workflow.steps.map(step => ({\n ...step,\n state: WorkflowStateRecordState.pending,\n savedBy: null,\n comment: null\n }))\n };\n\n const createResult = await this.repository.execute(record);\n if (createResult.isFail()) {\n return Result.fail(createResult.error);\n }\n\n const createdRecord = createResult.value;\n\n const teamsResult = await this.getUserTeams.execute(identity.id);\n const teams = teamsResult.value;\n const workflowState = new WorkflowState(createdRecord, teams, identity);\n\n await this.eventPublisher.publish(\n new WorkflowStateAfterCreateEvent({\n state: workflowState\n })\n );\n\n return Result.ok(workflowState);\n }\n}\n\nexport const CreateWorkflowStateUseCase = UseCase.createImplementation({\n implementation: CreateWorkflowStateUseCaseImpl,\n dependencies: [\n IdentityContext,\n GetUserTeamsUseCase,\n EventPublisher,\n ListWorkflowsUseCase,\n GetTargetWorkflowStateUseCase,\n CreateWorkflowStateRepository,\n WorkflowStateContextProvider\n ]\n});\n"],"names":["CreateWorkflowStateUseCaseImpl","identityContext","getUserTeams","eventPublisher","listWorkflows","getTargetState","repository","targetContextProvider","input","targetId","version","parseIdentifier","Result","WorkflowStateValidationError","workflowsResult","WorkflowStatePersistenceError","workflows","meta","workflow","WorkflowNotFoundError","MultipleWorkflowsFoundError","existingStateResult","ActiveStateExistsError","identity","targetContext","record","undefined","WorkflowStateRecordState","step","createResult","createdRecord","teamsResult","teams","workflowState","WorkflowState","WorkflowStateAfterCreateEvent","CreateWorkflowStateUseCase","UseCase","IdentityContext","GetUserTeamsUseCase","EventPublisher","ListWorkflowsUseCase","GetTargetWorkflowStateUseCase","CreateWorkflowStateRepository","WorkflowStateContextProvider"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type IWorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ declare class DefaultWorkflowStateContextProviderImpl implements IWorkflowStateContextProvider {
4
+ provide(): Promise<GenericRecord>;
5
+ }
6
+ export declare const DefaultContextProvider: typeof DefaultWorkflowStateContextProviderImpl & {
7
+ __abstraction: import("@webiny/di").Abstraction<IWorkflowStateContextProvider>;
8
+ };
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import { WorkflowStateContextProvider } from "./WorkflowStateContextProvider.js";
2
+ class DefaultWorkflowStateContextProviderImpl {
3
+ async provide() {
4
+ return {};
5
+ }
6
+ }
7
+ const DefaultContextProvider = WorkflowStateContextProvider.createImplementation({
8
+ implementation: DefaultWorkflowStateContextProviderImpl,
9
+ dependencies: []
10
+ });
11
+ export { DefaultContextProvider };
12
+
13
+ //# sourceMappingURL=DefaultWorkflowStateContextProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.js","sources":["../../../../src/features/workflowState/CreateWorkflowState/DefaultWorkflowStateContextProvider.ts"],"sourcesContent":["import {\n WorkflowStateContextProvider,\n type IWorkflowStateContextProvider\n} from \"./WorkflowStateContextProvider.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nclass DefaultWorkflowStateContextProviderImpl implements IWorkflowStateContextProvider {\n async provide(): Promise<GenericRecord> {\n return {};\n }\n}\n\nexport const DefaultContextProvider = WorkflowStateContextProvider.createImplementation({\n implementation: DefaultWorkflowStateContextProviderImpl,\n dependencies: []\n});\n"],"names":["DefaultWorkflowStateContextProviderImpl","DefaultContextProvider","WorkflowStateContextProvider"],"mappings":";AAMA,MAAMA;IACF,MAAM,UAAkC;QACpC,OAAO,CAAC;IACZ;AACJ;AAEO,MAAMC,yBAAyBC,6BAA6B,oBAAoB,CAAC;IACpF,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,13 @@
1
+ import type { GenericRecord } from "@webiny/api/types.js";
2
+ export interface IWorkflowStateContextProviderParams {
3
+ app: string;
4
+ targetRevisionId: string;
5
+ }
6
+ export interface IWorkflowStateContextProvider {
7
+ provide(params: IWorkflowStateContextProviderParams): Promise<GenericRecord>;
8
+ }
9
+ export declare const WorkflowStateContextProvider: import("@webiny/di").Abstraction<IWorkflowStateContextProvider>;
10
+ export declare namespace WorkflowStateContextProvider {
11
+ type Interface = IWorkflowStateContextProvider;
12
+ type Params = IWorkflowStateContextProviderParams;
13
+ }