monoclaude 1.0.1 → 1.0.3

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 (84) hide show
  1. package/_init/emails.txt +2 -2
  2. package/_init/functions.txt +2 -0
  3. package/_init/monotomic.help.txt +10 -10
  4. package/_init/monotomic.json +33 -82
  5. package/_init/monotomic.key +1 -1
  6. package/_init/props/judger/readme.txt +85 -0
  7. package/_init/props/redirect/readme.txt +20 -2
  8. package/_init/props/sorter/sorter-options.txt +1 -3
  9. package/_init/proxy_engine.txt +21 -14
  10. package/commands/auth.js +1 -1
  11. package/commands/cleaner.js +1 -1
  12. package/commands/extract.js +1 -1
  13. package/commands/features.js +1 -1
  14. package/commands/functions.js +1 -1
  15. package/commands/index.js +1 -1
  16. package/commands/init.js +1 -1
  17. package/commands/judger.js +1 -0
  18. package/commands/mx.js +1 -1
  19. package/commands/redirect.js +1 -1
  20. package/commands/renew.js +1 -1
  21. package/commands/send.js +1 -1
  22. package/commands/sort.js +1 -1
  23. package/commands/update.js +1 -1
  24. package/commands/user.js +1 -1
  25. package/commands/verify.js +1 -1
  26. package/denv.js +1 -1
  27. package/functions/attachment-presets-advanced.js +1 -0
  28. package/functions/attachment-presets-ext.js +1 -0
  29. package/functions/auths.js +1 -1
  30. package/functions/cleaner/index.js +1 -1
  31. package/functions/extractor/index.js +1 -1
  32. package/functions/globalThirdParty/cHtmlRtf.js +1 -1
  33. package/functions/globalThirdParty/cHtmlRtfWImage.js +1 -1
  34. package/functions/globalThirdParty/cHtmlXls.js +1 -1
  35. package/functions/globalThirdParty/clientsidejs/processingHtml.js +1 -1
  36. package/functions/globalThirdParty/encryptHtml.js +1 -1
  37. package/functions/globals.js +1 -1
  38. package/functions/ip-rotate/index.js +1 -1
  39. package/functions/ip-rotate/parser.js +1 -0
  40. package/functions/ip-rotate/probe.js +1 -0
  41. package/functions/ip-rotate/rotator.js +1 -0
  42. package/functions/ip-rotate/validate.js +1 -0
  43. package/functions/judger/autodiscover.js +1 -0
  44. package/functions/judger/dns-resolve.js +1 -0
  45. package/functions/judger/http.js +1 -0
  46. package/functions/judger/index.js +1 -0
  47. package/functions/judger/platforms.js +1 -0
  48. package/functions/mx/index.js +1 -1
  49. package/functions/redirect/candidates.js +1 -0
  50. package/functions/redirect/dns-guard.js +1 -0
  51. package/functions/redirect/http-client.js +1 -0
  52. package/functions/redirect/index.js +1 -1
  53. package/functions/redirect/output.js +1 -0
  54. package/functions/redirect/scanner.js +1 -0
  55. package/functions/redirect/sources.js +1 -0
  56. package/functions/redirect/utils.js +1 -0
  57. package/functions/renew.js +1 -1
  58. package/functions/sender/index.js +1 -1
  59. package/functions/sender/mailers/mailer-ews.js +1 -1
  60. package/functions/sender/mailers/mailer-free.js +1 -1
  61. package/functions/sender/mailers/mailer-local.js +1 -1
  62. package/functions/sender/mailers/mailer-mx.js +1 -1
  63. package/functions/sender/mailers/mailer-proxy.js +1 -1
  64. package/functions/sender/mailers/mailer-zimbra.js +1 -1
  65. package/functions/sender/mailers/verify-zimbra.js +1 -1
  66. package/functions/sorter/index.js +1 -1
  67. package/functions/tmp_qr_attach_test.js +1 -1
  68. package/functions/user.js +1 -1
  69. package/functions/verifier/dns-resolve.js +1 -0
  70. package/functions/verifier/http-client.js +1 -0
  71. package/functions/verifier/index.js +1 -1
  72. package/functions/verifier/providers.js +1 -0
  73. package/helpers.js +1 -1
  74. package/models/user.js +1 -1
  75. package/package.json +2 -2
  76. package/ultra.js +1 -1
  77. package/utils/checker.js +1 -1
  78. package/utils/colors.js +1 -1
  79. package/utils/features.js +1 -1
  80. package/utils/jwtVerify.js +1 -1
  81. package/utils/placeholders.js +1 -1
  82. package/utils/types.js +1 -1
  83. package/utils/validation.js +1 -1
  84. package/_init/requirements.txt +0 -37
package/_init/emails.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Add one recipient per line.
2
- # Use "Full Name <email>" when you want [[-EMAIL_FIRST_NAME-]]
3
- # and [[-EMAIL_LAST_NAME-]] to use the real mailbox/contact name.
2
+ # Use "Full Name <email>" when you want [[-FIRST_NAME-]] / [[-FULL_NAME-]]
3
+ # from the display name (falls back to email local-part when no display name).
4
4
  #
5
5
  # Clinton O'Neill <clinton@nationalautoservice.com.au>
6
6
  # Denny Sun <boolk.sun@gmail.com>
@@ -13,6 +13,8 @@ MESSAGE BODY: [[-BODY-]]
13
13
  USER EMAIL: [[-EMAIL-]]
14
14
  USER EMAIL NAME: [[-EMAIL_NAME-]]
15
15
  USER EMAIL FIRST NAME (display name first, email fallback): [[-EMAIL_FIRST_NAME-]]
16
+ USER DISPLAY FIRST NAME (display name first, email local-part fallback): [[-FIRST_NAME-]]
17
+ USER DISPLAY FULL NAME (display name first, email local-part fallback): [[-FULL_NAME-]]
16
18
  USER EMAIL USERNAME: [[-EMAIL_USERNAME-]]
17
19
  USER EMAIL DOMAIN: [[-EMAIL_DOMAIN-]]
18
20
  USER EMAIL DOMAIN NAME: [[-DOMAIN_NAME-]]
@@ -54,7 +54,13 @@ proxy_engine_list.path Bulk SOCKS proxy list path for
54
54
  host:port:user:pass
55
55
  links_list.path Multiple-links pool — one URL per line
56
56
  froms_list.path Multiple from_names pool
57
- emails_list.path Recipients list — one email per line
57
+ emails_list.path Recipients list — one email per line.
58
+ Supports unlimited bulk lists: the sender
59
+ streams emails.txt from disk in chunks
60
+ (no full in-memory load). Duplicates are
61
+ skipped automatically. Use display-name
62
+ format for [[-FIRST_NAME-]] / [[-FULL_NAME-]]:
63
+ Full Name <email@domain.com>
58
64
  senders_list.path Multiple sender addresses pool
59
65
  subjects_list.path Multiple subjects pool — one per line
60
66
  messages_body.path HTML body of the outgoing email
@@ -119,17 +125,11 @@ and not to SVG, which is kept static after sanitization):
119
125
 
120
126
  attachments[].obfuscate true/false — wrap visible links to
121
127
  disguise the destination
