@webiny/app-audit-logs 0.0.0-unstable.0156a4c312
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/SecurityPermission.d.ts +2 -0
- package/SecurityPermission.js +15 -0
- package/SecurityPermission.js.map +1 -0
- package/components/Text.d.ts +10 -0
- package/components/Text.js +35 -0
- package/components/Text.js.map +1 -0
- package/config/list/AuditLogsListConfig.d.ts +55 -0
- package/config/list/AuditLogsListConfig.js +44 -0
- package/config/list/AuditLogsListConfig.js.map +1 -0
- package/config/list/Browser/Filter.d.ts +39 -0
- package/config/list/Browser/Filter.js +37 -0
- package/config/list/Browser/Filter.js.map +1 -0
- package/config/list/Browser/FiltersToWhere.d.ts +7 -0
- package/config/list/Browser/FiltersToWhere.js +13 -0
- package/config/list/Browser/FiltersToWhere.js.map +1 -0
- package/config/list/Browser/index.d.ts +37 -0
- package/config/list/Browser/index.js +9 -0
- package/config/list/Browser/index.js.map +1 -0
- package/config/list/Details/PreviewTab.d.ts +15 -0
- package/config/list/Details/PreviewTab.js +32 -0
- package/config/list/Details/PreviewTab.js.map +1 -0
- package/config/list/Details/index.d.ts +8 -0
- package/config/list/Details/index.js +7 -0
- package/config/list/Details/index.js.map +1 -0
- package/config/list/index.d.ts +1 -0
- package/config/list/index.js +1 -0
- package/constants/index.d.ts +1 -0
- package/constants/index.js +4 -0
- package/constants/index.js.map +1 -0
- package/domain/permissionsSchema.d.ts +4 -0
- package/domain/permissionsSchema.js +8 -0
- package/domain/permissionsSchema.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsGateway.d.ts +11 -0
- package/features/listAuditLogs/ListAuditLogsGateway.js +71 -0
- package/features/listAuditLogs/ListAuditLogsGateway.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsRepository.d.ts +11 -0
- package/features/listAuditLogs/ListAuditLogsRepository.js +35 -0
- package/features/listAuditLogs/ListAuditLogsRepository.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.d.ts +10 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.js +19 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.js.map +1 -0
- package/features/listAuditLogs/abstractions/index.d.ts +6 -0
- package/features/listAuditLogs/abstractions/index.js +3 -0
- package/features/listAuditLogs/feature.d.ts +3 -0
- package/features/listAuditLogs/feature.js +21 -0
- package/features/listAuditLogs/feature.js.map +1 -0
- package/features/listAuditLogs/index.d.ts +1 -0
- package/features/listAuditLogs/index.js +1 -0
- package/features/permissions/abstractions.d.ts +17 -0
- package/features/permissions/abstractions.js +6 -0
- package/features/permissions/abstractions.js.map +1 -0
- package/features/permissions/feature.d.ts +14 -0
- package/features/permissions/feature.js +7 -0
- package/features/permissions/feature.js.map +1 -0
- package/graphql.d.ts +1 -0
- package/graphql.js +27 -0
- package/graphql.js.map +1 -0
- package/hooks/graphql.d.ts +9 -0
- package/hooks/graphql.js +0 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/schema.d.ts +35 -0
- package/hooks/schema.js +27 -0
- package/hooks/schema.js.map +1 -0
- package/hooks/useAuditLogsList.d.ts +16 -0
- package/hooks/useAuditLogsList.js +101 -0
- package/hooks/useAuditLogsList.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +51 -0
- package/index.js.map +1 -0
- package/package.json +46 -0
- package/routes.d.ts +4 -0
- package/routes.js +10 -0
- package/routes.js.map +1 -0
- package/types.d.ts +56 -0
- package/types.js +1 -0
- package/utils/transformRawAuditLog.d.ts +5 -0
- package/utils/transformRawAuditLog.js +26 -0
- package/utils/transformRawAuditLog.js.map +1 -0
- package/views/Logs/Filters/FilterByAction.d.ts +2 -0
- package/views/Logs/Filters/FilterByAction.js +46 -0
- package/views/Logs/Filters/FilterByAction.js.map +1 -0
- package/views/Logs/Filters/FilterByApp.d.ts +2 -0
- package/views/Logs/Filters/FilterByApp.js +38 -0
- package/views/Logs/Filters/FilterByApp.js.map +1 -0
- package/views/Logs/Filters/FilterByCreatedBy.d.ts +2 -0
- package/views/Logs/Filters/FilterByCreatedBy.js +50 -0
- package/views/Logs/Filters/FilterByCreatedBy.js.map +1 -0
- package/views/Logs/Filters/FilterByCreatedOn.d.ts +2 -0
- package/views/Logs/Filters/FilterByCreatedOn.js +38 -0
- package/views/Logs/Filters/FilterByCreatedOn.js.map +1 -0
- package/views/Logs/Filters/FilterByEntity.d.ts +2 -0
- package/views/Logs/Filters/FilterByEntity.js +46 -0
- package/views/Logs/Filters/FilterByEntity.js.map +1 -0
- package/views/Logs/Filters/FilterByEntityId.d.ts +2 -0
- package/views/Logs/Filters/FilterByEntityId.js +26 -0
- package/views/Logs/Filters/FilterByEntityId.js.map +1 -0
- package/views/Logs/Filters/FilterByInitiator.d.ts +2 -0
- package/views/Logs/Filters/FilterByInitiator.js +49 -0
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -0
- package/views/Logs/Filters/Filters.d.ts +7 -0
- package/views/Logs/Filters/Filters.js +69 -0
- package/views/Logs/Filters/Filters.js.map +1 -0
- package/views/Logs/Filters/index.d.ts +7 -0
- package/views/Logs/Filters/index.js +7 -0
- package/views/Logs/Filters/types.d.ts +9 -0
- package/views/Logs/Filters/types.js +0 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.d.ts +8 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +27 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -0
- package/views/Logs/Header/ButtonFilters/index.d.ts +1 -0
- package/views/Logs/Header/ButtonFilters/index.js +1 -0
- package/views/Logs/Header/Header.d.ts +7 -0
- package/views/Logs/Header/Header.js +14 -0
- package/views/Logs/Header/Header.js.map +1 -0
- package/views/Logs/Header/index.d.ts +1 -0
- package/views/Logs/Header/index.js +1 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.d.ts +9 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js +16 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -0
- package/views/Logs/LoadMoreButton/index.d.ts +1 -0
- package/views/Logs/LoadMoreButton/index.js +1 -0
- package/views/Logs/LoadMoreButton/styled.d.ts +4 -0
- package/views/Logs/LoadMoreButton/styled.js +7 -0
- package/views/Logs/LoadMoreButton/styled.js.map +1 -0
- package/views/Logs/LoadingMore/index.d.ts +2 -0
- package/views/Logs/LoadingMore/index.js +16 -0
- package/views/Logs/LoadingMore/index.js.map +1 -0
- package/views/Logs/LogsModule.d.ts +2 -0
- package/views/Logs/LogsModule.js +26 -0
- package/views/Logs/LogsModule.js.map +1 -0
- package/views/Logs/LogsView.d.ts +2 -0
- package/views/Logs/LogsView.js +73 -0
- package/views/Logs/LogsView.js.map +1 -0
- package/views/Logs/Preview/AuditLogDetailsPresenter.d.ts +13 -0
- package/views/Logs/Preview/AuditLogDetailsPresenter.js +36 -0
- package/views/Logs/Preview/AuditLogDetailsPresenter.js.map +1 -0
- package/views/Logs/Preview/Preview.d.ts +11 -0
- package/views/Logs/Preview/Preview.js +127 -0
- package/views/Logs/Preview/Preview.js.map +1 -0
- package/views/Logs/Preview/abstractions.d.ts +14 -0
- package/views/Logs/Preview/abstractions.js +5 -0
- package/views/Logs/Preview/abstractions.js.map +1 -0
- package/views/Logs/Preview/feature.d.ts +5 -0
- package/views/Logs/Preview/feature.js +22 -0
- package/views/Logs/Preview/feature.js.map +1 -0
- package/views/Logs/Preview/index.d.ts +3 -0
- package/views/Logs/Preview/index.js +2 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.d.ts +2 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.js +25 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.js.map +1 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.js +41 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.js.map +1 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.js +24 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.js.map +1 -0
- package/views/Logs/Preview/tabs/UserPromptTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/UserPromptTab.js +18 -0
- package/views/Logs/Preview/tabs/UserPromptTab.js.map +1 -0
- package/views/Logs/Preview/tabs/shared.d.ts +28 -0
- package/views/Logs/Preview/tabs/shared.js +16 -0
- package/views/Logs/Preview/tabs/shared.js.map +1 -0
- package/views/Logs/Table/Table.d.ts +21 -0
- package/views/Logs/Table/Table.js +117 -0
- package/views/Logs/Table/Table.js.map +1 -0
- package/views/Logs/Table/index.d.ts +1 -0
- package/views/Logs/Table/index.js +1 -0
- package/views/Logs/Table/styled.d.ts +1 -0
- package/views/Logs/Table/styled.js +17 -0
- package/views/Logs/Table/styled.js.map +1 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ListAuditLogsGateway, ListAuditLogsRepository } from "./abstractions/index.js";
|
|
2
|
+
import { listAuditLogsSchema } from "../../hooks/schema.js";
|
|
3
|
+
import { transformRawAuditLog } from "../../utils/transformRawAuditLog.js";
|
|
4
|
+
class ListAuditLogsRepositoryImpl {
|
|
5
|
+
constructor(gateway){
|
|
6
|
+
this.gateway = gateway;
|
|
7
|
+
}
|
|
8
|
+
async execute(params) {
|
|
9
|
+
const response = await this.gateway.execute(params);
|
|
10
|
+
const parsed = listAuditLogsSchema.safeParse(response.data);
|
|
11
|
+
if (!parsed.success) {
|
|
12
|
+
console.error(parsed.error);
|
|
13
|
+
return {
|
|
14
|
+
records: [],
|
|
15
|
+
meta: response.meta
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const records = parsed.data.map((auditLog)=>transformRawAuditLog({
|
|
19
|
+
auditLog
|
|
20
|
+
}));
|
|
21
|
+
return {
|
|
22
|
+
records,
|
|
23
|
+
meta: response.meta
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const ListAuditLogsRepository_ListAuditLogsRepository = ListAuditLogsRepository.createImplementation({
|
|
28
|
+
implementation: ListAuditLogsRepositoryImpl,
|
|
29
|
+
dependencies: [
|
|
30
|
+
ListAuditLogsGateway
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
export { ListAuditLogsRepository_ListAuditLogsRepository as ListAuditLogsRepository };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=ListAuditLogsRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/ListAuditLogsRepository.js","sources":["../../../src/features/listAuditLogs/ListAuditLogsRepository.ts"],"sourcesContent":["import { ListAuditLogsGateway } from \"./abstractions/index.js\";\nimport { ListAuditLogsRepository as RepositoryAbstraction } from \"./abstractions/index.js\";\nimport { listAuditLogsSchema } from \"~/hooks/schema.js\";\nimport { transformRawAuditLog } from \"~/utils/transformRawAuditLog.js\";\n\nclass ListAuditLogsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(private readonly gateway: ListAuditLogsGateway.Interface) {}\n\n async execute(params: RepositoryAbstraction.Params): Promise<RepositoryAbstraction.Result> {\n const response = await this.gateway.execute(params);\n\n const parsed = listAuditLogsSchema.safeParse(response.data);\n if (!parsed.success) {\n console.error(parsed.error);\n return {\n records: [],\n meta: response.meta\n };\n }\n\n const records = parsed.data.map(auditLog => transformRawAuditLog({ auditLog }));\n\n return {\n records,\n meta: response.meta\n };\n }\n}\n\nexport const ListAuditLogsRepository = RepositoryAbstraction.createImplementation({\n implementation: ListAuditLogsRepositoryImpl,\n dependencies: [ListAuditLogsGateway]\n});\n"],"names":["ListAuditLogsRepositoryImpl","gateway","params","response","parsed","listAuditLogsSchema","console","records","auditLog","transformRawAuditLog","ListAuditLogsRepository","RepositoryAbstraction","ListAuditLogsGateway"],"mappings":";;;AAKA,MAAMA;IACF,YAA6BC,OAAuC,CAAE;aAAzCA,OAAO,GAAPA;IAA0C;IAEvE,MAAM,QAAQC,MAAoC,EAAyC;QACvF,MAAMC,WAAW,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAACD;QAE5C,MAAME,SAASC,oBAAoB,SAAS,CAACF,SAAS,IAAI;QAC1D,IAAI,CAACC,OAAO,OAAO,EAAE;YACjBE,QAAQ,KAAK,CAACF,OAAO,KAAK;YAC1B,OAAO;gBACH,SAAS,EAAE;gBACX,MAAMD,SAAS,IAAI;YACvB;QACJ;QAEA,MAAMI,UAAUH,OAAO,IAAI,CAAC,GAAG,CAACI,CAAAA,WAAYC,qBAAqB;gBAAED;YAAS;QAE5E,OAAO;YACHD;YACA,MAAMJ,SAAS,IAAI;QACvB;IACJ;AACJ;AAEO,MAAMO,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBX;IAChB,cAAc;QAACY;KAAqB;AACxC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ListAuditLogsRepository, ListAuditLogsUseCase as UseCaseAbstraction } from "./abstractions/index.js";
|
|
2
|
+
declare class ListAuditLogsUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
3
|
+
private readonly repository;
|
|
4
|
+
constructor(repository: ListAuditLogsRepository.Interface);
|
|
5
|
+
execute(params: UseCaseAbstraction.Params): Promise<UseCaseAbstraction.Result>;
|
|
6
|
+
}
|
|
7
|
+
export declare const ListAuditLogsUseCase: typeof ListAuditLogsUseCaseImpl & {
|
|
8
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/ListAuditLogsUseCase.js").IListAuditLogsUseCase>;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ListAuditLogsRepository, ListAuditLogsUseCase } from "./abstractions/index.js";
|
|
2
|
+
class ListAuditLogsUseCaseImpl {
|
|
3
|
+
constructor(repository){
|
|
4
|
+
this.repository = repository;
|
|
5
|
+
}
|
|
6
|
+
async execute(params) {
|
|
7
|
+
const result = await this.repository.execute(params);
|
|
8
|
+
return result;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const ListAuditLogsUseCase_ListAuditLogsUseCase = ListAuditLogsUseCase.createImplementation({
|
|
12
|
+
implementation: ListAuditLogsUseCaseImpl,
|
|
13
|
+
dependencies: [
|
|
14
|
+
ListAuditLogsRepository
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
export { ListAuditLogsUseCase_ListAuditLogsUseCase as ListAuditLogsUseCase };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=ListAuditLogsUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/ListAuditLogsUseCase.js","sources":["../../../src/features/listAuditLogs/ListAuditLogsUseCase.ts"],"sourcesContent":["import {\n ListAuditLogsRepository,\n ListAuditLogsUseCase as UseCaseAbstraction\n} from \"./abstractions/index.js\";\n\nclass ListAuditLogsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private readonly repository: ListAuditLogsRepository.Interface) {}\n\n async execute(params: UseCaseAbstraction.Params): Promise<UseCaseAbstraction.Result> {\n const result = await this.repository.execute(params);\n return result;\n }\n}\n\nexport const ListAuditLogsUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListAuditLogsUseCaseImpl,\n dependencies: [ListAuditLogsRepository]\n});\n"],"names":["ListAuditLogsUseCaseImpl","repository","params","result","ListAuditLogsUseCase","UseCaseAbstraction","ListAuditLogsRepository"],"mappings":";AAKA,MAAMA;IACF,YAA6BC,UAA6C,CAAE;aAA/CA,UAAU,GAAVA;IAAgD;IAE7E,MAAM,QAAQC,MAAiC,EAAsC;QACjF,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;QAC7C,OAAOC;IACX;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBL;IAChB,cAAc;QAACM;KAAwB;AAC3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IAuditLogRaw, IAuditLogsMeta } from "../../../types.js";
|
|
2
|
+
export interface IListAuditLogsGatewayParams {
|
|
3
|
+
where?: Record<string, unknown>;
|
|
4
|
+
after?: string;
|
|
5
|
+
sort?: "ASC" | "DESC";
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IListAuditLogsGatewayResult {
|
|
9
|
+
data: IAuditLogRaw[];
|
|
10
|
+
meta: IAuditLogsMeta;
|
|
11
|
+
}
|
|
12
|
+
export interface IListAuditLogsGateway {
|
|
13
|
+
execute(params: IListAuditLogsGatewayParams): Promise<IListAuditLogsGatewayResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare const ListAuditLogsGateway: import("@webiny/di").Abstraction<IListAuditLogsGateway>;
|
|
16
|
+
export declare namespace ListAuditLogsGateway {
|
|
17
|
+
type Interface = IListAuditLogsGateway;
|
|
18
|
+
type Params = IListAuditLogsGatewayParams;
|
|
19
|
+
type Result = IListAuditLogsGatewayResult;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/abstractions/ListAuditLogsGateway.js","sources":["../../../../src/features/listAuditLogs/abstractions/ListAuditLogsGateway.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IAuditLogRaw, IAuditLogsMeta } from \"~/types.js\";\n\nexport interface IListAuditLogsGatewayParams {\n where?: Record<string, unknown>;\n after?: string;\n sort?: \"ASC\" | \"DESC\";\n limit?: number;\n}\n\nexport interface IListAuditLogsGatewayResult {\n data: IAuditLogRaw[];\n meta: IAuditLogsMeta;\n}\n\nexport interface IListAuditLogsGateway {\n execute(params: IListAuditLogsGatewayParams): Promise<IListAuditLogsGatewayResult>;\n}\n\nexport const ListAuditLogsGateway =\n createAbstraction<IListAuditLogsGateway>(\"ListAuditLogsGateway\");\n\nexport namespace ListAuditLogsGateway {\n export type Interface = IListAuditLogsGateway;\n export type Params = IListAuditLogsGatewayParams;\n export type Result = IListAuditLogsGatewayResult;\n}\n"],"names":["ListAuditLogsGateway","createAbstraction"],"mappings":";AAmBO,MAAMA,uBACTC,kBAAyC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IAuditLog, IAuditLogsMeta } from "../../../types.js";
|
|
2
|
+
export interface IListAuditLogsRepositoryParams {
|
|
3
|
+
where?: Record<string, unknown>;
|
|
4
|
+
after?: string;
|
|
5
|
+
sort?: "ASC" | "DESC";
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IListAuditLogsRepositoryResult {
|
|
9
|
+
records: IAuditLog[];
|
|
10
|
+
meta: IAuditLogsMeta;
|
|
11
|
+
}
|
|
12
|
+
export interface IListAuditLogsRepository {
|
|
13
|
+
execute(params: IListAuditLogsRepositoryParams): Promise<IListAuditLogsRepositoryResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare const ListAuditLogsRepository: import("@webiny/di").Abstraction<IListAuditLogsRepository>;
|
|
16
|
+
export declare namespace ListAuditLogsRepository {
|
|
17
|
+
type Interface = IListAuditLogsRepository;
|
|
18
|
+
type Params = IListAuditLogsRepositoryParams;
|
|
19
|
+
type Result = IListAuditLogsRepositoryResult;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/abstractions/ListAuditLogsRepository.js","sources":["../../../../src/features/listAuditLogs/abstractions/ListAuditLogsRepository.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IAuditLog, IAuditLogsMeta } from \"~/types.js\";\n\nexport interface IListAuditLogsRepositoryParams {\n where?: Record<string, unknown>;\n after?: string;\n sort?: \"ASC\" | \"DESC\";\n limit?: number;\n}\n\nexport interface IListAuditLogsRepositoryResult {\n records: IAuditLog[];\n meta: IAuditLogsMeta;\n}\n\nexport interface IListAuditLogsRepository {\n execute(params: IListAuditLogsRepositoryParams): Promise<IListAuditLogsRepositoryResult>;\n}\n\nexport const ListAuditLogsRepository =\n createAbstraction<IListAuditLogsRepository>(\"ListAuditLogsRepository\");\n\nexport namespace ListAuditLogsRepository {\n export type Interface = IListAuditLogsRepository;\n export type Params = IListAuditLogsRepositoryParams;\n export type Result = IListAuditLogsRepositoryResult;\n}\n"],"names":["ListAuditLogsRepository","createAbstraction"],"mappings":";AAmBO,MAAMA,0BACTC,kBAA4C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IAuditLog, IAuditLogsMeta } from "../../../types.js";
|
|
2
|
+
export interface IListAuditLogsUseCaseParams {
|
|
3
|
+
where?: Record<string, unknown>;
|
|
4
|
+
after?: string;
|
|
5
|
+
sort?: "ASC" | "DESC";
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IListAuditLogsUseCaseResult {
|
|
9
|
+
records: IAuditLog[];
|
|
10
|
+
meta: IAuditLogsMeta;
|
|
11
|
+
}
|
|
12
|
+
export interface IListAuditLogsUseCase {
|
|
13
|
+
execute(params: IListAuditLogsUseCaseParams): Promise<IListAuditLogsUseCaseResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare const ListAuditLogsUseCase: import("@webiny/di").Abstraction<IListAuditLogsUseCase>;
|
|
16
|
+
export declare namespace ListAuditLogsUseCase {
|
|
17
|
+
type Interface = IListAuditLogsUseCase;
|
|
18
|
+
type Params = IListAuditLogsUseCaseParams;
|
|
19
|
+
type Result = IListAuditLogsUseCaseResult;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/abstractions/ListAuditLogsUseCase.js","sources":["../../../../src/features/listAuditLogs/abstractions/ListAuditLogsUseCase.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IAuditLog, IAuditLogsMeta } from \"~/types.js\";\n\nexport interface IListAuditLogsUseCaseParams {\n where?: Record<string, unknown>;\n after?: string;\n sort?: \"ASC\" | \"DESC\";\n limit?: number;\n}\n\nexport interface IListAuditLogsUseCaseResult {\n records: IAuditLog[];\n meta: IAuditLogsMeta;\n}\n\nexport interface IListAuditLogsUseCase {\n execute(params: IListAuditLogsUseCaseParams): Promise<IListAuditLogsUseCaseResult>;\n}\n\nexport const ListAuditLogsUseCase =\n createAbstraction<IListAuditLogsUseCase>(\"ListAuditLogsUseCase\");\n\nexport namespace ListAuditLogsUseCase {\n export type Interface = IListAuditLogsUseCase;\n export type Params = IListAuditLogsUseCaseParams;\n export type Result = IListAuditLogsUseCaseResult;\n}\n"],"names":["ListAuditLogsUseCase","createAbstraction"],"mappings":";AAmBO,MAAMA,uBACTC,kBAAyC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ListAuditLogsGateway } from "./ListAuditLogsGateway.js";
|
|
2
|
+
export type { IListAuditLogsGateway } from "./ListAuditLogsGateway.js";
|
|
3
|
+
export { ListAuditLogsRepository } from "./ListAuditLogsRepository.js";
|
|
4
|
+
export type { IListAuditLogsRepository } from "./ListAuditLogsRepository.js";
|
|
5
|
+
export { ListAuditLogsUseCase } from "./ListAuditLogsUseCase.js";
|
|
6
|
+
export type { IListAuditLogsUseCase } from "./ListAuditLogsUseCase.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { ListAuditLogsUseCase } from "./abstractions/index.js";
|
|
3
|
+
import { ListAuditLogsUseCase as external_ListAuditLogsUseCase_js_ListAuditLogsUseCase } from "./ListAuditLogsUseCase.js";
|
|
4
|
+
import { ListAuditLogsRepository } from "./ListAuditLogsRepository.js";
|
|
5
|
+
import { ListAuditLogsGateway } from "./ListAuditLogsGateway.js";
|
|
6
|
+
const ListAuditLogsFeature = createFeature({
|
|
7
|
+
name: "AuditLogs/ListAuditLogs",
|
|
8
|
+
register (container) {
|
|
9
|
+
container.register(external_ListAuditLogsUseCase_js_ListAuditLogsUseCase);
|
|
10
|
+
container.register(ListAuditLogsRepository).inSingletonScope();
|
|
11
|
+
container.register(ListAuditLogsGateway).inSingletonScope();
|
|
12
|
+
},
|
|
13
|
+
resolve (container) {
|
|
14
|
+
return {
|
|
15
|
+
useCase: container.resolve(ListAuditLogsUseCase)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
export { ListAuditLogsFeature };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/listAuditLogs/feature.js","sources":["../../../src/features/listAuditLogs/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { ListAuditLogsUseCase as UseCaseAbstraction } from \"./abstractions/index.js\";\nimport { ListAuditLogsUseCase } from \"./ListAuditLogsUseCase.js\";\nimport { ListAuditLogsRepository } from \"./ListAuditLogsRepository.js\";\nimport { ListAuditLogsGateway } from \"./ListAuditLogsGateway.js\";\n\nexport const ListAuditLogsFeature = createFeature({\n name: \"AuditLogs/ListAuditLogs\",\n register(container) {\n container.register(ListAuditLogsUseCase);\n container.register(ListAuditLogsRepository).inSingletonScope();\n container.register(ListAuditLogsGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"names":["ListAuditLogsFeature","createFeature","container","ListAuditLogsUseCase","ListAuditLogsRepository","ListAuditLogsGateway","UseCaseAbstraction"],"mappings":";;;;;AAMO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;QAC5DF,UAAU,QAAQ,CAACG,sBAAsB,gBAAgB;IAC7D;IACA,SAAQH,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACI;QAC/B;IACJ;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ListAuditLogsFeature } from "./feature.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ListAuditLogsFeature } from "./feature.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Permissions } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
|
+
import { AL_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
+
export declare const AuditLogsPermissions: import("@webiny/di").Abstraction<{
|
|
4
|
+
canAccess: (entityId: never) => boolean;
|
|
5
|
+
canAction: (action: string, entityId: never) => boolean;
|
|
6
|
+
} & {
|
|
7
|
+
canRead: (entityId: string) => boolean;
|
|
8
|
+
canCreate: (entityId: string) => boolean;
|
|
9
|
+
canEdit: (entityId: string, item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
|
|
10
|
+
canDelete: (entityId: string, item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
|
|
11
|
+
} & {
|
|
12
|
+
canPublish: (entityId: string) => boolean;
|
|
13
|
+
canUnpublish: (entityId: string) => boolean;
|
|
14
|
+
}>;
|
|
15
|
+
export declare namespace AuditLogsPermissions {
|
|
16
|
+
type Interface = Permissions<typeof AL_PERMISSIONS_SCHEMA>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
|
|
2
|
+
import { AL_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
+
const AuditLogsPermissions = createPermissionsAbstraction(AL_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { AuditLogsPermissions };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/permissions/abstractions.js","sources":["../../../src/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 { AL_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const AuditLogsPermissions = createPermissionsAbstraction(AL_PERMISSIONS_SCHEMA);\n\nexport namespace AuditLogsPermissions {\n export type Interface = Permissions<typeof AL_PERMISSIONS_SCHEMA>;\n}\n"],"names":["AuditLogsPermissions","createPermissionsAbstraction","AL_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,uBAAuBC,6BAA6BC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const AlPermissionsFeature: import("@webiny/feature/admin/createFeature.js").FeatureDefinition<{
|
|
2
|
+
permissions: {
|
|
3
|
+
canAccess: (entityId: never) => boolean;
|
|
4
|
+
canAction: (action: string, entityId: never) => boolean;
|
|
5
|
+
} & {
|
|
6
|
+
canRead: (entityId: string) => boolean;
|
|
7
|
+
canCreate: (entityId: string) => boolean;
|
|
8
|
+
canEdit: (entityId: string, item?: import("@webiny/app-admin/index.js").OwnableItem) => boolean;
|
|
9
|
+
canDelete: (entityId: string, 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 { AL_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
+
import { AuditLogsPermissions } from "./abstractions.js";
|
|
4
|
+
const AlPermissionsFeature = createPermissionsFeature(AL_PERMISSIONS_SCHEMA, AuditLogsPermissions);
|
|
5
|
+
export { AlPermissionsFeature };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/permissions/feature.js","sources":["../../../src/features/permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { AL_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { AuditLogsPermissions } from \"./abstractions.js\";\n\nexport const AlPermissionsFeature = createPermissionsFeature(\n AL_PERMISSIONS_SCHEMA,\n AuditLogsPermissions\n);\n"],"names":["AlPermissionsFeature","createPermissionsFeature","AL_PERMISSIONS_SCHEMA","AuditLogsPermissions"],"mappings":";;;AAIO,MAAMA,uBAAuBC,yBAChCC,uBACAC"}
|
package/graphql.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LIST_USERS = "\n query ListUsers {\n adminUsers {\n users: listUsers {\n data {\n id\n firstName\n lastName\n roles {\n name\n }\n }\n error {\n \n code\n message\n data\n\n }\n }\n }\n }\n";
|
package/graphql.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const ERROR_FIELDS = `
|
|
2
|
+
code
|
|
3
|
+
message
|
|
4
|
+
data
|
|
5
|
+
`;
|
|
6
|
+
const LIST_USERS = `
|
|
7
|
+
query ListUsers {
|
|
8
|
+
adminUsers {
|
|
9
|
+
users: listUsers {
|
|
10
|
+
data {
|
|
11
|
+
id
|
|
12
|
+
firstName
|
|
13
|
+
lastName
|
|
14
|
+
roles {
|
|
15
|
+
name
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
error {
|
|
19
|
+
${ERROR_FIELDS}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
export { LIST_USERS };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=graphql.js.map
|
package/graphql.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sources":["../src/graphql.ts"],"sourcesContent":["const ERROR_FIELDS = /* GraphQL */ `\n code\n message\n data\n`;\n\nexport const LIST_USERS = /* GraphQL */ `\n query ListUsers {\n adminUsers {\n users: listUsers {\n data {\n id\n firstName\n lastName\n roles {\n name\n }\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"names":["ERROR_FIELDS","LIST_USERS"],"mappings":"AAAA,MAAMA,eAA6B,CAAC;;;;AAIpC,CAAC;AAEM,MAAMC,aAA2B,CAAC;;;;;;;;;;;;;oBAarB,EAAED,aAAa;;;;;AAKnC,CAAC"}
|
package/hooks/graphql.js
ADDED
|
File without changes
|
package/hooks/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useAuditLogsList.js";
|
package/hooks/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useAuditLogsList.js";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import zod from "zod";
|
|
2
|
+
export declare const auditLogSchema: zod.ZodObject<{
|
|
3
|
+
id: zod.ZodString;
|
|
4
|
+
createdBy: zod.ZodObject<{
|
|
5
|
+
id: zod.ZodString;
|
|
6
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
7
|
+
type: zod.ZodOptional<zod.ZodString>;
|
|
8
|
+
}, zod.core.$strip>;
|
|
9
|
+
createdOn: zod.ZodPreprocess<zod.ZodDate, unknown>;
|
|
10
|
+
app: zod.ZodString;
|
|
11
|
+
action: zod.ZodString;
|
|
12
|
+
message: zod.ZodString;
|
|
13
|
+
entity: zod.ZodString;
|
|
14
|
+
entityId: zod.ZodString;
|
|
15
|
+
tags: zod.ZodArray<zod.ZodString>;
|
|
16
|
+
expiresAt: zod.ZodPipe<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodPreprocess<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodDate>>>, unknown>>>>, zod.ZodTransform<Date | undefined, Date | null | undefined>>;
|
|
17
|
+
content: zod.ZodString;
|
|
18
|
+
}, zod.core.$strip>;
|
|
19
|
+
export declare const listAuditLogsSchema: zod.ZodArray<zod.ZodObject<{
|
|
20
|
+
id: zod.ZodString;
|
|
21
|
+
createdBy: zod.ZodObject<{
|
|
22
|
+
id: zod.ZodString;
|
|
23
|
+
displayName: zod.ZodOptional<zod.ZodString>;
|
|
24
|
+
type: zod.ZodOptional<zod.ZodString>;
|
|
25
|
+
}, zod.core.$strip>;
|
|
26
|
+
createdOn: zod.ZodPreprocess<zod.ZodDate, unknown>;
|
|
27
|
+
app: zod.ZodString;
|
|
28
|
+
action: zod.ZodString;
|
|
29
|
+
message: zod.ZodString;
|
|
30
|
+
entity: zod.ZodString;
|
|
31
|
+
entityId: zod.ZodString;
|
|
32
|
+
tags: zod.ZodArray<zod.ZodString>;
|
|
33
|
+
expiresAt: zod.ZodPipe<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodPreprocess<zod.ZodOptional<zod.ZodNullable<zod.ZodOptional<zod.ZodDate>>>, unknown>>>>, zod.ZodTransform<Date | undefined, Date | null | undefined>>;
|
|
34
|
+
content: zod.ZodString;
|
|
35
|
+
}, zod.core.$strip>>;
|
package/hooks/schema.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import zod from "zod";
|
|
2
|
+
const auditLogSchema = zod.object({
|
|
3
|
+
id: zod.string(),
|
|
4
|
+
createdBy: zod.object({
|
|
5
|
+
id: zod.string(),
|
|
6
|
+
displayName: zod.string().optional(),
|
|
7
|
+
type: zod.string().optional()
|
|
8
|
+
}),
|
|
9
|
+
createdOn: zod.preprocess((value)=>{
|
|
10
|
+
if ("string" == typeof value || value instanceof Date) return new Date(value);
|
|
11
|
+
return value;
|
|
12
|
+
}, zod.date()),
|
|
13
|
+
app: zod.string(),
|
|
14
|
+
action: zod.string(),
|
|
15
|
+
message: zod.string(),
|
|
16
|
+
entity: zod.string(),
|
|
17
|
+
entityId: zod.string(),
|
|
18
|
+
tags: zod.array(zod.string()),
|
|
19
|
+
expiresAt: zod.preprocess((value)=>{
|
|
20
|
+
if ("string" == typeof value || value instanceof Date) return new Date(value);
|
|
21
|
+
}, zod.date().optional().nullish()).optional().nullish().transform((value)=>value || void 0),
|
|
22
|
+
content: zod.string()
|
|
23
|
+
});
|
|
24
|
+
const listAuditLogsSchema = zod.array(auditLogSchema);
|
|
25
|
+
export { auditLogSchema, listAuditLogsSchema };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks/schema.js","sources":["../../src/hooks/schema.ts"],"sourcesContent":["import zod from \"zod\";\n\nexport const auditLogSchema = zod.object({\n id: zod.string(),\n createdBy: zod.object({\n id: zod.string(),\n displayName: zod.string().optional(),\n type: zod.string().optional()\n }),\n createdOn: zod.preprocess(value => {\n if (typeof value === \"string\" || value instanceof Date) {\n return new Date(value);\n }\n return value;\n }, zod.date()),\n app: zod.string(),\n action: zod.string(),\n message: zod.string(),\n entity: zod.string(),\n entityId: zod.string(),\n tags: zod.array(zod.string()),\n expiresAt: zod\n .preprocess(value => {\n if (typeof value === \"string\" || value instanceof Date) {\n return new Date(value);\n }\n return undefined;\n }, zod.date().optional().nullish())\n .optional()\n .nullish()\n .transform(value => {\n return value || undefined;\n }),\n content: zod.string()\n});\n\nexport const listAuditLogsSchema = zod.array(auditLogSchema);\n"],"names":["auditLogSchema","zod","value","Date","undefined","listAuditLogsSchema"],"mappings":";AAEO,MAAMA,iBAAiBC,IAAI,MAAM,CAAC;IACrC,IAAIA,IAAI,MAAM;IACd,WAAWA,IAAI,MAAM,CAAC;QAClB,IAAIA,IAAI,MAAM;QACd,aAAaA,IAAI,MAAM,GAAG,QAAQ;QAClC,MAAMA,IAAI,MAAM,GAAG,QAAQ;IAC/B;IACA,WAAWA,IAAI,UAAU,CAACC,CAAAA;QACtB,IAAI,AAAiB,YAAjB,OAAOA,SAAsBA,iBAAiBC,MAC9C,OAAO,IAAIA,KAAKD;QAEpB,OAAOA;IACX,GAAGD,IAAI,IAAI;IACX,KAAKA,IAAI,MAAM;IACf,QAAQA,IAAI,MAAM;IAClB,SAASA,IAAI,MAAM;IACnB,QAAQA,IAAI,MAAM;IAClB,UAAUA,IAAI,MAAM;IACpB,MAAMA,IAAI,KAAK,CAACA,IAAI,MAAM;IAC1B,WAAWA,IAAAA,UACI,CAACC,CAAAA;QACR,IAAI,AAAiB,YAAjB,OAAOA,SAAsBA,iBAAiBC,MAC9C,OAAO,IAAIA,KAAKD;IAGxB,GAAGD,IAAI,IAAI,GAAG,QAAQ,GAAG,OAAO,IAC/B,QAAQ,GACR,OAAO,GACP,SAAS,CAACC,CAAAA,QACAA,SAASE;IAExB,SAASH,IAAI,MAAM;AACvB;AAEO,MAAMI,sBAAsBJ,IAAI,KAAK,CAACD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IListAuditLogsVariablesWhere } from "../hooks/graphql.js";
|
|
2
|
+
import type { IAuditLog, IAuditLogsMeta } from "../types.js";
|
|
3
|
+
import type { OnDataTableSortingChange, DataTableSorting } from "@webiny/admin-ui";
|
|
4
|
+
export interface UseAuditLogs {
|
|
5
|
+
isListLoading: boolean;
|
|
6
|
+
isListLoadingMore: boolean;
|
|
7
|
+
records: IAuditLog[];
|
|
8
|
+
meta: IAuditLogsMeta;
|
|
9
|
+
listMoreRecords: () => void;
|
|
10
|
+
setWhere: (where: Partial<IListAuditLogsVariablesWhere>) => void;
|
|
11
|
+
setLimit: (limit: number) => void;
|
|
12
|
+
after?: string;
|
|
13
|
+
sorting: DataTableSorting;
|
|
14
|
+
setSorting: OnDataTableSortingChange;
|
|
15
|
+
}
|
|
16
|
+
export declare const useAuditLogsList: () => UseAuditLogs;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app";
|
|
3
|
+
import { ListAuditLogsFeature } from "../features/listAuditLogs/index.js";
|
|
4
|
+
const useAuditLogsList = ()=>{
|
|
5
|
+
const { useCase } = useFeature(ListAuditLogsFeature);
|
|
6
|
+
const [variables, setVariables] = useState({
|
|
7
|
+
where: {},
|
|
8
|
+
after: void 0,
|
|
9
|
+
sort: "DESC",
|
|
10
|
+
limit: 25
|
|
11
|
+
});
|
|
12
|
+
const [accumulatedRecords, setAccumulatedRecords] = useState([]);
|
|
13
|
+
const [loading, setLoading] = useState(true);
|
|
14
|
+
const [meta, setMeta] = useState({
|
|
15
|
+
hasMoreItems: false,
|
|
16
|
+
cursor: null
|
|
17
|
+
});
|
|
18
|
+
const resetPagination = useCallback(()=>{
|
|
19
|
+
setAccumulatedRecords([]);
|
|
20
|
+
setMeta({
|
|
21
|
+
hasMoreItems: false,
|
|
22
|
+
cursor: null
|
|
23
|
+
});
|
|
24
|
+
}, []);
|
|
25
|
+
const setWhere = useCallback((where)=>{
|
|
26
|
+
setVariables((prev)=>({
|
|
27
|
+
...prev,
|
|
28
|
+
where,
|
|
29
|
+
after: void 0
|
|
30
|
+
}));
|
|
31
|
+
resetPagination();
|
|
32
|
+
}, []);
|
|
33
|
+
const setSort = useCallback((sort)=>{
|
|
34
|
+
setVariables((prev)=>({
|
|
35
|
+
...prev,
|
|
36
|
+
sort,
|
|
37
|
+
after: void 0
|
|
38
|
+
}));
|
|
39
|
+
resetPagination();
|
|
40
|
+
}, []);
|
|
41
|
+
const setAfter = useCallback((after)=>{
|
|
42
|
+
setVariables((prev)=>({
|
|
43
|
+
...prev,
|
|
44
|
+
after
|
|
45
|
+
}));
|
|
46
|
+
}, []);
|
|
47
|
+
const setLimit = useCallback((limit)=>{
|
|
48
|
+
setVariables((prev)=>({
|
|
49
|
+
...prev,
|
|
50
|
+
limit
|
|
51
|
+
}));
|
|
52
|
+
}, []);
|
|
53
|
+
const [acoSorting, setAcoSorting] = useState([]);
|
|
54
|
+
useEffect(()=>{
|
|
55
|
+
const sort = acoSorting[0];
|
|
56
|
+
if (!sort) return;
|
|
57
|
+
setSort(sort.desc ? "DESC" : "ASC");
|
|
58
|
+
}, [
|
|
59
|
+
acoSorting
|
|
60
|
+
]);
|
|
61
|
+
const requestIdRef = useRef(0);
|
|
62
|
+
useEffect(()=>{
|
|
63
|
+
setLoading(true);
|
|
64
|
+
const requestId = ++requestIdRef.current;
|
|
65
|
+
useCase.execute(variables).then((result)=>{
|
|
66
|
+
if (requestId !== requestIdRef.current) return;
|
|
67
|
+
variables.after ? setAccumulatedRecords((prev)=>[
|
|
68
|
+
...prev,
|
|
69
|
+
...result.records
|
|
70
|
+
]) : setAccumulatedRecords(result.records);
|
|
71
|
+
setMeta(result.meta);
|
|
72
|
+
setLoading(false);
|
|
73
|
+
});
|
|
74
|
+
}, [
|
|
75
|
+
variables
|
|
76
|
+
]);
|
|
77
|
+
const sorting = useMemo(()=>[
|
|
78
|
+
{
|
|
79
|
+
id: "createdOn",
|
|
80
|
+
desc: "DESC" === variables.sort
|
|
81
|
+
}
|
|
82
|
+
], [
|
|
83
|
+
variables.sort
|
|
84
|
+
]);
|
|
85
|
+
return {
|
|
86
|
+
isListLoading: loading,
|
|
87
|
+
records: accumulatedRecords,
|
|
88
|
+
meta,
|
|
89
|
+
listMoreRecords: ()=>{
|
|
90
|
+
if (!loading && meta.cursor) setAfter(meta.cursor);
|
|
91
|
+
},
|
|
92
|
+
setWhere,
|
|
93
|
+
sorting,
|
|
94
|
+
setSorting: setAcoSorting,
|
|
95
|
+
setLimit,
|
|
96
|
+
isListLoadingMore: loading && !!variables.after
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export { useAuditLogsList };
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=useAuditLogsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks/useAuditLogsList.js","sources":["../../src/hooks/useAuditLogsList.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useFeature } from \"@webiny/app\";\nimport { ListAuditLogsFeature } from \"~/features/listAuditLogs/index.js\";\nimport type { IListAuditLogsVariablesWhere } from \"~/hooks/graphql.js\";\nimport type { IAuditLog, IAuditLogsMeta } from \"~/types.js\";\nimport type { OnDataTableSortingChange, DataTableSorting } from \"@webiny/admin-ui\";\n\nexport interface UseAuditLogs {\n isListLoading: boolean;\n isListLoadingMore: boolean;\n records: IAuditLog[];\n meta: IAuditLogsMeta;\n listMoreRecords: () => void;\n setWhere: (where: Partial<IListAuditLogsVariablesWhere>) => void;\n setLimit: (limit: number) => void;\n after?: string;\n sorting: DataTableSorting;\n setSorting: OnDataTableSortingChange;\n}\n\ninterface ListVariables {\n where: Record<string, unknown>;\n after: string | undefined;\n sort: \"ASC\" | \"DESC\";\n limit: number;\n}\n\nexport const useAuditLogsList = (): UseAuditLogs => {\n const { useCase } = useFeature(ListAuditLogsFeature);\n\n const [variables, setVariables] = useState<ListVariables>({\n where: {},\n after: undefined,\n sort: \"DESC\",\n limit: 25\n });\n\n const [accumulatedRecords, setAccumulatedRecords] = useState<IAuditLog[]>([]);\n const [loading, setLoading] = useState(true);\n const [meta, setMeta] = useState<IAuditLogsMeta>({\n hasMoreItems: false,\n cursor: null\n });\n\n const resetPagination = useCallback(() => {\n setAccumulatedRecords([]);\n setMeta({ hasMoreItems: false, cursor: null });\n }, []);\n\n const setWhere = useCallback((where: Partial<IListAuditLogsVariablesWhere>) => {\n setVariables(prev => ({ ...prev, where, after: undefined }));\n resetPagination();\n }, []);\n\n const setSort = useCallback((sort: \"ASC\" | \"DESC\") => {\n setVariables(prev => ({ ...prev, sort, after: undefined }));\n resetPagination();\n }, []);\n\n const setAfter = useCallback((after?: string) => {\n setVariables(prev => ({ ...prev, after }));\n }, []);\n\n const setLimit = useCallback((limit: number) => {\n setVariables(prev => ({ ...prev, limit }));\n }, []);\n\n const [acoSorting, setAcoSorting] = useState<DataTableSorting>([]);\n\n useEffect(() => {\n const sort = acoSorting[0];\n if (!sort) {\n return;\n }\n setSort(sort.desc ? \"DESC\" : \"ASC\");\n }, [acoSorting]);\n\n const requestIdRef = useRef(0);\n\n useEffect(() => {\n setLoading(true);\n const requestId = ++requestIdRef.current;\n\n useCase.execute(variables).then(result => {\n if (requestId !== requestIdRef.current) {\n return;\n }\n\n if (variables.after) {\n setAccumulatedRecords(prev => [...prev, ...result.records]);\n } else {\n setAccumulatedRecords(result.records);\n }\n\n setMeta(result.meta);\n setLoading(false);\n });\n }, [variables]);\n\n const sorting = useMemo((): DataTableSorting => {\n return [\n {\n id: \"createdOn\",\n desc: variables.sort === \"DESC\"\n }\n ];\n }, [variables.sort]);\n\n return {\n isListLoading: loading,\n records: accumulatedRecords,\n meta,\n listMoreRecords: () => {\n if (!loading && meta.cursor) {\n setAfter(meta.cursor);\n }\n },\n setWhere,\n sorting,\n setSorting: setAcoSorting,\n setLimit,\n isListLoadingMore: loading && !!variables.after\n };\n};\n"],"names":["useAuditLogsList","useCase","useFeature","ListAuditLogsFeature","variables","setVariables","useState","undefined","accumulatedRecords","setAccumulatedRecords","loading","setLoading","meta","setMeta","resetPagination","useCallback","setWhere","where","prev","setSort","sort","setAfter","after","setLimit","limit","acoSorting","setAcoSorting","useEffect","requestIdRef","useRef","requestId","result","sorting","useMemo"],"mappings":";;;AA2BO,MAAMA,mBAAmB;IAC5B,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAE/B,MAAM,CAACC,WAAWC,aAAa,GAAGC,SAAwB;QACtD,OAAO,CAAC;QACR,OAAOC;QACP,MAAM;QACN,OAAO;IACX;IAEA,MAAM,CAACC,oBAAoBC,sBAAsB,GAAGH,SAAsB,EAAE;IAC5E,MAAM,CAACI,SAASC,WAAW,GAAGL,SAAS;IACvC,MAAM,CAACM,MAAMC,QAAQ,GAAGP,SAAyB;QAC7C,cAAc;QACd,QAAQ;IACZ;IAEA,MAAMQ,kBAAkBC,YAAY;QAChCN,sBAAsB,EAAE;QACxBI,QAAQ;YAAE,cAAc;YAAO,QAAQ;QAAK;IAChD,GAAG,EAAE;IAEL,MAAMG,WAAWD,YAAY,CAACE;QAC1BZ,aAAaa,CAAAA,OAAS;gBAAE,GAAGA,IAAI;gBAAED;gBAAO,OAAOV;YAAU;QACzDO;IACJ,GAAG,EAAE;IAEL,MAAMK,UAAUJ,YAAY,CAACK;QACzBf,aAAaa,CAAAA,OAAS;gBAAE,GAAGA,IAAI;gBAAEE;gBAAM,OAAOb;YAAU;QACxDO;IACJ,GAAG,EAAE;IAEL,MAAMO,WAAWN,YAAY,CAACO;QAC1BjB,aAAaa,CAAAA,OAAS;gBAAE,GAAGA,IAAI;gBAAEI;YAAM;IAC3C,GAAG,EAAE;IAEL,MAAMC,WAAWR,YAAY,CAACS;QAC1BnB,aAAaa,CAAAA,OAAS;gBAAE,GAAGA,IAAI;gBAAEM;YAAM;IAC3C,GAAG,EAAE;IAEL,MAAM,CAACC,YAAYC,cAAc,GAAGpB,SAA2B,EAAE;IAEjEqB,UAAU;QACN,MAAMP,OAAOK,UAAU,CAAC,EAAE;QAC1B,IAAI,CAACL,MACD;QAEJD,QAAQC,KAAK,IAAI,GAAG,SAAS;IACjC,GAAG;QAACK;KAAW;IAEf,MAAMG,eAAeC,OAAO;IAE5BF,UAAU;QACNhB,WAAW;QACX,MAAMmB,YAAY,EAAEF,aAAa,OAAO;QAExC3B,QAAQ,OAAO,CAACG,WAAW,IAAI,CAAC2B,CAAAA;YAC5B,IAAID,cAAcF,aAAa,OAAO,EAClC;YAGAxB,UAAU,KAAK,GACfK,sBAAsBS,CAAAA,OAAQ;uBAAIA;uBAASa,OAAO,OAAO;iBAAC,IAE1DtB,sBAAsBsB,OAAO,OAAO;YAGxClB,QAAQkB,OAAO,IAAI;YACnBpB,WAAW;QACf;IACJ,GAAG;QAACP;KAAU;IAEd,MAAM4B,UAAUC,QAAQ,IACb;YACH;gBACI,IAAI;gBACJ,MAAM7B,AAAmB,WAAnBA,UAAU,IAAI;YACxB;SACH,EACF;QAACA,UAAU,IAAI;KAAC;IAEnB,OAAO;QACH,eAAeM;QACf,SAASF;QACTI;QACA,iBAAiB;YACb,IAAI,CAACF,WAAWE,KAAK,MAAM,EACvBS,SAAST,KAAK,MAAM;QAE5B;QACAI;QACAgB;QACA,YAAYN;QACZH;QACA,mBAAmBb,WAAW,CAAC,CAACN,UAAU,KAAK;IACnD;AACJ"}
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { AdminConfig, AdminLayout, HasPermission, RegisterFeature, useFeatureFlags, useRouter } from "@webiny/app-admin";
|
|
3
|
+
import { ReactComponent } from "@webiny/icons/manage_search.svg";
|
|
4
|
+
import { LogsModule } from "./views/Logs/LogsModule.js";
|
|
5
|
+
import { SecurityPermission } from "./SecurityPermission.js";
|
|
6
|
+
import { LogsView } from "./views/Logs/LogsView.js";
|
|
7
|
+
import { AuditLogsListWithConfig } from "./config/list/index.js";
|
|
8
|
+
import { Routes } from "./routes.js";
|
|
9
|
+
import { AlPermissionsFeature } from "./features/permissions/feature.js";
|
|
10
|
+
import { ListAuditLogsFeature } from "./features/listAuditLogs/index.js";
|
|
11
|
+
import { AuditLogDetailsPresenterFeature } from "./views/Logs/Preview/feature.js";
|
|
12
|
+
import { AiPromptPreviewTabs } from "./views/Logs/Preview/tabs/AiPromptTabs.js";
|
|
13
|
+
const { Menu: Menu, Route: Route } = AdminConfig;
|
|
14
|
+
const AuditLogs = ()=>{
|
|
15
|
+
const featureFlags = useFeatureFlags();
|
|
16
|
+
const router = useRouter();
|
|
17
|
+
if (!featureFlags.isEnabled("auditLogs")) return null;
|
|
18
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
19
|
+
feature: AlPermissionsFeature
|
|
20
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
21
|
+
feature: ListAuditLogsFeature
|
|
22
|
+
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
23
|
+
feature: AuditLogDetailsPresenterFeature
|
|
24
|
+
}), /*#__PURE__*/ react.createElement(LogsModule, null), /*#__PURE__*/ react.createElement(SecurityPermission, null), /*#__PURE__*/ react.createElement(AiPromptPreviewTabs, null), /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(HasPermission, {
|
|
25
|
+
any: [
|
|
26
|
+
"al.*"
|
|
27
|
+
]
|
|
28
|
+
}, /*#__PURE__*/ react.createElement(Menu, {
|
|
29
|
+
name: "auditLogs",
|
|
30
|
+
pinnable: true,
|
|
31
|
+
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
32
|
+
text: "Audit Logs",
|
|
33
|
+
icon: /*#__PURE__*/ react.createElement(Menu.Link.Icon, {
|
|
34
|
+
element: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
35
|
+
label: "Audit Logs"
|
|
36
|
+
}),
|
|
37
|
+
to: router.getLink(Routes.AuditLogsList)
|
|
38
|
+
})
|
|
39
|
+
}), /*#__PURE__*/ react.createElement(Route, {
|
|
40
|
+
route: Routes.AuditLogsList,
|
|
41
|
+
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
42
|
+
title: "Audit Logs - Logs"
|
|
43
|
+
}, /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
|
|
44
|
+
name: "auditLogs",
|
|
45
|
+
label: "Audit Logs"
|
|
46
|
+
}), /*#__PURE__*/ react.createElement(AuditLogsListWithConfig, null, /*#__PURE__*/ react.createElement(LogsView, null)))
|
|
47
|
+
}))));
|
|
48
|
+
};
|
|
49
|
+
export { AuditLogs };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { ReactComponent as Icon } from \"@webiny/icons/manage_search.svg\";\nimport { AdminConfig, AdminLayout, RegisterFeature, useFeatureFlags } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-admin\";\nimport { LogsModule } from \"~/views/Logs/LogsModule.js\";\nimport { SecurityPermission } from \"~/SecurityPermission.js\";\nimport { LogsView } from \"~/views/Logs/LogsView.js\";\nimport { AuditLogsListWithConfig } from \"~/config/list/index.js\";\nimport { Routes } from \"~/routes.js\";\nimport { AlPermissionsFeature } from \"~/features/permissions/feature.js\";\nimport { ListAuditLogsFeature } from \"~/features/listAuditLogs/index.js\";\nimport { AuditLogDetailsPresenterFeature } from \"~/views/Logs/Preview/feature.js\";\nimport { AiPromptPreviewTabs } from \"~/views/Logs/Preview/tabs/AiPromptTabs.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nexport const AuditLogs = () => {\n const featureFlags = useFeatureFlags();\n const router = useRouter();\n\n if (!featureFlags.isEnabled(\"auditLogs\")) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={AlPermissionsFeature} />\n <RegisterFeature feature={ListAuditLogsFeature} />\n <RegisterFeature feature={AuditLogDetailsPresenterFeature} />\n <LogsModule />\n <SecurityPermission />\n <AiPromptPreviewTabs />\n <AdminConfig>\n <HasPermission any={[\"al.*\"]}>\n <Menu\n name=\"auditLogs\"\n pinnable\n element={\n <Menu.Link\n text={\"Audit Logs\"}\n icon={<Menu.Link.Icon element={<Icon />} label={\"Audit Logs\"} />}\n to={router.getLink(Routes.AuditLogsList)}\n />\n }\n />\n <Route\n route={Routes.AuditLogsList}\n element={\n <AdminLayout title={\"Audit Logs - Logs\"}>\n <AdminConfig.Breadcrumb name={\"auditLogs\"} label={\"Audit Logs\"} />\n <AuditLogsListWithConfig>\n <LogsView />\n </AuditLogsListWithConfig>\n </AdminLayout>\n }\n />\n </HasPermission>\n </AdminConfig>\n </>\n );\n};\n"],"names":["Menu","Route","AdminConfig","AuditLogs","featureFlags","useFeatureFlags","router","useRouter","RegisterFeature","AlPermissionsFeature","ListAuditLogsFeature","AuditLogDetailsPresenterFeature","LogsModule","SecurityPermission","AiPromptPreviewTabs","HasPermission","Icon","Routes","AdminLayout","AuditLogsListWithConfig","LogsView"],"mappings":";;;;;;;;;;;;AAeA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAEjB,MAAMC,YAAY;IACrB,MAAMC,eAAeC;IACrB,MAAMC,SAASC;IAEf,IAAI,CAACH,aAAa,SAAS,CAAC,cACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACI,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACC,YAAUA,OAAAA,WAAAA,GACX,oBAACC,oBAAkBA,OAAAA,WAAAA,GACnB,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACZ,aAAWA,MAAAA,WAAAA,GACR,oBAACa,eAAaA;QAAC,KAAK;YAAC;SAAO;qBACxB,oBAACf,MAAIA;QACD,MAAK;QACL;QACA,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,oBAAM,oBAACA,KAAK,IAAI,CAAC,IAAI;gBAAC,uBAAS,oBAACgB,gBAAIA;gBAAK,OAAO;;YAChD,IAAIV,OAAO,OAAO,CAACW,OAAO,aAAa;;sBAInD,oBAAChB,OAAKA;QACF,OAAOgB,OAAO,aAAa;QAC3B,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAAChB,YAAY,UAAU;YAAC,MAAM;YAAa,OAAO;0BAClD,oBAACiB,yBAAuBA,MAAAA,WAAAA,GACpB,oBAACC,UAAQA;;AAS7C"}
|