@sudobility/wildduck_client 0.0.14
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 +354 -0
- package/dist/hooks/ServiceProvider.d.ts +15 -0
- package/dist/hooks/ServiceProvider.d.ts.map +1 -0
- package/dist/hooks/ServiceProvider.js +21 -0
- package/dist/hooks/ServiceProvider.js.map +1 -0
- package/dist/hooks/addresses/index.d.ts +2 -0
- package/dist/hooks/addresses/index.d.ts.map +1 -0
- package/dist/hooks/addresses/index.js +2 -0
- package/dist/hooks/addresses/index.js.map +1 -0
- package/dist/hooks/addresses/useWildduckGetAddresses.d.ts +232 -0
- package/dist/hooks/addresses/useWildduckGetAddresses.d.ts.map +1 -0
- package/dist/hooks/addresses/useWildduckGetAddresses.js +34 -0
- package/dist/hooks/addresses/useWildduckGetAddresses.js.map +1 -0
- package/dist/hooks/autoreply/index.d.ts +4 -0
- package/dist/hooks/autoreply/index.d.ts.map +1 -0
- package/dist/hooks/autoreply/index.js +4 -0
- package/dist/hooks/autoreply/index.js.map +1 -0
- package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts +13 -0
- package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts.map +1 -0
- package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js +46 -0
- package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js.map +1 -0
- package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts +172 -0
- package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts.map +1 -0
- package/dist/hooks/autoreply/useWildduckGetAutoreply.js +39 -0
- package/dist/hooks/autoreply/useWildduckGetAutoreply.js.map +1 -0
- package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts +13 -0
- package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts.map +1 -0
- package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js +46 -0
- package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js.map +1 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +16 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/mailboxes/index.d.ts +6 -0
- package/dist/hooks/mailboxes/index.d.ts.map +1 -0
- package/dist/hooks/mailboxes/index.js +6 -0
- package/dist/hooks/mailboxes/index.js.map +1 -0
- package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts +13 -0
- package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts.map +1 -0
- package/dist/hooks/mailboxes/useWildduckCreateMailbox.js +43 -0
- package/dist/hooks/mailboxes/useWildduckCreateMailbox.js.map +1 -0
- package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts +13 -0
- package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts.map +1 -0
- package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js +48 -0
- package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js.map +1 -0
- package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts +173 -0
- package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts.map +1 -0
- package/dist/hooks/mailboxes/useWildduckGetMailbox.js +47 -0
- package/dist/hooks/mailboxes/useWildduckGetMailbox.js.map +1 -0
- package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts +233 -0
- package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts.map +1 -0
- package/dist/hooks/mailboxes/useWildduckGetMailboxes.js +34 -0
- package/dist/hooks/mailboxes/useWildduckGetMailboxes.js.map +1 -0
- package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts +13 -0
- package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts.map +1 -0
- package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js +48 -0
- package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js.map +1 -0
- package/dist/hooks/messages/index.d.ts +12 -0
- package/dist/hooks/messages/index.d.ts.map +1 -0
- package/dist/hooks/messages/index.js +12 -0
- package/dist/hooks/messages/index.js.map +1 -0
- package/dist/hooks/messages/useWildduckDeleteMessage.d.ts +13 -0
- package/dist/hooks/messages/useWildduckDeleteMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckDeleteMessage.js +48 -0
- package/dist/hooks/messages/useWildduckDeleteMessage.js.map +1 -0
- package/dist/hooks/messages/useWildduckForwardMessage.d.ts +13 -0
- package/dist/hooks/messages/useWildduckForwardMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckForwardMessage.js +51 -0
- package/dist/hooks/messages/useWildduckForwardMessage.js.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessage.d.ts +653 -0
- package/dist/hooks/messages/useWildduckGetMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessage.js +37 -0
- package/dist/hooks/messages/useWildduckGetMessage.js.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts +13 -0
- package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessageAttachment.js +40 -0
- package/dist/hooks/messages/useWildduckGetMessageAttachment.js.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessageSource.d.ts +12 -0
- package/dist/hooks/messages/useWildduckGetMessageSource.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessageSource.js +35 -0
- package/dist/hooks/messages/useWildduckGetMessageSource.js.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessages.d.ts +11 -0
- package/dist/hooks/messages/useWildduckGetMessages.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckGetMessages.js +18 -0
- package/dist/hooks/messages/useWildduckGetMessages.js.map +1 -0
- package/dist/hooks/messages/useWildduckSearchMessages.d.ts +12 -0
- package/dist/hooks/messages/useWildduckSearchMessages.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckSearchMessages.js +46 -0
- package/dist/hooks/messages/useWildduckSearchMessages.js.map +1 -0
- package/dist/hooks/messages/useWildduckSendMessage.d.ts +13 -0
- package/dist/hooks/messages/useWildduckSendMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckSendMessage.js +48 -0
- package/dist/hooks/messages/useWildduckSendMessage.js.map +1 -0
- package/dist/hooks/messages/useWildduckSubmitDraft.d.ts +13 -0
- package/dist/hooks/messages/useWildduckSubmitDraft.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckSubmitDraft.js +44 -0
- package/dist/hooks/messages/useWildduckSubmitDraft.js.map +1 -0
- package/dist/hooks/messages/useWildduckUpdateMessage.d.ts +13 -0
- package/dist/hooks/messages/useWildduckUpdateMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckUpdateMessage.js +53 -0
- package/dist/hooks/messages/useWildduckUpdateMessage.js.map +1 -0
- package/dist/hooks/messages/useWildduckUploadMessage.d.ts +13 -0
- package/dist/hooks/messages/useWildduckUploadMessage.d.ts.map +1 -0
- package/dist/hooks/messages/useWildduckUploadMessage.js +51 -0
- package/dist/hooks/messages/useWildduckUploadMessage.js.map +1 -0
- package/dist/hooks/mocks.d.ts +354 -0
- package/dist/hooks/mocks.d.ts.map +1 -0
- package/dist/hooks/mocks.js +404 -0
- package/dist/hooks/mocks.js.map +1 -0
- package/dist/hooks/query-config.d.ts +9 -0
- package/dist/hooks/query-config.d.ts.map +1 -0
- package/dist/hooks/query-config.js +9 -0
- package/dist/hooks/query-config.js.map +1 -0
- package/dist/hooks/query-keys.d.ts +31 -0
- package/dist/hooks/query-keys.d.ts.map +1 -0
- package/dist/hooks/query-keys.js +40 -0
- package/dist/hooks/query-keys.js.map +1 -0
- package/dist/hooks/useServices.d.ts +14 -0
- package/dist/hooks/useServices.d.ts.map +1 -0
- package/dist/hooks/useServices.js +36 -0
- package/dist/hooks/useServices.js.map +1 -0
- package/dist/hooks/useWildduckAddresses.d.ts +67 -0
- package/dist/hooks/useWildduckAddresses.d.ts.map +1 -0
- package/dist/hooks/useWildduckAddresses.js +313 -0
- package/dist/hooks/useWildduckAddresses.js.map +1 -0
- package/dist/hooks/useWildduckAuth.d.ts +28 -0
- package/dist/hooks/useWildduckAuth.d.ts.map +1 -0
- package/dist/hooks/useWildduckAuth.js +249 -0
- package/dist/hooks/useWildduckAuth.js.map +1 -0
- package/dist/hooks/useWildduckFilters.d.ts +89 -0
- package/dist/hooks/useWildduckFilters.d.ts.map +1 -0
- package/dist/hooks/useWildduckFilters.js +209 -0
- package/dist/hooks/useWildduckFilters.js.map +1 -0
- package/dist/hooks/useWildduckHealth.d.ts +45 -0
- package/dist/hooks/useWildduckHealth.d.ts.map +1 -0
- package/dist/hooks/useWildduckHealth.js +110 -0
- package/dist/hooks/useWildduckHealth.js.map +1 -0
- package/dist/hooks/useWildduckMailboxes.d.ts +29 -0
- package/dist/hooks/useWildduckMailboxes.d.ts.map +1 -0
- package/dist/hooks/useWildduckMailboxes.js +195 -0
- package/dist/hooks/useWildduckMailboxes.js.map +1 -0
- package/dist/hooks/useWildduckMessages.d.ts +76 -0
- package/dist/hooks/useWildduckMessages.d.ts.map +1 -0
- package/dist/hooks/useWildduckMessages.js +264 -0
- package/dist/hooks/useWildduckMessages.js.map +1 -0
- package/dist/hooks/useWildduckQueries.d.ts +50 -0
- package/dist/hooks/useWildduckQueries.d.ts.map +1 -0
- package/dist/hooks/useWildduckQueries.js +640 -0
- package/dist/hooks/useWildduckQueries.js.map +1 -0
- package/dist/hooks/useWildduckSettings.d.ts +22 -0
- package/dist/hooks/useWildduckSettings.d.ts.map +1 -0
- package/dist/hooks/useWildduckSettings.js +153 -0
- package/dist/hooks/useWildduckSettings.js.map +1 -0
- package/dist/hooks/useWildduckUsers.d.ts +31 -0
- package/dist/hooks/useWildduckUsers.d.ts.map +1 -0
- package/dist/hooks/useWildduckUsers.js +114 -0
- package/dist/hooks/useWildduckUsers.js.map +1 -0
- package/dist/hooks/users/index.d.ts +12 -0
- package/dist/hooks/users/index.d.ts.map +1 -0
- package/dist/hooks/users/index.js +12 -0
- package/dist/hooks/users/index.js.map +1 -0
- package/dist/hooks/users/useWildduckCreateUser.d.ts +13 -0
- package/dist/hooks/users/useWildduckCreateUser.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckCreateUser.js +44 -0
- package/dist/hooks/users/useWildduckCreateUser.js.map +1 -0
- package/dist/hooks/users/useWildduckDeleteUser.d.ts +13 -0
- package/dist/hooks/users/useWildduckDeleteUser.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckDeleteUser.js +44 -0
- package/dist/hooks/users/useWildduckDeleteUser.js.map +1 -0
- package/dist/hooks/users/useWildduckGetUser.d.ts +397 -0
- package/dist/hooks/users/useWildduckGetUser.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckGetUser.js +45 -0
- package/dist/hooks/users/useWildduckGetUser.js.map +1 -0
- package/dist/hooks/users/useWildduckUpdateUser.d.ts +13 -0
- package/dist/hooks/users/useWildduckUpdateUser.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUpdateUser.js +44 -0
- package/dist/hooks/users/useWildduckUpdateUser.js.map +1 -0
- package/dist/hooks/users/useWildduckUser2FA.d.ts +25 -0
- package/dist/hooks/users/useWildduckUser2FA.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUser2FA.js +70 -0
- package/dist/hooks/users/useWildduckUser2FA.js.map +1 -0
- package/dist/hooks/users/useWildduckUserEncryption.d.ts +40 -0
- package/dist/hooks/users/useWildduckUserEncryption.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserEncryption.js +94 -0
- package/dist/hooks/users/useWildduckUserEncryption.js.map +1 -0
- package/dist/hooks/users/useWildduckUserForwarding.d.ts +44 -0
- package/dist/hooks/users/useWildduckUserForwarding.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserForwarding.js +122 -0
- package/dist/hooks/users/useWildduckUserForwarding.js.map +1 -0
- package/dist/hooks/users/useWildduckUserLimits.d.ts +63 -0
- package/dist/hooks/users/useWildduckUserLimits.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserLimits.js +60 -0
- package/dist/hooks/users/useWildduckUserLimits.js.map +1 -0
- package/dist/hooks/users/useWildduckUserProfile.d.ts +78 -0
- package/dist/hooks/users/useWildduckUserProfile.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserProfile.js +139 -0
- package/dist/hooks/users/useWildduckUserProfile.js.map +1 -0
- package/dist/hooks/users/useWildduckUserQuota.d.ts +31 -0
- package/dist/hooks/users/useWildduckUserQuota.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserQuota.js +66 -0
- package/dist/hooks/users/useWildduckUserQuota.js.map +1 -0
- package/dist/hooks/users/useWildduckUserSpam.d.ts +54 -0
- package/dist/hooks/users/useWildduckUserSpam.d.ts.map +1 -0
- package/dist/hooks/users/useWildduckUserSpam.js +137 -0
- package/dist/hooks/users/useWildduckUserSpam.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/network/index.d.ts +2 -0
- package/dist/network/index.d.ts.map +1 -0
- package/dist/network/index.js +2 -0
- package/dist/network/index.js.map +1 -0
- package/dist/network/wildduck-client.d.ts +54 -0
- package/dist/network/wildduck-client.d.ts.map +1 -0
- package/dist/network/wildduck-client.js +572 -0
- package/dist/network/wildduck-client.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/advanced-settings.d.ts +36 -0
- package/dist/utils/advanced-settings.d.ts.map +1 -0
- package/dist/utils/advanced-settings.js +99 -0
- package/dist/utils/advanced-settings.js.map +1 -0
- package/dist/utils/autoreply.d.ts +34 -0
- package/dist/utils/autoreply.d.ts.map +1 -0
- package/dist/utils/autoreply.js +39 -0
- package/dist/utils/autoreply.js.map +1 -0
- package/dist/utils/client.d.ts +4 -0
- package/dist/utils/client.d.ts.map +1 -0
- package/dist/utils/client.js +11 -0
- package/dist/utils/client.js.map +1 -0
- package/dist/utils/filters.d.ts +26 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +50 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/forwarding.d.ts +12 -0
- package/dist/utils/forwarding.d.ts.map +1 -0
- package/dist/utils/forwarding.js +29 -0
- package/dist/utils/forwarding.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/spam-settings.d.ts +21 -0
- package/dist/utils/spam-settings.d.ts.map +1 -0
- package/dist/utils/spam-settings.js +53 -0
- package/dist/utils/spam-settings.js.map +1 -0
- package/dist/utils/user-settings.d.ts +30 -0
- package/dist/utils/user-settings.d.ts.map +1 -0
- package/dist/utils/user-settings.js +21 -0
- package/dist/utils/user-settings.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useCallback, useMemo } from "react";
|
|
2
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
export const useWildduckUserEncryption = (api, userAuth) => {
|
|
4
|
+
const queryClient = useQueryClient();
|
|
5
|
+
const userId = userAuth?.userId;
|
|
6
|
+
const encryptionQueryFn = useCallback(async () => {
|
|
7
|
+
if (!userAuth)
|
|
8
|
+
throw new Error("User auth is required");
|
|
9
|
+
const user = (await api.getUser(userAuth));
|
|
10
|
+
return {
|
|
11
|
+
encryptMessages: user.encryptMessages,
|
|
12
|
+
encryptForwarded: user.encryptForwarded,
|
|
13
|
+
pubKey: user.pubKey,
|
|
14
|
+
keyInfo: user.keyInfo,
|
|
15
|
+
};
|
|
16
|
+
}, [userAuth, api]);
|
|
17
|
+
const encryptionQuery = useQuery({
|
|
18
|
+
queryKey: ["user", userId, "encryption"],
|
|
19
|
+
queryFn: encryptionQueryFn,
|
|
20
|
+
enabled: !!userAuth,
|
|
21
|
+
});
|
|
22
|
+
const updateEncryption = useMutation({
|
|
23
|
+
mutationFn: async (params) => {
|
|
24
|
+
const { userAuth, ...settings } = params;
|
|
25
|
+
return await api.updateUser(userAuth, settings);
|
|
26
|
+
},
|
|
27
|
+
onSuccess: (_, variables) => {
|
|
28
|
+
queryClient.invalidateQueries({
|
|
29
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
30
|
+
});
|
|
31
|
+
queryClient.invalidateQueries({
|
|
32
|
+
queryKey: ["user", variables.userAuth.userId, "encryption"],
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const updatePubKey = useMutation({
|
|
37
|
+
mutationFn: async ({ userAuth, pubKey, }) => {
|
|
38
|
+
return await api.updateUser(userAuth, { pubKey });
|
|
39
|
+
},
|
|
40
|
+
onSuccess: (_, variables) => {
|
|
41
|
+
queryClient.invalidateQueries({
|
|
42
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
43
|
+
});
|
|
44
|
+
queryClient.invalidateQueries({
|
|
45
|
+
queryKey: ["user", variables.userAuth.userId, "encryption"],
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
const removePubKey = useMutation({
|
|
50
|
+
mutationFn: async (userAuth) => {
|
|
51
|
+
return await api.updateUser(userAuth, { pubKey: "" });
|
|
52
|
+
},
|
|
53
|
+
onSuccess: (_, userAuth) => {
|
|
54
|
+
queryClient.invalidateQueries({ queryKey: ["user", userAuth.userId] });
|
|
55
|
+
queryClient.invalidateQueries({
|
|
56
|
+
queryKey: ["user", userId, "encryption"],
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return useMemo(() => ({
|
|
61
|
+
encryption: encryptionQuery.data,
|
|
62
|
+
isLoading: encryptionQuery.isLoading,
|
|
63
|
+
isError: encryptionQuery.isError,
|
|
64
|
+
error: encryptionQuery.error,
|
|
65
|
+
encryptMessages: encryptionQuery.data?.encryptMessages,
|
|
66
|
+
encryptForwarded: encryptionQuery.data?.encryptForwarded,
|
|
67
|
+
pubKey: encryptionQuery.data?.pubKey,
|
|
68
|
+
keyInfo: encryptionQuery.data?.keyInfo,
|
|
69
|
+
updateEncryption: updateEncryption.mutate,
|
|
70
|
+
updateEncryptionAsync: updateEncryption.mutateAsync,
|
|
71
|
+
isUpdating: updateEncryption.isPending,
|
|
72
|
+
updatePubKey: updatePubKey.mutate,
|
|
73
|
+
updatePubKeyAsync: updatePubKey.mutateAsync,
|
|
74
|
+
isUpdatingKey: updatePubKey.isPending,
|
|
75
|
+
removePubKey: removePubKey.mutate,
|
|
76
|
+
removePubKeyAsync: removePubKey.mutateAsync,
|
|
77
|
+
isRemovingKey: removePubKey.isPending,
|
|
78
|
+
}), [
|
|
79
|
+
encryptionQuery.data,
|
|
80
|
+
encryptionQuery.isLoading,
|
|
81
|
+
encryptionQuery.isError,
|
|
82
|
+
encryptionQuery.error,
|
|
83
|
+
updateEncryption.mutate,
|
|
84
|
+
updateEncryption.mutateAsync,
|
|
85
|
+
updateEncryption.isPending,
|
|
86
|
+
updatePubKey.mutate,
|
|
87
|
+
updatePubKey.mutateAsync,
|
|
88
|
+
updatePubKey.isPending,
|
|
89
|
+
removePubKey.mutate,
|
|
90
|
+
removePubKey.mutateAsync,
|
|
91
|
+
removePubKey.isPending,
|
|
92
|
+
]);
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=useWildduckUserEncryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserEncryption.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserEncryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { WildduckAPI } from "../../network/wildduck-client";
|
|
2
|
+
import type { WildduckUserAuth } from "@sudobility/types";
|
|
3
|
+
export interface ForwardingSettings {
|
|
4
|
+
targets: string[];
|
|
5
|
+
mtaRelay?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface UpdateForwardingParams {
|
|
8
|
+
userAuth: WildduckUserAuth;
|
|
9
|
+
targets?: string[];
|
|
10
|
+
mtaRelay?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const useWildduckUserForwarding: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
|
|
13
|
+
forwarding: ForwardingSettings | undefined;
|
|
14
|
+
targets: string[];
|
|
15
|
+
mtaRelay: string | undefined;
|
|
16
|
+
isLoading: boolean;
|
|
17
|
+
isError: boolean;
|
|
18
|
+
error: Error | null;
|
|
19
|
+
updateForwarding: (params: UpdateForwardingParams) => void;
|
|
20
|
+
updateForwardingAsync: (params: UpdateForwardingParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
21
|
+
isUpdating: boolean;
|
|
22
|
+
addTarget: (params: {
|
|
23
|
+
userAuth: WildduckUserAuth;
|
|
24
|
+
target: string;
|
|
25
|
+
}) => void;
|
|
26
|
+
addTargetAsync: (params: {
|
|
27
|
+
userAuth: WildduckUserAuth;
|
|
28
|
+
target: string;
|
|
29
|
+
}) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
30
|
+
isAddingTarget: boolean;
|
|
31
|
+
removeTarget: (params: {
|
|
32
|
+
userAuth: WildduckUserAuth;
|
|
33
|
+
target: string;
|
|
34
|
+
}) => void;
|
|
35
|
+
removeTargetAsync: (params: {
|
|
36
|
+
userAuth: WildduckUserAuth;
|
|
37
|
+
target: string;
|
|
38
|
+
}) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
39
|
+
isRemovingTarget: boolean;
|
|
40
|
+
clearTargets: (userAuth: WildduckUserAuth) => void;
|
|
41
|
+
clearTargetsAsync: (userAuth: WildduckUserAuth) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
42
|
+
isClearingTargets: boolean;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useWildduckUserForwarding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserForwarding.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserForwarding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,yBAAyB,GACpC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;+BAyGhB,sBAAsB;oCAKhB,sBAAsB;;wBAM5B;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;6BAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;2BAMpD;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gCAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;6BAMlD,gBAAgB;kCAKV,gBAAgB;;CAkDpC,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
export const useWildduckUserForwarding = (api, userAuth) => {
|
|
4
|
+
const queryClient = useQueryClient();
|
|
5
|
+
const userId = userAuth?.userId;
|
|
6
|
+
const forwardingQuery = useQuery({
|
|
7
|
+
queryKey: ["user", userId, "forwarding"],
|
|
8
|
+
queryFn: async () => {
|
|
9
|
+
if (!userAuth)
|
|
10
|
+
throw new Error("User auth is required");
|
|
11
|
+
const user = (await api.getUser(userAuth));
|
|
12
|
+
return {
|
|
13
|
+
targets: user.targets || [],
|
|
14
|
+
mtaRelay: user.mtaRelay,
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
enabled: !!userAuth,
|
|
18
|
+
});
|
|
19
|
+
const updateForwarding = useMutation({
|
|
20
|
+
mutationFn: async (params) => {
|
|
21
|
+
const { userAuth, ...settings } = params;
|
|
22
|
+
return await api.updateUser(userAuth, settings);
|
|
23
|
+
},
|
|
24
|
+
onSuccess: (_, variables) => {
|
|
25
|
+
queryClient.invalidateQueries({
|
|
26
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
27
|
+
});
|
|
28
|
+
queryClient.invalidateQueries({
|
|
29
|
+
queryKey: ["user", variables.userAuth.userId, "forwarding"],
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
const addTarget = useMutation({
|
|
34
|
+
mutationFn: async ({ userAuth, target, }) => {
|
|
35
|
+
const user = (await api.getUser(userAuth));
|
|
36
|
+
const currentTargets = user.targets || [];
|
|
37
|
+
const newTargets = [...currentTargets, target];
|
|
38
|
+
return await api.updateUser(userAuth, { targets: newTargets });
|
|
39
|
+
},
|
|
40
|
+
onSuccess: (_, variables) => {
|
|
41
|
+
queryClient.invalidateQueries({
|
|
42
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
43
|
+
});
|
|
44
|
+
queryClient.invalidateQueries({
|
|
45
|
+
queryKey: ["user", variables.userAuth.userId, "forwarding"],
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
const removeTarget = useMutation({
|
|
50
|
+
mutationFn: async ({ userAuth, target, }) => {
|
|
51
|
+
const user = (await api.getUser(userAuth));
|
|
52
|
+
const currentTargets = user.targets || [];
|
|
53
|
+
const newTargets = currentTargets.filter((t) => t !== target);
|
|
54
|
+
return await api.updateUser(userAuth, { targets: newTargets });
|
|
55
|
+
},
|
|
56
|
+
onSuccess: (_, variables) => {
|
|
57
|
+
queryClient.invalidateQueries({
|
|
58
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
59
|
+
});
|
|
60
|
+
queryClient.invalidateQueries({
|
|
61
|
+
queryKey: ["user", variables.userAuth.userId, "forwarding"],
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const clearTargets = useMutation({
|
|
66
|
+
mutationFn: async (userAuth) => {
|
|
67
|
+
return await api.updateUser(userAuth, { targets: [] });
|
|
68
|
+
},
|
|
69
|
+
onSuccess: (_, userAuth) => {
|
|
70
|
+
queryClient.invalidateQueries({ queryKey: ["user", userAuth.userId] });
|
|
71
|
+
queryClient.invalidateQueries({
|
|
72
|
+
queryKey: ["user", userAuth.userId, "forwarding"],
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
const handleUpdateForwarding = useCallback((params) => updateForwarding.mutate(params), [updateForwarding]);
|
|
77
|
+
const handleUpdateForwardingAsync = useCallback(async (params) => updateForwarding.mutateAsync(params), [updateForwarding]);
|
|
78
|
+
const handleAddTarget = useCallback((params) => addTarget.mutate(params), [addTarget]);
|
|
79
|
+
const handleAddTargetAsync = useCallback(async (params) => addTarget.mutateAsync(params), [addTarget]);
|
|
80
|
+
const handleRemoveTarget = useCallback((params) => removeTarget.mutate(params), [removeTarget]);
|
|
81
|
+
const handleRemoveTargetAsync = useCallback(async (params) => removeTarget.mutateAsync(params), [removeTarget]);
|
|
82
|
+
const handleClearTargets = useCallback((userAuth) => clearTargets.mutate(userAuth), [clearTargets]);
|
|
83
|
+
const handleClearTargetsAsync = useCallback(async (userAuth) => clearTargets.mutateAsync(userAuth), [clearTargets]);
|
|
84
|
+
return useMemo(() => ({
|
|
85
|
+
forwarding: forwardingQuery.data,
|
|
86
|
+
targets: forwardingQuery.data?.targets || [],
|
|
87
|
+
mtaRelay: forwardingQuery.data?.mtaRelay,
|
|
88
|
+
isLoading: forwardingQuery.isLoading,
|
|
89
|
+
isError: forwardingQuery.isError,
|
|
90
|
+
error: forwardingQuery.error,
|
|
91
|
+
updateForwarding: handleUpdateForwarding,
|
|
92
|
+
updateForwardingAsync: handleUpdateForwardingAsync,
|
|
93
|
+
isUpdating: updateForwarding.isPending,
|
|
94
|
+
addTarget: handleAddTarget,
|
|
95
|
+
addTargetAsync: handleAddTargetAsync,
|
|
96
|
+
isAddingTarget: addTarget.isPending,
|
|
97
|
+
removeTarget: handleRemoveTarget,
|
|
98
|
+
removeTargetAsync: handleRemoveTargetAsync,
|
|
99
|
+
isRemovingTarget: removeTarget.isPending,
|
|
100
|
+
clearTargets: handleClearTargets,
|
|
101
|
+
clearTargetsAsync: handleClearTargetsAsync,
|
|
102
|
+
isClearingTargets: clearTargets.isPending,
|
|
103
|
+
}), [
|
|
104
|
+
forwardingQuery.data,
|
|
105
|
+
forwardingQuery.isLoading,
|
|
106
|
+
forwardingQuery.isError,
|
|
107
|
+
forwardingQuery.error,
|
|
108
|
+
handleUpdateForwarding,
|
|
109
|
+
handleUpdateForwardingAsync,
|
|
110
|
+
updateForwarding.isPending,
|
|
111
|
+
handleAddTarget,
|
|
112
|
+
handleAddTargetAsync,
|
|
113
|
+
addTarget.isPending,
|
|
114
|
+
handleRemoveTarget,
|
|
115
|
+
handleRemoveTargetAsync,
|
|
116
|
+
removeTarget.isPending,
|
|
117
|
+
handleClearTargets,
|
|
118
|
+
handleClearTargetsAsync,
|
|
119
|
+
clearTargets.isPending,
|
|
120
|
+
]);
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=useWildduckUserForwarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserForwarding.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserForwarding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAmB7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,GAAgB,EAChB,QAA2B,EAC3B,EAAE;IACF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;IAGhC,MAAM,eAAe,GAAG,QAAQ,CAAC;QAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;QACxC,OAAO,EAAE,KAAK,IAA6C,EAAE;YAC3D,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAC7B,QAAQ,CACT,CAAoC,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,QAAQ;KACpB,CAAC,CAAC;IAGH,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACnC,UAAU,EAAE,KAAK,EAAE,MAA8B,EAAE,EAAE;YACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC;YACzC,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YAC1B,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAC;YACH,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAGH,MAAM,SAAS,GAAG,WAAW,CAAC;QAC5B,UAAU,EAAE,KAAK,EAAE,EACjB,QAAQ,EACR,MAAM,GAIP,EAAE,EAAE;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAC7B,QAAQ,CACT,CAAoC,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YAC1B,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAC;YACH,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAGH,MAAM,YAAY,GAAG,WAAW,CAAC;QAC/B,UAAU,EAAE,KAAK,EAAE,EACjB,QAAQ,EACR,MAAM,GAIP,EAAE,EAAE;YAEH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAC7B,QAAQ,CACT,CAAoC,CAAC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YACtE,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;YAC1B,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAC;YACH,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAGH,MAAM,YAAY,GAAG,WAAW,CAAC;QAC/B,UAAU,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;YAC/C,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;YACzB,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvE,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,MAA8B,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EACnE,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,MAAM,2BAA2B,GAAG,WAAW,CAC7C,KAAK,EAAE,MAA8B,EAAE,EAAE,CACvC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,EACtC,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,MAAsD,EAAE,EAAE,CACzD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAC1B,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACtC,KAAK,EAAE,MAAsD,EAAE,EAAE,CAC/D,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAC/B,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,MAAsD,EAAE,EAAE,CACzD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,uBAAuB,GAAG,WAAW,CACzC,KAAK,EAAE,MAAsD,EAAE,EAAE,CAC/D,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAClC,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,QAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC7D,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,uBAAuB,GAAG,WAAW,CACzC,KAAK,EAAE,QAA0B,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EACxE,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QAEL,UAAU,EAAE,eAAe,CAAC,IAAI;QAChC,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;QAC5C,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,QAAQ;QACxC,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,KAAK,EAAE,eAAe,CAAC,KAAK;QAG5B,gBAAgB,EAAE,sBAAsB;QACxC,qBAAqB,EAAE,2BAA2B;QAClD,UAAU,EAAE,gBAAgB,CAAC,SAAS;QAEtC,SAAS,EAAE,eAAe;QAC1B,cAAc,EAAE,oBAAoB;QACpC,cAAc,EAAE,SAAS,CAAC,SAAS;QAEnC,YAAY,EAAE,kBAAkB;QAChC,iBAAiB,EAAE,uBAAuB;QAC1C,gBAAgB,EAAE,YAAY,CAAC,SAAS;QAExC,YAAY,EAAE,kBAAkB;QAChC,iBAAiB,EAAE,uBAAuB;QAC1C,iBAAiB,EAAE,YAAY,CAAC,SAAS;KAC1C,CAAC,EACF;QACE,eAAe,CAAC,IAAI;QACpB,eAAe,CAAC,SAAS;QACzB,eAAe,CAAC,OAAO;QACvB,eAAe,CAAC,KAAK;QACrB,sBAAsB;QACtB,2BAA2B;QAC3B,gBAAgB,CAAC,SAAS;QAC1B,eAAe;QACf,oBAAoB;QACpB,SAAS,CAAC,SAAS;QACnB,kBAAkB;QAClB,uBAAuB;QACvB,YAAY,CAAC,SAAS;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,YAAY,CAAC,SAAS;KACvB,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { WildduckAPI } from "../../network/wildduck-client";
|
|
2
|
+
import type { WildduckLimits, WildduckUserAuth } from "@sudobility/types";
|
|
3
|
+
export interface UpdateWildduckLimitsParams {
|
|
4
|
+
userAuth: WildduckUserAuth;
|
|
5
|
+
recipients?: number;
|
|
6
|
+
forwards?: number;
|
|
7
|
+
filters?: number;
|
|
8
|
+
imapMaxUpload?: number;
|
|
9
|
+
imapMaxDownload?: number;
|
|
10
|
+
pop3MaxDownload?: number;
|
|
11
|
+
pop3MaxMessages?: number;
|
|
12
|
+
imapMaxConnections?: number;
|
|
13
|
+
receivedMax?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare const useWildduckUserLimits: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
|
|
16
|
+
limits: WildduckLimits | undefined;
|
|
17
|
+
isLoading: boolean;
|
|
18
|
+
isError: boolean;
|
|
19
|
+
error: Error | null;
|
|
20
|
+
quota: {
|
|
21
|
+
allowed: number;
|
|
22
|
+
used: number;
|
|
23
|
+
} | undefined;
|
|
24
|
+
recipients: {
|
|
25
|
+
allowed: number;
|
|
26
|
+
used: number;
|
|
27
|
+
ttl: number;
|
|
28
|
+
} | undefined;
|
|
29
|
+
forwards: {
|
|
30
|
+
allowed: number;
|
|
31
|
+
used: number;
|
|
32
|
+
ttl: number;
|
|
33
|
+
} | undefined;
|
|
34
|
+
received: {
|
|
35
|
+
allowed: number;
|
|
36
|
+
used: number;
|
|
37
|
+
ttl: number;
|
|
38
|
+
} | undefined;
|
|
39
|
+
imapUpload: {
|
|
40
|
+
allowed: number;
|
|
41
|
+
used: number;
|
|
42
|
+
ttl: number;
|
|
43
|
+
} | undefined;
|
|
44
|
+
imapDownload: {
|
|
45
|
+
allowed: number;
|
|
46
|
+
used: number;
|
|
47
|
+
ttl: number;
|
|
48
|
+
} | undefined;
|
|
49
|
+
pop3Download: {
|
|
50
|
+
allowed: number;
|
|
51
|
+
used: number;
|
|
52
|
+
ttl: number;
|
|
53
|
+
} | undefined;
|
|
54
|
+
imapMaxConnections: {
|
|
55
|
+
allowed: number;
|
|
56
|
+
used: number;
|
|
57
|
+
} | undefined;
|
|
58
|
+
updateLimits: (params: UpdateWildduckLimitsParams) => void;
|
|
59
|
+
updateLimitsAsync: (params: UpdateWildduckLimitsParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
60
|
+
isUpdating: boolean;
|
|
61
|
+
updateError: Error | null;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=useWildduckUserLimits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserLimits.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserLimits.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,eAAO,MAAM,qBAAqB,GAChC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmChB,0BAA0B;gCAKpB,0BAA0B;;;CAwC5C,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
export const useWildduckUserLimits = (api, userAuth) => {
|
|
4
|
+
const queryClient = useQueryClient();
|
|
5
|
+
const userId = userAuth?.userId;
|
|
6
|
+
const limitsQuery = useQuery({
|
|
7
|
+
queryKey: ["user", userId, "limits"],
|
|
8
|
+
queryFn: async () => {
|
|
9
|
+
if (!userAuth)
|
|
10
|
+
throw new Error("User auth is required");
|
|
11
|
+
const user = (await api.getUser(userAuth));
|
|
12
|
+
return user.limits;
|
|
13
|
+
},
|
|
14
|
+
enabled: !!userAuth,
|
|
15
|
+
});
|
|
16
|
+
const updateLimits = useMutation({
|
|
17
|
+
mutationFn: async (params) => {
|
|
18
|
+
const { userAuth, ...limits } = params;
|
|
19
|
+
return await api.updateUser(userAuth, limits);
|
|
20
|
+
},
|
|
21
|
+
onSuccess: (_, variables) => {
|
|
22
|
+
queryClient.invalidateQueries({
|
|
23
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
24
|
+
});
|
|
25
|
+
queryClient.invalidateQueries({
|
|
26
|
+
queryKey: ["user", variables.userAuth.userId, "limits"],
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const handleUpdateLimits = useCallback((params) => updateLimits.mutate(params), [updateLimits]);
|
|
31
|
+
const handleUpdateLimitsAsync = useCallback(async (params) => updateLimits.mutateAsync(params), [updateLimits]);
|
|
32
|
+
return useMemo(() => ({
|
|
33
|
+
limits: limitsQuery.data,
|
|
34
|
+
isLoading: limitsQuery.isLoading,
|
|
35
|
+
isError: limitsQuery.isError,
|
|
36
|
+
error: limitsQuery.error,
|
|
37
|
+
quota: limitsQuery.data?.quota,
|
|
38
|
+
recipients: limitsQuery.data?.recipients,
|
|
39
|
+
forwards: limitsQuery.data?.forwards,
|
|
40
|
+
received: limitsQuery.data?.received,
|
|
41
|
+
imapUpload: limitsQuery.data?.imapUpload,
|
|
42
|
+
imapDownload: limitsQuery.data?.imapDownload,
|
|
43
|
+
pop3Download: limitsQuery.data?.pop3Download,
|
|
44
|
+
imapMaxConnections: limitsQuery.data?.imapMaxConnections,
|
|
45
|
+
updateLimits: handleUpdateLimits,
|
|
46
|
+
updateLimitsAsync: handleUpdateLimitsAsync,
|
|
47
|
+
isUpdating: updateLimits.isPending,
|
|
48
|
+
updateError: updateLimits.error,
|
|
49
|
+
}), [
|
|
50
|
+
limitsQuery.data,
|
|
51
|
+
limitsQuery.isLoading,
|
|
52
|
+
limitsQuery.isError,
|
|
53
|
+
limitsQuery.error,
|
|
54
|
+
handleUpdateLimits,
|
|
55
|
+
handleUpdateLimitsAsync,
|
|
56
|
+
updateLimits.isPending,
|
|
57
|
+
updateLimits.error,
|
|
58
|
+
]);
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=useWildduckUserLimits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserLimits.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserLimits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { WildduckAPI } from "../../network/wildduck-client";
|
|
2
|
+
import type { WildduckUserAuth } from "@sudobility/types";
|
|
3
|
+
export interface UserProfile {
|
|
4
|
+
username: string;
|
|
5
|
+
name: string;
|
|
6
|
+
address: string;
|
|
7
|
+
language?: string | undefined;
|
|
8
|
+
retention?: number | undefined;
|
|
9
|
+
uploadSentMessages?: boolean | undefined;
|
|
10
|
+
tags: string[];
|
|
11
|
+
metaData?: Record<string, unknown> | undefined;
|
|
12
|
+
disabled: boolean;
|
|
13
|
+
suspended: boolean;
|
|
14
|
+
activated: boolean;
|
|
15
|
+
hasPasswordSet: boolean;
|
|
16
|
+
disabledScopes: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface UpdateProfileParams {
|
|
19
|
+
userAuth: WildduckUserAuth;
|
|
20
|
+
name?: string;
|
|
21
|
+
language?: string;
|
|
22
|
+
retention?: number;
|
|
23
|
+
uploadSentMessages?: boolean;
|
|
24
|
+
tags?: string[];
|
|
25
|
+
metaData?: Record<string, unknown> | string;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
suspended?: boolean;
|
|
28
|
+
disabledScopes?: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface UpdatePasswordParams {
|
|
31
|
+
userAuth: WildduckUserAuth;
|
|
32
|
+
existingPassword?: string;
|
|
33
|
+
password: string;
|
|
34
|
+
hashedPassword?: boolean;
|
|
35
|
+
allowUnsafe?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare const useWildduckUserProfile: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
|
|
38
|
+
profile: UserProfile | undefined;
|
|
39
|
+
isLoading: boolean;
|
|
40
|
+
isError: boolean;
|
|
41
|
+
error: Error | null;
|
|
42
|
+
username: string | undefined;
|
|
43
|
+
name: string | undefined;
|
|
44
|
+
address: string | undefined;
|
|
45
|
+
language: string | undefined;
|
|
46
|
+
tags: string[];
|
|
47
|
+
disabled: boolean | undefined;
|
|
48
|
+
suspended: boolean | undefined;
|
|
49
|
+
activated: boolean | undefined;
|
|
50
|
+
hasPasswordSet: boolean | undefined;
|
|
51
|
+
updateProfile: (params: UpdateProfileParams) => void;
|
|
52
|
+
updateProfileAsync: (params: UpdateProfileParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
53
|
+
isUpdatingProfile: boolean;
|
|
54
|
+
updatePassword: (params: UpdatePasswordParams) => void;
|
|
55
|
+
updatePasswordAsync: (params: UpdatePasswordParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
56
|
+
isUpdatingPassword: boolean;
|
|
57
|
+
updateTags: (params: {
|
|
58
|
+
userAuth: WildduckUserAuth;
|
|
59
|
+
tags: string[];
|
|
60
|
+
}) => void;
|
|
61
|
+
updateTagsAsync: (params: {
|
|
62
|
+
userAuth: WildduckUserAuth;
|
|
63
|
+
tags: string[];
|
|
64
|
+
}) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
65
|
+
isUpdatingTags: boolean;
|
|
66
|
+
setAccountStatus: (params: {
|
|
67
|
+
userAuth: WildduckUserAuth;
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
suspended?: boolean;
|
|
70
|
+
}) => void;
|
|
71
|
+
setAccountStatusAsync: (params: {
|
|
72
|
+
userAuth: WildduckUserAuth;
|
|
73
|
+
disabled?: boolean;
|
|
74
|
+
suspended?: boolean;
|
|
75
|
+
}) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
|
|
76
|
+
isUpdatingStatus: boolean;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=useWildduckUserProfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserProfile.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserProfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,sBAAsB,GACjC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;;;;;;;;4BA6GhB,mBAAmB;iCAKb,mBAAmB;;6BAKzB,oBAAoB;kCAKd,oBAAoB;;yBAK1B;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;8BAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;;+BAMpD;QACP,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;oCAKc;QACb,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;;CA2DJ,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
export const useWildduckUserProfile = (api, userAuth) => {
|
|
4
|
+
const queryClient = useQueryClient();
|
|
5
|
+
const userId = userAuth?.userId;
|
|
6
|
+
const profileQuery = useQuery({
|
|
7
|
+
queryKey: ["user", userId, "profile"],
|
|
8
|
+
queryFn: async () => {
|
|
9
|
+
if (!userAuth)
|
|
10
|
+
throw new Error("User auth is required");
|
|
11
|
+
const user = (await api.getUser(userAuth));
|
|
12
|
+
return {
|
|
13
|
+
username: user.username,
|
|
14
|
+
name: user.name,
|
|
15
|
+
address: user.address,
|
|
16
|
+
language: user.language,
|
|
17
|
+
retention: user.retention,
|
|
18
|
+
uploadSentMessages: user.uploadSentMessages,
|
|
19
|
+
tags: user.tags || [],
|
|
20
|
+
metaData: user.metaData,
|
|
21
|
+
disabled: user.disabled,
|
|
22
|
+
suspended: user.suspended,
|
|
23
|
+
activated: user.activated,
|
|
24
|
+
hasPasswordSet: user.hasPasswordSet,
|
|
25
|
+
disabledScopes: user.disabledScopes || [],
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
enabled: !!userAuth,
|
|
29
|
+
});
|
|
30
|
+
const updateProfile = useMutation({
|
|
31
|
+
mutationFn: async (params) => {
|
|
32
|
+
const { userAuth, ...updates } = params;
|
|
33
|
+
return await api.updateUser(userAuth, updates);
|
|
34
|
+
},
|
|
35
|
+
onSuccess: (_, variables) => {
|
|
36
|
+
queryClient.invalidateQueries({
|
|
37
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
38
|
+
});
|
|
39
|
+
queryClient.invalidateQueries({
|
|
40
|
+
queryKey: ["user", variables.userAuth.userId, "profile"],
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
const updatePassword = useMutation({
|
|
45
|
+
mutationFn: async (params) => {
|
|
46
|
+
const { userAuth, ...passwordData } = params;
|
|
47
|
+
return await api.updateUser(userAuth, passwordData);
|
|
48
|
+
},
|
|
49
|
+
onSuccess: (_, variables) => {
|
|
50
|
+
queryClient.invalidateQueries({
|
|
51
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
const updateTags = useMutation({
|
|
56
|
+
mutationFn: async ({ userAuth, tags, }) => {
|
|
57
|
+
return await api.updateUser(userAuth, { tags });
|
|
58
|
+
},
|
|
59
|
+
onSuccess: (_, variables) => {
|
|
60
|
+
queryClient.invalidateQueries({
|
|
61
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
62
|
+
});
|
|
63
|
+
queryClient.invalidateQueries({
|
|
64
|
+
queryKey: ["user", variables.userAuth.userId, "profile"],
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
const setAccountStatus = useMutation({
|
|
69
|
+
mutationFn: async ({ userAuth, disabled, suspended, }) => {
|
|
70
|
+
const updates = {};
|
|
71
|
+
if (disabled !== undefined)
|
|
72
|
+
updates.disabled = disabled;
|
|
73
|
+
if (suspended !== undefined)
|
|
74
|
+
updates.suspended = suspended;
|
|
75
|
+
return await api.updateUser(userAuth, updates);
|
|
76
|
+
},
|
|
77
|
+
onSuccess: (_, variables) => {
|
|
78
|
+
queryClient.invalidateQueries({
|
|
79
|
+
queryKey: ["user", variables.userAuth.userId],
|
|
80
|
+
});
|
|
81
|
+
queryClient.invalidateQueries({
|
|
82
|
+
queryKey: ["user", variables.userAuth.userId, "profile"],
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
const handleUpdateProfile = useCallback((params) => updateProfile.mutate(params), [updateProfile]);
|
|
87
|
+
const handleUpdateProfileAsync = useCallback(async (params) => updateProfile.mutateAsync(params), [updateProfile]);
|
|
88
|
+
const handleUpdatePassword = useCallback((params) => updatePassword.mutate(params), [updatePassword]);
|
|
89
|
+
const handleUpdatePasswordAsync = useCallback(async (params) => updatePassword.mutateAsync(params), [updatePassword]);
|
|
90
|
+
const handleUpdateTags = useCallback((params) => updateTags.mutate(params), [updateTags]);
|
|
91
|
+
const handleUpdateTagsAsync = useCallback(async (params) => updateTags.mutateAsync(params), [updateTags]);
|
|
92
|
+
const handleSetAccountStatus = useCallback((params) => setAccountStatus.mutate(params), [setAccountStatus]);
|
|
93
|
+
const handleSetAccountStatusAsync = useCallback(async (params) => setAccountStatus.mutateAsync(params), [setAccountStatus]);
|
|
94
|
+
return useMemo(() => ({
|
|
95
|
+
profile: profileQuery.data,
|
|
96
|
+
isLoading: profileQuery.isLoading,
|
|
97
|
+
isError: profileQuery.isError,
|
|
98
|
+
error: profileQuery.error,
|
|
99
|
+
username: profileQuery.data?.username,
|
|
100
|
+
name: profileQuery.data?.name,
|
|
101
|
+
address: profileQuery.data?.address,
|
|
102
|
+
language: profileQuery.data?.language,
|
|
103
|
+
tags: profileQuery.data?.tags || [],
|
|
104
|
+
disabled: profileQuery.data?.disabled,
|
|
105
|
+
suspended: profileQuery.data?.suspended,
|
|
106
|
+
activated: profileQuery.data?.activated,
|
|
107
|
+
hasPasswordSet: profileQuery.data?.hasPasswordSet,
|
|
108
|
+
updateProfile: handleUpdateProfile,
|
|
109
|
+
updateProfileAsync: handleUpdateProfileAsync,
|
|
110
|
+
isUpdatingProfile: updateProfile.isPending,
|
|
111
|
+
updatePassword: handleUpdatePassword,
|
|
112
|
+
updatePasswordAsync: handleUpdatePasswordAsync,
|
|
113
|
+
isUpdatingPassword: updatePassword.isPending,
|
|
114
|
+
updateTags: handleUpdateTags,
|
|
115
|
+
updateTagsAsync: handleUpdateTagsAsync,
|
|
116
|
+
isUpdatingTags: updateTags.isPending,
|
|
117
|
+
setAccountStatus: handleSetAccountStatus,
|
|
118
|
+
setAccountStatusAsync: handleSetAccountStatusAsync,
|
|
119
|
+
isUpdatingStatus: setAccountStatus.isPending,
|
|
120
|
+
}), [
|
|
121
|
+
profileQuery.data,
|
|
122
|
+
profileQuery.isLoading,
|
|
123
|
+
profileQuery.isError,
|
|
124
|
+
profileQuery.error,
|
|
125
|
+
handleUpdateProfile,
|
|
126
|
+
handleUpdateProfileAsync,
|
|
127
|
+
updateProfile.isPending,
|
|
128
|
+
handleUpdatePassword,
|
|
129
|
+
handleUpdatePasswordAsync,
|
|
130
|
+
updatePassword.isPending,
|
|
131
|
+
handleUpdateTags,
|
|
132
|
+
handleUpdateTagsAsync,
|
|
133
|
+
updateTags.isPending,
|
|
134
|
+
handleSetAccountStatus,
|
|
135
|
+
handleSetAccountStatusAsync,
|
|
136
|
+
setAccountStatus.isPending,
|
|
137
|
+
]);
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=useWildduckUserProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWildduckUserProfile.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserProfile.ts"],"names":[],"mappings":"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"}
|