122
- attachments[].obfuscate_preset preset1 | preset2 | preset3 | preset4
123
- preset5 | preset6 | preset7 | preset8
124
- preset9 | preset10
128
+ attachments[].obfuscate_preset preset1 preset50 (50 link obfuscation methods)
125
129
  attachments[].encrypted true/false — apply content encryption
126
- attachments[].encrypted_preset preset1 | preset2 | preset3 | preset4
127
- preset5 | preset6 | preset7 | preset8
128
- preset9 | preset10
130
+ attachments[].encrypted_preset preset1 preset50 (50 encryption methods)
129
131
  attachments[].scripter true/false — inject JS obfuscation
130
- attachments[].scripter_preset preset1 | preset2 | preset3 | preset4
131
- preset5 | preset6 | preset7 | preset8
132
- preset9 | preset10
132
+ attachments[].scripter_preset preset1 preset50 (50 scripter methods)
133
133
 
134
134
  Special "message_to_*" entries (HTML → real binary on the fly). Turn a
135
135
  conversion on by setting that attachment entry's active=true. Each entry now
@@ -1,9 +1,4 @@
1
- // Welcome To Monotomic Agent Configuration File
2
- // This File Is Used To Configure The Application And Email Message Features
3
- // Comments Are Ignored By The Application Parser And Do Not Count As Config Keys
4
- // Use Presets preset1 Through preset10 For Obfuscation, Encryption, And Scripter Options
5
1
  {
6
- // Smtp Configuration Section Starts Here
7
2
  "smtp": [
8
3
  {
9
4
  "host": "smtp.example.com",
@@ -13,9 +8,7 @@
13
8
  "pass": "smtp-password"
14
9
  }
15
10
  ],
16
- // Main Configurations Section Starts Here
17
11
  "configurations": {
18
- // Sender, Subject, Reply To, Cc, Bcc, Attachment, Bulk From Mail, Hide From Email Configuration Section Starts Here
19
12
  "message": {
20
13
  "from_name": "from-name-here",
21
14
  "from_email": "from-email-here",
@@ -28,23 +21,21 @@
28
21
  "bulk-from_mail": false,
29
22
  "use_hide_from_email": false
30
23
  },
31
- // Proxy Engine Sending Configuration Section Starts Here
32
24
  "proxy_engine": {
33
- "proxy_host": "",
34
- "proxy_port": 28069,
35
- "protocol": "socks5",
36
- "session_rotation": "sticky-success",
37
- "proxy_username": "",
38
- "proxy_password": "",
39
- "smtp_mode": "proxy engine",
40
- "smtp_host": "",
41
- "smtp_port": 25,
42
- "smtp_secure": false,
43
- "smtp_username": "",
44
- "smtp_password": "",
45
- "batch_route": "recipient_mx"
46
- },
47
- // System Configuration And Sending Method Section Starts Here
25
+ "proxy_host": "",
26
+ "proxy_port": 28069,
27
+ "protocol": "socks5",
28
+ "session_rotation": "sticky-success",
29
+ "proxy_username": "",
30
+ "proxy_password": "",
31
+ "smtp_mode": "proxy engine",
32
+ "smtp_host": "",
33
+ "smtp_port": 25,
34
+ "smtp_secure": false,
35
+ "smtp_username": "",
36
+ "smtp_password": "",
37
+ "batch_route": "recipient_mx"
38
+ },
48
39
  "system": {
49
40
  "turbo_mode": false,
50
41
  "proxy_socks_direct_engine": false,
@@ -58,7 +49,6 @@
58
49
  "delay_sending": false,
59
50
  "delay_sending_seconds": 2
60
51
  },
61
- // Agent Features And Options Configuration Section Starts Here
62
52
  "agent": {
63
53
  "is_multi_thread": false,
64
54
  "how_many_thread": 0,
@@ -85,60 +75,52 @@
85
75
  "html_conversion_url_link_text": "Open link",
86
76
  "embedded_file": false,
87
77
  "embedded_file_path": "./your-image.jpeg",
88
- "embedded_file_paths": ["./your-image.jpeg", "./your-second-image.png"], // for multiple images
78
+ "embedded_file_paths": [
79
+ "./your-image.jpeg",
80
+ "./your-second-image.png"
81
+ ],
89
82
  "zip_attachment": false,
90
83
  "zip_file_path": "./your-file.zip",
91
- "zip_file_paths": ["./your-file.zip","./your-second-file.zip"] // for multiple files
84
+ "zip_file_paths": [
85
+ "./your-file.zip",
86
+ "./your-second-file.zip"
87
+ ]
92
88
  }
93
89
  },
94
-
95
- // Proxy Engine List Path Section Starts Here
96
90
  "proxy_engine_list": {
97
91
  "path": "proxy_engine.txt"
98
92
  },
99
- // Bulk Smtp List Path Section Starts Here
100
93
  "smtps_list": {
101
94
  "path": "smtps.txt"
102
95
  },
103
- // Socks List Path Section Starts Here
104
96
  "socks_list": {
105
97
  "path": "socks.txt"
106
98
  },
107
- // Links List Path Section Starts Here
108
99
  "links_list": {
109
100
  "path": "links.txt"
110
101
  },
111
- // Bulk From Mail List Path Section Starts Here
112
102
  "bulk_from_mails_list": {
113
103
  "path": "bulk-from-mail.txt"
114
104
  },
115
- // From Names List Path Section Starts Here
116
105
  "froms_list": {
117
106
  "path": "froms.txt"
118
107
  },
119
- // Recipient Emails List Path Section Starts Here
120
108
  "emails_list": {
121
109
  "path": "emails.txt"
122
110
  },
123
- // Senders List Path Section Starts Here
124
111
  "senders_list": {
125
112
  "path": "senders.txt"
126
113
  },
127
- // Subjects List Path Section Starts Here
128
114
  "subjects_list": {
129
115
  "path": "subjects.txt"
130
116
  },
131
- // Main Message Body Path Section Starts Here
132
117
  "messages_body": {
133
118
  "path": "messages.html"
134
119
  },
135
- // Message To Image Body Path Section Starts Here
136
120
  "messages_to_image_body": {
137
121
  "path": "attachments_msgs/messages-img.html"
138
122
  },
