@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.
Files changed (254) hide show
  1. package/README.md +354 -0
  2. package/dist/hooks/ServiceProvider.d.ts +15 -0
  3. package/dist/hooks/ServiceProvider.d.ts.map +1 -0
  4. package/dist/hooks/ServiceProvider.js +21 -0
  5. package/dist/hooks/ServiceProvider.js.map +1 -0
  6. package/dist/hooks/addresses/index.d.ts +2 -0
  7. package/dist/hooks/addresses/index.d.ts.map +1 -0
  8. package/dist/hooks/addresses/index.js +2 -0
  9. package/dist/hooks/addresses/index.js.map +1 -0
  10. package/dist/hooks/addresses/useWildduckGetAddresses.d.ts +232 -0
  11. package/dist/hooks/addresses/useWildduckGetAddresses.d.ts.map +1 -0
  12. package/dist/hooks/addresses/useWildduckGetAddresses.js +34 -0
  13. package/dist/hooks/addresses/useWildduckGetAddresses.js.map +1 -0
  14. package/dist/hooks/autoreply/index.d.ts +4 -0
  15. package/dist/hooks/autoreply/index.d.ts.map +1 -0
  16. package/dist/hooks/autoreply/index.js +4 -0
  17. package/dist/hooks/autoreply/index.js.map +1 -0
  18. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts +13 -0
  19. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts.map +1 -0
  20. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js +46 -0
  21. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js.map +1 -0
  22. package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts +172 -0
  23. package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts.map +1 -0
  24. package/dist/hooks/autoreply/useWildduckGetAutoreply.js +39 -0
  25. package/dist/hooks/autoreply/useWildduckGetAutoreply.js.map +1 -0
  26. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts +13 -0
  27. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts.map +1 -0
  28. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js +46 -0
  29. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js.map +1 -0
  30. package/dist/hooks/index.d.ts +19 -0
  31. package/dist/hooks/index.d.ts.map +1 -0
  32. package/dist/hooks/index.js +16 -0
  33. package/dist/hooks/index.js.map +1 -0
  34. package/dist/hooks/mailboxes/index.d.ts +6 -0
  35. package/dist/hooks/mailboxes/index.d.ts.map +1 -0
  36. package/dist/hooks/mailboxes/index.js +6 -0
  37. package/dist/hooks/mailboxes/index.js.map +1 -0
  38. package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts +13 -0
  39. package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts.map +1 -0
  40. package/dist/hooks/mailboxes/useWildduckCreateMailbox.js +43 -0
  41. package/dist/hooks/mailboxes/useWildduckCreateMailbox.js.map +1 -0
  42. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts +13 -0
  43. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts.map +1 -0
  44. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js +48 -0
  45. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js.map +1 -0
  46. package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts +173 -0
  47. package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts.map +1 -0
  48. package/dist/hooks/mailboxes/useWildduckGetMailbox.js +47 -0
  49. package/dist/hooks/mailboxes/useWildduckGetMailbox.js.map +1 -0
  50. package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts +233 -0
  51. package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts.map +1 -0
  52. package/dist/hooks/mailboxes/useWildduckGetMailboxes.js +34 -0
  53. package/dist/hooks/mailboxes/useWildduckGetMailboxes.js.map +1 -0
  54. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts +13 -0
  55. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts.map +1 -0
  56. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js +48 -0
  57. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js.map +1 -0
  58. package/dist/hooks/messages/index.d.ts +12 -0
  59. package/dist/hooks/messages/index.d.ts.map +1 -0
  60. package/dist/hooks/messages/index.js +12 -0
  61. package/dist/hooks/messages/index.js.map +1 -0
  62. package/dist/hooks/messages/useWildduckDeleteMessage.d.ts +13 -0
  63. package/dist/hooks/messages/useWildduckDeleteMessage.d.ts.map +1 -0
  64. package/dist/hooks/messages/useWildduckDeleteMessage.js +48 -0
  65. package/dist/hooks/messages/useWildduckDeleteMessage.js.map +1 -0
  66. package/dist/hooks/messages/useWildduckForwardMessage.d.ts +13 -0
  67. package/dist/hooks/messages/useWildduckForwardMessage.d.ts.map +1 -0
  68. package/dist/hooks/messages/useWildduckForwardMessage.js +51 -0
  69. package/dist/hooks/messages/useWildduckForwardMessage.js.map +1 -0
  70. package/dist/hooks/messages/useWildduckGetMessage.d.ts +653 -0
  71. package/dist/hooks/messages/useWildduckGetMessage.d.ts.map +1 -0
  72. package/dist/hooks/messages/useWildduckGetMessage.js +37 -0
  73. package/dist/hooks/messages/useWildduckGetMessage.js.map +1 -0
  74. package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts +13 -0
  75. package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts.map +1 -0
  76. package/dist/hooks/messages/useWildduckGetMessageAttachment.js +40 -0
  77. package/dist/hooks/messages/useWildduckGetMessageAttachment.js.map +1 -0
  78. package/dist/hooks/messages/useWildduckGetMessageSource.d.ts +12 -0
  79. package/dist/hooks/messages/useWildduckGetMessageSource.d.ts.map +1 -0
  80. package/dist/hooks/messages/useWildduckGetMessageSource.js +35 -0
  81. package/dist/hooks/messages/useWildduckGetMessageSource.js.map +1 -0
  82. package/dist/hooks/messages/useWildduckGetMessages.d.ts +11 -0
  83. package/dist/hooks/messages/useWildduckGetMessages.d.ts.map +1 -0
  84. package/dist/hooks/messages/useWildduckGetMessages.js +18 -0
  85. package/dist/hooks/messages/useWildduckGetMessages.js.map +1 -0
  86. package/dist/hooks/messages/useWildduckSearchMessages.d.ts +12 -0
  87. package/dist/hooks/messages/useWildduckSearchMessages.d.ts.map +1 -0
  88. package/dist/hooks/messages/useWildduckSearchMessages.js +46 -0
  89. package/dist/hooks/messages/useWildduckSearchMessages.js.map +1 -0
  90. package/dist/hooks/messages/useWildduckSendMessage.d.ts +13 -0
  91. package/dist/hooks/messages/useWildduckSendMessage.d.ts.map +1 -0
  92. package/dist/hooks/messages/useWildduckSendMessage.js +48 -0
  93. package/dist/hooks/messages/useWildduckSendMessage.js.map +1 -0
  94. package/dist/hooks/messages/useWildduckSubmitDraft.d.ts +13 -0
  95. package/dist/hooks/messages/useWildduckSubmitDraft.d.ts.map +1 -0
  96. package/dist/hooks/messages/useWildduckSubmitDraft.js +44 -0
  97. package/dist/hooks/messages/useWildduckSubmitDraft.js.map +1 -0
  98. package/dist/hooks/messages/useWildduckUpdateMessage.d.ts +13 -0
  99. package/dist/hooks/messages/useWildduckUpdateMessage.d.ts.map +1 -0
  100. package/dist/hooks/messages/useWildduckUpdateMessage.js +53 -0
  101. package/dist/hooks/messages/useWildduckUpdateMessage.js.map +1 -0
  102. package/dist/hooks/messages/useWildduckUploadMessage.d.ts +13 -0
  103. package/dist/hooks/messages/useWildduckUploadMessage.d.ts.map +1 -0
  104. package/dist/hooks/messages/useWildduckUploadMessage.js +51 -0
  105. package/dist/hooks/messages/useWildduckUploadMessage.js.map +1 -0
  106. package/dist/hooks/mocks.d.ts +354 -0
  107. package/dist/hooks/mocks.d.ts.map +1 -0
  108. package/dist/hooks/mocks.js +404 -0
  109. package/dist/hooks/mocks.js.map +1 -0
  110. package/dist/hooks/query-config.d.ts +9 -0
  111. package/dist/hooks/query-config.d.ts.map +1 -0
  112. package/dist/hooks/query-config.js +9 -0
  113. package/dist/hooks/query-config.js.map +1 -0
  114. package/dist/hooks/query-keys.d.ts +31 -0
  115. package/dist/hooks/query-keys.d.ts.map +1 -0
  116. package/dist/hooks/query-keys.js +40 -0
  117. package/dist/hooks/query-keys.js.map +1 -0
  118. package/dist/hooks/useServices.d.ts +14 -0
  119. package/dist/hooks/useServices.d.ts.map +1 -0
  120. package/dist/hooks/useServices.js +36 -0
  121. package/dist/hooks/useServices.js.map +1 -0
  122. package/dist/hooks/useWildduckAddresses.d.ts +67 -0
  123. package/dist/hooks/useWildduckAddresses.d.ts.map +1 -0
  124. package/dist/hooks/useWildduckAddresses.js +313 -0
  125. package/dist/hooks/useWildduckAddresses.js.map +1 -0
  126. package/dist/hooks/useWildduckAuth.d.ts +28 -0
  127. package/dist/hooks/useWildduckAuth.d.ts.map +1 -0
  128. package/dist/hooks/useWildduckAuth.js +249 -0
  129. package/dist/hooks/useWildduckAuth.js.map +1 -0
  130. package/dist/hooks/useWildduckFilters.d.ts +89 -0
  131. package/dist/hooks/useWildduckFilters.d.ts.map +1 -0
  132. package/dist/hooks/useWildduckFilters.js +209 -0
  133. package/dist/hooks/useWildduckFilters.js.map +1 -0
  134. package/dist/hooks/useWildduckHealth.d.ts +45 -0
  135. package/dist/hooks/useWildduckHealth.d.ts.map +1 -0
  136. package/dist/hooks/useWildduckHealth.js +110 -0
  137. package/dist/hooks/useWildduckHealth.js.map +1 -0
  138. package/dist/hooks/useWildduckMailboxes.d.ts +29 -0
  139. package/dist/hooks/useWildduckMailboxes.d.ts.map +1 -0
  140. package/dist/hooks/useWildduckMailboxes.js +195 -0
  141. package/dist/hooks/useWildduckMailboxes.js.map +1 -0
  142. package/dist/hooks/useWildduckMessages.d.ts +76 -0
  143. package/dist/hooks/useWildduckMessages.d.ts.map +1 -0
  144. package/dist/hooks/useWildduckMessages.js +264 -0
  145. package/dist/hooks/useWildduckMessages.js.map +1 -0
  146. package/dist/hooks/useWildduckQueries.d.ts +50 -0
  147. package/dist/hooks/useWildduckQueries.d.ts.map +1 -0
  148. package/dist/hooks/useWildduckQueries.js +640 -0
  149. package/dist/hooks/useWildduckQueries.js.map +1 -0
  150. package/dist/hooks/useWildduckSettings.d.ts +22 -0
  151. package/dist/hooks/useWildduckSettings.d.ts.map +1 -0
  152. package/dist/hooks/useWildduckSettings.js +153 -0
  153. package/dist/hooks/useWildduckSettings.js.map +1 -0
  154. package/dist/hooks/useWildduckUsers.d.ts +31 -0
  155. package/dist/hooks/useWildduckUsers.d.ts.map +1 -0
  156. package/dist/hooks/useWildduckUsers.js +114 -0
  157. package/dist/hooks/useWildduckUsers.js.map +1 -0
  158. package/dist/hooks/users/index.d.ts +12 -0
  159. package/dist/hooks/users/index.d.ts.map +1 -0
  160. package/dist/hooks/users/index.js +12 -0
  161. package/dist/hooks/users/index.js.map +1 -0
  162. package/dist/hooks/users/useWildduckCreateUser.d.ts +13 -0
  163. package/dist/hooks/users/useWildduckCreateUser.d.ts.map +1 -0
  164. package/dist/hooks/users/useWildduckCreateUser.js +44 -0
  165. package/dist/hooks/users/useWildduckCreateUser.js.map +1 -0
  166. package/dist/hooks/users/useWildduckDeleteUser.d.ts +13 -0
  167. package/dist/hooks/users/useWildduckDeleteUser.d.ts.map +1 -0
  168. package/dist/hooks/users/useWildduckDeleteUser.js +44 -0
  169. package/dist/hooks/users/useWildduckDeleteUser.js.map +1 -0
  170. package/dist/hooks/users/useWildduckGetUser.d.ts +397 -0
  171. package/dist/hooks/users/useWildduckGetUser.d.ts.map +1 -0
  172. package/dist/hooks/users/useWildduckGetUser.js +45 -0
  173. package/dist/hooks/users/useWildduckGetUser.js.map +1 -0
  174. package/dist/hooks/users/useWildduckUpdateUser.d.ts +13 -0
  175. package/dist/hooks/users/useWildduckUpdateUser.d.ts.map +1 -0
  176. package/dist/hooks/users/useWildduckUpdateUser.js +44 -0
  177. package/dist/hooks/users/useWildduckUpdateUser.js.map +1 -0
  178. package/dist/hooks/users/useWildduckUser2FA.d.ts +25 -0
  179. package/dist/hooks/users/useWildduckUser2FA.d.ts.map +1 -0
  180. package/dist/hooks/users/useWildduckUser2FA.js +70 -0
  181. package/dist/hooks/users/useWildduckUser2FA.js.map +1 -0
  182. package/dist/hooks/users/useWildduckUserEncryption.d.ts +40 -0
  183. package/dist/hooks/users/useWildduckUserEncryption.d.ts.map +1 -0
  184. package/dist/hooks/users/useWildduckUserEncryption.js +94 -0
  185. package/dist/hooks/users/useWildduckUserEncryption.js.map +1 -0
  186. package/dist/hooks/users/useWildduckUserForwarding.d.ts +44 -0
  187. package/dist/hooks/users/useWildduckUserForwarding.d.ts.map +1 -0
  188. package/dist/hooks/users/useWildduckUserForwarding.js +122 -0
  189. package/dist/hooks/users/useWildduckUserForwarding.js.map +1 -0
  190. package/dist/hooks/users/useWildduckUserLimits.d.ts +63 -0
  191. package/dist/hooks/users/useWildduckUserLimits.d.ts.map +1 -0
  192. package/dist/hooks/users/useWildduckUserLimits.js +60 -0
  193. package/dist/hooks/users/useWildduckUserLimits.js.map +1 -0
  194. package/dist/hooks/users/useWildduckUserProfile.d.ts +78 -0
  195. package/dist/hooks/users/useWildduckUserProfile.d.ts.map +1 -0
  196. package/dist/hooks/users/useWildduckUserProfile.js +139 -0
  197. package/dist/hooks/users/useWildduckUserProfile.js.map +1 -0
  198. package/dist/hooks/users/useWildduckUserQuota.d.ts +31 -0
  199. package/dist/hooks/users/useWildduckUserQuota.d.ts.map +1 -0
  200. package/dist/hooks/users/useWildduckUserQuota.js +66 -0
  201. package/dist/hooks/users/useWildduckUserQuota.js.map +1 -0
  202. package/dist/hooks/users/useWildduckUserSpam.d.ts +54 -0
  203. package/dist/hooks/users/useWildduckUserSpam.d.ts.map +1 -0
  204. package/dist/hooks/users/useWildduckUserSpam.js +137 -0
  205. package/dist/hooks/users/useWildduckUserSpam.js.map +1 -0
  206. package/dist/index.d.ts +7 -0
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +7 -0
  209. package/dist/index.js.map +1 -0
  210. package/dist/network/index.d.ts +2 -0
  211. package/dist/network/index.d.ts.map +1 -0
  212. package/dist/network/index.js +2 -0
  213. package/dist/network/index.js.map +1 -0
  214. package/dist/network/wildduck-client.d.ts +54 -0
  215. package/dist/network/wildduck-client.d.ts.map +1 -0
  216. package/dist/network/wildduck-client.js +572 -0
  217. package/dist/network/wildduck-client.js.map +1 -0
  218. package/dist/types/index.d.ts +2 -0
  219. package/dist/types/index.d.ts.map +1 -0
  220. package/dist/types/index.js +2 -0
  221. package/dist/types/index.js.map +1 -0
  222. package/dist/utils/advanced-settings.d.ts +36 -0
  223. package/dist/utils/advanced-settings.d.ts.map +1 -0
  224. package/dist/utils/advanced-settings.js +99 -0
  225. package/dist/utils/advanced-settings.js.map +1 -0
  226. package/dist/utils/autoreply.d.ts +34 -0
  227. package/dist/utils/autoreply.d.ts.map +1 -0
  228. package/dist/utils/autoreply.js +39 -0
  229. package/dist/utils/autoreply.js.map +1 -0
  230. package/dist/utils/client.d.ts +4 -0
  231. package/dist/utils/client.d.ts.map +1 -0
  232. package/dist/utils/client.js +11 -0
  233. package/dist/utils/client.js.map +1 -0
  234. package/dist/utils/filters.d.ts +26 -0
  235. package/dist/utils/filters.d.ts.map +1 -0
  236. package/dist/utils/filters.js +50 -0
  237. package/dist/utils/filters.js.map +1 -0
  238. package/dist/utils/forwarding.d.ts +12 -0
  239. package/dist/utils/forwarding.d.ts.map +1 -0
  240. package/dist/utils/forwarding.js +29 -0
  241. package/dist/utils/forwarding.js.map +1 -0
  242. package/dist/utils/index.d.ts +7 -0
  243. package/dist/utils/index.d.ts.map +1 -0
  244. package/dist/utils/index.js +7 -0
  245. package/dist/utils/index.js.map +1 -0
  246. package/dist/utils/spam-settings.d.ts +21 -0
  247. package/dist/utils/spam-settings.d.ts.map +1 -0
  248. package/dist/utils/spam-settings.js +53 -0
  249. package/dist/utils/spam-settings.js.map +1 -0
  250. package/dist/utils/user-settings.d.ts +30 -0
  251. package/dist/utils/user-settings.d.ts.map +1 -0
  252. package/dist/utils/user-settings.js +21 -0
  253. package/dist/utils/user-settings.js.map +1 -0
  254. package/package.json +82 -0
