Author: Kevin Schoon [me@kevinschoon.com]
Hash: 223a99f8854c298db38f0e8fbddfed5771b18f6e
Timestamp: Tue, 13 Aug 2024 20:35:49 +0000 (1 month ago)

+1014 -19 +/-4 browse
add mailpot back as a dependency, add maitred
1diff --git a/Cargo.lock b/Cargo.lock
2index fdeda10..02db944 100644
3--- a/Cargo.lock
4+++ b/Cargo.lock
5 @@ -3,6 +3,15 @@
6 version = 3
7
8 [[package]]
9+ name = "abnf-core"
10+ version = "0.6.0"
11+ source = "registry+https://github.com/rust-lang/crates.io-index"
12+ checksum = "ec182d1f071b906a9f59269c89af101515a5cbe58f723eb6717e7fe7445c0dea"
13+ dependencies = [
14+ "nom",
15+ ]
16+
17+ [[package]]
18 name = "addr2line"
19 version = "0.22.0"
20 source = "registry+https://github.com/rust-lang/crates.io-index"
21 @@ -37,6 +46,7 @@ dependencies = [
22 "cfg-if",
23 "getrandom",
24 "once_cell",
25+ "serde",
26 "version_check",
27 "zerocopy",
28 ]
29 @@ -151,6 +161,197 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
31
32 [[package]]
33+ name = "async-channel"
34+ version = "1.9.0"
35+ source = "registry+https://github.com/rust-lang/crates.io-index"
36+ checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
37+ dependencies = [
38+ "concurrent-queue",
39+ "event-listener 2.5.3",
40+ "futures-core",
41+ ]
42+
43+ [[package]]
44+ name = "async-channel"
45+ version = "2.3.1"
46+ source = "registry+https://github.com/rust-lang/crates.io-index"
47+ checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
48+ dependencies = [
49+ "concurrent-queue",
50+ "event-listener-strategy",
51+ "futures-core",
52+ "pin-project-lite",
53+ ]
54+
55+ [[package]]
56+ name = "async-executor"
57+ version = "1.13.0"
58+ source = "registry+https://github.com/rust-lang/crates.io-index"
59+ checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
60+ dependencies = [
61+ "async-task",
62+ "concurrent-queue",
63+ "fastrand 2.1.0",
64+ "futures-lite 2.3.0",
65+ "slab",
66+ ]
67+
68+ [[package]]
69+ name = "async-fn-stream"
70+ version = "0.2.2"
71+ source = "registry+https://github.com/rust-lang/crates.io-index"
72+ checksum = "e71711442f1016c768c259bec59300a10efe753bc3e686ec19e2c6a54a97c29b"
73+ dependencies = [
74+ "futures-util",
75+ "pin-project-lite",
76+ ]
77+
78+ [[package]]
79+ name = "async-fs"
80+ version = "1.6.0"
81+ source = "registry+https://github.com/rust-lang/crates.io-index"
82+ checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
83+ dependencies = [
84+ "async-lock 2.8.0",
85+ "autocfg",
86+ "blocking",
87+ "futures-lite 1.13.0",
88+ ]
89+
90+ [[package]]
91+ name = "async-io"
92+ version = "1.13.0"
93+ source = "registry+https://github.com/rust-lang/crates.io-index"
94+ checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
95+ dependencies = [
96+ "async-lock 2.8.0",
97+ "autocfg",
98+ "cfg-if",
99+ "concurrent-queue",
100+ "futures-lite 1.13.0",
101+ "log",
102+ "parking",
103+ "polling 2.8.0",
104+ "rustix 0.37.27",
105+ "slab",
106+ "socket2 0.4.10",
107+ "waker-fn",
108+ ]
109+
110+ [[package]]
111+ name = "async-io"
112+ version = "2.3.4"
113+ source = "registry+https://github.com/rust-lang/crates.io-index"
114+ checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
115+ dependencies = [
116+ "async-lock 3.4.0",
117+ "cfg-if",
118+ "concurrent-queue",
119+ "futures-io",
120+ "futures-lite 2.3.0",
121+ "parking",
122+ "polling 3.7.3",
123+ "rustix 0.38.34",
124+ "slab",
125+ "tracing",
126+ "windows-sys 0.59.0",
127+ ]
128+
129+ [[package]]
130+ name = "async-lock"
131+ version = "2.8.0"
132+ source = "registry+https://github.com/rust-lang/crates.io-index"
133+ checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
134+ dependencies = [
135+ "event-listener 2.5.3",
136+ ]
137+
138+ [[package]]
139+ name = "async-lock"
140+ version = "3.4.0"
141+ source = "registry+https://github.com/rust-lang/crates.io-index"
142+ checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
143+ dependencies = [
144+ "event-listener 5.3.1",
145+ "event-listener-strategy",
146+ "pin-project-lite",
147+ ]
148+
149+ [[package]]
150+ name = "async-net"
151+ version = "1.8.0"
152+ source = "registry+https://github.com/rust-lang/crates.io-index"
153+ checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f"
154+ dependencies = [
155+ "async-io 1.13.0",
156+ "blocking",
157+ "futures-lite 1.13.0",
158+ ]
159+
160+ [[package]]
161+ name = "async-process"
162+ version = "1.8.1"
163+ source = "registry+https://github.com/rust-lang/crates.io-index"
164+ checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
165+ dependencies = [
166+ "async-io 1.13.0",
167+ "async-lock 2.8.0",
168+ "async-signal",
169+ "blocking",
170+ "cfg-if",
171+ "event-listener 3.1.0",
172+ "futures-lite 1.13.0",
173+ "rustix 0.38.34",
174+ "windows-sys 0.48.0",
175+ ]
176+
177+ [[package]]
178+ name = "async-signal"
179+ version = "0.2.10"
180+ source = "registry+https://github.com/rust-lang/crates.io-index"
181+ checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
182+ dependencies = [
183+ "async-io 2.3.4",
184+ "async-lock 3.4.0",
185+ "atomic-waker",
186+ "cfg-if",
187+ "futures-core",
188+ "futures-io",
189+ "rustix 0.38.34",
190+ "signal-hook-registry",
191+ "slab",
192+ "windows-sys 0.59.0",
193+ ]
194+
195+ [[package]]
196+ name = "async-stream"
197+ version = "0.3.5"
198+ source = "registry+https://github.com/rust-lang/crates.io-index"
199+ checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
200+ dependencies = [
201+ "async-stream-impl",
202+ "futures-core",
203+ "pin-project-lite",
204+ ]
205+
206+ [[package]]
207+ name = "async-stream-impl"
208+ version = "0.3.5"
209+ source = "registry+https://github.com/rust-lang/crates.io-index"
210+ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
211+ dependencies = [
212+ "proc-macro2",
213+ "quote",
214+ "syn 2.0.74",
215+ ]
216+
217+ [[package]]
218+ name = "async-task"
219+ version = "4.7.1"
220+ source = "registry+https://github.com/rust-lang/crates.io-index"
221+ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
222+
223+ [[package]]
224 name = "async-trait"
225 version = "0.1.81"
226 source = "registry+https://github.com/rust-lang/crates.io-index"
227 @@ -358,6 +559,27 @@ dependencies = [
228 ]
229
230 [[package]]
231+ name = "ayllu-mail"
232+ version = "0.2.1"
233+ dependencies = [
234+ "anyhow",
235+ "axum",
236+ "ayllu_api",
237+ "ayllu_config",
238+ "ayllu_rpc",
239+ "clap 4.5.15",
240+ "clap_complete",
241+ "futures",
242+ "mailpot",
243+ "maitred",
244+ "melib 0.8.7 (git+https://ayllu-forge.org/meli/meli?branch=master)",
245+ "serde",
246+ "tokio",
247+ "tracing",
248+ "tracing-subscriber",
249+ ]
250+
251+ [[package]]
252 name = "ayllu_api"
253 version = "0.2.1"
254 dependencies = [
255 @@ -438,6 +660,12 @@ dependencies = [
256
257 [[package]]
258 name = "base64"
259+ version = "0.13.1"
260+ source = "registry+https://github.com/rust-lang/crates.io-index"
261+ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
262+
263+ [[package]]
264+ name = "base64"
265 version = "0.21.7"
266 source = "registry+https://github.com/rust-lang/crates.io-index"
267 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
268 @@ -524,6 +752,36 @@ dependencies = [
269 ]
270
271 [[package]]
272+ name = "blocking"
273+ version = "1.6.1"
274+ source = "registry+https://github.com/rust-lang/crates.io-index"
275+ checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
276+ dependencies = [
277+ "async-channel 2.3.1",
278+ "async-task",
279+ "futures-io",
280+ "futures-lite 2.3.0",
281+ "piper",
282+ ]
283+
284+ [[package]]
285+ name = "bounded-static"
286+ version = "0.8.0"
287+ source = "registry+https://github.com/rust-lang/crates.io-index"
288+ checksum = "0beb903daa49b43bcafb5d5eebe633f9ad638d8b16cd08f95fb05ee7bd099321"
289+
290+ [[package]]
291+ name = "bounded-static-derive"
292+ version = "0.8.0"
293+ source = "registry+https://github.com/rust-lang/crates.io-index"
294+ checksum = "e0af050e27e5d57aa14975f97fe47a134c46a390f91819f23a625319a7111bfa"
295+ dependencies = [
296+ "proc-macro2",
297+ "quote",
298+ "syn 2.0.74",
299+ ]
300+
301+ [[package]]
302 name = "bstr"
303 version = "1.10.0"
304 source = "registry+https://github.com/rust-lang/crates.io-index"
305 @@ -562,6 +820,12 @@ dependencies = [
306 ]
307
308 [[package]]
309+ name = "bytecount"
310+ version = "0.6.8"
311+ source = "registry+https://github.com/rust-lang/crates.io-index"
312+ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
313+
314+ [[package]]
315 name = "bytemuck"
316 version = "1.16.3"
317 source = "registry+https://github.com/rust-lang/crates.io-index"
318 @@ -605,6 +869,7 @@ dependencies = [
319 "iana-time-zone",
320 "js-sys",
321 "num-traits",
322+ "serde",
323 "wasm-bindgen",
324 "windows-targets 0.52.6",
325 ]
326 @@ -728,6 +993,15 @@ dependencies = [
327 ]
328
329 [[package]]
330+ name = "concurrent-queue"
331+ version = "2.5.0"
332+ source = "registry+https://github.com/rust-lang/crates.io-index"
333+ checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
334+ dependencies = [
335+ "crossbeam-utils",
336+ ]
337+
338+ [[package]]
339 name = "const-oid"
340 version = "0.9.6"
341 source = "registry+https://github.com/rust-lang/crates.io-index"
342 @@ -1210,6 +1484,79 @@ dependencies = [
343 ]
344
345 [[package]]
346+ name = "email_address"
347+ version = "0.2.9"
348+ source = "registry+https://github.com/rust-lang/crates.io-index"
349+ checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449"
350+ dependencies = [
351+ "serde",
352+ ]
353+
354+ [[package]]
355+ name = "encoding"
356+ version = "0.2.33"
357+ source = "registry+https://github.com/rust-lang/crates.io-index"
358+ checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
359+ dependencies = [
360+ "encoding-index-japanese",
361+ "encoding-index-korean",
362+ "encoding-index-simpchinese",
363+ "encoding-index-singlebyte",
364+ "encoding-index-tradchinese",
365+ ]
366+
367+ [[package]]
368+ name = "encoding-index-japanese"
369+ version = "1.20141219.5"
370+ source = "registry+https://github.com/rust-lang/crates.io-index"
371+ checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
372+ dependencies = [
373+ "encoding_index_tests",
374+ ]
375+
376+ [[package]]
377+ name = "encoding-index-korean"
378+ version = "1.20141219.5"
379+ source = "registry+https://github.com/rust-lang/crates.io-index"
380+ checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
381+ dependencies = [
382+ "encoding_index_tests",
383+ ]
384+
385+ [[package]]
386+ name = "encoding-index-simpchinese"
387+ version = "1.20141219.5"
388+ source = "registry+https://github.com/rust-lang/crates.io-index"
389+ checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
390+ dependencies = [
391+ "encoding_index_tests",
392+ ]
393+
394+ [[package]]
395+ name = "encoding-index-singlebyte"
396+ version = "1.20141219.5"
397+ source = "registry+https://github.com/rust-lang/crates.io-index"
398+ checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
399+ dependencies = [
400+ "encoding_index_tests",
401+ ]
402+
403+ [[package]]
404+ name = "encoding-index-tradchinese"
405+ version = "1.20141219.5"
406+ source = "registry+https://github.com/rust-lang/crates.io-index"
407+ checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
408+ dependencies = [
409+ "encoding_index_tests",
410+ ]
411+
412+ [[package]]
413+ name = "encoding_index_tests"
414+ version = "0.1.4"
415+ source = "registry+https://github.com/rust-lang/crates.io-index"
416+ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
417+
418+ [[package]]
419 name = "encoding_rs"
420 version = "0.8.34"
421 source = "registry+https://github.com/rust-lang/crates.io-index"
422 @@ -1306,6 +1653,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
423 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
424
425 [[package]]
426+ name = "event-listener"
427+ version = "3.1.0"
428+ source = "registry+https://github.com/rust-lang/crates.io-index"
429+ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
430+ dependencies = [
431+ "concurrent-queue",
432+ "parking",
433+ "pin-project-lite",
434+ ]
435+
436+ [[package]]
437+ name = "event-listener"
438+ version = "5.3.1"
439+ source = "registry+https://github.com/rust-lang/crates.io-index"
440+ checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
441+ dependencies = [
442+ "concurrent-queue",
443+ "parking",
444+ "pin-project-lite",
445+ ]
446+
447+ [[package]]
448+ name = "event-listener-strategy"
449+ version = "0.5.2"
450+ source = "registry+https://github.com/rust-lang/crates.io-index"
451+ checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
452+ dependencies = [
453+ "event-listener 5.3.1",
454+ "pin-project-lite",
455+ ]
456+
457+ [[package]]
458+ name = "fallible-iterator"
459+ version = "0.3.0"
460+ source = "registry+https://github.com/rust-lang/crates.io-index"
461+ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
462+
463+ [[package]]
464+ name = "fallible-streaming-iterator"
465+ version = "0.1.9"
466+ source = "registry+https://github.com/rust-lang/crates.io-index"
467+ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
468+
469+ [[package]]
470 name = "fancy-regex"
471 version = "0.11.0"
472 source = "registry+https://github.com/rust-lang/crates.io-index"
473 @@ -1317,6 +1708,15 @@ dependencies = [
474
475 [[package]]
476 name = "fastrand"
477+ version = "1.9.0"
478+ source = "registry+https://github.com/rust-lang/crates.io-index"
479+ checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
480+ dependencies = [
481+ "instant",
482+ ]
483+
484+ [[package]]
485+ name = "fastrand"
486 version = "2.1.0"
487 source = "registry+https://github.com/rust-lang/crates.io-index"
488 checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
489 @@ -1340,6 +1740,18 @@ dependencies = [
490 ]
491
492 [[package]]
493+ name = "filetime"
494+ version = "0.2.24"
495+ source = "registry+https://github.com/rust-lang/crates.io-index"
496+ checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550"
497+ dependencies = [
498+ "cfg-if",
499+ "libc",
500+ "libredox",
501+ "windows-sys 0.59.0",
502+ ]
503+
504+ [[package]]
505 name = "flate2"
506 version = "1.0.31"
507 source = "registry+https://github.com/rust-lang/crates.io-index"
508 @@ -1449,6 +1861,16 @@ dependencies = [
509 ]
510
511 [[package]]
512+ name = "fraction"
513+ version = "0.13.1"
514+ source = "registry+https://github.com/rust-lang/crates.io-index"
515+ checksum = "3027ae1df8d41b4bed2241c8fdad4acc1e7af60c8e17743534b545e77182d678"
516+ dependencies = [
517+ "lazy_static",
518+ "num",
519+ ]
520+
521+ [[package]]
522 name = "freetype-sys"
523 version = "0.20.1"
524 source = "registry+https://github.com/rust-lang/crates.io-index"
525 @@ -1460,6 +1882,15 @@ dependencies = [
526 ]
527
528 [[package]]
529+ name = "fsevent-sys"
530+ version = "4.1.0"
531+ source = "registry+https://github.com/rust-lang/crates.io-index"
532+ checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
533+ dependencies = [
534+ "libc",
535+ ]
536+
537+ [[package]]
538 name = "funty"
539 version = "2.0.0"
540 source = "registry+https://github.com/rust-lang/crates.io-index"
541 @@ -1525,6 +1956,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
542 checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
543
544 [[package]]
545+ name = "futures-lite"
546+ version = "1.13.0"
547+ source = "registry+https://github.com/rust-lang/crates.io-index"
548+ checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
549+ dependencies = [
550+ "fastrand 1.9.0",
551+ "futures-core",
552+ "futures-io",
553+ "memchr",
554+ "parking",
555+ "pin-project-lite",
556+ "waker-fn",
557+ ]
558+
559+ [[package]]
560+ name = "futures-lite"
561+ version = "2.3.0"
562+ source = "registry+https://github.com/rust-lang/crates.io-index"
563+ checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
564+ dependencies = [
565+ "fastrand 2.1.0",
566+ "futures-core",
567+ "futures-io",
568+ "parking",
569+ "pin-project-lite",
570+ ]
571+
572+ [[package]]
573 name = "futures-macro"
574 version = "0.3.30"
575 source = "registry+https://github.com/rust-lang/crates.io-index"
576 @@ -1591,8 +2050,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
577 checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
578 dependencies = [
579 "cfg-if",
580+ "js-sys",
581 "libc",
582 "wasi",
583+ "wasm-bindgen",
584 ]
585
586 [[package]]
587 @@ -1812,6 +2273,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
588 checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
589
590 [[package]]
591+ name = "hermit-abi"
592+ version = "0.4.0"
593+ source = "registry+https://github.com/rust-lang/crates.io-index"
594+ checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
595+
596+ [[package]]
597 name = "hex"
598 version = "0.4.3"
599 source = "registry+https://github.com/rust-lang/crates.io-index"
600 @@ -1944,7 +2411,7 @@ dependencies = [
601 "httpdate",
602 "itoa",
603 "pin-project-lite",
604- "socket2",
605+ "socket2 0.5.7",
606 "tokio",
607 "tower-service",
608 "tracing",
609 @@ -2031,7 +2498,7 @@ dependencies = [
610 "http-body 1.0.1",
611 "hyper 1.4.1",
612 "pin-project-lite",
613- "socket2",
614+ "socket2 0.5.7",
615 "tokio",
616 "tower",
617 "tower-service",
618 @@ -2108,6 +2575,33 @@ dependencies = [
619 ]
620
621 [[package]]
622+ name = "imap-codec"
623+ version = "2.0.0-alpha.2"
624+ source = "registry+https://github.com/rust-lang/crates.io-index"
625+ checksum = "8f5b3f6b7f1c1dcba79867482c6fd94c0539b0115752397a7e7d0aff20f7e04d"
626+ dependencies = [
627+ "abnf-core",
628+ "base64 0.22.1",
629+ "chrono",
630+ "imap-types",
631+ "log",
632+ "nom",
633+ ]
634+
635+ [[package]]
636+ name = "imap-types"
637+ version = "2.0.0-alpha.2"
638+ source = "registry+https://github.com/rust-lang/crates.io-index"
639+ checksum = "7dafc29c11ece4433e74bf11b750cbd3135b0cf342975e29503503a1489cb00b"
640+ dependencies = [
641+ "base64 0.22.1",
642+ "bounded-static",
643+ "bounded-static-derive",
644+ "chrono",
645+ "thiserror",
646+ ]
647+
648+ [[package]]
649 name = "include_dir"
650 version = "0.7.4"
651 source = "registry+https://github.com/rust-lang/crates.io-index"
652 @@ -2135,6 +2629,7 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
653 dependencies = [
654 "autocfg",
655 "hashbrown 0.12.3",
656+ "serde",
657 ]
658
659 [[package]]
660 @@ -2145,6 +2640,27 @@ checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0"
661 dependencies = [
662 "equivalent",
663 "hashbrown 0.14.5",
664+ "serde",
665+ ]
666+
667+ [[package]]
668+ name = "inotify"
669+ version = "0.9.6"
670+ source = "registry+https://github.com/rust-lang/crates.io-index"
671+ checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
672+ dependencies = [
673+ "bitflags 1.3.2",
674+ "inotify-sys",
675+ "libc",
676+ ]
677+
678+ [[package]]
679+ name = "inotify-sys"
680+ version = "0.1.5"
681+ source = "registry+https://github.com/rust-lang/crates.io-index"
682+ checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
683+ dependencies = [
684+ "libc",
685 ]
686
687 [[package]]
688 @@ -2157,6 +2673,17 @@ dependencies = [
689 ]
690
691 [[package]]
692+ name = "io-lifetimes"
693+ version = "1.0.11"
694+ source = "registry+https://github.com/rust-lang/crates.io-index"
695+ checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
696+ dependencies = [
697+ "hermit-abi 0.3.9",
698+ "libc",
699+ "windows-sys 0.48.0",
700+ ]
701+
702+ [[package]]
703 name = "ipnet"
704 version = "2.9.0"
705 source = "registry+https://github.com/rust-lang/crates.io-index"
706 @@ -2180,6 +2707,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
707 checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
708
709 [[package]]
710+ name = "iso8601"
711+ version = "0.6.1"
712+ source = "registry+https://github.com/rust-lang/crates.io-index"
713+ checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153"
714+ dependencies = [
715+ "nom",
716+ ]
717+
718+ [[package]]
719 name = "itertools"
720 version = "0.10.5"
721 source = "registry+https://github.com/rust-lang/crates.io-index"
722 @@ -2219,6 +2755,54 @@ dependencies = [
723 ]
724
725 [[package]]
726+ name = "jsonschema"
727+ version = "0.17.1"
728+ source = "registry+https://github.com/rust-lang/crates.io-index"
729+ checksum = "2a071f4f7efc9a9118dfb627a0a94ef247986e1ab8606a4c806ae2b3aa3b6978"
730+ dependencies = [
731+ "ahash 0.8.11",
732+ "anyhow",
733+ "base64 0.21.7",
734+ "bytecount",
735+ "fancy-regex",
736+ "fraction",
737+ "getrandom",
738+ "iso8601",
739+ "itoa",
740+ "memchr",
741+ "num-cmp",
742+ "once_cell",
743+ "parking_lot 0.12.3",
744+ "percent-encoding",
745+ "regex",
746+ "serde",
747+ "serde_json",
748+ "time",
749+ "url",
750+ "uuid",
751+ ]
752+
753+ [[package]]
754+ name = "kqueue"
755+ version = "1.0.8"
756+ source = "registry+https://github.com/rust-lang/crates.io-index"
757+ checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
758+ dependencies = [
759+ "kqueue-sys",
760+ "libc",
761+ ]
762+
763+ [[package]]
764+ name = "kqueue-sys"
765+ version = "1.0.4"
766+ source = "registry+https://github.com/rust-lang/crates.io-index"
767+ checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
768+ dependencies = [
769+ "bitflags 1.3.2",
770+ "libc",
771+ ]
772+
773+ [[package]]
774 name = "lazy_static"
775 version = "1.5.0"
776 source = "registry+https://github.com/rust-lang/crates.io-index"
777 @@ -2271,6 +2855,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
778 dependencies = [
779 "bitflags 2.6.0",
780 "libc",
781+ "redox_syscall 0.5.3",
782 ]
783
784 [[package]]
785 @@ -2356,6 +2941,12 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
786
787 [[package]]
788 name = "linux-raw-sys"
789+ version = "0.3.8"
790+ source = "registry+https://github.com/rust-lang/crates.io-index"
791+ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
792+
793+ [[package]]
794+ name = "linux-raw-sys"
795 version = "0.4.14"
796 source = "registry+https://github.com/rust-lang/crates.io-index"
797 checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
798 @@ -2371,12 +2962,62 @@ dependencies = [
799 ]
800
801 [[package]]
802- name = "log"
803- version = "0.4.22"
804- source = "registry+https://github.com/rust-lang/crates.io-index"
805- checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
806-
807- [[package]]
808+ name = "log"
809+ version = "0.4.22"
810+ source = "registry+https://github.com/rust-lang/crates.io-index"
811+ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
812+
813+ [[package]]
814+ name = "mail-parser"
815+ version = "0.9.3"
816+ source = "registry+https://github.com/rust-lang/crates.io-index"
817+ checksum = "ed5a1335c3a964788c90cb42ae04a34b5f2628e89566949ce3bd4ada695c0bcd"
818+ dependencies = [
819+ "encoding_rs",
820+ "serde",
821+ ]
822+
823+ [[package]]
824+ name = "mailpot"
825+ version = "0.1.1"
826+ source = "git+https://ayllu-forge.org/ayllu/mailpot?branch=main#3366e3b12e287edfa78a4fe62dba06db0005ca73"
827+ dependencies = [
828+ "anyhow",
829+ "chrono",
830+ "data-encoding",
831+ "jsonschema",
832+ "log",
833+ "melib 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
834+ "minijinja",
835+ "percent-encoding",
836+ "rusqlite",
837+ "serde",
838+ "serde_json",
839+ "thiserror",
840+ "toml 0.8.19",
841+ "xdg",
842+ ]
843+
844+ [[package]]
845+ name = "maitred"
846+ version = "0.1.0"
847+ source = "git+https://ayllu-forge.org/ayllu/maitred?branch=main#796a8504a17da413b99372d926a68b0b5c1346f2"
848+ dependencies = [
849+ "bytes",
850+ "email_address",
851+ "futures",
852+ "mail-parser",
853+ "md5",
854+ "smtp-proto",
855+ "thiserror",
856+ "tokio",
857+ "tokio-stream",
858+ "tokio-util",
859+ "tracing",
860+ "url",
861+ ]
862+
863+ [[package]]
864 name = "matchers"
865 version = "0.1.0"
866 source = "registry+https://github.com/rust-lang/crates.io-index"
867 @@ -2408,6 +3049,84 @@ dependencies = [
868 ]
869
870 [[package]]
871+ name = "md5"
872+ version = "0.7.0"
873+ source = "registry+https://github.com/rust-lang/crates.io-index"
874+ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
875+
876+ [[package]]
877+ name = "melib"
878+ version = "0.8.7"
879+ source = "registry+https://github.com/rust-lang/crates.io-index"
880+ checksum = "7162bc6ee87dbd5c2b5b1b1cad725cbaef87722cd69b1c98a404226b72060027"
881+ dependencies = [
882+ "async-stream",
883+ "base64 0.13.1",
884+ "bitflags 2.6.0",
885+ "data-encoding",
886+ "encoding",
887+ "encoding_rs",
888+ "flate2",
889+ "futures",
890+ "indexmap 1.9.3",
891+ "libc",
892+ "libloading",
893+ "log",
894+ "native-tls",
895+ "nix",
896+ "nom",
897+ "notify",
898+ "polling 2.8.0",
899+ "regex",
900+ "serde",
901+ "serde_derive",
902+ "serde_json",
903+ "serde_path_to_error",
904+ "smallvec",
905+ "smol",
906+ "socket2 0.5.7",
907+ "unicode-segmentation",
908+ "uuid",
909+ "xdg",
910+ ]
911+
912+ [[package]]
913+ name = "melib"
914+ version = "0.8.7"
915+ source = "git+https://ayllu-forge.org/meli/meli?branch=master#aed7a60fb9c4f9f7eb61aaf1ac3505632b7896f1"
916+ dependencies = [
917+ "async-fn-stream",
918+ "base64 0.13.1",
919+ "bitflags 2.6.0",
920+ "data-encoding",
921+ "encoding",
922+ "encoding_rs",
923+ "flate2",
924+ "futures",
925+ "imap-codec",
926+ "indexmap 2.3.0",
927+ "libc",
928+ "libloading",
929+ "log",
930+ "native-tls",
931+ "nix",
932+ "nom",
933+ "notify",
934+ "polling 2.8.0",
935+ "regex",
936+ "serde",
937+ "serde_derive",
938+ "serde_json",
939+ "serde_path_to_error",
940+ "smallvec",
941+ "smol",
942+ "socket2 0.5.7",
943+ "unicode-segmentation",
944+ "uuid",
945+ "xdg",
946+ ]
947+
948+ [[package]]
949 name = "memchr"
950 version = "2.7.4"
951 source = "registry+https://github.com/rust-lang/crates.io-index"
952 @@ -2423,6 +3142,21 @@ dependencies = [
953 ]
954
955 [[package]]
956+ name = "memo-map"
957+ version = "0.3.3"
958+ source = "registry+https://github.com/rust-lang/crates.io-index"
959+ checksum = "38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b"
960+
961+ [[package]]
962+ name = "memoffset"
963+ version = "0.9.1"
964+ source = "registry+https://github.com/rust-lang/crates.io-index"
965+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
966+ dependencies = [
967+ "autocfg",
968+ ]
969+
970+ [[package]]
971 name = "mime"
972 version = "0.3.17"
973 source = "registry+https://github.com/rust-lang/crates.io-index"
974 @@ -2439,6 +3173,17 @@ dependencies = [
975 ]
976
977 [[package]]
978+ name = "minijinja"
979+ version = "0.31.1"
980+ source = "registry+https://github.com/rust-lang/crates.io-index"
981+ checksum = "0b1dbc390e4447b2500c4071d7bc2a808cf07e925bae6b92db8a3c3eae773c58"
982+ dependencies = [
983+ "memo-map",
984+ "self_cell 0.10.3",
985+ "serde",
986+ ]
987+
988+ [[package]]
989 name = "minimal-lexical"
990 version = "0.2.1"
991 source = "registry+https://github.com/rust-lang/crates.io-index"
992 @@ -2456,6 +3201,18 @@ dependencies = [
993
994 [[package]]
995 name = "mio"
996+ version = "0.8.11"
997+ source = "registry+https://github.com/rust-lang/crates.io-index"
998+ checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
999+ dependencies = [
1000+ "libc",
1001+ "log",
1002+ "wasi",
1003+ "windows-sys 0.48.0",
1004+ ]
1005+
1006+ [[package]]
1007+ name = "mio"
1008 version = "1.0.2"
1009 source = "registry+https://github.com/rust-lang/crates.io-index"
1010 checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
1011 @@ -2490,6 +3247,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1012 checksum = "c96aba5aa877601bb3f6dd6a63a969e1f82e60646e81e71b14496995e9853c91"
1013
1014 [[package]]
1015+ name = "nix"
1016+ version = "0.27.1"
1017+ source = "registry+https://github.com/rust-lang/crates.io-index"
1018+ checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
1019+ dependencies = [
1020+ "bitflags 2.6.0",
1021+ "cfg-if",
1022+ "libc",
1023+ "memoffset",
1024+ ]
1025+
1026+ [[package]]
1027 name = "nom"
1028 version = "7.1.3"
1029 source = "registry+https://github.com/rust-lang/crates.io-index"
1030 @@ -2500,6 +3269,25 @@ dependencies = [
1031 ]
1032
1033 [[package]]
1034+ name = "notify"
1035+ version = "6.1.1"
1036+ source = "registry+https://github.com/rust-lang/crates.io-index"
1037+ checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
1038+ dependencies = [
1039+ "bitflags 2.6.0",
1040+ "crossbeam-channel",
1041+ "filetime",
1042+ "fsevent-sys",
1043+ "inotify",
1044+ "kqueue",
1045+ "libc",
1046+ "log",
1047+ "mio 0.8.11",
1048+ "walkdir",
1049+ "windows-sys 0.48.0",
1050+ ]
1051+
1052+ [[package]]
1053 name = "nu-ansi-term"
1054 version = "0.46.0"
1055 source = "registry+https://github.com/rust-lang/crates.io-index"
1056 @@ -2510,6 +3298,20 @@ dependencies = [
1057 ]
1058
1059 [[package]]
1060+ name = "num"
1061+ version = "0.4.3"
1062+ source = "registry+https://github.com/rust-lang/crates.io-index"
1063+ checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
1064+ dependencies = [
1065+ "num-bigint",
1066+ "num-complex",
1067+ "num-integer",
1068+ "num-iter",
1069+ "num-rational",
1070+ "num-traits",
1071+ ]
1072+
1073+ [[package]]
1074 name = "num-bigint"
1075 version = "0.4.6"
1076 source = "registry+https://github.com/rust-lang/crates.io-index"
1077 @@ -2537,6 +3339,21 @@ dependencies = [
1078 ]
1079
1080 [[package]]
1081+ name = "num-cmp"
1082+ version = "0.1.0"
1083+ source = "registry+https://github.com/rust-lang/crates.io-index"
1084+ checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa"
1085+
1086+ [[package]]
1087+ name = "num-complex"
1088+ version = "0.4.6"
1089+ source = "registry+https://github.com/rust-lang/crates.io-index"
1090+ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
1091+ dependencies = [
1092+ "num-traits",
1093+ ]
1094+
1095+ [[package]]
1096 name = "num-conv"
1097 version = "0.1.0"
1098 source = "registry+https://github.com/rust-lang/crates.io-index"
1099 @@ -2573,6 +3390,17 @@ dependencies = [
1100 ]
1101
1102 [[package]]
1103+ name = "num-rational"
1104+ version = "0.4.2"
1105+ source = "registry+https://github.com/rust-lang/crates.io-index"
1106+ checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
1107+ dependencies = [
1108+ "num-bigint",
1109+ "num-integer",
1110+ "num-traits",
1111+ ]
1112+
1113+ [[package]]
1114 name = "num-traits"
1115 version = "0.2.19"
1116 source = "registry+https://github.com/rust-lang/crates.io-index"
1117 @@ -2759,6 +3587,12 @@ dependencies = [
1118 ]
1119
1120 [[package]]
1121+ name = "parking"
1122+ version = "2.2.0"
1123+ source = "registry+https://github.com/rust-lang/crates.io-index"
1124+ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
1125+
1126+ [[package]]
1127 name = "parking_lot"
1128 version = "0.11.2"
1129 source = "registry+https://github.com/rust-lang/crates.io-index"
1130 @@ -3029,6 +3863,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1131 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
1132
1133 [[package]]
1134+ name = "piper"
1135+ version = "0.2.4"
1136+ source = "registry+https://github.com/rust-lang/crates.io-index"
1137+ checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
1138+ dependencies = [
1139+ "atomic-waker",
1140+ "fastrand 2.1.0",
1141+ "futures-io",
1142+ ]
1143+
1144+ [[package]]
1145 name = "pkcs1"
1146 version = "0.7.5"
1147 source = "registry+https://github.com/rust-lang/crates.io-index"
1148 @@ -3128,6 +3973,37 @@ dependencies = [
1149 ]
1150
1151 [[package]]
1152+ name = "polling"
1153+ version = "2.8.0"
1154+ source = "registry+https://github.com/rust-lang/crates.io-index"
1155+ checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
1156+ dependencies = [
1157+ "autocfg",
1158+ "bitflags 1.3.2",
1159+ "cfg-if",
1160+ "concurrent-queue",
1161+ "libc",
1162+ "log",
1163+ "pin-project-lite",
1164+ "windows-sys 0.48.0",
1165+ ]
1166+
1167+ [[package]]
1168+ name = "polling"
1169+ version = "3.7.3"
1170+ source = "registry+https://github.com/rust-lang/crates.io-index"
1171+ checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
1172+ dependencies = [
1173+ "cfg-if",
1174+ "concurrent-queue",
1175+ "hermit-abi 0.4.0",
1176+ "pin-project-lite",
1177+ "rustix 0.38.34",
1178+ "tracing",
1179+ "windows-sys 0.59.0",
1180+ ]
1181+
1182+ [[package]]
1183 name = "powerfmt"
1184 version = "0.2.0"
1185 source = "registry+https://github.com/rust-lang/crates.io-index"
1186 @@ -3531,6 +4407,22 @@ dependencies = [
1187 ]
1188
1189 [[package]]
1190+ name = "rusqlite"
1191+ version = "0.30.0"
1192+ source = "registry+https://github.com/rust-lang/crates.io-index"
1193+ checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
1194+ dependencies = [
1195+ "bitflags 2.6.0",
1196+ "chrono",
1197+ "fallible-iterator",
1198+ "fallible-streaming-iterator",
1199+ "hashlink",
1200+ "libsqlite3-sys",
1201+ "serde_json",
1202+ "smallvec",
1203+ ]
1204+
1205+ [[package]]
1206 name = "rustc-demangle"
1207 version = "0.1.24"
1208 source = "registry+https://github.com/rust-lang/crates.io-index"
1209 @@ -3547,6 +4439,20 @@ dependencies = [
1210
1211 [[package]]
1212 name = "rustix"
1213+ version = "0.37.27"
1214+ source = "registry+https://github.com/rust-lang/crates.io-index"
1215+ checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
1216+ dependencies = [
1217+ "bitflags 1.3.2",
1218+ "errno",
1219+ "io-lifetimes",
1220+ "libc",
1221+ "linux-raw-sys 0.3.8",
1222+ "windows-sys 0.48.0",
1223+ ]
1224+
1225+ [[package]]
1226+ name = "rustix"
1227 version = "0.38.34"
1228 source = "registry+https://github.com/rust-lang/crates.io-index"
1229 checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
1230 @@ -3554,7 +4460,7 @@ dependencies = [
1231 "bitflags 2.6.0",
1232 "errno",
1233 "libc",
1234- "linux-raw-sys",
1235+ "linux-raw-sys 0.4.14",
1236 "windows-sys 0.52.0",
1237 ]
1238
1239 @@ -3704,6 +4610,21 @@ dependencies = [
1240 ]
1241
1242 [[package]]
1243+ name = "self_cell"
1244+ version = "0.10.3"
1245+ source = "registry+https://github.com/rust-lang/crates.io-index"
1246+ checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
1247+ dependencies = [
1248+ "self_cell 1.0.4",
1249+ ]
1250+
1251+ [[package]]
1252+ name = "self_cell"
1253+ version = "1.0.4"
1254+ source = "registry+https://github.com/rust-lang/crates.io-index"
1255+ checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a"
1256+
1257+ [[package]]
1258 name = "semver"
1259 version = "1.0.23"
1260 source = "registry+https://github.com/rust-lang/crates.io-index"
1261 @@ -3784,6 +4705,12 @@ dependencies = [
1262 ]
1263
1264 [[package]]
1265+ name = "sha1_smol"
1266+ version = "1.0.1"
1267+ source = "registry+https://github.com/rust-lang/crates.io-index"
1268+ checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
1269+
1270+ [[package]]
1271 name = "sha2"
1272 version = "0.10.8"
1273 source = "registry+https://github.com/rust-lang/crates.io-index"
1274 @@ -3879,6 +4806,45 @@ name = "smallvec"
1275 version = "1.13.2"
1276 source = "registry+https://github.com/rust-lang/crates.io-index"
1277 checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
1278+ dependencies = [
1279+ "serde",
1280+ ]
1281+
1282+ [[package]]
1283+ name = "smol"
1284+ version = "1.3.0"
1285+ source = "registry+https://github.com/rust-lang/crates.io-index"
1286+ checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1"
1287+ dependencies = [
1288+ "async-channel 1.9.0",
1289+ "async-executor",
1290+ "async-fs",
1291+ "async-io 1.13.0",
1292+ "async-lock 2.8.0",
1293+ "async-net",
1294+ "async-process",
1295+ "blocking",
1296+ "futures-lite 1.13.0",
1297+ ]
1298+
1299+ [[package]]
1300+ name = "smtp-proto"
1301+ version = "0.1.5"
1302+ source = "registry+https://github.com/rust-lang/crates.io-index"
1303+ checksum = "51b8ad3dd187f0d4debab02ad65405a9919d6a4f7bce25bd64a258781063a53a"
1304+ dependencies = [
1305+ "serde",
1306+ ]
1307+
1308+ [[package]]
1309+ name = "socket2"
1310+ version = "0.4.10"
1311+ source = "registry+https://github.com/rust-lang/crates.io-index"
1312+ checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
1313+ dependencies = [
1314+ "libc",
1315+ "winapi",
1316+ ]
1317
1318 [[package]]
1319 name = "socket2"
1320 @@ -3945,7 +4911,7 @@ dependencies = [
1321 "crc",
1322 "crossbeam-queue",
1323 "either",
1324- "event-listener",
1325+ "event-listener 2.5.3",
1326 "futures-channel",
1327 "futures-core",
1328 "futures-intrusive",
1329 @@ -4290,9 +5256,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1330 checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
1331 dependencies = [
1332 "cfg-if",
1333- "fastrand",
1334+ "fastrand 2.1.0",
1335 "once_cell",
1336- "rustix",
1337+ "rustix 0.38.34",
1338 "windows-sys 0.59.0",
1339 ]
1340
1341 @@ -4343,7 +5309,7 @@ version = "0.3.0"
1342 source = "registry+https://github.com/rust-lang/crates.io-index"
1343 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
1344 dependencies = [
1345- "rustix",
1346+ "rustix 0.38.34",
1347 "windows-sys 0.48.0",
1348 ]
1349
1350 @@ -4469,11 +5435,11 @@ dependencies = [
1351 "backtrace",
1352 "bytes",
1353 "libc",
1354- "mio",
1355+ "mio 1.0.2",
1356 "parking_lot 0.12.3",
1357 "pin-project-lite",
1358 "signal-hook-registry",
1359- "socket2",
1360+ "socket2 0.5.7",
1361 "tokio-macros",
1362 "windows-sys 0.52.0",
1363 ]
1364 @@ -4535,6 +5501,7 @@ dependencies = [
1365 "futures-core",
1366 "pin-project-lite",
1367 "tokio",
1368+ "tokio-util",
1369 ]
1370
1371 [[package]]
1372 @@ -4547,6 +5514,8 @@ dependencies = [
1373 "futures-core",
1374 "futures-io",
1375 "futures-sink",
1376+ "futures-util",
1377+ "hashbrown 0.14.5",
1378 "pin-project-lite",
1379 "slab",
1380 "tokio",
1381 @@ -4574,6 +5543,18 @@ dependencies = [
1382 ]
1383
1384 [[package]]
1385+ name = "toml"
1386+ version = "0.8.19"
1387+ source = "registry+https://github.com/rust-lang/crates.io-index"
1388+ checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
1389+ dependencies = [
1390+ "serde",
1391+ "serde_spanned",
1392+ "toml_datetime",
1393+ "toml_edit 0.22.20",
1394+ ]
1395+
1396+ [[package]]
1397 name = "toml_datetime"
1398 version = "0.6.8"
1399 source = "registry+https://github.com/rust-lang/crates.io-index"
1400 @@ -4918,6 +5899,11 @@ name = "uuid"
1401 version = "1.10.0"
1402 source = "registry+https://github.com/rust-lang/crates.io-index"
1403 checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
1404+ dependencies = [
1405+ "getrandom",
1406+ "serde",
1407+ "sha1_smol",
1408+ ]
1409
1410 [[package]]
1411 name = "valuable"
1412 @@ -4950,6 +5936,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1413 checksum = "65dd7eed29412da847b0f78bcec0ac98588165988a8cfe41d4ea1d429f8ccfff"
1414
1415 [[package]]
1416+ name = "waker-fn"
1417+ version = "1.2.0"
1418+ source = "registry+https://github.com/rust-lang/crates.io-index"
1419+ checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
1420+
1421+ [[package]]
1422 name = "walkdir"
1423 version = "2.5.0"
1424 source = "registry+https://github.com/rust-lang/crates.io-index"
1425 diff --git a/Cargo.toml b/Cargo.toml
1426index d17ca56..cea9eaa 100644
1427--- a/Cargo.toml
1428+++ b/Cargo.toml
1429 @@ -9,7 +9,7 @@ members = [
1430 "crates/database",
1431 "ayllu",
1432 # "ayllu-build",
1433- # "ayllu-mail",
1434+ "ayllu-mail",
1435 # "ayllu-xmpp",
1436 "quipu"
1437 ]
1438 diff --git a/ayllu-mail/Cargo.toml b/ayllu-mail/Cargo.toml
1439index 88b3547..3c050f6 100644
1440--- a/ayllu-mail/Cargo.toml
1441+++ b/ayllu-mail/Cargo.toml
1442 @@ -17,8 +17,9 @@ tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
1443 tracing = "0.1.37"
1444 tokio = { version = "1.33.0", features = ["full"] }
1445 futures = "0.3.28"
1446- melib = {git = "https://ayllu-forge.org/meli/meli", branch = "master"}
1447- mailpot = { git = "https://ayllu-forge.org/ayllu/mailpot", branch = "main"}
1448+ melib = { git = "https://ayllu-forge.org/meli/meli", branch = "master" }
1449+ mailpot = { git = "https://ayllu-forge.org/ayllu/mailpot", branch = "main" }
1450+ maitred = { git = "https://ayllu-forge.org/ayllu/maitred", branch = "main" }
1451 clap_complete = "4.4.5"
1452 anyhow = "1.0.78"
1453 axum = "0.7.5"
1454 diff --git a/ayllu-mail/src/server.rs b/ayllu-mail/src/server.rs
1455index d03cb9a..a23bf72 100644
1456--- a/ayllu-mail/src/server.rs
1457+++ b/ayllu-mail/src/server.rs
1458 @@ -37,7 +37,9 @@ fn to_api_error(e: MailpotError) -> ApiError {
1459
1460 fn to_message(post: &DbVal<Post>) -> Message {
1461 let envelope = Envelope::from_bytes(&post.message, None).unwrap();
1462- let text = envelope.body_bytes(&post.message).text();
1463+ let text = envelope
1464+ .body_bytes(&post.message)
1465+ .text(melib::attachment_types::Text::Rfc822);
1466 let body = String::from_utf8(post.message.to_vec()).unwrap();
1467 Message {
1468 id: post.pk,