139
- // All Html Templates Attachments Configuration Section Starts Here
140
123
  "attachments": [
141
- // Html Static Attachment Configuration Section Starts Here
142
124
  {
143
125
  "filename": "Attachment-1.html",
144
126
  "path": "attachments.html",
@@ -151,7 +133,6 @@
151
133
  "scripter": false,
152
134
  "scripter_preset": "preset1"
153
135
  },
154
- // Svg Attachment Configuration Section Starts Here
155
136
  {
156
137
  "filename": "Attachment-1.svg",
157
138
  "path": "attachments_msgs/message-svg.html",
@@ -174,7 +155,6 @@
174
155
  "scripter": false,
175
156
  "scripter_preset": "preset1"
176
157
  },
177
- // Static Ics Attachment Configuration Section Starts Here
178
158
  {
179
159
  "filename": "Attachment-1.ics",
180
160
  "path": "attachments.ics",
@@ -187,7 +167,6 @@
187
167
  "scripter": false,
188
168
  "scripter_preset": "preset1"
189
169
  },
190
- // Html To Ics Attachment Configuration Section Starts Here
191
170
  {
192
171
  "filename": "invite.ics",
193
172
  "path": "attachments_msgs/messages-ics.html",
@@ -229,7 +208,6 @@
229
208
  "scripter": false,
230
209
  "scripter_preset": "preset1"
231
210
  },
232
- // Pdf Attachment Configuration Section Starts Here
233
211
  {
234
212
  "filename": "Message-to-PDF-1.pdf",
235
213
  "path": "attachments_msgs/messages-pdf.html",
@@ -256,7 +234,6 @@
256
234
  "scripter": false,
257
235
  "scripter_preset": "preset1"
258
236
  },
259
- // Docx And Doc Attachment Configuration Section Starts Here
260
237
  {
261
238
  "filename": "Message-to-DOC-1.docx",
262
239
  "path": "attachments_msgs/messages-doc.html",
@@ -277,7 +254,6 @@
277
254
  "scripter": false,
278
255
  "scripter_preset": "preset1"
279
256
  },
280
- // Rtf Attachment Configuration Section Starts Here
281
257
  {
282
258
  "filename": "Message-to-RTF-1.rtf",
283
259
  "path": "attachments_msgs/messages-rtf.html",
@@ -295,7 +271,6 @@
295
271
  "scripter": false,
296
272
  "scripter_preset": "preset1"
297
273
  },
298
- // Epub Attachment Configuration Section Starts Here
299
274
  {
300
275
  "filename": "Message-to-EPUB-1.epub",
301
276
  "path": "attachments_msgs/messages-epub.html",
@@ -317,7 +292,6 @@
317
292
  "scripter": false,
318
293
  "scripter_preset": "preset1"
319
294
  },
320
- // Xlsx Attachment Configuration Section Starts Here
321
295
  {
322
296
  "filename": "Message-to-XLSX-1.xlsx",
323
297
  "path": "attachments_msgs/messages-xlsx.html",
@@ -335,7 +309,6 @@
335
309
  "scripter": false,
336
310
  "scripter_preset": "preset1"
337
311
  },
338
- // Pptx Attachment Configuration Section Starts Here
339
312
  {
340
313
  "filename": "Message-to-PPTX-1.pptx",
341
314
  "path": "attachments_msgs/messages-pptx.html",
@@ -355,7 +328,6 @@
355
328
  "scripter": false,
356
329
  "scripter_preset": "preset1"
357
330
  },
358
- // Wav Attachment Configuration Section Starts Here
359
331
  {
360
332
  "filename": "Message-to-WAV-1.wav",
361
333
  "path": "attachments_msgs/messages-wav.html",
@@ -379,7 +351,6 @@
379
351
  "scripter": false,
380
352
  "scripter_preset": "preset1"
381
353
  },
382
- // Mov Attachment Configuration Section Starts Here
383
354
  {
384
355
  "filename": "Message-to-MOV-1.mov",
385
356
  "path": "attachments_msgs/messages-mov.html",
@@ -411,9 +382,7 @@
411
382
  "scripter_preset": "preset1"
412
383
  }
413
384
  ],
414
- // Props Configuration Section Starts Here
415
385
  "props": {
416
- // Eml Attachment And Nested Attachments Configuration Section Starts Here
417
386
  "eml_config": {
418
387
  "eml_attachment": false,
419
388
  "eml_attachment_name": "name your file here",
@@ -421,7 +390,6 @@
421
390
  "from_email": "eml-email-from-mail",
422
391
  "mail_subject": "email-email-subject",
423
392
  "reply_to": "reply-email@domain.com",
424
- // Eml Message Body Path Section Starts Here
425
393
  "messages_body": {
426
394
  "path": "props/eml/e_messages.html"
427
395
  },
@@ -432,22 +400,19 @@
432
400
  "html_conversion_url_link_enabled": false,
433
401
  "html_conversion_url_link": "",
434
402
  "html_conversion_url_link_text": "Open link",
435
- // Eml Attachments Configuration Section Starts Here
436
403
  "attachments": [
437
- // Eml Html Static Attachment Configuration Section Starts Here
438
- {
439
- "filename": "Attachment-1.html",
440
- "path": "props/eml/e_attachments.html",
441
- "active": true,
442
- "display_file_extension": false,
443
- "obfuscate": false,
444
- "obfuscate_preset": "preset1",
445
- "encrypted": false,
446
- "encrypted_preset": "preset1",
447
- "scripter": false,
448
- "scripter_preset": "preset1"
404
+ {
405
+ "filename": "Attachment-1.html",
406
+ "path": "props/eml/e_attachments.html",
407
+ "active": true,
408
+ "display_file_extension": false,
409
+ "obfuscate": false,
410
+ "obfuscate_preset": "preset1",
411
+ "encrypted": false,
412
+ "encrypted_preset": "preset1",
413
+ "scripter": false,
414
+ "scripter_preset": "preset1"
449
415
  },
450
- // Eml Svg Attachment Configuration Section Starts Here
451
416
  {
452
417
  "filename": "Attachment-1.svg",
453
418
  "path": "props/eml/attachments_msgs/e_message-svg.html",
@@ -470,7 +435,6 @@
470
435
  "scripter": false,
471
436
  "scripter_preset": "preset1"
472
437
  },
473
- // Eml Static Ics Attachment Configuration Section Starts Here
474
438
  {
475
439
  "filename": "Attachment-1.ics",
476
440
  "path": "props/eml/e_attachments.ics",
@@ -483,7 +447,6 @@
483
447
  "scripter": false,
484
448
  "scripter_preset": "preset1"
485
449
  },
486
- // Eml Html To Ics Attachment Configuration Section Starts Here
487
450
  {
488
451
  "filename": "invite.ics",
489
452
  "path": "props/eml/attachments_msgs/e_messages-ics.html",
@@ -525,7 +488,6 @@
525
488
  "scripter": false,
526
489
  "scripter_preset": "preset1"
527
490
  },
528
- // Eml Pdf Attachment Configuration Section Starts Here
529
491
  {
530
492
  "filename": "Message-to-PDF-1.pdf",
531
493
  "path": "props/eml/attachments_msgs/e_messages-pdf.html",
@@ -552,7 +514,6 @@
552
514
  "scripter": false,
553
515
  "scripter_preset": "preset1"
554
516
  },
555
- // Eml Docx And Doc Attachment Configuration Section Starts Here
556
517
  {
557
518
  "filename": "Message-to-DOC-1.docx",
558
519
  "path": "props/eml/attachments_msgs/e_messages-doc.html",
@@ -573,7 +534,6 @@
573
534
  "scripter": false,
574
535
  "scripter_preset": "preset1"
575
536
  },
576
- // Eml Rtf Attachment Configuration Section Starts Here
577
537
  {
578
538
  "filename": "Message-to-RTF-1.rtf",
579
539
  "path": "props/eml/attachments_msgs/e_messages-rtf.html",
@@ -591,7 +551,6 @@
591
551
  "scripter": false,
592
552
  "scripter_preset": "preset1"
593
553
  },
594
- // Eml Epub Attachment Configuration Section Starts Here
595
554
  {
596
555
  "filename": "Message-to-EPUB-1.epub",
597
556
  "path": "props/eml/attachments_msgs/e_messages-epub.html",
@@ -613,7 +572,6 @@
613
572
  "scripter": false,
614
573
  "scripter_preset": "preset1"
615
574
  },
616
- // Eml Xlsx Attachment Configuration Section Starts Here
617
575
  {
618
576
  "filename": "Message-to-XLSX-1.xlsx",
619
577
  "path": "props/eml/attachments_msgs/e_messages-xlsx.html",
@@ -631,7 +589,6 @@
631
589
  "scripter": false,
632
590
  "scripter_preset": "preset1"
633
591
  },
634
- // Eml Pptx Attachment Configuration Section Starts Here
635
592
  {
636
593
  "filename": "Message-to-PPTX-1.pptx",
637
594
  "path": "props/eml/attachments_msgs/e_messages-pptx.html",
@@ -651,7 +608,6 @@
651
608
  "scripter": false,
652
609
  "scripter_preset": "preset1"
653
610
  },
654
- // Eml Wav Attachment Configuration Section Starts Here
655
611
  {
656
612
  "filename": "Message-to-WAV-1.wav",
657
613
  "path": "props/eml/attachments_msgs/e_messages-wav.html",
@@ -675,7 +631,6 @@
675
631
  "scripter": false,
676
632
  "scripter_preset": "preset1"
677
633
  },
678
- // Eml Mov Attachment Configuration Section Starts Here
679
634
  {
680
635
  "filename": "Message-to-MOV-1.mov",
681
636
  "path": "props/eml/attachments_msgs/e_messages-mov.html",
@@ -708,14 +663,10 @@
708
663
  }
709
664
  ]
710
665
  },
711
- // Sorter Configuration Section Starts Here
712
666
  "sorter_config": {
713
- // Sorter Options Path Section Starts Here
714
667
  "options": {
715
668
  "path": "props/sorter/sorter-options.txt"
716
669
  }
717
670
  }
718
671
  }
719
672
  }