@@ -0,0 +1,640 @@
1
+ import { useCallback, useMemo } from "react";
2
+ import { useQuery, } from "@tanstack/react-query";
3
+ import { queryKeys } from "./query-keys";
4
+ import { STALE_TIMES } from "./query-config";
5
+ import axios from "axios";
6
+ import { WildduckMockData } from "./mocks";
7
+ const useWildduckHealth = (config, devMode = false, options) => {
8
+ const queryFn = useCallback(async () => {
9
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
10
+ const headers = {
11
+ "Content-Type": "application/json",
12
+ Accept: "application/json",
13
+ };
14
+ if (config.cloudflareWorkerUrl) {
15
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
16
+ headers["X-App-Source"] = "0xmail-box";
17
+ }
18
+ else {
19
+ headers["X-Access-Token"] = config.apiToken;
20
+ }
21
+ try {
22
+ const response = await axios.get(`${apiUrl}/health`, { headers });
23
+ return response.data;
24
+ }
25
+ catch (err) {
26
+ if (devMode) {
27
+ console.warn("[DevMode] Health check failed, returning mock data:", err);
28
+ return WildduckMockData.getHealthQuery();
29
+ }
30
+ throw err;
31
+ }
32
+ }, [config.cloudflareWorkerUrl, config.backendUrl, config.apiToken, devMode]);
33
+ const query = useQuery({
34
+ queryKey: queryKeys.wildduck.health(),
35
+ queryFn,
36
+ staleTime: STALE_TIMES.HEALTH_STATUS,
37
+ ...options,
38
+ });
39
+ return useMemo(() => ({
40
+ ...query,
41
+ }), [query]);
42
+ };
43
+ const useWildduckUsersList = (config, devMode = false, filters, options) => {
44
+ const queryFn = useCallback(async () => {
45
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
46
+ const headers = {
47
+ "Content-Type": "application/json",
48
+ Accept: "application/json",
49
+ };
50
+ if (config.cloudflareWorkerUrl) {
51
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
52
+ headers["X-App-Source"] = "0xmail-box";
53
+ }
54
+ else {
55
+ headers["X-Access-Token"] = config.apiToken;
56
+ }
57
+ const params = new URLSearchParams();
58
+ if (filters) {
59
+ Object.entries(filters).forEach(([key, value]) => {
60
+ if (value !== undefined) {
61
+ params.set(key, String(value));
62
+ }
63
+ });
64
+ }
65
+ try {
66
+ const response = await axios.get(`${apiUrl}/users?${params}`, {
67
+ headers,
68
+ });
69
+ return response.data;
70
+ }
71
+ catch (err) {
72
+ if (devMode) {
73
+ console.warn("[DevMode] Get users list failed, returning mock data:", err);
74
+ return WildduckMockData.getUsersListQuery();
75
+ }
76
+ throw err;
77
+ }
78
+ }, [
79
+ config.cloudflareWorkerUrl,
80
+ config.backendUrl,
81
+ config.apiToken,
82
+ filters,
83
+ devMode,
84
+ ]);
85
+ const query = useQuery({
86
+ queryKey: queryKeys.wildduck.usersList(filters),
87
+ queryFn,
88
+ staleTime: STALE_TIMES.USER_PROFILE,
89
+ ...options,
90
+ });
91
+ return useMemo(() => ({
92
+ ...query,
93
+ }), [query]);
94
+ };
95
+ const useWildduckUser = (config, userId, devMode = false, options) => {
96
+ const queryFn = useCallback(async () => {
97
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
98
+ const headers = {
99
+ "Content-Type": "application/json",
100
+ Accept: "application/json",
101
+ };
102
+ if (config.cloudflareWorkerUrl) {
103
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
104
+ headers["X-App-Source"] = "0xmail-box";
105
+ }
106
+ else {
107
+ headers["X-Access-Token"] = config.apiToken;
108
+ }
109
+ try {
110
+ const response = await axios.get(`${apiUrl}/users/${userId}`, {
111
+ headers,
112
+ });
113
+ const userData = response.data;
114
+ return {
115
+ id: userData.id,
116
+ username: userData.username,
117
+ name: userData.address || userData.username,
118
+ ...(userData.address && { address: userData.address }),
119
+ tags: [],
120
+ quota: {
121
+ allowed: 0,
122
+ used: 0,
123
+ },
124
+ hasPasswordSet: false,
125
+ activated: userData.success || false,
126
+ disabled: false,
127
+ suspended: false,
128
+ created: new Date().toISOString(),
129
+ };
130
+ }
131
+ catch (err) {
132
+ if (devMode) {
133
+ console.warn("[DevMode] Get user failed, returning mock data:", err);
134
+ return WildduckMockData.getUserQuery(userId);
135
+ }
136
+ throw err;
137
+ }
138
+ }, [
139
+ config.cloudflareWorkerUrl,
140
+ config.backendUrl,
141
+ config.apiToken,
142
+ userId,
143
+ devMode,
144
+ ]);
145
+ const query = useQuery({
146
+ queryKey: queryKeys.wildduck.user(userId),
147
+ queryFn,
148
+ staleTime: STALE_TIMES.USER_PROFILE,
149
+ enabled: !!userId,
150
+ ...options,
151
+ });
152
+ return useMemo(() => ({
153
+ ...query,
154
+ }), [query]);
155
+ };
156
+ const useWildduckUserAddresses = (config, userId, devMode = false, options) => {
157
+ const queryFn = useCallback(async () => {
158
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
159
+ const headers = {
160
+ "Content-Type": "application/json",
161
+ Accept: "application/json",
162
+ };
163
+ if (config.cloudflareWorkerUrl) {
164
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
165
+ headers["X-App-Source"] = "0xmail-box";
166
+ }
167
+ else {
168
+ headers["X-Access-Token"] = config.apiToken;
169
+ }
170
+ try {
171
+ const response = await axios.get(`${apiUrl}/users/${userId}/addresses`, {
172
+ headers,
173
+ });
174
+ const addressData = response.data;
175
+ return (addressData.results?.map((addr) => ({
176
+ id: addr.id,
177
+ address: addr.address,
178
+ created: new Date().toISOString(),
179
+ main: addr.main,
180
+ })) || []);
181
+ }
182
+ catch (err) {
183
+ if (devMode) {
184
+ console.warn("[DevMode] Get user addresses failed, returning mock data:", err);
185
+ const mockData = WildduckMockData.getUserAddressesQuery();
186
+ return mockData.addresses;
187
+ }
188
+ throw err;
189
+ }
190
+ }, [
191
+ config.cloudflareWorkerUrl,
192
+ config.backendUrl,
193
+ config.apiToken,
194
+ userId,
195
+ devMode,
196
+ ]);
197
+ const query = useQuery({
198
+ queryKey: queryKeys.wildduck.userAddresses(userId),
199
+ queryFn,
200
+ staleTime: STALE_TIMES.EMAIL_ADDRESSES,
201
+ enabled: !!userId,
202
+ ...options,
203
+ });
204
+ return useMemo(() => ({
205
+ ...query,
206
+ }), [query]);
207
+ };
208
+ const useWildduckUserMessages = (config, userId, mailboxId, devMode = false, filters, options) => {
209
+ const queryFn = useCallback(async () => {
210
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
211
+ const headers = {
212
+ "Content-Type": "application/json",
213
+ Accept: "application/json",
214
+ };
215
+ if (config.cloudflareWorkerUrl) {
216
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
217
+ headers["X-App-Source"] = "0xmail-box";
218
+ }
219
+ else {
220
+ headers["X-Access-Token"] = config.apiToken;
221
+ }
222
+ try {
223
+ const response = await axios.get(`${apiUrl}/users/${userId}/mailboxes/${mailboxId}/messages`, { headers });
224
+ const messagesData = response.data;
225
+ return {
226
+ success: messagesData.success,
227
+ total: messagesData.total,
228
+ page: messagesData.page,
229
+ results: messagesData.results.map((msg) => ({
230
+ id: msg.id,
231
+ mailbox: msg.mailbox,
232
+ thread: msg.thread || "",
233
+ ...(msg.from && {
234
+ from: { name: msg.from.name, address: msg.from.address || "" },
235
+ }),
236
+ to: msg.to?.map((addr) => ({
237
+ name: addr.name,
238
+ address: addr.address || "",
239
+ })) || [],
240
+ cc: msg.cc?.map((addr) => ({
241
+ name: addr.name,
242
+ address: addr.address || "",
243
+ })),
244
+ bcc: msg.bcc?.map((addr) => ({
245
+ name: addr.name,
246
+ address: addr.address || "",
247
+ })),
248
+ subject: msg.subject || "",
249
+ date: msg.date || "",
250
+ intro: msg.intro || "",
251
+ seen: msg.seen || false,
252
+ deleted: msg.deleted || false,
253
+ flagged: msg.flagged || false,
254
+ draft: msg.draft || false,
255
+ answered: msg.answered || false,
256
+ size: msg.size || 0,
257
+ ha: msg.attachments || false,
258
+ attachments: msg.attachments || false,
259
+ })),
260
+ };
261
+ }
262
+ catch (err) {
263
+ if (devMode) {
264
+ console.warn("[DevMode] Get user messages failed, returning mock data:", err);
265
+ return WildduckMockData.getUserMessagesQuery();
266
+ }
267
+ throw err;
268
+ }
269
+ }, [
270
+ config.cloudflareWorkerUrl,
271
+ config.backendUrl,
272
+ config.apiToken,
273
+ userId,
274
+ mailboxId,
275
+ devMode,
276
+ ]);
277
+ const query = useQuery({
278
+ queryKey: queryKeys.wildduck.userMessages(userId, mailboxId, filters),
279
+ queryFn,
280
+ staleTime: STALE_TIMES.MESSAGES,
281
+ enabled: !!(userId && mailboxId),
282
+ ...options,
283
+ });
284
+ return useMemo(() => ({
285
+ ...query,
286
+ }), [query]);
287
+ };
288
+ const useWildduckMessage = (config, userId, messageId, devMode = false, options) => {
289
+ const queryFn = useCallback(async () => {
290
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
291
+ const headers = {
292
+ "Content-Type": "application/json",
293
+ Accept: "application/json",
294
+ };
295
+ if (config.cloudflareWorkerUrl) {
296
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
297
+ headers["X-App-Source"] = "0xmail-box";
298
+ }
299
+ else {
300
+ headers["X-Access-Token"] = config.apiToken;
301
+ }
302
+ try {
303
+ const response = await axios.get(`${apiUrl}/users/${userId}/messages/${messageId}`, { headers });
304
+ const messageData = response.data;
305
+ return {
306
+ id: messageData.id,
307
+ mailbox: messageData.mailbox,
308
+ thread: messageData.thread || "",
309
+ ...(messageData.from && {
310
+ from: {
311
+ name: messageData.from.name,
312
+ address: messageData.from.address || "",
313
+ },
314
+ }),
315
+ to: messageData.to?.map((addr) => ({
316
+ name: addr.name,
317
+ address: addr.address || "",
318
+ })) || [],
319
+ cc: messageData.cc?.map((addr) => ({
320
+ name: addr.name,
321
+ address: addr.address || "",
322
+ })),
323
+ bcc: messageData.bcc?.map((addr) => ({
324
+ name: addr.name,
325
+ address: addr.address || "",
326
+ })),
327
+ subject: messageData.subject || "",
328
+ date: messageData.date || "",
329
+ intro: messageData.intro || "",
330
+ seen: messageData.seen || false,
331
+ deleted: messageData.deleted || false,
332
+ flagged: messageData.flagged || false,
333
+ draft: messageData.draft || false,
334
+ answered: messageData.answered || false,
335
+ size: messageData.size || 0,
336
+ ha: messageData.attachments || false,
337
+ attachments: messageData.attachments || false,
338
+ };
339
+ }
340
+ catch (err) {
341
+ if (devMode) {
342
+ console.warn("[DevMode] Get message failed, returning mock data:", err);
343
+ return WildduckMockData.getMessageQuery(messageId, userId);
344
+ }
345
+ throw err;
346
+ }
347
+ }, [
348
+ config.cloudflareWorkerUrl,
349
+ config.backendUrl,
350
+ config.apiToken,
351
+ userId,
352
+ messageId,
353
+ devMode,
354
+ ]);
355
+ const query = useQuery({
356
+ queryKey: queryKeys.wildduck.message(userId, messageId),
357
+ queryFn,
358
+ staleTime: STALE_TIMES.MESSAGE_CONTENT,
359
+ enabled: !!(userId && messageId),
360
+ ...options,
361
+ });
362
+ return useMemo(() => ({
363
+ ...query,
364
+ }), [query]);
365
+ };
366
+ const useWildduckUserFilters = (config, userId, devMode = false, options) => {
367
+ const queryFn = useCallback(async () => {
368
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
369
+ const headers = {
370
+ "Content-Type": "application/json",
371
+ Accept: "application/json",
372
+ };
373
+ if (config.cloudflareWorkerUrl) {
374
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
375
+ headers["X-App-Source"] = "0xmail-box";
376
+ }
377
+ else {
378
+ headers["X-Access-Token"] = config.apiToken;
379
+ }
380
+ try {
381
+ const response = await axios.get(`${apiUrl}/users/${userId}/filters`, {
382
+ headers,
383
+ });
384
+ const data = response.data;
385
+ return (data.results?.map((filter) => ({
386
+ id: filter.id || "",
387
+ name: filter.name || "",
388
+ query: filter.query || {},
389
+ action: filter.action || {},
390
+ disabled: filter.disabled || false,
391
+ created: filter.created || new Date().toISOString(),
392
+ })) || []);
393
+ }
394
+ catch (err) {
395
+ if (devMode) {
396
+ console.warn("[DevMode] Get user filters failed, returning mock data:", err);
397
+ const mockData = WildduckMockData.getUserFiltersQuery();
398
+ return mockData.filters;
399
+ }
400
+ throw err;
401
+ }
402
+ }, [
403
+ config.cloudflareWorkerUrl,
404
+ config.backendUrl,
405
+ config.apiToken,
406
+ userId,
407
+ devMode,
408
+ ]);
409
+ const query = useQuery({
410
+ queryKey: queryKeys.wildduck.userFilters(userId),
411
+ queryFn,
412
+ staleTime: STALE_TIMES.USER_PROFILE,
413
+ enabled: !!userId,
414
+ ...options,
415
+ });
416
+ return useMemo(() => ({
417
+ ...query,
418
+ }), [query]);
419
+ };
420
+ const useWildduckUserSettings = (config, userId, devMode = false, options) => {
421
+ const queryFn = useCallback(async () => {
422
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
423
+ const headers = {
424
+ "Content-Type": "application/json",
425
+ Accept: "application/json",
426
+ };
427
+ if (config.cloudflareWorkerUrl) {
428
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
429
+ headers["X-App-Source"] = "0xmail-box";
430
+ }
431
+ else {
432
+ headers["X-Access-Token"] = config.apiToken;
433
+ }
434
+ try {
435
+ const response = await axios.get(`${apiUrl}/users/${userId}/settings`, {
436
+ headers,
437
+ });
438
+ const data = response.data;
439
+ return data || {};
440
+ }
441
+ catch (err) {
442
+ if (devMode) {
443
+ console.warn("[DevMode] Get user settings failed, returning mock data:", err);
444
+ const mockData = WildduckMockData.getUserSettingsQuery();
445
+ return mockData.settings;
446
+ }
447
+ throw err;
448
+ }
449
+ }, [
450
+ config.cloudflareWorkerUrl,
451
+ config.backendUrl,
452
+ config.apiToken,
453
+ userId,
454
+ devMode,
455
+ ]);
456
+ const query = useQuery({
457
+ queryKey: queryKeys.wildduck.userSettings(userId),
458
+ queryFn,
459
+ staleTime: STALE_TIMES.USER_PROFILE,
460
+ enabled: !!userId,
461
+ ...options,
462
+ });
463
+ return useMemo(() => ({
464
+ ...query,
465
+ }), [query]);
466
+ };
467
+ const useWildduckUserMailboxes = (config, userId, devMode = false, options, queryOptions) => {
468
+ const queryFn = useCallback(async () => {
469
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
470
+ const headers = {
471
+ "Content-Type": "application/json",
472
+ Accept: "application/json",
473
+ };
474
+ if (config.cloudflareWorkerUrl) {
475
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
476
+ headers["X-App-Source"] = "0xmail-box";
477
+ }
478
+ else {
479
+ headers["X-Access-Token"] = config.apiToken;
480
+ }
481
+ const params = new URLSearchParams();
482
+ if (options?.specialUse)
483
+ params.set("specialUse", "true");
484
+ if (options?.showHidden)
485
+ params.set("showHidden", "true");
486
+ if (options?.counters)
487
+ params.set("counters", "true");
488
+ if (options?.sizes)
489
+ params.set("sizes", "true");
490
+ const queryString = params.toString();
491
+ const endpoint = `${apiUrl}/users/${userId}/mailboxes${queryString ? `?${queryString}` : ""}`;
492
+ try {
493
+ const response = await axios.get(endpoint, { headers });
494
+ return response.data;
495
+ }
496
+ catch (err) {
497
+ if (devMode) {
498
+ console.warn("[DevMode] Get user mailboxes failed, returning mock data:", err);
499
+ const mockData = WildduckMockData.getUserMailboxesQuery();
500
+ return {
501
+ success: true,
502
+ results: mockData.mailboxes,
503
+ };
504
+ }
505
+ throw err;
506
+ }
507
+ }, [
508
+ config.cloudflareWorkerUrl,
509
+ config.backendUrl,
510
+ config.apiToken,
511
+ userId,
512
+ options,
513
+ devMode,
514
+ ]);
515
+ const query = useQuery({
516
+ queryKey: queryKeys.wildduck.userMailboxes(userId, options),
517
+ queryFn,
518
+ staleTime: STALE_TIMES.MAILBOXES,
519
+ enabled: !!userId,
520
+ ...queryOptions,
521
+ });
522
+ return useMemo(() => ({
523
+ ...query,
524
+ }), [query]);
525
+ };
526
+ const useWildduckAuthStatus = (config, token, devMode = false, queryOptions) => {
527
+ const queryFn = useCallback(async () => {
528
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
529
+ const headers = {
530
+ "Content-Type": "application/json",
531
+ Accept: "application/json",
532
+ };
533
+ if (config.cloudflareWorkerUrl) {
534
+ headers["Authorization"] = `Bearer ${token || config.apiToken}`;
535
+ headers["X-App-Source"] = "0xmail-box";
536
+ }
537
+ else {
538
+ headers["X-Access-Token"] = token || config.apiToken;
539
+ }
540
+ try {
541
+ const httpResponse = await axios.get(`${apiUrl}/users/me`, { headers });
542
+ const data = httpResponse.data;
543
+ const response = {
544
+ success: data.success,
545
+ authenticated: data.success,
546
+ };
547
+ if (data.success && (data.id || data.username)) {
548
+ const user = {
549
+ id: data.id || "",
550
+ username: data.username || "",
551
+ };
552
+ if (data.address) {
553
+ user.address = data.address;
554
+ }
555
+ response.user = user;
556
+ }
557
+ return response;
558
+ }
559
+ catch (err) {
560
+ if (devMode) {
561
+ console.warn("[DevMode] Auth status check failed, returning mock data:", err);
562
+ return WildduckMockData.getAuthStatusQuery();
563
+ }
564
+ throw err;
565
+ }
566
+ }, [
567
+ config.cloudflareWorkerUrl,
568
+ config.backendUrl,
569
+ token,
570
+ config.apiToken,
571
+ devMode,
572
+ ]);
573
+ const query = useQuery({
574
+ queryKey: queryKeys.wildduck.authStatus(token),
575
+ queryFn,
576
+ staleTime: STALE_TIMES.USER_PROFILE,
577
+ enabled: !!token || !!config.apiToken,
578
+ ...queryOptions,
579
+ });
580
+ return useMemo(() => ({
581
+ ...query,
582
+ }), [query]);
583
+ };
584
+ const useWildduckSearchMessages = (config, userId, mailboxId, query, devMode = false, searchOptions, queryOptions) => {
585
+ const queryFn = useCallback(async () => {
586
+ const apiUrl = config.cloudflareWorkerUrl || config.backendUrl;
587
+ const headers = {
588
+ "Content-Type": "application/json",
589
+ Accept: "application/json",
590
+ };
591
+ if (config.cloudflareWorkerUrl) {
592
+ headers["Authorization"] = `Bearer ${config.apiToken}`;
593
+ headers["X-App-Source"] = "0xmail-box";
594
+ }
595
+ else {
596
+ headers["X-Access-Token"] = config.apiToken;
597
+ }
598
+ const params = new URLSearchParams();
599
+ params.set("q", query);
600
+ if (searchOptions) {
601
+ Object.entries(searchOptions).forEach(([key, value]) => {
602
+ if (value !== undefined) {
603
+ params.set(key, String(value));
604
+ }
605
+ });
606
+ }
607
+ try {
608
+ const response = await axios.get(`${apiUrl}/users/${userId}/mailboxes/${mailboxId}/messages?${params}`, { headers });
609
+ return response.data;
610
+ }
611
+ catch (err) {
612
+ if (devMode) {
613
+ console.warn("[DevMode] Search messages failed, returning mock data:", err);
614
+ return WildduckMockData.getSearchMessagesQuery();
615
+ }
616
+ throw err;
617
+ }
618
+ }, [
619
+ config.cloudflareWorkerUrl,
620
+ config.backendUrl,
621
+ config.apiToken,
622
+ userId,
623
+ mailboxId,
624
+ query,
625
+ searchOptions,
626
+ devMode,
627
+ ]);
628
+ const queryResult = useQuery({
629
+ queryKey: queryKeys.wildduck.searchMessages(userId, mailboxId, query, searchOptions),
630
+ queryFn,
631
+ staleTime: STALE_TIMES.MESSAGES,
632
+ enabled: !!(userId && mailboxId && query),
633
+ ...queryOptions,
634
+ });
635
+ return useMemo(() => ({
636
+ ...queryResult,
637
+ }), [queryResult]);
638
+ };
639
+ export { useWildduckHealth, useWildduckUsersList, useWildduckUser, useWildduckUserAddresses, useWildduckUserMessages, useWildduckMessage, useWildduckUserFilters, useWildduckUserSettings, useWildduckUserMailboxes, useWildduckAuthStatus, useWildduckSearchMessages, };
640
+ //# sourceMappingURL=useWildduckQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckQueries.js","sourceRoot":"","sources":["../../src/hooks/useWildduckQueries.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAS7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA6C3C,MAAM,iBAAiB,GAAG,CACxB,MAAsB,EACtB,UAAmB,KAAK,EACxB,OAAiD,EACT,EAAE;IAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAqC,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,QAAQ,CAAC,IAA8B,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,qDAAqD,EACrD,GAAG,CACJ,CAAC;gBACF,OAAO,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAC3C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9E,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrC,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,aAAa;QACpC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,oBAAoB,GAAG,CAC3B,MAAsB,EACtB,UAAmB,KAAK,EACxB,OAAiC,EACjC,OAAgD,EACT,EAAE;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAoC,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,MAAM,EAAE,EAAE;gBAC5D,OAAO;aACR,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAA6B,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,CACJ,CAAC;gBACF,OAAO,gBAAgB,CAAC,iBAAiB,EAAsC,CAAC;YAClF,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;QAC/C,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,YAAY;QACnC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,eAAe,GAAG,CACtB,MAAsB,EACtB,MAAc,EACd,UAAmB,KAAK,EACxB,OAAuC,EACT,EAAE;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAA2B,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,MAAM,EAAE,EAAE;gBAC5D,OAAO;aACR,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAKzB,CAAC;YACF,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ;gBAC3C,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtD,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,CAAC;iBACR;gBACD,cAAc,EAAE,KAAK;gBACrB,SAAS,EAAE,QAAQ,CAAC,OAAO,IAAI,KAAK;gBACpC,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;gBACrE,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAiB,CAAC;YAC/D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,YAAY;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,wBAAwB,GAAG,CAC/B,MAAsB,EACtB,MAAc,EACd,UAAmB,KAAK,EACxB,OAA4C,EACT,EAAE;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAgC,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,MAAM,YAAY,EAAE;gBACtE,OAAO;aACR,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,QAAQ,CAAC,IAG5B,CAAC;YACF,OAAO,CACL,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC,IAAI,EAAE,CACV,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,2DAA2D,EAC3D,GAAG,CACJ,CAAC;gBACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;gBAC1D,OAAO,QAAQ,CAAC,SAA8B,CAAC;YACjD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAClD,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,eAAe;QACtC,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,uBAAuB,GAAG,CAC9B,MAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,UAAmB,KAAK,EACxB,OAAiC,EACjC,OAAmD,EACT,EAAE;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAuC,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,MAAM,UAAU,MAAM,cAAc,SAAS,WAAW,EAC3D,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAK7B,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,OAAe;gBACrC,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC1C,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;oBACxB,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;wBACd,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;qBAC/D,CAAC;oBACF,EAAE,EACA,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;wBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;qBAC5B,CAAC,CAAC,IAAI,EAAE;oBACX,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;wBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;qBAC5B,CAAC,CAAC;oBACH,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;wBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;qBAC5B,CAAC,CAAC;oBACH,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;oBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;oBACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK;oBACvB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;oBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK;oBAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK;oBACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK;oBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;oBACnB,EAAE,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;oBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;iBACtC,CAAC,CAAsB;aACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;gBACF,OAAO,gBAAgB,CAAC,oBAAoB,EAAyC,CAAC;YACxF,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QACrE,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,QAAQ;QAC/B,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QAChC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,kBAAkB,GAAG,CACzB,MAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,UAAmB,KAAK,EACxB,OAA0C,EACT,EAAE;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAA8B,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,MAAM,UAAU,MAAM,aAAa,SAAS,EAAE,EACjD,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAW,CAAC;YACzC,OAAO;gBACL,EAAE,EAAE,WAAW,CAAC,EAAE;gBAClB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE;gBAChC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;oBACtB,IAAI,EAAE;wBACJ,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;wBAC3B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE;qBACxC;iBACF,CAAC;gBACF,EAAE,EACA,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;iBAC5B,CAAC,CAAC,IAAI,EAAE;gBACX,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;iBAC5B,CAAC,CAAC;gBACH,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;iBAC5B,CAAC,CAAC;gBACH,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;gBAClC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;gBAC5B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC9B,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,KAAK;gBAC/B,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,KAAK;gBACrC,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,KAAK;gBACrC,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,KAAK;gBACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK;gBACvC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC;gBAC3B,EAAE,EAAE,WAAW,CAAC,WAAW,IAAI,KAAK;gBACpC,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,KAAK;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;gBACxE,OAAO,gBAAgB,CAAC,eAAe,CACrC,SAAS,EACT,MAAM,CACuB,CAAC;YAClC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;QACvD,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,eAAe;QACtC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QAChC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,sBAAsB,GAAG,CAC7B,MAAsB,EACtB,MAAc,EACd,UAAmB,KAAK,EACxB,OAA2C,EACT,EAAE;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAA+B,EAAE;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,MAAM,UAAU,EAAE;gBACpE,OAAO;aACR,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA2B,CAAC;YAClD,OAAO,CACL,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;gBAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpD,CAAC,CAAC,IAAI,EAAE,CACV,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;gBACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;gBACxD,OAAO,QAAQ,CAAC,OAA2B,CAAC;YAC9C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;QAChD,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,YAAY;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,uBAAuB,GAAG,CAC9B,MAAsB,EACtB,MAAc,EACd,UAAmB,KAAK,EACxB,OAA+C,EACT,EAAE;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAmC,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,MAAM,WAAW,EAAE;gBACrE,OAAO;aACR,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAA+B,CAAC;YACtD,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;gBACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC,QAAgC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;QACjD,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,YAAY;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,wBAAwB,GAAG,CAC/B,MAAsB,EACtB,MAAc,EACd,UAAmB,KAAK,EACxB,OAKC,EACD,YAAuD,EACd,EAAE;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAsC,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,UAAU;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,UAAU;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,EAAE,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,GAAG,MAAM,UAAU,MAAM,aAAa,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE9F,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC,IAA+B,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,2DAA2D,EAC3D,GAAG,CACJ,CAAC;gBACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;gBAC1D,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,QAAQ,CAAC,SAAS;iBACU,CAAC;YAC1C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;QAC3D,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,qBAAqB,GAAG,CAC5B,MAAsB,EACtB,KAAc,EACd,UAAmB,KAAK,EACxB,YAA0D,EACd,EAAE;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAyC,EAAE;QAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC;QACvD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,YAAY,CAAC,IAKzB,CAAC;YAEF,MAAM,QAAQ,GAA+B;gBAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,OAAO;aAC5B,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAuD;oBAC/D,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;iBAC9B,CAAC;gBACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC9B,CAAC;gBACD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;gBACF,OAAO,gBAAgB,CAAC,kBAAkB,EAAgC,CAAC;YAC7E,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,KAAK;QACL,MAAM,CAAC,QAAQ;QACf,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAC9C,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,YAAY;QACnC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ;QACrC,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,KAAK;KACT,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,yBAAyB,GAAG,CAChC,MAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,KAAa,EACb,UAAmB,KAAK,EACxB,aAAuC,EACvC,YAAwD,EACd,EAAE;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAuC,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC;QAC/D,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,GAAG,MAAM,UAAU,MAAM,cAAc,SAAS,aAAa,MAAM,EAAE,EACrE,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,OAAO,QAAQ,CAAC,IAAgC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,wDAAwD,EACxD,GAAG,CACJ,CAAC;gBACF,OAAO,gBAAgB,CAAC,sBAAsB,EAAyC,CAAC;YAC1F,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,EAAE;QACD,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,QAAQ;QACf,MAAM;QACN,SAAS;QACT,KAAK;QACL,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,cAAc,CACzC,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,CACd;QACD,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,QAAQ;QAC/B,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC;QACzC,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,WAAW;KACf,CAAC,EACF,CAAC,WAAW,CAAC,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAK1B,CAAC"}