@webiny/background-tasks 0.0.0-unstable.7be00a75a9

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 (166) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/admin/BackgroundTaskRoutes.d.ts +2 -0
  4. package/admin/BackgroundTaskRoutes.js +50 -0
  5. package/admin/BackgroundTaskRoutes.js.map +1 -0
  6. package/admin/BackgroundTasks.d.ts +2 -0
  7. package/admin/BackgroundTasks.js +46 -0
  8. package/admin/BackgroundTasks.js.map +1 -0
  9. package/admin/features/abortTask/AbortTaskGateway.d.ts +12 -0
  10. package/admin/features/abortTask/AbortTaskGateway.js +62 -0
  11. package/admin/features/abortTask/AbortTaskGateway.js.map +1 -0
  12. package/admin/features/abortTask/AbortTaskUseCase.d.ts +11 -0
  13. package/admin/features/abortTask/AbortTaskUseCase.js +18 -0
  14. package/admin/features/abortTask/AbortTaskUseCase.js.map +1 -0
  15. package/admin/features/abortTask/abstractions.d.ts +19 -0
  16. package/admin/features/abortTask/abstractions.js +6 -0
  17. package/admin/features/abortTask/abstractions.js.map +1 -0
  18. package/admin/features/abortTask/feature.d.ts +3 -0
  19. package/admin/features/abortTask/feature.js +19 -0
  20. package/admin/features/abortTask/feature.js.map +1 -0
  21. package/admin/features/abortTask/index.d.ts +2 -0
  22. package/admin/features/abortTask/index.js +2 -0
  23. package/admin/features/deleteTask/DeleteTaskGateway.d.ts +11 -0
  24. package/admin/features/deleteTask/DeleteTaskGateway.js +41 -0
  25. package/admin/features/deleteTask/DeleteTaskGateway.js.map +1 -0
  26. package/admin/features/deleteTask/DeleteTaskUseCase.d.ts +10 -0
  27. package/admin/features/deleteTask/DeleteTaskUseCase.js +18 -0
  28. package/admin/features/deleteTask/DeleteTaskUseCase.js.map +1 -0
  29. package/admin/features/deleteTask/abstractions.d.ts +14 -0
  30. package/admin/features/deleteTask/abstractions.js +6 -0
  31. package/admin/features/deleteTask/abstractions.js.map +1 -0
  32. package/admin/features/deleteTask/feature.d.ts +3 -0
  33. package/admin/features/deleteTask/feature.js +19 -0
  34. package/admin/features/deleteTask/feature.js.map +1 -0
  35. package/admin/features/deleteTask/index.d.ts +2 -0
  36. package/admin/features/deleteTask/index.js +2 -0
  37. package/admin/features/getTask/GetTaskGateway.d.ts +12 -0
  38. package/admin/features/getTask/GetTaskGateway.js +61 -0
  39. package/admin/features/getTask/GetTaskGateway.js.map +1 -0
  40. package/admin/features/getTask/GetTaskUseCase.d.ts +11 -0
  41. package/admin/features/getTask/GetTaskUseCase.js +18 -0
  42. package/admin/features/getTask/GetTaskUseCase.js.map +1 -0
  43. package/admin/features/getTask/abstractions.d.ts +15 -0
  44. package/admin/features/getTask/abstractions.js +6 -0
  45. package/admin/features/getTask/abstractions.js.map +1 -0
  46. package/admin/features/getTask/feature.d.ts +3 -0
  47. package/admin/features/getTask/feature.js +19 -0
  48. package/admin/features/getTask/feature.js.map +1 -0
  49. package/admin/features/getTask/index.d.ts +2 -0
  50. package/admin/features/getTask/index.js +2 -0
  51. package/admin/features/listDefinitions/ListDefinitionsGateway.d.ts +12 -0
  52. package/admin/features/listDefinitions/ListDefinitionsGateway.js +42 -0
  53. package/admin/features/listDefinitions/ListDefinitionsGateway.js.map +1 -0
  54. package/admin/features/listDefinitions/ListDefinitionsUseCase.d.ts +11 -0
  55. package/admin/features/listDefinitions/ListDefinitionsUseCase.js +18 -0
  56. package/admin/features/listDefinitions/ListDefinitionsUseCase.js.map +1 -0
  57. package/admin/features/listDefinitions/abstractions.d.ts +15 -0
  58. package/admin/features/listDefinitions/abstractions.js +6 -0
  59. package/admin/features/listDefinitions/abstractions.js.map +1 -0
  60. package/admin/features/listDefinitions/feature.d.ts +3 -0
  61. package/admin/features/listDefinitions/feature.js +19 -0
  62. package/admin/features/listDefinitions/feature.js.map +1 -0
  63. package/admin/features/listDefinitions/index.d.ts +2 -0
  64. package/admin/features/listDefinitions/index.js +2 -0
  65. package/admin/features/listLogs/ListLogsGateway.d.ts +11 -0
  66. package/admin/features/listLogs/ListLogsGateway.js +73 -0
  67. package/admin/features/listLogs/ListLogsGateway.js.map +1 -0
  68. package/admin/features/listLogs/ListLogsUseCase.d.ts +10 -0
  69. package/admin/features/listLogs/ListLogsUseCase.js +18 -0
  70. package/admin/features/listLogs/ListLogsUseCase.js.map +1 -0
  71. package/admin/features/listLogs/abstractions.d.ts +30 -0
  72. package/admin/features/listLogs/abstractions.js +6 -0
  73. package/admin/features/listLogs/abstractions.js.map +1 -0
  74. package/admin/features/listLogs/feature.d.ts +3 -0
  75. package/admin/features/listLogs/feature.js +19 -0
  76. package/admin/features/listLogs/feature.js.map +1 -0
  77. package/admin/features/listLogs/index.d.ts +2 -0
  78. package/admin/features/listLogs/index.js +2 -0
  79. package/admin/features/listTasks/ListTasksGateway.d.ts +11 -0
  80. package/admin/features/listTasks/ListTasksGateway.js +79 -0
  81. package/admin/features/listTasks/ListTasksGateway.js.map +1 -0
  82. package/admin/features/listTasks/ListTasksUseCase.d.ts +10 -0
  83. package/admin/features/listTasks/ListTasksUseCase.js +18 -0
  84. package/admin/features/listTasks/ListTasksUseCase.js.map +1 -0
  85. package/admin/features/listTasks/abstractions.d.ts +31 -0
  86. package/admin/features/listTasks/abstractions.js +6 -0
  87. package/admin/features/listTasks/abstractions.js.map +1 -0
  88. package/admin/features/listTasks/feature.d.ts +3 -0
  89. package/admin/features/listTasks/feature.js +19 -0
  90. package/admin/features/listTasks/feature.js.map +1 -0
  91. package/admin/features/listTasks/index.d.ts +2 -0
  92. package/admin/features/listTasks/index.js +2 -0
  93. package/admin/features/permissions/abstractions.d.ts +17 -0
  94. package/admin/features/permissions/abstractions.js +6 -0
  95. package/admin/features/permissions/abstractions.js.map +1 -0
  96. package/admin/features/permissions/feature.d.ts +14 -0
  97. package/admin/features/permissions/feature.js +7 -0
  98. package/admin/features/permissions/feature.js.map +1 -0
  99. package/admin/features/permissions/index.d.ts +2 -0
  100. package/admin/features/permissions/index.js +2 -0
  101. package/admin/index.d.ts +2 -0
  102. package/admin/index.js +2 -0
  103. package/admin/permissions.d.ts +12 -0
  104. package/admin/permissions.js +22 -0
  105. package/admin/permissions.js.map +1 -0
  106. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.d.ts +14 -0
  107. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js +41 -0
  108. package/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js.map +1 -0
  109. package/admin/presentation/TaskDefinitions/abstractions.d.ts +14 -0
  110. package/admin/presentation/TaskDefinitions/abstractions.js +5 -0
  111. package/admin/presentation/TaskDefinitions/abstractions.js.map +1 -0
  112. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.d.ts +2 -0
  113. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +75 -0
  114. package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -0
  115. package/admin/presentation/TaskDefinitions/feature.d.ts +3 -0
  116. package/admin/presentation/TaskDefinitions/feature.js +17 -0
  117. package/admin/presentation/TaskDefinitions/feature.js.map +1 -0
  118. package/admin/presentation/TaskDefinitions/index.d.ts +2 -0
  119. package/admin/presentation/TaskDefinitions/index.js +2 -0
  120. package/admin/presentation/TaskDetail/TaskDetailPresenter.d.ts +24 -0
  121. package/admin/presentation/TaskDetail/TaskDetailPresenter.js +87 -0
  122. package/admin/presentation/TaskDetail/TaskDetailPresenter.js.map +1 -0
  123. package/admin/presentation/TaskDetail/abstractions.d.ts +24 -0
  124. package/admin/presentation/TaskDetail/abstractions.js +5 -0
  125. package/admin/presentation/TaskDetail/abstractions.js.map +1 -0
  126. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.d.ts +11 -0
  127. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js +264 -0
  128. package/admin/presentation/TaskDetail/components/TaskDetailDrawer.js.map +1 -0
  129. package/admin/presentation/TaskDetail/feature.d.ts +3 -0
  130. package/admin/presentation/TaskDetail/feature.js +17 -0
  131. package/admin/presentation/TaskDetail/feature.js.map +1 -0
  132. package/admin/presentation/TaskDetail/index.d.ts +2 -0
  133. package/admin/presentation/TaskDetail/index.js +2 -0
  134. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.d.ts +15 -0
  135. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js +91 -0
  136. package/admin/presentation/TaskExecutions/TaskExecutionsDataSource.js.map +1 -0
  137. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +52 -0
  138. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +107 -0
  139. package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -0
  140. package/admin/presentation/TaskExecutions/abstractions.d.ts +28 -0
  141. package/admin/presentation/TaskExecutions/abstractions.js +5 -0
  142. package/admin/presentation/TaskExecutions/abstractions.js.map +1 -0
  143. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.d.ts +2 -0
  144. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +303 -0
  145. package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -0
  146. package/admin/presentation/TaskExecutions/feature.d.ts +3 -0
  147. package/admin/presentation/TaskExecutions/feature.js +17 -0
  148. package/admin/presentation/TaskExecutions/feature.js.map +1 -0
  149. package/admin/presentation/TaskExecutions/index.d.ts +2 -0
  150. package/admin/presentation/TaskExecutions/index.js +2 -0
  151. package/admin/presentation/security/HasPermission.d.ts +12 -0
  152. package/admin/presentation/security/HasPermission.js +6 -0
  153. package/admin/presentation/security/HasPermission.js.map +1 -0
  154. package/admin/presentation/security/usePermissions.d.ts +12 -0
  155. package/admin/presentation/security/usePermissions.js +6 -0
  156. package/admin/presentation/security/usePermissions.js.map +1 -0
  157. package/admin/routes.d.ts +5 -0
  158. package/admin/routes.js +14 -0
  159. package/admin/routes.js.map +1 -0
  160. package/admin/shared/types.d.ts +15 -0
  161. package/admin/shared/types.js +0 -0
  162. package/api/index.d.ts +0 -0
  163. package/api/index.js +0 -0
  164. package/index.d.ts +1 -0
  165. package/index.js +1 -0
  166. package/package.json +45 -0