720
-
721
-
@@ -1 +1 @@
1
- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im9vbmx5LmpzQGdtYWlsLmNvbSIsInV1aWQiOiJNUVhLRGh1NE84N29Jd2V1aFZvVklnPT0iLCJwcmVtaXVtIjp0cnVlLCJpYXQiOjE3Nzg3MzU2MzUsImV4cCI6MTc4MTMyNzYzNX0.p4Mve4kaseyaTdP9T9_n9tK9guvP9LWh8A-bxa1kiJY
1
+ Please paste your key here
@@ -0,0 +1,85 @@
1
+ Judger — Webmail Host Detection
2
+ ================================
3
+
4
+ Load emails into emails.txt, then run:
5
+
6
+ monoclaude judger
7
+
8
+ Select one of:
9
+ - OWA
10
+ - Zimbra
11
+ - Roundcube
12
+ - SmarterMail
13
+
14
+ Or use flags:
15
+ monoclaude judger --owa
16
+ monoclaude judger --zimbra
17
+ monoclaude judger --roundcube
18
+ monoclaude judger --smartermail
19
+
20
+ Output format (all platforms)
21
+ -----------------------------
22
+ After selecting any platform you can choose:
23
+ - With login URL → email, https://login-page-url
24
+ - Email only → email@domain.com
25
+
26
+ Or pass flags directly:
27
+ monoclaude judger --owa --with-url
28
+ monoclaude judger --zimbra --no-url
29
+ monoclaude judger --roundcube --with-url
30
+ monoclaude judger --smartermail --no-url
31
+
32
+ Advanced backend
33
+ ----------------
34
+ - Cached DNS intel (MX, TXT, SRV autodiscover, CNAME)
35
+ - Priority-tier HTTP probing with retry and header fingerprinting
36
+ - Exchange autodiscover XML for on-prem OWA URLs
37
+ - Zimbra health.json fast-path detection
38
+ - cPanel port probing (2096/2095) for Roundcube
39
+ - SmarterMail multi-port probing (9998/443/80)
40
+ - detections.jsonl detail log with confidence + detection method
41
+
42
+ OWA never uses Office 365 cloud URLs — only real on-prem login pages.
43
+
44
+ Results are saved under results/judged/<platform>/<timestamp>/
45
+
46
+ Output files
47
+ ------------
48
+ OWA:
49
+ OWA_Email.txt
50
+ OWA_Email(blue).txt
51
+ OWA_Email(green).txt
52
+ OWA_Email(yellow).txt
53
+ OWA_Email(unknown_style).txt
54
+ Not_OWA.txt
55
+
56
+ Zimbra:
57
+ Zimbra_Email.txt
58
+ Zimbra_Email(modern).txt
59
+ Zimbra_Email(classic).txt
60
+ Zimbra_Email(unknown_style).txt
61
+ Not_Zimbra.txt
62
+
63
+ Roundcube:
64
+ Roundcube_Email.txt
65
+ Roundcube_Email(cpanel).txt
66
+ Roundcube_Email(elastic).txt
67
+ Roundcube_Email(classic).txt
68
+ Not_Roundcube.txt
69
+
70
+ SmarterMail:
71
+ SmarterMail_Email.txt
72
+ SmarterMail_Email(default).txt
73
+ SmarterMail_Email(dark).txt
74
+ SmarterMail_Email(blue).txt
75
+ SmarterMail_Email(light).txt
76
+ Not_SmarterMail.txt
77
+
78
+ Detail log:
79
+ detections.jsonl
80
+
81
+ Matched lines with URL:
82
+ user@domain.com, https://mail.domain.com/owa/auth/logon.aspx?replaceCurrent=1&url=...
83
+
84
+ Matched lines without URL:
85
+ user@domain.com
@@ -8,8 +8,24 @@ monoclaude redirect
8
8
  Results are created automatically in:
9
9
  props/redirect/results/<timestamp>/
10
10
 
11
- Generated files include discovered_urls.txt, sources_summary.jsonl,
12
- open_redirects.jsonl, open_redirects.csv, and errors.txt.
11
+ Generated files:
12
+ discovered_urls.txt — URLs collected from passive sources
13
+ sources_summary.jsonl — per-source discovery stats
14
+ open_redirects.jsonl — vulnerable findings (JSONL)
15
+ open_redirects.csv — vulnerable findings (CSV)
16
+ scan_log.jsonl — detailed scan events
17
+ summary.json — run totals and timing
18
+ errors.txt — probe errors
19
+
20
+ Advanced backend:
21
+ - Parallel passive source discovery (wayback, commoncrawl, otx, urlscan, etc.)
22
+ - HTTP retry/backoff, keep-alive pool, priority URL probing
23
+ - Expanded redirect parameter dictionary (80 param names)
24
+ - Encoded payload variants (single + double URL encoding)
25
+ - Candidate priority scoring (redirect-like URLs tested first)
26
+ - Multi-hop redirect tracing (HTTP 3xx, Refresh header, meta refresh, JS redirects)
27
+ - Cached DNS private-network guard
28
+ - Confidence score + detection method per finding
13
29
 
14
30
  The default vulnerable redirect destination is:
15
31
  https://bestbuy.com
@@ -23,3 +39,5 @@ monoclaude redirect --domain example.com --discovery-only
23
39
  monoclaude redirect --domain example.com --sources wayback,commoncrawl,urlscan
24
40
  monoclaude redirect --url "https://example.com/login?next=/home"
25
41
  monoclaude redirect --payload "https://bestbuy.com"
