@webiny/app-audit-logs 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.eb81deee7e
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/README.md +11 -1
- package/SecurityPermission.d.ts +2 -0
- package/SecurityPermission.js +15 -0
- package/SecurityPermission.js.map +1 -0
- package/components/Text.d.ts +10 -4
- package/components/Text.js +32 -22
- package/components/Text.js.map +1 -1
- package/config/list/AuditLogsListConfig.d.ts +31 -18
- package/config/list/AuditLogsListConfig.js +38 -15
- package/config/list/AuditLogsListConfig.js.map +1 -1
- package/config/list/Browser/Filter.js +30 -37
- package/config/list/Browser/Filter.js.map +1 -1
- package/config/list/Browser/FiltersToWhere.js +10 -13
- package/config/list/Browser/FiltersToWhere.js.map +1 -1
- package/config/list/Browser/index.d.ts +14 -16
- package/config/list/Browser/index.js +6 -5
- package/config/list/Browser/index.js.map +1 -1
- 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 -1
- package/config/list/index.js +1 -3
- package/constants/index.js +2 -1
- package/constants/index.js.map +1 -1
- 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 -1
- package/graphql.js +4 -4
- package/graphql.js.map +1 -1
- package/hooks/graphql.d.ts +9 -0
- package/hooks/graphql.js +0 -0
- package/hooks/index.d.ts +1 -1
- package/hooks/index.js +1 -3
- 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 +11 -16
- package/hooks/useAuditLogsList.js +97 -101
- package/hooks/useAuditLogsList.js.map +1 -1
- package/index.js +48 -49
- package/index.js.map +1 -1
- package/package.json +29 -34
- package/routes.d.ts +4 -0
- package/routes.js +10 -0
- package/routes.js.map +1 -0
- package/types.d.ts +48 -22
- package/types.js +1 -14
- 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 +1 -1
- package/views/Logs/Filters/FilterByAction.js +41 -42
- package/views/Logs/Filters/FilterByAction.js.map +1 -1
- package/views/Logs/Filters/FilterByApp.js +33 -31
- package/views/Logs/Filters/FilterByApp.js.map +1 -1
- 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 +1 -1
- package/views/Logs/Filters/FilterByEntity.js +41 -42
- package/views/Logs/Filters/FilterByEntity.js.map +1 -1
- 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.js +44 -34
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -1
- package/views/Logs/Filters/Filters.d.ts +5 -6
- package/views/Logs/Filters/Filters.js +66 -29
- package/views/Logs/Filters/Filters.js.map +1 -1
- package/views/Logs/Filters/index.d.ts +7 -6
- package/views/Logs/Filters/index.js +7 -8
- package/views/Logs/Filters/types.d.ts +9 -0
- package/views/Logs/Filters/types.js +0 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +24 -45
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -1
- package/views/Logs/Header/ButtonFilters/index.d.ts +1 -1
- package/views/Logs/Header/ButtonFilters/index.js +1 -3
- package/views/Logs/Header/Header.d.ts +2 -6
- package/views/Logs/Header/Header.js +12 -77
- package/views/Logs/Header/Header.js.map +1 -1
- package/views/Logs/Header/index.d.ts +1 -1
- package/views/Logs/Header/index.js +1 -3
- package/views/Logs/LoadMoreButton/LoadMoreButton.js +11 -18
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -1
- package/views/Logs/LoadMoreButton/index.d.ts +1 -1
- package/views/Logs/LoadMoreButton/index.js +1 -3
- package/views/Logs/LoadMoreButton/styled.d.ts +4 -5
- package/views/Logs/LoadMoreButton/styled.js +5 -16
- package/views/Logs/LoadMoreButton/styled.js.map +1 -1
- package/views/Logs/LoadingMore/index.js +13 -13
- package/views/Logs/LoadingMore/index.js.map +1 -1
- package/views/Logs/LogsModule.js +24 -24
- package/views/Logs/LogsModule.js.map +1 -1
- 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 +6 -4
- package/views/Logs/Preview/Preview.js +125 -88
- package/views/Logs/Preview/Preview.js.map +1 -1
- 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 -1
- package/views/Logs/Preview/index.js +2 -3
- 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 +10 -14
- package/views/Logs/Table/Table.js +112 -125
- package/views/Logs/Table/Table.js.map +1 -1
- package/views/Logs/Table/index.d.ts +1 -1
- package/views/Logs/Table/index.js +1 -3
- package/views/Logs/Table/styled.d.ts +1 -17
- package/views/Logs/Table/styled.js +15 -79
- package/views/Logs/Table/styled.js.map +1 -1
- package/config/list/index.js.map +0 -1
- package/hooks/index.js.map +0 -1
- package/plugins/permissionRenderer/AuditLogsPermissions.d.ts +0 -8
- package/plugins/permissionRenderer/AuditLogsPermissions.js +0 -100
- package/plugins/permissionRenderer/AuditLogsPermissions.js.map +0 -1
- package/plugins/permissionRenderer/index.d.ts +0 -1
- package/plugins/permissionRenderer/index.js +0 -32
- package/plugins/permissionRenderer/index.js.map +0 -1
- package/types.js.map +0 -1
- package/utils/transformCmsContentEntriesToRecordEntries.d.ts +0 -25
- package/utils/transformCmsContentEntriesToRecordEntries.js +0 -36
- package/utils/transformCmsContentEntriesToRecordEntries.js.map +0 -1
- package/views/Logs/Filters/FilterByTimestamp.d.ts +0 -2
- package/views/Logs/Filters/FilterByTimestamp.js +0 -40
- package/views/Logs/Filters/FilterByTimestamp.js.map +0 -1
- package/views/Logs/Filters/index.js.map +0 -1
- package/views/Logs/Filters/styled.d.ts +0 -5
- package/views/Logs/Filters/styled.js +0 -18
- package/views/Logs/Filters/styled.js.map +0 -1
- package/views/Logs/Header/ButtonFilters/index.js.map +0 -1
- package/views/Logs/Header/index.js.map +0 -1
- package/views/Logs/LoadMoreButton/index.js.map +0 -1
- package/views/Logs/LoadingMore/styled.d.ts +0 -9
- package/views/Logs/LoadingMore/styled.js +0 -32
- package/views/Logs/LoadingMore/styled.js.map +0 -1
- package/views/Logs/Logs.d.ts +0 -3
- package/views/Logs/Logs.js +0 -84
- package/views/Logs/Logs.js.map +0 -1
- package/views/Logs/Preview/index.js.map +0 -1
- package/views/Logs/Preview/styled.d.ts +0 -6
- package/views/Logs/Preview/styled.js +0 -25
- package/views/Logs/Preview/styled.js.map +0 -1
- package/views/Logs/Table/index.js.map +0 -1
- package/views/Logs/styled.d.ts +0 -9
- package/views/Logs/styled.js +0 -32
- package/views/Logs/styled.js.map +0 -1
|
@@ -1,105 +1,101 @@
|
|
|
1
|
-
import { useCallback, useEffect,
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
listTitle,
|
|
18
|
-
meta,
|
|
19
|
-
records: initialRecords,
|
|
20
|
-
setSearchQuery,
|
|
21
|
-
setListSort,
|
|
22
|
-
setFilters,
|
|
23
|
-
showFilters,
|
|
24
|
-
hideFilters,
|
|
25
|
-
showingFilters
|
|
26
|
-
} = useAcoList();
|
|
27
|
-
const [sorting, setSorting] = useState([]);
|
|
28
|
-
const [search, setSearch] = useState("");
|
|
29
|
-
const query = new URLSearchParams(location.search);
|
|
30
|
-
const searchQuery = query.get("search") || "";
|
|
31
|
-
const {
|
|
32
|
-
data: listUsers,
|
|
33
|
-
loading: usersLoading
|
|
34
|
-
} = useQuery(LIST_USERS, {
|
|
35
|
-
skip: !hasAccessToUsers
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
// Search-related logics: update `searchQuery` state and querystring
|
|
39
|
-
const updateSearch = useCallback(debounce(({
|
|
40
|
-
search,
|
|
41
|
-
query
|
|
42
|
-
}) => {
|
|
43
|
-
const searchQuery = query.get("search");
|
|
44
|
-
if (typeof searchQuery !== "string" && !search) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
setSearchQuery(search);
|
|
48
|
-
if (searchQuery !== search) {
|
|
49
|
-
if (!search) {
|
|
50
|
-
// In case of empty `search` - remove it from `querystring`
|
|
51
|
-
query.delete("search");
|
|
52
|
-
} else {
|
|
53
|
-
// Otherwise, add it to `querystring`
|
|
54
|
-
query.set("search", search);
|
|
55
|
-
}
|
|
56
|
-
history.push(`/audit-logs?${query.toString()}`);
|
|
57
|
-
}
|
|
58
|
-
}, 500), []);
|
|
59
|
-
|
|
60
|
-
// Set "search" from search "query" on page load.
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
setSearch(searchQuery);
|
|
63
|
-
}, [searchQuery]);
|
|
64
|
-
|
|
65
|
-
// When "search" changes, trigger search-related logics
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
updateSearch({
|
|
68
|
-
search,
|
|
69
|
-
query
|
|
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
|
|
70
17
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
+
};
|
|
103
98
|
};
|
|
99
|
+
export { useAuditLogsList };
|
|
104
100
|
|
|
105
101
|
//# sourceMappingURL=useAuditLogsList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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.js
CHANGED
|
@@ -1,52 +1,51 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { ReactComponent
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { AuditLogsListWithConfig } from "./config/list";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
const {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}, /*#__PURE__*/React.createElement(AuditLogsView, null))))
|
|
49
|
-
}))), /*#__PURE__*/React.createElement(AuditLogsPermissions, null));
|
|
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
|
+
}))));
|
|
50
48
|
};
|
|
49
|
+
export { AuditLogs };
|
|
51
50
|
|
|
52
51
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-audit-logs",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.0.0-unstable.eb81deee7e",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./index.js",
|
|
7
|
+
"./*": "./*"
|
|
8
|
+
},
|
|
5
9
|
"repository": {
|
|
6
10
|
"type": "git",
|
|
7
11
|
"url": "https://github.com/webiny/webiny-js.git"
|
|
@@ -9,43 +13,34 @@
|
|
|
9
13
|
"description": "",
|
|
10
14
|
"license": "MIT",
|
|
11
15
|
"dependencies": {
|
|
12
|
-
"@
|
|
13
|
-
"@
|
|
14
|
-
"@
|
|
15
|
-
"@webiny/
|
|
16
|
-
"@webiny/
|
|
17
|
-
"@webiny/
|
|
18
|
-
"@webiny/
|
|
19
|
-
"@webiny/
|
|
20
|
-
"@webiny/
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"@webiny/react-router": "0.0.0-unstable.eb196ccd2f",
|
|
26
|
-
"@webiny/ui": "0.0.0-unstable.eb196ccd2f",
|
|
27
|
-
"date-fns": "2.29.3",
|
|
28
|
-
"emotion": "10.0.27",
|
|
29
|
-
"graphql-tag": "2.12.6",
|
|
30
|
-
"lodash": "4.17.21"
|
|
16
|
+
"@webiny/admin-ui": "0.0.0-unstable.eb81deee7e",
|
|
17
|
+
"@webiny/app": "0.0.0-unstable.eb81deee7e",
|
|
18
|
+
"@webiny/app-admin": "0.0.0-unstable.eb81deee7e",
|
|
19
|
+
"@webiny/common-audit-logs": "0.0.0-unstable.eb81deee7e",
|
|
20
|
+
"@webiny/feature": "0.0.0-unstable.eb81deee7e",
|
|
21
|
+
"@webiny/form": "0.0.0-unstable.eb81deee7e",
|
|
22
|
+
"@webiny/icons": "0.0.0-unstable.eb81deee7e",
|
|
23
|
+
"@webiny/react-composition": "0.0.0-unstable.eb81deee7e",
|
|
24
|
+
"@webiny/react-properties": "0.0.0-unstable.eb81deee7e",
|
|
25
|
+
"date-fns": "4.4.0",
|
|
26
|
+
"lodash": "4.18.1",
|
|
27
|
+
"mobx": "7.0.3",
|
|
28
|
+
"zod": "4.4.3"
|
|
31
29
|
},
|
|
32
30
|
"peerDependencies": {
|
|
33
|
-
"react": "18.
|
|
31
|
+
"react": "18.3.1"
|
|
34
32
|
},
|
|
35
33
|
"devDependencies": {
|
|
36
|
-
"@types/react": "18.
|
|
37
|
-
"@webiny/
|
|
38
|
-
"execa": "
|
|
39
|
-
"rimraf": "6.
|
|
40
|
-
"typescript": "
|
|
34
|
+
"@types/react": "18.3.31",
|
|
35
|
+
"@webiny/build-tools": "0.0.0-unstable.eb81deee7e",
|
|
36
|
+
"execa": "10.0.1",
|
|
37
|
+
"rimraf": "6.1.3",
|
|
38
|
+
"typescript": "7.0.2"
|
|
41
39
|
},
|
|
42
40
|
"publishConfig": {
|
|
43
|
-
"access": "public"
|
|
44
|
-
"directory": "dist"
|
|
45
|
-
},
|
|
46
|
-
"scripts": {
|
|
47
|
-
"build": "node ../cli/bin.js run build",
|
|
48
|
-
"watch": "node ../cli/bin.js run watch"
|
|
41
|
+
"access": "public"
|
|
49
42
|
},
|
|
50
|
-
"
|
|
43
|
+
"webiny": {
|
|
44
|
+
"publishFrom": "dist"
|
|
45
|
+
}
|
|
51
46
|
}
|
package/routes.d.ts
ADDED
package/routes.js
ADDED
package/routes.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sources":["../src/routes.ts"],"sourcesContent":["import { Route } from \"@webiny/app-admin\";\n\nexport const Routes = {\n AuditLogsList: new Route({\n name: \"AuditLogs/List\",\n path: \"/audit-logs\"\n })\n};\n"],"names":["Routes","Route"],"mappings":";AAEO,MAAMA,SAAS;IAClB,eAAe,IAAIC,MAAM;QACrB,MAAM;QACN,MAAM;IACV;AACJ"}
|
package/types.d.ts
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
DELETE = "DELETE",
|
|
5
|
-
MOVE_TO_TRASH = "MOVE_TO_TRASH",
|
|
6
|
-
RESTORE_FROM_TRASH = "RESTORE_FROM_TRASH",
|
|
7
|
-
PUBLISH = "PUBLISH",
|
|
8
|
-
UNPUBLISH = "UNPUBLISH",
|
|
9
|
-
IMPORT = "IMPORT",
|
|
10
|
-
EXPORT = "EXPORT"
|
|
11
|
-
}
|
|
12
|
-
export interface AuditLog {
|
|
13
|
-
id: string;
|
|
14
|
-
message: string;
|
|
15
|
-
app: string;
|
|
16
|
-
entity: string;
|
|
17
|
-
entityId: string;
|
|
18
|
-
action: ActionType;
|
|
19
|
-
data: string;
|
|
20
|
-
timestamp: Date;
|
|
21
|
-
initiator: string;
|
|
22
|
-
}
|
|
1
|
+
import type { GenericRecord } from "@webiny/app/types.js";
|
|
2
|
+
import { ActionType } from "@webiny/common-audit-logs";
|
|
3
|
+
export { ActionType };
|
|
23
4
|
export interface User {
|
|
24
5
|
id: string;
|
|
25
6
|
firstName: string;
|
|
@@ -28,3 +9,48 @@ export interface User {
|
|
|
28
9
|
name: string;
|
|
29
10
|
}[];
|
|
30
11
|
}
|
|
12
|
+
export interface IAuditLogCreatedByRaw {
|
|
13
|
+
id: string;
|
|
14
|
+
displayName?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface IAuditLogCreatedBy extends IAuditLogCreatedByRaw {
|
|
18
|
+
role: string;
|
|
19
|
+
}
|
|
20
|
+
export interface IAuditLogRaw {
|
|
21
|
+
id: string;
|
|
22
|
+
createdBy: IAuditLogCreatedByRaw;
|
|
23
|
+
createdOn: Date;
|
|
24
|
+
app: string;
|
|
25
|
+
action: string;
|
|
26
|
+
message: string;
|
|
27
|
+
entity: string;
|
|
28
|
+
entityId: string;
|
|
29
|
+
tags: string[];
|
|
30
|
+
expiresAt?: Date;
|
|
31
|
+
content: string;
|
|
32
|
+
}
|
|
33
|
+
export interface IAuditLogEntity {
|
|
34
|
+
value: string;
|
|
35
|
+
label: string;
|
|
36
|
+
link?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface IAuditLogAction {
|
|
39
|
+
value: string;
|
|
40
|
+
label: string;
|
|
41
|
+
}
|
|
42
|
+
export interface IAuditLog extends Omit<IAuditLogRaw, "entity" | "action" | "createdBy"> {
|
|
43
|
+
entity: IAuditLogEntity;
|
|
44
|
+
action: IAuditLogAction;
|
|
45
|
+
createdBy: IAuditLogCreatedBy;
|
|
46
|
+
}
|
|
47
|
+
export interface IAuditLogsMeta {
|
|
48
|
+
hasMoreItems: boolean;
|
|
49
|
+
cursor: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface IAuditLogsError {
|
|
52
|
+
message: string;
|
|
53
|
+
code: string;
|
|
54
|
+
data?: GenericRecord;
|
|
55
|
+
stack?: string;
|
|
56
|
+
}
|
package/types.js
CHANGED
|
@@ -1,14 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
ActionType["CREATE"] = "CREATE";
|
|
3
|
-
ActionType["UPDATE"] = "UPDATE";
|
|
4
|
-
ActionType["DELETE"] = "DELETE";
|
|
5
|
-
ActionType["MOVE_TO_TRASH"] = "MOVE_TO_TRASH";
|
|
6
|
-
ActionType["RESTORE_FROM_TRASH"] = "RESTORE_FROM_TRASH";
|
|
7
|
-
ActionType["PUBLISH"] = "PUBLISH";
|
|
8
|
-
ActionType["UNPUBLISH"] = "UNPUBLISH";
|
|
9
|
-
ActionType["IMPORT"] = "IMPORT";
|
|
10
|
-
ActionType["EXPORT"] = "EXPORT";
|
|
11
|
-
return ActionType;
|
|
12
|
-
}({});
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
export { ActionType } from "@webiny/common-audit-logs";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { apps } from "@webiny/common-audit-logs";
|
|
2
|
+
const transformRawAuditLog = (params)=>{
|
|
3
|
+
const { auditLog } = params;
|
|
4
|
+
const app = apps.find((app)=>app.app === auditLog.app);
|
|
5
|
+
const entity = app?.entities?.find((entity)=>entity.type === auditLog.entity);
|
|
6
|
+
const action = entity?.actions?.find((action)=>action.type === auditLog.action);
|
|
7
|
+
return {
|
|
8
|
+
...auditLog,
|
|
9
|
+
createdBy: {
|
|
10
|
+
...auditLog.createdBy,
|
|
11
|
+
role: "-"
|
|
12
|
+
},
|
|
13
|
+
action: {
|
|
14
|
+
label: action?.displayName || "-",
|
|
15
|
+
value: auditLog.action
|
|
16
|
+
},
|
|
17
|
+
entity: {
|
|
18
|
+
label: entity?.displayName || "-",
|
|
19
|
+
value: auditLog.entity,
|
|
20
|
+
link: entity?.linkToEntity && entity.linkToEntity(encodeURIComponent(auditLog.entityId))
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export { transformRawAuditLog };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=transformRawAuditLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils/transformRawAuditLog.js","sources":["../../src/utils/transformRawAuditLog.ts"],"sourcesContent":["import { apps } from \"@webiny/common-audit-logs\";\nimport type { IAuditLog, IAuditLogRaw } from \"~/types.js\";\n\nexport interface ITransformRawAuditLogParams {\n auditLog: IAuditLogRaw;\n}\n\nexport const transformRawAuditLog = (params: ITransformRawAuditLogParams): IAuditLog => {\n const { auditLog } = params;\n\n const app = apps.find(app => app.app === auditLog.app);\n const entity = app?.entities?.find(entity => entity.type === auditLog.entity);\n const action = entity?.actions?.find(action => action.type === auditLog.action);\n return {\n ...auditLog,\n createdBy: {\n ...auditLog.createdBy,\n // TODO load users?\n role: \"-\"\n },\n action: {\n label: action?.displayName || \"-\",\n value: auditLog.action\n },\n entity: {\n label: entity?.displayName || \"-\",\n value: auditLog.entity,\n link: entity?.linkToEntity && entity.linkToEntity(encodeURIComponent(auditLog.entityId))\n }\n };\n};\n"],"names":["transformRawAuditLog","params","auditLog","app","apps","entity","action","encodeURIComponent"],"mappings":";AAOO,MAAMA,uBAAuB,CAACC;IACjC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,MAAME,MAAMC,KAAK,IAAI,CAACD,CAAAA,MAAOA,IAAI,GAAG,KAAKD,SAAS,GAAG;IACrD,MAAMG,SAASF,KAAK,UAAU,KAAKE,CAAAA,SAAUA,OAAO,IAAI,KAAKH,SAAS,MAAM;IAC5E,MAAMI,SAASD,QAAQ,SAAS,KAAKC,CAAAA,SAAUA,OAAO,IAAI,KAAKJ,SAAS,MAAM;IAC9E,OAAO;QACH,GAAGA,QAAQ;QACX,WAAW;YACP,GAAGA,SAAS,SAAS;YAErB,MAAM;QACV;QACA,QAAQ;YACJ,OAAOI,QAAQ,eAAe;YAC9B,OAAOJ,SAAS,MAAM;QAC1B;QACA,QAAQ;YACJ,OAAOG,QAAQ,eAAe;YAC9B,OAAOH,SAAS,MAAM;YACtB,MAAMG,QAAQ,gBAAgBA,OAAO,YAAY,CAACE,mBAAmBL,SAAS,QAAQ;QAC1F;IACJ;AACJ"}
|