@@ -0,0 +1,31 @@
1
+ import type { Task } from "../../../admin/shared/types.js";
2
+ export interface IListTasksInput {
3
+ where?: Record<string, unknown>;
4
+ sort?: string[];
5
+ limit?: number;
6
+ after?: string;
7
+ search?: string;
8
+ }
9
+ export interface IListTasksMeta {
10
+ cursor: string | null;
11
+ hasMoreItems: boolean;
12
+ totalCount: number;
13
+ }
14
+ export interface IListTasksOutput {
15
+ items: Task[];
16
+ meta: IListTasksMeta;
17
+ }
18
+ export interface IListTasksGateway {
19
+ execute(input: IListTasksInput): Promise<IListTasksOutput>;
20
+ }
21
+ export declare const ListTasksGateway: import("@webiny/di").Abstraction<IListTasksGateway>;
22
+ export declare namespace ListTasksGateway {
23
+ type Interface = IListTasksGateway;
24
+ }
25
+ export interface IListTasksUseCase {
26
+ execute(input: IListTasksInput): Promise<IListTasksOutput>;
27
+ }
28
+ export declare const ListTasksUseCase: import("@webiny/di").Abstraction<IListTasksUseCase>;
29
+ export declare namespace ListTasksUseCase {
30
+ type Interface = IListTasksUseCase;
31
+ }
@@ -0,0 +1,6 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const ListTasksGateway = createAbstraction("ListTasksGateway");
3
+ const ListTasksUseCase = createAbstraction("ListTasksUseCase");
4
+ export { ListTasksGateway, ListTasksUseCase };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/features/listTasks/abstractions.js","sources":["../../../../src/admin/features/listTasks/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { Task } from \"~/admin/shared/types.js\";\n\nexport interface IListTasksInput {\n where?: Record<string, unknown>;\n sort?: string[];\n limit?: number;\n after?: string;\n search?: string;\n}\n\nexport interface IListTasksMeta {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n}\n\nexport interface IListTasksOutput {\n items: Task[];\n meta: IListTasksMeta;\n}\n\nexport interface IListTasksGateway {\n execute(input: IListTasksInput): Promise<IListTasksOutput>;\n}\n\nexport const ListTasksGateway = createAbstraction<IListTasksGateway>(\"ListTasksGateway\");\n\nexport namespace ListTasksGateway {\n export type Interface = IListTasksGateway;\n}\n\nexport interface IListTasksUseCase {\n execute(input: IListTasksInput): Promise<IListTasksOutput>;\n}\n\nexport const ListTasksUseCase = createAbstraction<IListTasksUseCase>(\"ListTasksUseCase\");\n\nexport namespace ListTasksUseCase {\n export type Interface = IListTasksUseCase;\n}\n"],"names":["ListTasksGateway","createAbstraction","ListTasksUseCase"],"mappings":";AA0BO,MAAMA,mBAAmBC,kBAAqC;AAU9D,MAAMC,mBAAmBD,kBAAqC"}
@@ -0,0 +1,3 @@
1
+ export declare const ListTasksFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IListTasksUseCase;
3
+ }, []>;
@@ -0,0 +1,19 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { ListTasksUseCase } from "./abstractions.js";
3
+ import { ListTasksUseCase as external_ListTasksUseCase_js_ListTasksUseCase } from "./ListTasksUseCase.js";
4
+ import { ListTasksGateway } from "./ListTasksGateway.js";
5
+ const ListTasksFeature = createFeature({
6
+ name: "BackgroundTasks/ListTasks",
7
+ register (container) {
8
+ container.register(external_ListTasksUseCase_js_ListTasksUseCase);
9
+ container.register(ListTasksGateway).inSingletonScope();
10
+ },
11
+ resolve (container) {
12
+ return {
13
+ useCase: container.resolve(ListTasksUseCase)
14
+ };
15
+ }
16
+ });
17
+ export { ListTasksFeature };
18
+
19
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/features/listTasks/feature.js","sources":["../../../../src/admin/features/listTasks/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { ListTasksUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { ListTasksUseCase } from \"./ListTasksUseCase.js\";\nimport { ListTasksGateway } from \"./ListTasksGateway.js\";\n\nexport const ListTasksFeature = createFeature({\n name: \"BackgroundTasks/ListTasks\",\n register(container) {\n container.register(ListTasksUseCase);\n container.register(ListTasksGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"names":["ListTasksFeature","createFeature","container","ListTasksUseCase","ListTasksGateway","UseCaseAbstraction"],"mappings":";;;;AAKO,MAAMA,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,kBAAkB,gBAAgB;IACzD;IACA,SAAQF,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACG;QAC/B;IACJ;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { ListTasksUseCase } from "./abstractions.js";
2
+ export { ListTasksFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { ListTasksUseCase } from "./abstractions.js";
2
+ export { ListTasksFeature } from "./feature.js";
@@ -0,0 +1,17 @@
1
+ import type { Permissions } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { BACKGROUND_TASK_PERMISSIONS_SCHEMA } from "../../../admin/permissions.js";
3
+ export declare const TaskPermissions: import("@webiny/di").Abstraction<{
4
+ canAccess: (entityId: "task") => boolean;
5
+ canAction: (action: string, entityId: "task") => boolean;
6
+ } & {
7
+ canRead: (entityId: "task") => boolean;
8
+ canCreate: (entityId: "task") => boolean;
9
+ canEdit: (entityId: "task", item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
10
+ canDelete: (entityId: "task", item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
11
+ } & {
12
+ canPublish: (entityId: string) => boolean;
13
+ canUnpublish: (entityId: string) => boolean;
14
+ }>;
15
+ export declare namespace TaskPermissions {
16
+ type Interface = Permissions<typeof BACKGROUND_TASK_PERMISSIONS_SCHEMA>;
17
+ }
@@ -0,0 +1,6 @@
1
+ import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { BACKGROUND_TASK_PERMISSIONS_SCHEMA } from "../../permissions.js";
3
+ const TaskPermissions = createPermissionsAbstraction(BACKGROUND_TASK_PERMISSIONS_SCHEMA);
4
+ export { TaskPermissions };
5
+
6
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/features/permissions/abstractions.js","sources":["../../../../src/admin/features/permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { BACKGROUND_TASK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\n\nexport const TaskPermissions = createPermissionsAbstraction(BACKGROUND_TASK_PERMISSIONS_SCHEMA);\n\nexport namespace TaskPermissions {\n export type Interface = Permissions<typeof BACKGROUND_TASK_PERMISSIONS_SCHEMA>;\n}\n"],"names":["TaskPermissions","createPermissionsAbstraction","BACKGROUND_TASK_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,kBAAkBC,6BAA6BC"}
@@ -0,0 +1,14 @@
1
+ export declare const TaskPermissionsFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ permissions: {
3
+ canAccess: (entityId: "task") => boolean;
4
+ canAction: (action: string, entityId: "task") => boolean;
5
+ } & {
6
+ canRead: (entityId: "task") => boolean;
7
+ canCreate: (entityId: "task") => boolean;
8
+ canEdit: (entityId: "task", item?: import("@webiny/app-admin/index.js").OwnableItem) => boolean;
9
+ canDelete: (entityId: "task", item?: import("@webiny/app-admin/index.js").OwnableItem) => boolean;
10
+ } & {
11
+ canPublish: (entityId: string) => boolean;
12
+ canUnpublish: (entityId: string) => boolean;
13
+ };
14
+ }, []>;
@@ -0,0 +1,7 @@
1
+ import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { BACKGROUND_TASK_PERMISSIONS_SCHEMA } from "../../permissions.js";
3
+ import { TaskPermissions } from "./abstractions.js";
4
+ const TaskPermissionsFeature = createPermissionsFeature(BACKGROUND_TASK_PERMISSIONS_SCHEMA, TaskPermissions);
5
+ export { TaskPermissionsFeature };
6
+
7
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/features/permissions/feature.js","sources":["../../../../src/admin/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { BACKGROUND_TASK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\nimport { TaskPermissions } from \"./abstractions.js\";\n\nexport const TaskPermissionsFeature = createPermissionsFeature(\n BACKGROUND_TASK_PERMISSIONS_SCHEMA,\n TaskPermissions\n);\n"],"names":["TaskPermissionsFeature","createPermissionsFeature","BACKGROUND_TASK_PERMISSIONS_SCHEMA","TaskPermissions"],"mappings":";;;AAIO,MAAMA,yBAAyBC,yBAClCC,oCACAC"}
@@ -0,0 +1,2 @@
1
+ export { TaskPermissions } from "./abstractions.js";
2
+ export { TaskPermissionsFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { TaskPermissions } from "./abstractions.js";
2
+ export { TaskPermissionsFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { BackgroundTasks } from "./BackgroundTasks.js";
2
+ export { Routes } from "./routes.js";
package/admin/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { BackgroundTasks } from "./BackgroundTasks.js";
2
+ export { Routes } from "./routes.js";
@@ -0,0 +1,12 @@
1
+ export declare const BACKGROUND_TASK_PERMISSIONS_SCHEMA: {
2
+ readonly prefix: "backgroundTasks";
3
+ readonly fullAccess: true;
4
+ readonly entities: [{
5
+ readonly id: "task";
6
+ readonly permission: "backgroundTasks.task";
7
+ readonly scopes: ["full"];
8
+ readonly actions: [{
9
+ readonly name: "rwd";
10
+ }];
11
+ }];
12
+ };
@@ -0,0 +1,22 @@
1
+ import { createPermissionSchema } from "@webiny/app-admin";
2
+ const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({
3
+ prefix: "backgroundTasks",
4
+ fullAccess: true,
5
+ entities: [
6
+ {
7
+ id: "task",
8
+ permission: "backgroundTasks.task",
9
+ scopes: [
10
+ "full"
11
+ ],
12
+ actions: [
13
+ {
14
+ name: "rwd"
15
+ }
16
+ ]
17
+ }
18
+ ]
19
+ });
20
+ export { BACKGROUND_TASK_PERMISSIONS_SCHEMA };
21
+
22
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/permissions.js","sources":["../../src/admin/permissions.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const BACKGROUND_TASK_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"backgroundTasks\",\n fullAccess: true,\n entities: [\n {\n id: \"task\",\n permission: \"backgroundTasks.task\",\n scopes: [\"full\"],\n actions: [{ name: \"rwd\" }]\n }\n ]\n});\n"],"names":["BACKGROUND_TASK_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,qCAAqCC,uBAAuB;IACrE,QAAQ;IACR,YAAY;IACZ,UAAU;QACN;YACI,IAAI;YACJ,YAAY;YACZ,QAAQ;gBAAC;aAAO;YAChB,SAAS;gBAAC;oBAAE,MAAM;gBAAM;aAAE;QAC9B;KACH;AACL"}
@@ -0,0 +1,14 @@
1
+ import { type ITaskDefinitionsPresenter, type ITaskDefinitionsViewModel } from "./abstractions.js";
2
+ import { ListDefinitionsUseCase } from "../../../admin/features/listDefinitions/abstractions.js";
3
+ declare class TaskDefinitionsPresenterImpl implements ITaskDefinitionsPresenter {
4
+ private readonly listDefinitionsUseCase;
5
+ private _definitions;
6
+ private _loading;
7
+ constructor(listDefinitionsUseCase: ListDefinitionsUseCase.Interface);
8
+ get vm(): ITaskDefinitionsViewModel;
9
+ init(): void;
10
+ }
11
+ export declare const TaskDefinitionsPresenter: typeof TaskDefinitionsPresenterImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<ITaskDefinitionsPresenter>;
13
+ };
14
+ export {};
@@ -0,0 +1,41 @@
1
+ import { computed, makeAutoObservable, runInAction } from "mobx";
2
+ import { TaskDefinitionsPresenter } from "./abstractions.js";
3
+ import { ListDefinitionsUseCase } from "../../features/listDefinitions/abstractions.js";
4
+ class TaskDefinitionsPresenterImpl {
5
+ constructor(listDefinitionsUseCase){
6
+ this.listDefinitionsUseCase = listDefinitionsUseCase;
7
+ this._definitions = [];
8
+ this._loading = false;
9
+ makeAutoObservable(this, {
10
+ vm: computed
11
+ });
12
+ }
13
+ get vm() {
14
+ return {
15
+ definitions: this._definitions,
16
+ loading: this._loading
17
+ };
18
+ }
19
+ init() {
20
+ this._loading = true;
21
+ this.listDefinitionsUseCase.execute().then((definitions)=>{
22
+ runInAction(()=>{
23
+ this._definitions = definitions;
24
+ this._loading = false;
25
+ });
26
+ }).catch(()=>{
27
+ runInAction(()=>{
28
+ this._loading = false;
29
+ });
30
+ });
31
+ }
32
+ }
33
+ const TaskDefinitionsPresenter_TaskDefinitionsPresenter = TaskDefinitionsPresenter.createImplementation({
34
+ implementation: TaskDefinitionsPresenterImpl,
35
+ dependencies: [
36
+ ListDefinitionsUseCase
37
+ ]
38
+ });
39
+ export { TaskDefinitionsPresenter_TaskDefinitionsPresenter as TaskDefinitionsPresenter };
40
+
41
+ //# sourceMappingURL=TaskDefinitionsPresenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.js","sources":["../../../../src/admin/presentation/TaskDefinitions/TaskDefinitionsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport {\n TaskDefinitionsPresenter as Abstraction,\n type ITaskDefinitionsPresenter,\n type ITaskDefinitionsViewModel\n} from \"./abstractions.js\";\nimport { ListDefinitionsUseCase } from \"~/admin/features/listDefinitions/abstractions.js\";\nimport type { TaskDefinition } from \"~/admin/shared/types.js\";\n\nclass TaskDefinitionsPresenterImpl implements ITaskDefinitionsPresenter {\n private _definitions: TaskDefinition[] = [];\n private _loading = false;\n\n constructor(private readonly listDefinitionsUseCase: ListDefinitionsUseCase.Interface) {\n makeAutoObservable(this, { vm: computed });\n }\n\n get vm(): ITaskDefinitionsViewModel {\n return {\n definitions: this._definitions,\n loading: this._loading\n };\n }\n\n init(): void {\n this._loading = true;\n void this.listDefinitionsUseCase\n .execute()\n .then(definitions => {\n runInAction(() => {\n this._definitions = definitions;\n this._loading = false;\n });\n })\n .catch(() => {\n runInAction(() => {\n this._loading = false;\n });\n });\n }\n}\n\nexport const TaskDefinitionsPresenter = Abstraction.createImplementation({\n implementation: TaskDefinitionsPresenterImpl,\n dependencies: [ListDefinitionsUseCase]\n});\n"],"names":["TaskDefinitionsPresenterImpl","listDefinitionsUseCase","makeAutoObservable","computed","definitions","runInAction","TaskDefinitionsPresenter","Abstraction","ListDefinitionsUseCase"],"mappings":";;;AASA,MAAMA;IAIF,YAA6BC,sBAAwD,CAAE;aAA1DA,sBAAsB,GAAtBA;aAHrB,YAAY,GAAqB,EAAE;aACnC,QAAQ,GAAG;QAGfC,mBAAmB,IAAI,EAAE;YAAE,IAAIC;QAAS;IAC5C;IAEA,IAAI,KAAgC;QAChC,OAAO;YACH,aAAa,IAAI,CAAC,YAAY;YAC9B,SAAS,IAAI,CAAC,QAAQ;QAC1B;IACJ;IAEA,OAAa;QACT,IAAI,CAAC,QAAQ,GAAG;QACX,IAAI,CAAC,sBAAsB,CAC3B,OAAO,GACP,IAAI,CAACC,CAAAA;YACFC,YAAY;gBACR,IAAI,CAAC,YAAY,GAAGD;gBACpB,IAAI,CAAC,QAAQ,GAAG;YACpB;QACJ,GACC,KAAK,CAAC;YACHC,YAAY;gBACR,IAAI,CAAC,QAAQ,GAAG;YACpB;QACJ;IACR;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAAgC,CAAC;IACrE,gBAAgBP;IAChB,cAAc;QAACQ;KAAuB;AAC1C"}
@@ -0,0 +1,14 @@
1
+ import type { TaskDefinition } from "../../../admin/shared/types.js";
2
+ export interface ITaskDefinitionsViewModel {
3
+ definitions: TaskDefinition[];
4
+ loading: boolean;
5
+ }
6
+ export interface ITaskDefinitionsPresenter {
7
+ vm: ITaskDefinitionsViewModel;
8
+ init(): void;
9
+ }
10
+ export declare const TaskDefinitionsPresenter: import("@webiny/di").Abstraction<ITaskDefinitionsPresenter>;
11
+ export declare namespace TaskDefinitionsPresenter {
12
+ type Interface = ITaskDefinitionsPresenter;
13
+ type ViewModel = ITaskDefinitionsViewModel;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const TaskDefinitionsPresenter = createAbstraction("TaskDefinitionsPresenter");
3
+ export { TaskDefinitionsPresenter };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDefinitions/abstractions.js","sources":["../../../../src/admin/presentation/TaskDefinitions/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { TaskDefinition } from \"~/admin/shared/types.js\";\n\nexport interface ITaskDefinitionsViewModel {\n definitions: TaskDefinition[];\n loading: boolean;\n}\n\nexport interface ITaskDefinitionsPresenter {\n vm: ITaskDefinitionsViewModel;\n init(): void;\n}\n\nexport const TaskDefinitionsPresenter = createAbstraction<ITaskDefinitionsPresenter>(\n \"TaskDefinitionsPresenter\"\n);\n\nexport namespace TaskDefinitionsPresenter {\n export type Interface = ITaskDefinitionsPresenter;\n export type ViewModel = ITaskDefinitionsViewModel;\n}\n"],"names":["TaskDefinitionsPresenter","createAbstraction"],"mappings":";AAaO,MAAMA,2BAA2BC,kBACpC"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const TaskDefinitionsView: () => React.JSX.Element;
@@ -0,0 +1,75 @@
1
+ import react, { useEffect, useMemo } from "react";
2
+ import { observer } from "mobx-react-lite";
3
+ import { DiContainerProvider, useContainer, useFeature } from "@webiny/app";
4
+ import { DataTable, Heading, Separator, Text } from "@webiny/admin-ui";
5
+ import { TaskDefinitionsPresenterFeature } from "../feature.js";
6
+ import { ListDefinitionsFeature } from "../../../features/listDefinitions/feature.js";
7
+ const TaskDefinitionsView_TaskDefinitionsViewInner = observer(function() {
8
+ const { presenter } = useFeature(TaskDefinitionsPresenterFeature);
9
+ useEffect(()=>{
10
+ presenter.init();
11
+ }, [
12
+ presenter
13
+ ]);
14
+ const { vm } = presenter;
15
+ const columns = useMemo(()=>({
16
+ title: {
17
+ header: "Title",
18
+ cell: (row)=>/*#__PURE__*/ react.createElement(Text, {
19
+ size: "sm"
20
+ }, row.title || row.id),
21
+ enableSorting: false,
22
+ size: 250
23
+ },
24
+ id: {
25
+ header: "ID",
26
+ cell: (row)=>/*#__PURE__*/ react.createElement(Text, {
27
+ size: "sm",
28
+ className: "text-neutral-strong font-mono"
29
+ }, row.id),
30
+ enableSorting: false,
31
+ size: 250
32
+ },
33
+ description: {
34
+ header: "Description",
35
+ cell: (row)=>/*#__PURE__*/ react.createElement(Text, {
36
+ size: "sm",
37
+ className: "text-neutral-strong"
38
+ }, row.description || "—"),
39
+ enableSorting: false
40
+ }
41
+ }), []);
42
+ return /*#__PURE__*/ react.createElement("div", {
43
+ className: "flex flex-col h-main-content"
44
+ }, /*#__PURE__*/ react.createElement("div", {
45
+ className: "flex items-center justify-between py-sm px-md"
46
+ }, /*#__PURE__*/ react.createElement(Heading, {
47
+ level: 5
48
+ }, "Task Definitions")), /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
49
+ className: "flex-1 overflow-auto"
50
+ }, vm.loading || 0 !== vm.definitions.length ? /*#__PURE__*/ react.createElement(DataTable, {
51
+ columns: columns,
52
+ data: vm.definitions,
53
+ loading: vm.loading,
54
+ stickyHeader: true
55
+ }) : /*#__PURE__*/ react.createElement("div", {
56
+ className: "flex flex-col items-center justify-center h-full gap-md"
57
+ }, /*#__PURE__*/ react.createElement(Text, {
58
+ className: "text-neutral-strong"
59
+ }, "No task definitions found."))));
60
+ });
61
+ const TaskDefinitionsView = ()=>{
62
+ const container = useContainer();
63
+ const scopedContainer = useMemo(()=>{
64
+ const child = container.createChildContainer();
65
+ ListDefinitionsFeature.register(child);
66
+ TaskDefinitionsPresenterFeature.register(child);
67
+ return child;
68
+ }, []);
69
+ return /*#__PURE__*/ react.createElement(DiContainerProvider, {
70
+ container: scopedContainer
71
+ }, /*#__PURE__*/ react.createElement(TaskDefinitionsView_TaskDefinitionsViewInner, null));
72
+ };
73
+ export { TaskDefinitionsView };
74
+
75
+ //# sourceMappingURL=TaskDefinitionsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js","sources":["../../../../../src/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { DiContainerProvider, useContainer, useFeature } from \"@webiny/app\";\nimport { DataTable, Heading, Separator, Text } from \"@webiny/admin-ui\";\nimport { TaskDefinitionsPresenterFeature } from \"../feature.js\";\nimport { ListDefinitionsFeature } from \"~/admin/features/listDefinitions/feature.js\";\nimport type { TaskDefinition } from \"~/admin/shared/types.js\";\n\nconst TaskDefinitionsViewInner = observer(function TaskDefinitionsViewInner() {\n const { presenter } = useFeature(TaskDefinitionsPresenterFeature);\n\n useEffect(() => {\n presenter.init();\n }, [presenter]);\n\n const { vm } = presenter;\n\n const columns = useMemo(\n () => ({\n title: {\n header: \"Title\",\n cell: (row: TaskDefinition) => <Text size=\"sm\">{row.title || row.id}</Text>,\n enableSorting: false,\n size: 250\n },\n id: {\n header: \"ID\",\n cell: (row: TaskDefinition) => (\n <Text size=\"sm\" className=\"text-neutral-strong font-mono\">\n {row.id}\n </Text>\n ),\n enableSorting: false,\n size: 250\n },\n description: {\n header: \"Description\",\n cell: (row: TaskDefinition) => (\n <Text size=\"sm\" className=\"text-neutral-strong\">\n {row.description || \"—\"}\n </Text>\n ),\n enableSorting: false\n }\n }),\n []\n );\n\n return (\n <div className=\"flex flex-col h-main-content\">\n <div className=\"flex items-center justify-between py-sm px-md\">\n <Heading level={5}>Task Definitions</Heading>\n </div>\n <Separator />\n <div className=\"flex-1 overflow-auto\">\n {!vm.loading && vm.definitions.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center h-full gap-md\">\n <Text className=\"text-neutral-strong\">No task definitions found.</Text>\n </div>\n ) : (\n <DataTable<TaskDefinition>\n columns={columns}\n data={vm.definitions}\n loading={vm.loading}\n stickyHeader\n />\n )}\n </div>\n </div>\n );\n});\n\nexport const TaskDefinitionsView = () => {\n const container = useContainer();\n\n const scopedContainer = useMemo(() => {\n const child = container.createChildContainer();\n ListDefinitionsFeature.register(child);\n TaskDefinitionsPresenterFeature.register(child);\n return child;\n }, []);\n\n return (\n <DiContainerProvider container={scopedContainer}>\n <TaskDefinitionsViewInner />\n </DiContainerProvider>\n );\n};\n"],"names":["TaskDefinitionsViewInner","observer","presenter","useFeature","TaskDefinitionsPresenterFeature","useEffect","vm","columns","useMemo","row","Text","Heading","Separator","DataTable","TaskDefinitionsView","container","useContainer","scopedContainer","child","ListDefinitionsFeature","DiContainerProvider"],"mappings":";;;;;;AAQA,MAAMA,+CAA2BC,SAAS;IACtC,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IAEjCC,UAAU;QACNH,UAAU,IAAI;IAClB,GAAG;QAACA;KAAU;IAEd,MAAM,EAAEI,EAAE,EAAE,GAAGJ;IAEf,MAAMK,UAAUC,QACZ,IAAO;YACH,OAAO;gBACH,QAAQ;gBACR,MAAM,CAACC,MAAAA,WAAAA,GAAwB,oBAACC,MAAIA;wBAAC,MAAK;uBAAMD,IAAI,KAAK,IAAIA,IAAI,EAAE;gBACnE,eAAe;gBACf,MAAM;YACV;YACA,IAAI;gBACA,QAAQ;gBACR,MAAM,CAACA,MAAAA,WAAAA,GACH,oBAACC,MAAIA;wBAAC,MAAK;wBAAK,WAAU;uBACrBD,IAAI,EAAE;gBAGf,eAAe;gBACf,MAAM;YACV;YACA,aAAa;gBACT,QAAQ;gBACR,MAAM,CAACA,MAAAA,WAAAA,GACH,oBAACC,MAAIA;wBAAC,MAAK;wBAAK,WAAU;uBACrBD,IAAI,WAAW,IAAI;gBAG5B,eAAe;YACnB;QACJ,IACA,EAAE;IAGN,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAAC;QAAI,WAAU;qBACX,oBAACE,SAAOA;QAAC,OAAO;OAAG,oCAEvB,oBAACC,WAASA,OAAAA,WAAAA,GACV,oBAAC;QAAI,WAAU;OACV,AAACN,GAAG,OAAO,IAAIA,AAA0B,MAA1BA,GAAG,WAAW,CAAC,MAAM,GAES,cAG1C,oBAACO,WAASA;QACN,SAASN;QACT,MAAMD,GAAG,WAAW;QACpB,SAASA,GAAG,OAAO;QACnB;SATsC,WAAJ,GACtC,oBAAC;QAAI,WAAU;qBACX,oBAACI,MAAIA;QAAC,WAAU;OAAsB;AAa9D;AAEO,MAAMI,sBAAsB;IAC/B,MAAMC,YAAYC;IAElB,MAAMC,kBAAkBT,QAAQ;QAC5B,MAAMU,QAAQH,UAAU,oBAAoB;QAC5CI,uBAAuB,QAAQ,CAACD;QAChCd,gCAAgC,QAAQ,CAACc;QACzC,OAAOA;IACX,GAAG,EAAE;IAEL,OAAO,WAAP,GACI,oBAACE,qBAAmBA;QAAC,WAAWH;qBAC5B,oBAACjB,8CAAwBA;AAGrC"}
@@ -0,0 +1,3 @@
1
+ export declare const TaskDefinitionsPresenterFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ presenter: import("./abstractions.js").ITaskDefinitionsPresenter;
3
+ }, []>;
@@ -0,0 +1,17 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { TaskDefinitionsPresenter } from "./abstractions.js";
3
+ import { TaskDefinitionsPresenter as external_TaskDefinitionsPresenter_js_TaskDefinitionsPresenter } from "./TaskDefinitionsPresenter.js";
4
+ const TaskDefinitionsPresenterFeature = createFeature({
5
+ name: "BackgroundTasks/TaskDefinitionsPresenter",
6
+ register (container) {
7
+ container.register(external_TaskDefinitionsPresenter_js_TaskDefinitionsPresenter).inSingletonScope();
8
+ },
9
+ resolve (container) {
10
+ return {
11
+ presenter: container.resolve(TaskDefinitionsPresenter)
12
+ };
13
+ }
14
+ });
15
+ export { TaskDefinitionsPresenterFeature };
16
+
17
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDefinitions/feature.js","sources":["../../../../src/admin/presentation/TaskDefinitions/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { TaskDefinitionsPresenter as PresenterAbstraction } from \"./abstractions.js\";\nimport { TaskDefinitionsPresenter } from \"./TaskDefinitionsPresenter.js\";\n\nexport const TaskDefinitionsPresenterFeature = createFeature({\n name: \"BackgroundTasks/TaskDefinitionsPresenter\",\n register(container) {\n container.register(TaskDefinitionsPresenter).inSingletonScope();\n },\n resolve(container) {\n return { presenter: container.resolve(PresenterAbstraction) };\n }\n});\n"],"names":["TaskDefinitionsPresenterFeature","createFeature","container","TaskDefinitionsPresenter","PresenterAbstraction"],"mappings":";;;AAIO,MAAMA,kCAAkCC,cAAc;IACzD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,+DAA0B,gBAAgB;IACjE;IACA,SAAQD,SAAS;QACb,OAAO;YAAE,WAAWA,UAAU,OAAO,CAACE;QAAsB;IAChE;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { TaskDefinitionsPresenter } from "./abstractions.js";
2
+ export { TaskDefinitionsPresenterFeature } from "./feature.js";
@@ -0,0 +1,2 @@
1
+ export { TaskDefinitionsPresenter } from "./abstractions.js";
2
+ export { TaskDefinitionsPresenterFeature } from "./feature.js";
@@ -0,0 +1,24 @@
1
+ import { type ITaskDetailPresenter, type ITaskDetailViewModel } from "./abstractions.js";
2
+ import { GetTaskUseCase } from "../../../admin/features/getTask/abstractions.js";
3
+ import { ListLogsUseCase } from "../../../admin/features/listLogs/abstractions.js";
4
+ declare class TaskDetailPresenterImpl implements ITaskDetailPresenter {
5
+ private readonly getTaskUseCase;
6
+ private readonly listLogsUseCase;
7
+ private _task;
8
+ private _loading;
9
+ private _logs;
10
+ private _logsLoading;
11
+ private _logsCursor;
12
+ private _logsHasMore;
13
+ private _logsTotalCount;
14
+ private _taskId;
15
+ constructor(getTaskUseCase: GetTaskUseCase.Interface, listLogsUseCase: ListLogsUseCase.Interface);
16
+ get vm(): ITaskDetailViewModel;
17
+ init(taskId: string): Promise<void>;
18
+ loadMore(): Promise<void>;
19
+ private fetchLogs;
20
+ }
21
+ export declare const TaskDetailPresenter: typeof TaskDetailPresenterImpl & {
22
+ __abstraction: import("@webiny/di").Abstraction<ITaskDetailPresenter>;
23
+ };
24
+ export {};
@@ -0,0 +1,87 @@
1
+ import { computed, makeAutoObservable, runInAction } from "mobx";
2
+ import { TaskDetailPresenter } from "./abstractions.js";
3
+ import { GetTaskUseCase } from "../../features/getTask/abstractions.js";
4
+ import { ListLogsUseCase } from "../../features/listLogs/abstractions.js";
5
+ class TaskDetailPresenterImpl {
6
+ constructor(getTaskUseCase, listLogsUseCase){
7
+ this.getTaskUseCase = getTaskUseCase;
8
+ this.listLogsUseCase = listLogsUseCase;
9
+ this._task = null;
10
+ this._loading = false;
11
+ this._logs = [];
12
+ this._logsLoading = false;
13
+ this._logsCursor = null;
14
+ this._logsHasMore = false;
15
+ this._logsTotalCount = 0;
16
+ this._taskId = null;
17
+ makeAutoObservable(this, {
18
+ vm: computed
19
+ });
20
+ }
21
+ get vm() {
22
+ return {
23
+ task: this._task,
24
+ loading: this._loading,
25
+ logs: {
26
+ rows: this._logs,
27
+ pagination: {
28
+ totalCount: this._logsTotalCount,
29
+ loading: this._logsLoading,
30
+ hasMore: this._logsHasMore
31
+ }
32
+ }
33
+ };
34
+ }
35
+ async init(taskId) {
36
+ this._taskId = taskId;
37
+ this._loading = true;
38
+ this._logs = [];
39
+ this._logsCursor = null;
40
+ this._logsHasMore = false;
41
+ this._logsTotalCount = 0;
42
+ const task = await this.getTaskUseCase.execute(taskId);
43
+ runInAction(()=>{
44
+ this._task = task;
45
+ this._loading = false;
46
+ });
47
+ await this.fetchLogs();
48
+ }
49
+ async loadMore() {
50
+ if (!this._logsHasMore || this._logsLoading) return;
51
+ await this.fetchLogs(this._logsCursor);
52
+ }
53
+ async fetchLogs(after) {
54
+ this._logsLoading = true;
55
+ const result = await this.listLogsUseCase.execute({
56
+ where: {
57
+ task: this._taskId
58
+ },
59
+ sort: [
60
+ "createdOn_DESC"
61
+ ],
62
+ limit: 50,
63
+ after: after ?? void 0
64
+ });
65
+ runInAction(()=>{
66
+ if (after) this._logs = [
67
+ ...this._logs,
68
+ ...result.items
69
+ ];
70
+ else this._logs = result.items;
71
+ this._logsCursor = result.meta.cursor;
72
+ this._logsHasMore = result.meta.hasMoreItems;
73
+ this._logsTotalCount = result.meta.totalCount;
74
+ this._logsLoading = false;
75
+ });
76
+ }
77
+ }
78
+ const TaskDetailPresenter_TaskDetailPresenter = TaskDetailPresenter.createImplementation({
79
+ implementation: TaskDetailPresenterImpl,
80
+ dependencies: [
81
+ GetTaskUseCase,
82
+ ListLogsUseCase
83
+ ]
84
+ });
85
+ export { TaskDetailPresenter_TaskDetailPresenter as TaskDetailPresenter };
86
+
87
+ //# sourceMappingURL=TaskDetailPresenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDetail/TaskDetailPresenter.js","sources":["../../../../src/admin/presentation/TaskDetail/TaskDetailPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport type { Task, TaskLog } from \"~/admin/shared/types.js\";\nimport {\n TaskDetailPresenter as Abstraction,\n type ITaskDetailPresenter,\n type ITaskDetailViewModel\n} from \"./abstractions.js\";\nimport { GetTaskUseCase } from \"~/admin/features/getTask/abstractions.js\";\nimport { ListLogsUseCase } from \"~/admin/features/listLogs/abstractions.js\";\n\nclass TaskDetailPresenterImpl implements ITaskDetailPresenter {\n private _task: Task | null = null;\n private _loading = false;\n private _logs: TaskLog[] = [];\n private _logsLoading = false;\n private _logsCursor: string | null = null;\n private _logsHasMore = false;\n private _logsTotalCount = 0;\n private _taskId: string | null = null;\n\n constructor(\n private readonly getTaskUseCase: GetTaskUseCase.Interface,\n private readonly listLogsUseCase: ListLogsUseCase.Interface\n ) {\n makeAutoObservable(this, { vm: computed });\n }\n\n get vm(): ITaskDetailViewModel {\n return {\n task: this._task,\n loading: this._loading,\n logs: {\n rows: this._logs,\n pagination: {\n totalCount: this._logsTotalCount,\n loading: this._logsLoading,\n hasMore: this._logsHasMore\n }\n }\n };\n }\n\n async init(taskId: string): Promise<void> {\n this._taskId = taskId;\n this._loading = true;\n this._logs = [];\n this._logsCursor = null;\n this._logsHasMore = false;\n this._logsTotalCount = 0;\n\n const task = await this.getTaskUseCase.execute(taskId);\n\n runInAction(() => {\n this._task = task;\n this._loading = false;\n });\n\n await this.fetchLogs();\n }\n\n async loadMore(): Promise<void> {\n if (!this._logsHasMore || this._logsLoading) {\n return;\n }\n\n await this.fetchLogs(this._logsCursor);\n }\n\n private async fetchLogs(after?: string | null): Promise<void> {\n this._logsLoading = true;\n\n const result = await this.listLogsUseCase.execute({\n where: { task: this._taskId! },\n sort: [\"createdOn_DESC\"],\n limit: 50,\n after: after ?? undefined\n });\n\n runInAction(() => {\n if (after) {\n this._logs = [...this._logs, ...result.items];\n } else {\n this._logs = result.items;\n }\n this._logsCursor = result.meta.cursor;\n this._logsHasMore = result.meta.hasMoreItems;\n this._logsTotalCount = result.meta.totalCount;\n this._logsLoading = false;\n });\n }\n}\n\nexport const TaskDetailPresenter = Abstraction.createImplementation({\n implementation: TaskDetailPresenterImpl,\n dependencies: [GetTaskUseCase, ListLogsUseCase]\n});\n"],"names":["TaskDetailPresenterImpl","getTaskUseCase","listLogsUseCase","makeAutoObservable","computed","taskId","task","runInAction","after","result","undefined","TaskDetailPresenter","Abstraction","GetTaskUseCase","ListLogsUseCase"],"mappings":";;;;AAUA,MAAMA;IAUF,YACqBC,cAAwC,EACxCC,eAA0C,CAC7D;aAFmBD,cAAc,GAAdA;aACAC,eAAe,GAAfA;aAXb,KAAK,GAAgB;aACrB,QAAQ,GAAG;aACX,KAAK,GAAc,EAAE;aACrB,YAAY,GAAG;aACf,WAAW,GAAkB;aAC7B,YAAY,GAAG;aACf,eAAe,GAAG;aAClB,OAAO,GAAkB;QAM7BC,mBAAmB,IAAI,EAAE;YAAE,IAAIC;QAAS;IAC5C;IAEA,IAAI,KAA2B;QAC3B,OAAO;YACH,MAAM,IAAI,CAAC,KAAK;YAChB,SAAS,IAAI,CAAC,QAAQ;YACtB,MAAM;gBACF,MAAM,IAAI,CAAC,KAAK;gBAChB,YAAY;oBACR,YAAY,IAAI,CAAC,eAAe;oBAChC,SAAS,IAAI,CAAC,YAAY;oBAC1B,SAAS,IAAI,CAAC,YAAY;gBAC9B;YACJ;QACJ;IACJ;IAEA,MAAM,KAAKC,MAAc,EAAiB;QACtC,IAAI,CAAC,OAAO,GAAGA;QACf,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,WAAW,GAAG;QACnB,IAAI,CAAC,YAAY,GAAG;QACpB,IAAI,CAAC,eAAe,GAAG;QAEvB,MAAMC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAACD;QAE/CE,YAAY;YACR,IAAI,CAAC,KAAK,GAAGD;YACb,IAAI,CAAC,QAAQ,GAAG;QACpB;QAEA,MAAM,IAAI,CAAC,SAAS;IACxB;IAEA,MAAM,WAA0B;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EACvC;QAGJ,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;IACzC;IAEA,MAAc,UAAUE,KAAqB,EAAiB;QAC1D,IAAI,CAAC,YAAY,GAAG;QAEpB,MAAMC,SAAS,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC9C,OAAO;gBAAE,MAAM,IAAI,CAAC,OAAO;YAAE;YAC7B,MAAM;gBAAC;aAAiB;YACxB,OAAO;YACP,OAAOD,SAASE;QACpB;QAEAH,YAAY;YACR,IAAIC,OACA,IAAI,CAAC,KAAK,GAAG;mBAAI,IAAI,CAAC,KAAK;mBAAKC,OAAO,KAAK;aAAC;iBAE7C,IAAI,CAAC,KAAK,GAAGA,OAAO,KAAK;YAE7B,IAAI,CAAC,WAAW,GAAGA,OAAO,IAAI,CAAC,MAAM;YACrC,IAAI,CAAC,YAAY,GAAGA,OAAO,IAAI,CAAC,YAAY;YAC5C,IAAI,CAAC,eAAe,GAAGA,OAAO,IAAI,CAAC,UAAU;YAC7C,IAAI,CAAC,YAAY,GAAG;QACxB;IACJ;AACJ;AAEO,MAAME,0CAAsBC,oBAAAA,oBAAgC,CAAC;IAChE,gBAAgBZ;IAChB,cAAc;QAACa;QAAgBC;KAAgB;AACnD"}
@@ -0,0 +1,24 @@
1
+ import type { Task, TaskLog } from "../../../admin/shared/types.js";
2
+ export interface ILogsViewModel {
3
+ rows: TaskLog[];
4
+ pagination: {
5
+ totalCount: number;
6
+ loading: boolean;
7
+ hasMore: boolean;
8
+ };
9
+ }
10
+ export interface ITaskDetailViewModel {
11
+ task: Task | null;
12
+ loading: boolean;
13
+ logs: ILogsViewModel;
14
+ }
15
+ export interface ITaskDetailPresenter {
16
+ vm: ITaskDetailViewModel;
17
+ init(taskId: string): void;
18
+ loadMore(): void;
19
+ }
20
+ export declare const TaskDetailPresenter: import("@webiny/di").Abstraction<ITaskDetailPresenter>;
21
+ export declare namespace TaskDetailPresenter {
22
+ type Interface = ITaskDetailPresenter;
23
+ type ViewModel = ITaskDetailViewModel;
24
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const TaskDetailPresenter = createAbstraction("TaskDetailPresenter");
3
+ export { TaskDetailPresenter };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/TaskDetail/abstractions.js","sources":["../../../../src/admin/presentation/TaskDetail/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { Task, TaskLog } from \"~/admin/shared/types.js\";\n\nexport interface ILogsViewModel {\n rows: TaskLog[];\n pagination: {\n totalCount: number;\n loading: boolean;\n hasMore: boolean;\n };\n}\n\nexport interface ITaskDetailViewModel {\n task: Task | null;\n loading: boolean;\n logs: ILogsViewModel;\n}\n\nexport interface ITaskDetailPresenter {\n vm: ITaskDetailViewModel;\n init(taskId: string): void;\n loadMore(): void;\n}\n\nexport const TaskDetailPresenter = createAbstraction<ITaskDetailPresenter>(\"TaskDetailPresenter\");\n\nexport namespace TaskDetailPresenter {\n export type Interface = ITaskDetailPresenter;\n export type ViewModel = ITaskDetailViewModel;\n}\n"],"names":["TaskDetailPresenter","createAbstraction"],"mappings":";AAwBO,MAAMA,sBAAsBC,kBAAwC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { Task } from "../../../../admin/shared/types.js";
3
+ interface TaskDetailDrawerProps {
4
+ task: Task;
5
+ open: boolean;
6
+ onClose: () => void;
7
+ onAbort: (id: string) => Promise<void>;
8
+ onDelete: (id: string) => Promise<void>;
9
+ }
10
+ export declare const TaskDetailDrawer: (props: TaskDetailDrawerProps) => React.JSX.Element;
11
+ export {};