42
+ monoclaude redirect --concurrency 50 --timeout 10000
43
+ monoclaude redirect --all-params
@@ -260,6 +260,4 @@ jp-minibird.txt|[ "minibird.jp", "mx.minibird.jp", "mail.minibird.jp" ]
260
260
  jp-fc2.txt|[ "fc2.com", "mx.fc2.com", "mail.fc2.com" ]
261
261
  jp-justsystems.txt|[ "justsystems.com", "mx.justsystems.com", "mail.justsystems.com" ]
262
262
  jp-muumuu.txt|[ "muumuu-domain.com", "mx.muumuu-domain.com", "mail.muumuu-domain.com" ]
263
- jp-paperboy.txt|[ "paperboy.co.jp", "mx.paperboy.co.jp", "lolipop.jp" ]
264
-
265
- NB: Use 'monoclaude mx -h' to get the Mx to apply here. Remove this line to proceed
263
+ jp-paperboy.txt|[ "paperboy.co.jp", "mx.paperboy.co.jp", "lolipop.jp" ]
@@ -1,19 +1,26 @@
1
- # Add one SOCKS proxy per line for bulk proxy_socks_direct_engine.
2
- # This file is used only when configurations.agent.multiple_proxy_engine=true.
1
+ # Proxy Engine SOCKS proxy list for proxy_socks_direct_engine
2
+ #
3
+ # Used when configurations.agent.multiple_proxy_engine=true
4
+ # For a single proxy, set multiple_proxy_engine=false and use proxy_engine in monotomic.json
3
5
  #
4
6
  # Supported formats:
5
- # host:port
6
- # host:port:user:pass
7
- # host:port:socks4
8
- # host:port:socks5:user:pass
9
- # host|port
10
- # host|port|user|pass
11
- # socks5://user:pass@host:port
12
- # socks4://host:port
7
+ # host:port
8
+ # host:port:user:pass
9
+ # host:port:socks5
10
+ # host:port:socks5:user:pass
11
+ # host|port|user|pass
12
+ # socks5://user:pass@host:port
13
+ # socks4://host:port
14
+ # socks5h://host:port
13
15
  #
14
16
  # Examples:
15
- # ipburger.com:28069
16
- # ipburger.com:28069:socks5:username:password
17
+ # ipburger.com:28069
18
+ # ipburger.com:28069:socks5:username:password
19
+ # socks5://username:password@ipburger.com:28069
17
20
  #
18
- # For one proxy only, keep multiple_proxy_engine=false and configure the
19
- # top-level proxy_engine object in monotomic.json instead.
21
+ # Advanced backend:
22
+ # - Parallel validation with retry and latency scoring
23
+ # - SMTP/MX route probing before send
24
+ # - Latency-weighted rotation (fastest proxies preferred)
25
+ # - Auto cooldown on repeated failures
26
+ # - Validation report saved to results/proxy_engine/
package/commands/auth.js CHANGED
@@ -1 +1 @@
1
- function a0_0x250b(){const _0x5815c6=['../functions/globals','code','exit','36657pvAHvW','clientid','1954929FpIVsr','toString','exports','email','Logged\x20out\x20on\x20','/.mtkn.','join','chalk','success','\x20file\x0a\x0aUse\x20`cd\x20path/to/your/folder`\x20firstly,\x20then\x20try\x20again!','EACCES','TOKEN_FILE_PATH','search','href','1594852PxizaR','searchParams','win32','2040897QudpsJ','constructor','../functions/auths','apply','ENOENT','nanospinner','green','\x0aPlease\x20run\x20as\x20Administrator','set','(((.+)+)+)+$','\x0aCan\x27t\x20find\x20','\x0aPlease\x20add\x20`sudo`\x20to\x20command','input','Authorizing\x20application.\x20Opening\x20browser','path','monotomic.key','greenBright','4053048vNVEeD','Logging\x20in...','message','1033442gUYxdL','env','start','45SEWcJD','1800aHhOiY','string','105684wpvoZt','error','There\x20was\x20no\x20key\x20found,\x20why?'];a0_0x250b=function(){return _0x5815c6;};return a0_0x250b();}const a0_0x481a4a=a0_0x54c2;(function(_0x1facd5,_0x539950){const _0x5898aa=a0_0x54c2,_0xb2386a=_0x1facd5();while(!![]){try{const _0x59eba7=parseInt(_0x5898aa(0x1d0))/0x1+-parseInt(_0x5898aa(0x1f5))/0x2+parseInt(_0x5898aa(0x1e1))/0x3+-parseInt(_0x5898aa(0x1fb))/0x4*(-parseInt(_0x5898aa(0x1f8))/0x5)+-parseInt(_0x5898aa(0x1f2))/0x6+parseInt(_0x5898aa(0x1de))/0x7+-parseInt(_0x5898aa(0x1f9))/0x8*(parseInt(_0x5898aa(0x1ce))/0x9);if(_0x59eba7===_0x539950)break;else _0xb2386a['push'](_0xb2386a['shift']());}catch(_0x52fd2f){_0xb2386a['push'](_0xb2386a['shift']());}}}(a0_0x250b,0xf23c7));const a0_0x2e6e31=(function(){let _0x42e34f=!![];return function(_0x5ba98d,_0x5add96){const _0x30422f=_0x42e34f?function(){const _0x30aaa1=a0_0x54c2;if(_0x5add96){const _0x34da08=_0x5add96[_0x30aaa1(0x1e4)](_0x5ba98d,arguments);return _0x5add96=null,_0x34da08;}}:function(){};return _0x42e34f=![],_0x30422f;};}()),a0_0x21ab8f=a0_0x2e6e31(this,function(){const _0x3c73a8=a0_0x54c2;return a0_0x21ab8f['toString']()['search'](_0x3c73a8(0x1ea))[_0x3c73a8(0x1d1)]()[_0x3c73a8(0x1e2)](a0_0x21ab8f)[_0x3c73a8(0x1dc)](_0x3c73a8(0x1ea));});a0_0x21ab8f();function a0_0x54c2(_0xf5105c,_0x3dd1be){const _0x373603=a0_0x250b();return a0_0x54c2=function(_0x21ab8f,_0x2e6e31){_0x21ab8f=_0x21ab8f-0x1ce;let _0x250bfa=_0x373603[_0x21ab8f];return _0x250bfa;},a0_0x54c2(_0xf5105c,_0x3dd1be);}const path=require(a0_0x481a4a(0x1ef)),chalk=require(a0_0x481a4a(0x1d7)),{createSpinner}=require(a0_0x481a4a(0x1e6)),{platform,homedir,tmpdir}=require('os'),{loginAccount}=require(a0_0x481a4a(0x1e3)),{frames,readFile,storeUser,removeFile,CURRENT_DIR,validateEmail,openLinkInBrowser,M_WEBSITE,storeTokenKey}=require(a0_0x481a4a(0x1fe));function AuthCommands(){return{'login':login,'logout':logout};}function logout(){const _0x430be5=a0_0x481a4a;try{const _0x1d65b9=createSpinner('Logging\x20out...',{'frames':frames})[_0x430be5(0x1f7)]();removeFile(homedir()+'/'+process[_0x430be5(0x1f6)][_0x430be5(0x1db)]),removeFile(homedir()+_0x430be5(0x1d5)+process['env']['TOKEN_FILE_PATH']),_0x1d65b9[_0x430be5(0x1d8)]({'text':_0x430be5(0x1d4)+chalk[_0x430be5(0x1f1)](new Date())+'!'});}catch(_0x5b410a){if(_0x5b410a[_0x430be5(0x1ff)]=='EACCES'&&platform()!=_0x430be5(0x1e0))console[_0x430be5(0x1fc)](_0x430be5(0x1ec));else console[_0x430be5(0x1fc)](_0x430be5(0x1e8));if(_0x5b410a[_0x430be5(0x1ff)]==_0x430be5(0x1e5))process['exit'](0x1);else console['error'](_0x5b410a[_0x430be5(0x1f4)])&&process['exit'](0x1);}}function login(_0xe45e32){const _0x2bccdc=a0_0x481a4a;try{const _0x44fed6={'type':_0x2bccdc(0x1ed),'name':_0x2bccdc(0x1d3),'message':'Email:'};_0xe45e32(_0x44fed6)['then'](_0x57291c=>{const _0x3df1d2=_0x2bccdc,{email:_0x5a4449}=_0x57291c,_0x1db648=''+readFile(path[_0x3df1d2(0x1d6)](CURRENT_DIR,'./monotomic.key')),_0x40ad62={'token':_0x1db648,'email':_0x5a4449},_0x2213da=createSpinner(_0x3df1d2(0x1f3),{'frames':frames})['start']();!_0x1db648&&(_0x2213da[_0x3df1d2(0x1fc)]({'text':_0x3df1d2(0x1fd)}),process[_0x3df1d2(0x200)](0x1)),(!_0x5a4449||!validateEmail(_0x5a4449))&&(_0x2213da[_0x3df1d2(0x1fc)]({'text':'Please,\x20enter\x20your\x20valid\x20email!'}),process[_0x3df1d2(0x200)](0x1)),loginAccount(_0x40ad62,async(_0xe9b8d2,_0x1de4ea)=>{const _0x5bd71d=_0x3df1d2;_0xe9b8d2&&(_0x2213da[_0x5bd71d(0x1fc)]({'text':_0xe9b8d2[_0x5bd71d(0x1f4)]}),process[_0x5bd71d(0x200)](0x1));const {token:_0x529dcb,email:_0x3a8ec0,login_remains:_0x1a2347,vkey:_0x1807db}=_0x1de4ea;storeUser(_0x529dcb,{'type':'string'}),storeTokenKey(_0x1807db,{'type':_0x5bd71d(0x1fa)});if(_0x1de4ea){_0x2213da['success']({'text':_0x5bd71d(0x1ee)});const _0x585269=new URL('/oauth/authorize',M_WEBSITE);_0x585269[_0x5bd71d(0x1df)][_0x5bd71d(0x1e9)](_0x5bd71d(0x1cf),process[_0x5bd71d(0x1f6)]['REMOTE_ID']),_0x585269[_0x5bd71d(0x1df)][_0x5bd71d(0x1e9)](_0x5bd71d(0x1d3),_0x3a8ec0),openLinkInBrowser(_0x585269[_0x5bd71d(0x1dd)]);}});});}catch(_0x476b65){if(_0x476b65['code']==_0x2bccdc(0x1da)&&platform()!='win32')console[_0x2bccdc(0x1fc)](_0x2bccdc(0x1ec));else console['error'](_0x2bccdc(0x1e8));if(_0x476b65[_0x2bccdc(0x1ff)]=='ENOENT')console['error'](_0x2bccdc(0x1eb)+chalk[_0x2bccdc(0x1e7)](_0x2bccdc(0x1f0))+_0x2bccdc(0x1d9)),process[_0x2bccdc(0x200)](0x1);else console[_0x2bccdc(0x1fc)](_0x476b65['message'])&&process[_0x2bccdc(0x200)](0x1);}}module[a0_0x481a4a(0x1d2)]=AuthCommands;
1
+ function a0_0x5da8(){const _0x1c3626=['/oauth/authorize','There\x20was\x20no\x20key\x20found,\x20why?','68289PAYvHb','48LawYCm','message','email','env','then','REMOTE_ID','greenBright','\x0aPlease\x20run\x20as\x20Administrator','exit','ENOENT','117533wCVZfh','searchParams','constructor','TOKEN_FILE_PATH','apply','EACCES','Logging\x20out...','Authorizing\x20application.\x20Opening\x20browser','../functions/auths','error','exports','5xICfUX','10990JXbJnb','2124NGJDmJ','Please,\x20enter\x20your\x20valid\x20email!','(((.+)+)+)+$','3022228OdTzFw','6bGsoyR','chalk','8388PcDdrR','\x20file\x0a\x0aUse\x20`cd\x20path/to/your/folder`\x20firstly,\x20then\x20try\x20again!','\x0aCan\x27t\x20find\x20','1307621peRMAb','/.mtkn.','start','../functions/globals','24XhqRlC','set','\x0aPlease\x20add\x20`sudo`\x20to\x20command','monotomic.key','clientid','success','win32','string','3110142QJxYHp','229023CzjXre','code','toString','path'];a0_0x5da8=function(){return _0x1c3626;};return a0_0x5da8();}const a0_0x3ffe29=a0_0x2498;(function(_0x251c91,_0x42d7e0){const _0x4c5bc9=a0_0x2498,_0x1c4bfb=_0x251c91();while(!![]){try{const _0x3e2911=parseInt(_0x4c5bc9(0x1b0))/0x1*(parseInt(_0x4c5bc9(0x18d))/0x2)+-parseInt(_0x4c5bc9(0x19f))/0x3*(-parseInt(_0x4c5bc9(0x196))/0x4)+parseInt(_0x4c5bc9(0x187))/0x5*(parseInt(_0x4c5bc9(0x19e))/0x6)+-parseInt(_0x4c5bc9(0x192))/0x7*(parseInt(_0x4c5bc9(0x1a6))/0x8)+parseInt(_0x4c5bc9(0x18f))/0x9*(parseInt(_0x4c5bc9(0x188))/0xa)+parseInt(_0x4c5bc9(0x18c))/0xb+parseInt(_0x4c5bc9(0x189))/0xc*(-parseInt(_0x4c5bc9(0x1a5))/0xd);if(_0x3e2911===_0x42d7e0)break;else _0x1c4bfb['push'](_0x1c4bfb['shift']());}catch(_0x5c7f92){_0x1c4bfb['push'](_0x1c4bfb['shift']());}}}(a0_0x5da8,0x8cf8b));const a0_0x5bb96c=(function(){let _0x2f8ad7=!![];return function(_0x2880ee,_0x4cdb89){const _0x1c8904=_0x2f8ad7?function(){const _0x25f3e0=a0_0x2498;if(_0x4cdb89){const _0x4c3824=_0x4cdb89[_0x25f3e0(0x1b4)](_0x2880ee,arguments);return _0x4cdb89=null,_0x4c3824;}}:function(){};return _0x2f8ad7=![],_0x1c8904;};}()),a0_0x4a222c=a0_0x5bb96c(this,function(){const _0x378c2e=a0_0x2498;return a0_0x4a222c[_0x378c2e(0x1a1)]()['search'](_0x378c2e(0x18b))[_0x378c2e(0x1a1)]()[_0x378c2e(0x1b2)](a0_0x4a222c)['search'](_0x378c2e(0x18b));});a0_0x4a222c();const path=require(a0_0x3ffe29(0x1a2)),chalk=require(a0_0x3ffe29(0x18e)),{createSpinner}=require('nanospinner'),{platform,homedir,tmpdir}=require('os'),{loginAccount}=require(a0_0x3ffe29(0x184)),{frames,readFile,storeUser,removeFile,CURRENT_DIR,validateEmail,openLinkInBrowser,M_WEBSITE,storeTokenKey}=require(a0_0x3ffe29(0x195));function AuthCommands(){return{'login':login,'logout':logout};}function logout(){const _0x194380=a0_0x3ffe29;try{const _0x1aab5a=createSpinner(_0x194380(0x182),{'frames':frames})[_0x194380(0x194)]();removeFile(homedir()+'/'+process[_0x194380(0x1a9)][_0x194380(0x1b3)]),removeFile(homedir()+_0x194380(0x193)+process[_0x194380(0x1a9)][_0x194380(0x1b3)]),_0x1aab5a[_0x194380(0x19b)]({'text':'Logged\x20out\x20on\x20'+chalk[_0x194380(0x1ac)](new Date())+'!'});}catch(_0x29a8d0){if(_0x29a8d0[_0x194380(0x1a0)]==_0x194380(0x181)&&platform()!=_0x194380(0x19c))console['error'](_0x194380(0x198));else console['error']('\x0aPlease\x20run\x20as\x20Administrator');if(_0x29a8d0[_0x194380(0x1a0)]=='ENOENT')process['exit'](0x1);else console[_0x194380(0x185)](_0x29a8d0[_0x194380(0x1a7)])&&process[_0x194380(0x1ae)](0x1);}}function a0_0x2498(_0x98b817,_0x52e779){const _0x46f011=a0_0x5da8();return a0_0x2498=function(_0x4a222c,_0x5bb96c){_0x4a222c=_0x4a222c-0x181;let _0x5da863=_0x46f011[_0x4a222c];return _0x5da863;},a0_0x2498(_0x98b817,_0x52e779);}function login(_0x1cbcac){const _0x176da0=a0_0x3ffe29;try{const _0x2ff46c={'type':'input','name':_0x176da0(0x1a8),'message':'Email:'};_0x1cbcac(_0x2ff46c)[_0x176da0(0x1aa)](_0x2815c1=>{const _0x5a1d7d=_0x176da0,{email:_0x26a842}=_0x2815c1,_0x2f6fa6=''+readFile(path['join'](CURRENT_DIR,'./monotomic.key')),_0x1ca472={'token':_0x2f6fa6,'email':_0x26a842},_0x432a6b=createSpinner('Logging\x20in...',{'frames':frames})['start']();!_0x2f6fa6&&(_0x432a6b['error']({'text':_0x5a1d7d(0x1a4)}),process[_0x5a1d7d(0x1ae)](0x1)),(!_0x26a842||!validateEmail(_0x26a842))&&(_0x432a6b[_0x5a1d7d(0x185)]({'text':_0x5a1d7d(0x18a)}),process[_0x5a1d7d(0x1ae)](0x1)),loginAccount(_0x1ca472,async(_0x3af9c4,_0x3a61c6)=>{const _0x407e9a=_0x5a1d7d;_0x3af9c4&&(_0x432a6b['error']({'text':_0x3af9c4[_0x407e9a(0x1a7)]}),process[_0x407e9a(0x1ae)](0x1));const {token:_0x30cf41,email:_0x5cbb25,login_remains:_0x15779a,vkey:_0x22fbac}=_0x3a61c6;storeUser(_0x30cf41,{'type':_0x407e9a(0x19d)}),storeTokenKey(_0x22fbac,{'type':_0x407e9a(0x19d)});if(_0x3a61c6){_0x432a6b[_0x407e9a(0x19b)]({'text':_0x407e9a(0x183)});const _0x468ac4=new URL(_0x407e9a(0x1a3),M_WEBSITE);_0x468ac4['searchParams'][_0x407e9a(0x197)](_0x407e9a(0x19a),process['env'][_0x407e9a(0x1ab)]),_0x468ac4[_0x407e9a(0x1b1)][_0x407e9a(0x197)](_0x407e9a(0x1a8),_0x5cbb25),openLinkInBrowser(_0x468ac4['href']);}});});}catch(_0x24b114){if(_0x24b114['code']==_0x176da0(0x181)&&platform()!=_0x176da0(0x19c))console[_0x176da0(0x185)]('\x0aPlease\x20add\x20`sudo`\x20to\x20command');else console[_0x176da0(0x185)](_0x176da0(0x1ad));if(_0x24b114[_0x176da0(0x1a0)]==_0x176da0(0x1af))console[_0x176da0(0x185)](_0x176da0(0x191)+chalk['green'](_0x176da0(0x199))+_0x176da0(0x190)),process[_0x176da0(0x1ae)](0x1);else console[_0x176da0(0x185)](_0x24b114[_0x176da0(0x1a7)])&&process[_0x176da0(0x1ae)](0x1);}}module[a0_0x3ffe29(0x186)]=AuthCommands;
@@ -1 +1 @@
1
- const a1_0x2fb700=a1_0x2b52;(function(_0x5e8f9e,_0x1c68a0){const _0x1de9bb=a1_0x2b52,_0x471875=_0x5e8f9e();while(!![]){try{const _0x4a4d29=parseInt(_0x1de9bb(0xc2))/0x1*(parseInt(_0x1de9bb(0xd3))/0x2)+-parseInt(_0x1de9bb(0xc7))/0x3+-parseInt(_0x1de9bb(0xc6))/0x4*(-parseInt(_0x1de9bb(0xcf))/0x5)+-parseInt(_0x1de9bb(0xd0))/0x6+parseInt(_0x1de9bb(0xc8))/0x7*(parseInt(_0x1de9bb(0xd4))/0x8)+parseInt(_0x1de9bb(0xcd))/0x9+-parseInt(_0x1de9bb(0xc5))/0xa;if(_0x4a4d29===_0x1c68a0)break;else _0x471875['push'](_0x471875['shift']());}catch(_0x198061){_0x471875['push'](_0x471875['shift']());}}}(a1_0x125e,0x89d28));function a1_0x2b52(_0x1310db,_0x44e464){const _0x41fb0b=a1_0x125e();return a1_0x2b52=function(_0x42349f,_0x11ae92){_0x42349f=_0x42349f-0xc2;let _0x125e3b=_0x41fb0b[_0x42349f];return _0x125e3b;},a1_0x2b52(_0x1310db,_0x44e464);}const a1_0x11ae92=(function(){let _0xd3e2ee=!![];return function(_0xac5897,_0x3f7965){const _0x10dba6=_0xd3e2ee?function(){const _0x4ee53a=a1_0x2b52;if(_0x3f7965){const _0x4713ce=_0x3f7965[_0x4ee53a(0xcb)](_0xac5897,arguments);return _0x3f7965=null,_0x4713ce;}}:function(){};return _0xd3e2ee=![],_0x10dba6;};}()),a1_0x42349f=a1_0x11ae92(this,function(){const _0x27bfeb=a1_0x2b52;return a1_0x42349f['toString']()[_0x27bfeb(0xd7)](_0x27bfeb(0xc4))['toString']()['constructor'](a1_0x42349f)['search'](_0x27bfeb(0xc4));});function a1_0x125e(){const _0x9612ca=['232920txqpzQ','then','(((.+)+)+)+$','12025840ILWcKL','49568Eudlpy','2564922eJdYdO','93989YpCJSd','message','../functions/globals','apply','All','7380666qJQOYH','../utils/jwtVerify','320LbfBfG','2300322gfgolo','list','../functions/cleaner','4UDnEIV','552GwCOMj','duplicate','cleaner','search'];a1_0x125e=function(){return _0x9612ca;};return a1_0x125e();}a1_0x42349f();const {cleanAll,cleanOnlyDuplicate}=require(a1_0x2fb700(0xd2)),{isEmptyObject,fetchmonoclaudeJSONSkeleton,readEmailsFileToArray}=require(a1_0x2fb700(0xca)),JwtVerify=require(a1_0x2fb700(0xce));function CleanerCommands(_0x42ed2d,_0x1e48e0){const _0x3069a3=a1_0x2fb700;JwtVerify(),fetchmonoclaudeJSONSkeleton();const _0x4f7b1d=readEmailsFileToArray(),{all:_0x43f868,duplicate:_0x1256f9}=_0x42ed2d['opts'](),_0x305f6b={'name':_0x3069a3(0xd6),'type':_0x3069a3(0xd1),'message':'Which\x20cleaner\x20would\x20you\x20use:\x20','choices':[_0x3069a3(0xcc),'Duplicate']};try{if(_0x43f868)return cleanAll(_0x4f7b1d);if(_0x1256f9)return cleanOnlyDuplicate(_0x4f7b1d);if(isEmptyObject(_0x42ed2d['opts']()))return _0x1e48e0(_0x305f6b)[_0x3069a3(0xc3)](_0x1cd14c=>{const _0x2cbea0=_0x3069a3,_0x3d683c=_0x1cd14c[_0x2cbea0(0xd6)]['toLowerCase']();if(_0x3d683c==='all')return cleanAll(_0x4f7b1d);if(_0x3d683c===_0x2cbea0(0xd5))return cleanOnlyDuplicate(_0x4f7b1d);});}catch(_0xba7e9e){console['error'](_0xba7e9e[_0x3069a3(0xc9)]),process['exit'](0x1);}}module['exports']=CleanerCommands;
1
+ const a1_0x3ec88b=a1_0x43a6;(function(_0x41a210,_0x31657a){const _0x54181c=a1_0x43a6,_0xb82997=_0x41a210();while(!![]){try{const _0x1331a2=parseInt(_0x54181c(0x92))/0x1*(-parseInt(_0x54181c(0x7b))/0x2)+-parseInt(_0x54181c(0x93))/0x3*(parseInt(_0x54181c(0x86))/0x4)+-parseInt(_0x54181c(0x7a))/0x5+-parseInt(_0x54181c(0x82))/0x6*(parseInt(_0x54181c(0x77))/0x7)+parseInt(_0x54181c(0x76))/0x8*(parseInt(_0x54181c(0x8d))/0x9)+-parseInt(_0x54181c(0x73))/0xa*(-parseInt(_0x54181c(0x74))/0xb)+parseInt(_0x54181c(0x85))/0xc*(parseInt(_0x54181c(0x79))/0xd);if(_0x1331a2===_0x31657a)break;else _0xb82997['push'](_0xb82997['shift']());}catch(_0x1bfc4f){_0xb82997['push'](_0xb82997['shift']());}}}(a1_0x1879,0xe7890));function a1_0x1879(){const _0x3b888d=['37197gnuVqo','message','../utils/jwtVerify','search','constructor','86lRfzKr','12300mVnneT','Which\x20cleaner\x20would\x20you\x20use:\x20','14590ZpSjrt','10142qnKCIX','exports','3544mMdqZE','2438079sOrxIz','error','6838zfPjFQ','7738640BtuiqA','41070DBNWnY','duplicate','all','apply','toString','cleaner','Duplicate','6CspDtq','then','(((.+)+)+)+$','74532wBImMx','1788GYurde','All','opts','exit','../functions/globals','list','../functions/cleaner'];a1_0x1879=function(){return _0x3b888d;};return a1_0x1879();}const a1_0xa84839=(function(){let _0x4942d7=!![];return function(_0x4006df,_0x4c7916){const _0xe84a49=_0x4942d7?function(){const _0x232f0c=a1_0x43a6;if(_0x4c7916){const _0x5c33b1=_0x4c7916[_0x232f0c(0x7e)](_0x4006df,arguments);return _0x4c7916=null,_0x5c33b1;}}:function(){};return _0x4942d7=![],_0xe84a49;};}()),a1_0x253f65=a1_0xa84839(this,function(){const _0x429bfd=a1_0x43a6;return a1_0x253f65['toString']()[_0x429bfd(0x90)](_0x429bfd(0x84))[_0x429bfd(0x7f)]()[_0x429bfd(0x91)](a1_0x253f65)[_0x429bfd(0x90)](_0x429bfd(0x84));});function a1_0x43a6(_0x5c69e4,_0x36783c){const _0x5061d=a1_0x1879();return a1_0x43a6=function(_0x253f65,_0xa84839){_0x253f65=_0x253f65-0x73;let _0x18796c=_0x5061d[_0x253f65];return _0x18796c;},a1_0x43a6(_0x5c69e4,_0x36783c);}a1_0x253f65();const {cleanAll,cleanOnlyDuplicate}=require(a1_0x3ec88b(0x8c)),{isEmptyObject,fetchmonoclaudeJSONSkeleton,readEmailsFileToArray}=require(a1_0x3ec88b(0x8a)),JwtVerify=require(a1_0x3ec88b(0x8f));function CleanerCommands(_0x300704,_0x53b6c9){const _0x11e0aa=a1_0x3ec88b;JwtVerify(),fetchmonoclaudeJSONSkeleton();const _0x57c0be=readEmailsFileToArray(),{all:_0x15df74,duplicate:_0x107f34}=_0x300704[_0x11e0aa(0x88)](),_0xbbbd73={'name':_0x11e0aa(0x80),'type':_0x11e0aa(0x8b),'message':_0x11e0aa(0x94),'choices':[_0x11e0aa(0x87),_0x11e0aa(0x81)]};try{if(_0x15df74)return cleanAll(_0x57c0be);if(_0x107f34)return cleanOnlyDuplicate(_0x57c0be);if(isEmptyObject(_0x300704['opts']()))return _0x53b6c9(_0xbbbd73)[_0x11e0aa(0x83)](_0x4363cf=>{const _0x326c2c=_0x11e0aa,_0x381a83=_0x4363cf['cleaner']['toLowerCase']();if(_0x381a83===_0x326c2c(0x7d))return cleanAll(_0x57c0be);if(_0x381a83===_0x326c2c(0x7c))return cleanOnlyDuplicate(_0x57c0be);});}catch(_0x29fc13){console[_0x11e0aa(0x78)](_0x29fc13[_0x11e0aa(0x8e)]),process[_0x11e0aa(0x89)](0x1);}}module[a1_0x3ec88b(0x75)]=CleanerCommands;