├── .gitignore ├── App.config ├── ClashNet.csproj ├── ClashNet.sln ├── ClashNet_TemporaryKey.pfx ├── LICENSE ├── MainForm.Designer.cs ├── MainForm.cs ├── MainForm.resx ├── MyThread.cs ├── Program.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── README.md ├── clash.exe ├── dashboard ├── 7.a322784ecacd704a28c6.js ├── CNAME ├── app.83f6698cbf7891b130e2.css ├── app.99489dd938c57b6c22da.js ├── core-js~app.b0e192aa2040bbc66d02.js ├── index.html ├── proxies.9022775a13e050c1509f.css ├── proxies.993826afdebb153e0805.js ├── react~app.6097406f382313d294e3.js ├── report.html ├── rules.1fba3c440f97fe0e3bb1.css ├── rules.6f76e629fb04fefe588a.js ├── runtime~app.dc7b6d94c7fe054b4bce.js ├── vendors~chartjs.429cb8fa2f4d9b575993.js ├── yacd-128.png ├── yacd-64.png └── yacd.ico ├── icon.ico ├── logo.ico ├── packages.config └── sysproxy.exe /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs/ 2 | Backup/ 3 | bin/ 4 | obj/ 5 | ClashNet.csproj.user 6 | 7 | shadowsocks-csharp/3rd/* 8 | packages/* -------------------------------------------------------------------------------- /App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ClashNet.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Debug 10 | AnyCPU 11 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC} 12 | WinExe 13 | ClashNet 14 | ClashNet 15 | v4.7.2 16 | 512 17 | true 18 | true 19 | false 20 | 21 | 22 | publish\ 23 | true 24 | Disk 25 | false 26 | Foreground 27 | 7 28 | Days 29 | false 30 | false 31 | true 32 | true 33 | 0 34 | 1.0.0.%2a 35 | false 36 | true 37 | 38 | 39 | x64 40 | true 41 | full 42 | false 43 | bin\Debug\ 44 | DEBUG;TRACE 45 | prompt 46 | 4 47 | false 48 | 49 | 50 | AnyCPU 51 | pdbonly 52 | true 53 | bin\Release\ 54 | TRACE 55 | prompt 56 | 4 57 | 58 | 59 | true 60 | bin\x64\Debug\ 61 | DEBUG;TRACE 62 | full 63 | x64 64 | prompt 65 | MinimumRecommendedRules.ruleset 66 | 67 | 68 | bin\x64\Release\ 69 | TRACE 70 | true 71 | pdbonly 72 | x64 73 | prompt 74 | MinimumRecommendedRules.ruleset 75 | true 76 | 77 | 78 | true 79 | bin\x86\Debug\ 80 | DEBUG;TRACE 81 | full 82 | x86 83 | prompt 84 | MinimumRecommendedRules.ruleset 85 | 86 | 87 | bin\x86\Release\ 88 | TRACE 89 | true 90 | pdbonly 91 | x86 92 | prompt 93 | MinimumRecommendedRules.ruleset 94 | true 95 | 96 | 97 | icon.ico 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | Form 115 | 116 | 117 | MainForm.cs 118 | 119 | 120 | 121 | 122 | 123 | MainForm.cs 124 | 125 | 126 | ResXFileCodeGenerator 127 | Resources.Designer.cs 128 | Designer 129 | 130 | 131 | True 132 | Resources.resx 133 | 134 | 135 | Always 136 | 137 | 138 | 139 | SettingsSingleFileGenerator 140 | Settings.Designer.cs 141 | 142 | 143 | True 144 | Settings.settings 145 | True 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | PreserveNewest 157 | 158 | 159 | Always 160 | 161 | 162 | Always 163 | 164 | 165 | Always 166 | 167 | 168 | Always 169 | 170 | 171 | Always 172 | 173 | 174 | Always 175 | 176 | 177 | Always 178 | 179 | 180 | Always 181 | 182 | 183 | Always 184 | 185 | 186 | Always 187 | 188 | 189 | Always 190 | 191 | 192 | Always 193 | 194 | 195 | Always 196 | 197 | 198 | Always 199 | 200 | 201 | Always 202 | 203 | 204 | Always 205 | 206 | 207 | 208 | Always 209 | 210 | 211 | 212 | 213 | False 214 | Microsoft .NET Framework 4.7.2 %28x86 和 x64%29 215 | true 216 | 217 | 218 | False 219 | .NET Framework 3.5 SP1 220 | false 221 | 222 | 223 | 224 | 225 | 226 | 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | -------------------------------------------------------------------------------- /ClashNet.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29201.188 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClashNet", "ClashNet.csproj", "{1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|x64.ActiveCfg = Debug|x64 21 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|x64.Build.0 = Debug|x64 22 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|x86.ActiveCfg = Debug|x86 23 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Debug|x86.Build.0 = Debug|x86 24 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|x64.ActiveCfg = Release|x64 27 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|x64.Build.0 = Release|x64 28 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|x86.ActiveCfg = Release|x86 29 | {1C7F05D8-0BC0-4DA1-91FB-BE292292EBEC}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {7974D5BD-13D9-4B6A-AEA2-EB068DC1C8C9} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /ClashNet_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderbean/ClashNet/dccc669c8b47d77d3328571223845284bed5e42c/ClashNet_TemporaryKey.pfx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /MainForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace ClashNet 2 | { 3 | partial class MainForm 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows 窗体设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要修改 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); 32 | this.SuspendLayout(); 33 | // 34 | // MainForm 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.ClientSize = new System.Drawing.Size(800, 450); 39 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 40 | this.MaximizeBox = false; 41 | this.Name = "MainForm"; 42 | this.Opacity = 0D; 43 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 44 | this.Text = "ClashNet"; 45 | this.Load += new System.EventHandler(this.MainFormLoad); 46 | this.ResumeLayout(false); 47 | 48 | } 49 | 50 | #endregion 51 | } 52 | } 53 | 54 | -------------------------------------------------------------------------------- /MainForm.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.Diagnostics; 4 | using System.Threading; 5 | using System.Windows.Forms; 6 | using CefSharp; 7 | using CefSharp.WinForms; 8 | 9 | namespace ClashNet 10 | { 11 | public partial class MainForm : Form 12 | { 13 | //这里在窗体上没有拖拽一个NotifyIcon控件,而是在这里定义了一个变量   14 | private NotifyIcon notifyIcon = null; 15 | private Process proc = null; 16 | 17 | public ChromiumWebBrowser browser; 18 | public void InitBrowser() 19 | { 20 | Cef.Initialize(new CefSettings()); 21 | 22 | browser = new ChromiumWebBrowser(System.IO.Directory.GetCurrentDirectory() + @"\dashboard\index.html"); 23 | this.Controls.Add(browser); 24 | browser.Dock = DockStyle.Fill; 25 | } 26 | 27 | public MainForm() 28 | { 29 | InitializeComponent(); 30 | InitBrowser(); 31 | //调用初始化托盘显示函数   32 | InitialTray(); 33 | this.InitClash(); 34 | this.SetProxy(); 35 | } 36 | 37 | private void SetProxy() 38 | { 39 | string args = @"global 127.0.0.1:7890 localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*;"; 40 | Process p = new Process 41 | { 42 | StartInfo = new ProcessStartInfo 43 | { 44 | FileName = @".\sysproxy.exe", 45 | Arguments = args, 46 | UseShellExecute = false, 47 | RedirectStandardOutput = true, 48 | CreateNoWindow = true 49 | } 50 | }; 51 | p.Start(); 52 | } 53 | 54 | private void UnSetProxy() 55 | { 56 | string args = @"set 1 - - -"; 57 | Process p = new Process 58 | { 59 | StartInfo = new ProcessStartInfo 60 | { 61 | FileName = @".\sysproxy.exe", 62 | Arguments = args, 63 | UseShellExecute = false, 64 | RedirectStandardOutput = true, 65 | CreateNoWindow = true 66 | } 67 | }; 68 | p.Start(); 69 | } 70 | 71 | 72 | private void MainFormLoad(object sender, EventArgs e) 73 | { 74 | //这里写其他代码   75 | this.BeginInvoke(new Action(() => { 76 | this.Hide(); 77 | this.Opacity = 1; 78 | })); 79 | } 80 | 81 | ///    82 |  /// 窗体关闭的单击事件   83 |  ///    84 |  ///    85 |   ///    86 | private void Form1_FormClosing(object sender, FormClosingEventArgs e) 87 | { 88 | e.Cancel = true; 89 | //通过这里可以看出,这里的关闭其实不是真正意义上的“关闭”,而是将窗体隐藏,实现一个“伪关闭”   90 | this.Hide(); 91 | } 92 | 93 | private void InitClash() 94 | { 95 | //Process[] ps = Process.GetProcessesByName("clash.exe"); 96 | //if (ps.Length > 0) 97 | //{ 98 | // proc = ps[0]; 99 | // return; 100 | //} 101 | string dir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\.config\clash"; 102 | proc = new Process 103 | { 104 | StartInfo = new ProcessStartInfo 105 | { 106 | FileName = @".\clash.exe", 107 | Arguments = @"-d "+ dir, 108 | UseShellExecute = false, 109 | RedirectStandardOutput = true, 110 | CreateNoWindow = true 111 | } 112 | }; 113 | proc.Start(); 114 | MyThread myThread = new MyThread(proc, notifyIcon); 115 | 116 | Thread thread = new Thread(myThread.ThreadMain); 117 | thread.Start(); 118 | 119 | } 120 | 121 | private void InitialTray() 122 | { 123 | //隐藏主窗体   124 | this.Hide(); 125 | 126 | //实例化一个NotifyIcon对象   127 | notifyIcon = new NotifyIcon(); 128 | //托盘图标气泡显示的内容   129 | notifyIcon.BalloonTipText = "ClashNet 正在后台运行"; 130 | notifyIcon.BalloonTipTitle = "ClashNet"; 131 | //托盘图标显示的内容   132 | notifyIcon.Text = "ClashNet"; 133 | 134 | System.Reflection.Assembly assembly = GetType().Assembly; 135 | using (System.IO.Stream streamSmall = assembly.GetManifestResourceStream("ClashNet.logo.ico")) 136 | { 137 | //注意:下面的路径可以是绝对路径、相对路径。但是需要注意的是:文件必须是一个.ico格式   138 | notifyIcon.Icon = new System.Drawing.Icon(streamSmall); 139 | } 140 | //true表示在托盘区可见,false表示在托盘区不可见   141 | notifyIcon.Visible = true; 142 | //气泡显示的时间(单位是毫秒)   143 | notifyIcon.ShowBalloonTip(2000); 144 | notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseClick); 145 | 146 | ////设置二级菜单   147 | //MenuItem setting1 = new MenuItem("二级菜单1");   148 | //MenuItem setting2 = new MenuItem("二级菜单2");   149 | //MenuItem setting = new MenuItem("一级菜单", new MenuItem[]{setting1,setting2});   150 | 151 | //关于选项   152 | MenuItem about = new MenuItem(@"关于和帮助"); 153 | about.Click += new EventHandler(about_Click); 154 | //退出菜单项   155 | MenuItem exit = new MenuItem("退出"); 156 | exit.Click += new EventHandler(exit_Click); 157 | 158 | ////关联托盘控件   159 | //注释的这一行与下一行的区别就是参数不同,setting这个参数是为了实现二级菜单   160 | //MenuItem[] childen = new MenuItem[] { setting, help, about, exit };   161 | MenuItem[] childen = new MenuItem[] { about, exit }; 162 | notifyIcon.ContextMenu = new ContextMenu(childen); 163 | 164 | //窗体关闭时触发   165 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); 166 | } 167 | 168 | ///    169 |         /// 鼠标单击   170 |         ///    171 |         ///    172 |         ///    173 | private void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) 174 | { 175 | //鼠标左键单击   176 | if (e.Button == MouseButtons.Left) 177 | { 178 | //如果窗体是可见的,那么鼠标左击托盘区图标后,窗体为不可见   179 | if (this.Visible == true) 180 | { 181 | this.Visible = false; 182 | } 183 | else 184 | { 185 | this.Visible = true; 186 | this.Activate(); 187 | } 188 | } 189 | } 190 | 191 | ///    192 |  /// 退出选项   193 |    ///    194 |   ///    195 |     ///    196 | private void exit_Click(object sender, EventArgs e) 197 | { 198 | this.UnSetProxy(); 199 | //退出程序   200 | notifyIcon.Dispose(); 201 | 202 | if (proc != null && !proc.HasExited) 203 | { 204 | proc.Kill(); 205 | proc.WaitForExit();//关键,等待外部程序退出后才能往下执行 206 | } 207 | System.Environment.Exit(0); 208 | } 209 | 210 | private void about_Click(object sender, EventArgs e) 211 | { 212 | System.Diagnostics.Process.Start("https://github.com/coderbean/ClashNet"); 213 | } 214 | } 215 | }  -------------------------------------------------------------------------------- /MainForm.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | 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 444 | 445 | 446 | -------------------------------------------------------------------------------- /MyThread.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows.Forms; 8 | 9 | namespace ClashNet 10 | { 11 | class MyThread 12 | { 13 | private Process process; 14 | private NotifyIcon notifyIcon; 15 | 16 | public MyThread(Process process, NotifyIcon notifyIcon) 17 | { 18 | this.process = process; 19 | this.notifyIcon = notifyIcon; 20 | } 21 | 22 | public void ThreadMain() 23 | { 24 | // 这里需要起一个新的线程来做这件事,不然程序就死在这里了 25 | while (!process.HasExited && !process.StandardOutput.EndOfStream) 26 | { 27 | string line = process.StandardOutput.ReadLine(); 28 | // do something with line 29 | Console.WriteLine(line); 30 | } 31 | if(process.ExitCode!=0) 32 | { 33 | notifyIcon.BalloonTipText = "Clash 启动失败,请查看错误日志"; 34 | notifyIcon.ShowBalloonTip(2000); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace ClashNet 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// 应用程序的主入口点。 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new MainForm()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("ClashNet")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ClashNet")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("1c7f05d8-0bc0-4da1-91fb-be292292ebec")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 33 | //通过使用 "*",如下所示: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本: 4.0.30319.42000 5 | // 6 | // 对此文件的更改可能导致不正确的行为,如果 7 | // 重新生成代码,则所做更改将丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ClashNet.Properties 12 | { 13 | 14 | 15 | /// 16 | /// 强类型资源类,用于查找本地化字符串等。 17 | /// 18 | // 此类是由 StronglyTypedResourceBuilder 19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 20 | // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen 21 | // (以 /str 作为命令选项),或重新生成 VS 项目。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// 返回此类使用的缓存 ResourceManager 实例。 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ClashNet.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// 覆盖当前线程的 CurrentUICulture 属性 56 | /// 使用此强类型的资源类的资源查找。 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ClashNet.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ClashNet 2 | Another Windows GUI for Clash 3 | 4 | **.NET Framwork 4.7.2+ required** 5 | 6 | # Quick Start 7 | 1. download at [this page](https://github.com/coderbean/ClashNet/releases) 8 | 2. unzip 9 | 3. create dir `C:\Users\{user_name}\.config\clash` 10 | 4. put your `config.yaml` in the dir 11 | 5. double click `ClashNet.exe` to start 12 | 6. enjoy! 13 | 14 | # Config 15 | Checkout [Clash](https://github.com/Dreamacro/clash) or [SS-Rule-Snippet0](https://github.com/Hackl0us/SS-Rule-Snippet/blob/master/LAZY_RULES/clash.yml) for Clash for config details. 16 | 17 | # License 18 | [GLPv3](https://github.com/coderbean/ClashNet/blob/master/LICENSE) 19 | # Open Source Components / Libraries 20 | ``` 21 | shadowsocks-windows(GPLv3) https://github.com/shadowsocks/shadowsocks-windows 22 | clash(MIT) https://github.com/Dreamacro/clash 23 | yacd https://github.com/haishanh/yacd 24 | ``` 25 | 26 | # TODO 27 | - [ ] redirect log to log file -------------------------------------------------------------------------------- /clash.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderbean/ClashNet/dccc669c8b47d77d3328571223845284bed5e42c/clash.exe -------------------------------------------------------------------------------- /dashboard/7.a322784ecacd704a28c6.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"6PXS":function(t,e,n){"use strict";(function(t){n.d(e,"a",function(){return i}),n.d(e,"d",function(){return s}),n.d(e,"c",function(){return a}),n.d(e,"b",function(){return l});var r=n("9AQC"),o=n("wCA9");function i(t,e,n){if(e in t){var r=t[e],o=n(r);if("function"==typeof o)try{o.prototype=o.prototype||{},Object.defineProperties(o,{__sentry__:{enumerable:!1,value:!0},__sentry_original__:{enumerable:!1,value:r},__sentry_wrapped__:{enumerable:!1,value:o}})}catch(t){}t[e]=o}}function s(t){return Object.keys(t).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])}).join("&")}function c(t){return function(t){return~-encodeURI(t).split(/%..|./).length}(JSON.stringify(t))}function a(t,e,n){void 0===e&&(e=3),void 0===n&&(n=102400);var r=l(t,e);return c(r)>n?a(t,e-1,n):r}function u(e,n){return"domain"===n&&"object"==typeof e&&e._events?"[Domain]":"domainEmitter"===n?"[DomainEmitter]":void 0!==t&&e===t?"[Global]":"undefined"!=typeof window&&e===window?"[Window]":"undefined"!=typeof document&&e===document?"[Document]":"undefined"!=typeof Event&&e instanceof Event?Object.getPrototypeOf(e)?e.constructor.name:"Event":Object(r.i)(e)?"[SyntheticEvent]":Number.isNaN(e)?"[NaN]":void 0===e?"[undefined]":"function"==typeof e?"[Function: "+(e.name||"")+"]":e}function p(t,e,n,i){if(void 0===n&&(n=1/0),void 0===i&&(i=new o.a),0===n)return function(t){var e=Object.prototype.toString.call(t);if("string"==typeof t)return t;if("[object Object]"===e)return"[Object]";if("[object Array]"===e)return"[Array]";var n=u(t);return Object(r.f)(n)?n:e}(e);if(null!=e&&"function"==typeof e.toJSON)return e.toJSON();var s=u(e,t);if(Object(r.f)(s))return s;var c=Object(r.c)(e)?function(t){var e={message:t.message,name:t.name,stack:t.stack};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}(e):e,a=Array.isArray(e)?[]:{};if(i.memoize(e))return"[Circular ~]";for(var l in c)Object.prototype.hasOwnProperty.call(c,l)&&(a[l]=p(l,c[l],n-1,i));return i.unmemoize(e),a}function l(t,e){try{return JSON.parse(JSON.stringify(t,function(t,n){return p(t,n,e)}))}catch(t){return"**non-serializable**"}}}).call(this,n("yLpj"))},"8LbN":function(t,e,n){"use strict";n.d(e,"a",function(){return c});var r=n("9/Zf"),o=Object(r.e)(),i="Sentry Logger ",s=function(){function t(){this._enabled=!1}return t.prototype.disable=function(){this._enabled=!1},t.prototype.enable=function(){this._enabled=!0},t.prototype.log=function(){for(var t=[],e=0;e1)for(var n=1;n"}return t.event_id||""}function p(t){var e=s();if(!("console"in e))return t();var n=e.console,r={};["debug","info","warn","error","log","assert"].forEach(function(t){t in e.console&&n[t].__sentry__&&(r[t]=n[t].__sentry_wrapped__,n[t]=n[t].__sentry_original__)});var o=t();return Object.keys(r).forEach(function(t){n[t]=r[t]}),o}function l(t,e,n,r){void 0===r&&(r={handled:!0,type:"generic"}),t.exception=t.exception||{},t.exception.values=t.exception.values||[],t.exception.values[0]=t.exception.values[0]||{},t.exception.values[0].value=t.exception.values[0].value||e||"",t.exception.values[0].type=t.exception.values[0].type||n||"Error",t.exception.values[0].mechanism=t.exception.values[0].mechanism||r}}).call(this,n("8oxB"),n("yLpj"))},"9AQC":function(t,e,n){"use strict";function r(t){switch(Object.prototype.toString.call(t)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return t instanceof Error}}function o(t){return"[object ErrorEvent]"===Object.prototype.toString.call(t)}function i(t){return"[object DOMError]"===Object.prototype.toString.call(t)}function s(t){return"[object DOMException]"===Object.prototype.toString.call(t)}function c(t){return"[object String]"===Object.prototype.toString.call(t)}function a(t){return null===t||"object"!=typeof t&&"function"!=typeof t}function u(t){return"[object Object]"===Object.prototype.toString.call(t)}function p(t){return"[object RegExp]"===Object.prototype.toString.call(t)}function l(t){return Boolean(t&&t.then&&"function"==typeof t.then)}function f(t){return u(t)&&"nativeEvent"in t&&"preventDefault"in t&&"stopPropagation"in t}n.d(e,"c",function(){return r}),n.d(e,"d",function(){return o}),n.d(e,"a",function(){return i}),n.d(e,"b",function(){return s}),n.d(e,"h",function(){return c}),n.d(e,"f",function(){return a}),n.d(e,"e",function(){return u}),n.d(e,"g",function(){return p}),n.d(e,"j",function(){return l}),n.d(e,"i",function(){return f})},HR75:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var r,o=n("9AQC");!function(t){t.PENDING="PENDING",t.RESOLVED="RESOLVED",t.REJECTED="REJECTED"}(r||(r={}));var i=function(){function t(t){var e=this;this._state=r.PENDING,this._handlers=[],this._resolve=function(t){e._setResult(t,r.RESOLVED)},this._reject=function(t){e._setResult(t,r.REJECTED)},this._setResult=function(t,n){e._state===r.PENDING&&(Object(o.j)(t)?t.then(e._resolve,e._reject):(e._value=t,e._state=n,e._executeHandlers()))},this._executeHandlers=function(){e._state!==r.PENDING&&(e._state===r.REJECTED?e._handlers.forEach(function(t){return t.onFail&&t.onFail(e._value)}):e._handlers.forEach(function(t){return t.onSuccess&&t.onSuccess(e._value)}),e._handlers=[])},this._attachHandler=function(t){e._handlers=e._handlers.concat(t),e._executeHandlers()};try{t(this._resolve,this._reject)}catch(t){this._reject(t)}}return t.prototype.then=function(e,n){var r=this;return new t(function(t,o){r._attachHandler({onFail:function(e){if(n)try{return void t(n(e))}catch(t){return void o(t)}else o(e)},onSuccess:function(n){if(e)try{return void t(e(n))}catch(t){return void o(t)}else t(n)}})})},t.prototype.catch=function(t){return this.then(function(t){return t},t)},t.prototype.toString=function(){return"[object SyncPromise]"},t.resolve=function(e){return new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t}()},KjyA:function(t,e,n){"use strict";n.d(e,"a",function(){return u}),n.d(e,"b",function(){return l});var r=n("mrSG"),o=n("HR75"),i=n("9AQC"),s=n("6PXS"),c=n("9/Zf"),a=n("YGy+"),u=function(){function t(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._user={},this._tags={},this._extra={},this._context={}}return t.prototype.addScopeListener=function(t){this._scopeListeners.push(t)},t.prototype.addEventProcessor=function(t){return this._eventProcessors.push(t),this},t.prototype._notifyScopeListeners=function(){var t=this;this._notifyingListeners||(this._notifyingListeners=!0,setTimeout(function(){t._scopeListeners.forEach(function(e){e(t)}),t._notifyingListeners=!1}))},t.prototype._notifyEventProcessors=function(t,e,n,s){var c=this;return void 0===s&&(s=0),new o.a(function(o,a){var u=t[s];if(null===e||"function"!=typeof u)o(e);else{var p=u(r.a({},e),n);Object(i.j)(p)?p.then(function(e){return c._notifyEventProcessors(t,e,n,s+1).then(o)}).catch(a):c._notifyEventProcessors(t,p,n,s+1).then(o).catch(a)}})},t.prototype.setUser=function(t){return this._user=Object(s.b)(t),this._notifyScopeListeners(),this},t.prototype.setTags=function(t){return this._tags=r.a({},this._tags,Object(s.b)(t)),this._notifyScopeListeners(),this},t.prototype.setTag=function(t,e){var n;return this._tags=r.a({},this._tags,((n={})[t]=Object(s.b)(e),n)),this._notifyScopeListeners(),this},t.prototype.setExtras=function(t){return this._extra=r.a({},this._extra,Object(s.b)(t)),this._notifyScopeListeners(),this},t.prototype.setExtra=function(t,e){var n;return this._extra=r.a({},this._extra,((n={})[t]=Object(s.b)(e),n)),this._notifyScopeListeners(),this},t.prototype.setFingerprint=function(t){return this._fingerprint=Object(s.b)(t),this._notifyScopeListeners(),this},t.prototype.setLevel=function(t){return this._level=Object(s.b)(t),this._notifyScopeListeners(),this},t.prototype.setTransaction=function(t){return this._transaction=t,this._notifyScopeListeners(),this},t.prototype.setContext=function(t,e){return this._context[t]=e?Object(s.b)(e):void 0,this._notifyScopeListeners(),this},t.prototype.setSpan=function(t){return this._span=t,this._notifyScopeListeners(),this},t.prototype.startSpan=function(t){var e=new a.a;return e.setParent(t),this.setSpan(e),e},t.prototype.getSpan=function(){return this._span},t.clone=function(e){var n=new t;return Object.assign(n,e,{_scopeListeners:[]}),e&&(n._breadcrumbs=r.d(e._breadcrumbs),n._tags=r.a({},e._tags),n._extra=r.a({},e._extra),n._context=r.a({},e._context),n._user=e._user,n._level=e._level,n._span=e._span,n._transaction=e._transaction,n._fingerprint=e._fingerprint,n._eventProcessors=r.d(e._eventProcessors)),n},t.prototype.clear=function(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._context={},this._level=void 0,this._transaction=void 0,this._fingerprint=void 0,this._span=void 0,this._notifyScopeListeners(),this},t.prototype.addBreadcrumb=function(t,e){var n=(new Date).getTime()/1e3,o=r.a({timestamp:n},t);return this._breadcrumbs=void 0!==e&&e>=0?r.d(this._breadcrumbs,[Object(s.b)(o)]).slice(-e):r.d(this._breadcrumbs,[Object(s.b)(o)]),this._notifyScopeListeners(),this},t.prototype.clearBreadcrumbs=function(){return this._breadcrumbs=[],this._notifyScopeListeners(),this},t.prototype._applyFingerprint=function(t){t.fingerprint=t.fingerprint?Array.isArray(t.fingerprint)?t.fingerprint:[t.fingerprint]:[],this._fingerprint&&(t.fingerprint=t.fingerprint.concat(this._fingerprint)),t.fingerprint&&!t.fingerprint.length&&delete t.fingerprint},t.prototype.applyToEvent=function(t,e){return this._extra&&Object.keys(this._extra).length&&(t.extra=r.a({},this._extra,t.extra)),this._tags&&Object.keys(this._tags).length&&(t.tags=r.a({},this._tags,t.tags)),this._user&&Object.keys(this._user).length&&(t.user=r.a({},this._user,t.user)),this._context&&Object.keys(this._context).length&&(t.contexts=r.a({},this._context,t.contexts)),this._level&&(t.level=this._level),this._transaction&&(t.transaction=this._transaction),this._span&&(t.contexts=t.contexts||{},t.contexts.trace=this._span),this._applyFingerprint(t),t.breadcrumbs=r.d(t.breadcrumbs||[],this._breadcrumbs),t.breadcrumbs=t.breadcrumbs.length>0?t.breadcrumbs:void 0,this._notifyEventProcessors(r.d(p(),this._eventProcessors),t,e)},t}();function p(){var t=Object(c.e)();return t.__SENTRY__=t.__SENTRY__||{},t.__SENTRY__.globalEventProcessors=t.__SENTRY__.globalEventProcessors||[],t.__SENTRY__.globalEventProcessors}function l(t){p().push(t)}},WSEr:function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"FunctionToString",function(){return _t}),n.d(r,"InboundFilters",function(){return gt});var o={};n.r(o),n.d(o,"GlobalHandlers",function(){return Pt}),n.d(o,"TryCatch",function(){return Tt}),n.d(o,"Breadcrumbs",function(){return Ct}),n.d(o,"LinkedErrors",function(){return Ut}),n.d(o,"UserAgent",function(){return Bt});var i={};n.r(i),n.d(i,"BaseTransport",function(){return at}),n.d(i,"FetchTransport",function(){return pt}),n.d(i,"XHRTransport",function(){return lt});var s,c,a=n("mrSG");!function(t){t.Fatal="fatal",t.Error="error",t.Warning="warning",t.Log="log",t.Info="info",t.Debug="debug",t.Critical="critical"}(s||(s={})),function(t){t.fromString=function(e){switch(e){case"debug":return t.Debug;case"info":return t.Info;case"warn":case"warning":return t.Warning;case"error":return t.Error;case"fatal":return t.Fatal;case"critical":return t.Critical;case"log":default:return t.Log}}}(s||(s={})),function(t){t.Unknown="unknown",t.Skipped="skipped",t.Success="success",t.RateLimit="rate_limit",t.Invalid="invalid",t.Failed="failed"}(c||(c={})),function(t){t.fromHttpCode=function(e){return e>=200&&e<300?t.Success:429===e?t.RateLimit:e>=400&&e<500?t.Invalid:e>=500?t.Failed:t.Unknown}}(c||(c={}));var u=n("KjyA"),p=n("lW6c");function l(t){for(var e=[],n=1;n1&&(l=h.slice(0,-1).join("/"),f=h.pop()),Object.assign(this,{host:c,pass:s,path:l,projectId:f,port:p,protocol:r,user:o})},t.prototype._fromComponents=function(t){this.protocol=t.protocol,this.user=t.user,this.pass=t.pass||"",this.host=t.host,this.port=t.port||"",this.path=t.path||"",this.projectId=t.projectId},t.prototype._validate=function(){var t=this;if(["protocol","user","host","projectId"].forEach(function(e){if(!t[e])throw new k("Invalid Dsn")}),"http"!==this.protocol&&"https"!==this.protocol)throw new k("Invalid Dsn");if(this.port&&Number.isNaN(parseInt(this.port,10)))throw new k("Invalid Dsn")},t}(),I=function(){function t(t){this.dsn=t,this._dsnObject=new R(t)}return t.prototype.getDsn=function(){return this._dsnObject},t.prototype.getStoreEndpoint=function(){return""+this._getBaseUrl()+this.getStoreEndpointPath()},t.prototype.getStoreEndpointWithUrlEncodedAuth=function(){var t={sentry_key:this._dsnObject.user,sentry_version:"7"};return this.getStoreEndpoint()+"?"+Object(w.d)(t)},t.prototype._getBaseUrl=function(){var t=this._dsnObject,e=t.protocol?t.protocol+":":"",n=t.port?":"+t.port:"";return e+"//"+t.host+n},t.prototype.getStoreEndpointPath=function(){var t=this._dsnObject;return(t.path?"/"+t.path:"")+"/api/"+t.projectId+"/store/"},t.prototype.getRequestHeaders=function(t,e){var n=this._dsnObject,r=["Sentry sentry_version=7"];return r.push("sentry_timestamp="+(new Date).getTime()),r.push("sentry_client="+t+"/"+e),r.push("sentry_key="+n.user),n.pass&&r.push("sentry_secret="+n.pass),{"Content-Type":"application/json","X-Sentry-Auth":r.join(", ")}},t.prototype.getReportDialogEndpoint=function(t){void 0===t&&(t={});var e=this._dsnObject,n=this._getBaseUrl()+(e.path?"/"+e.path:"")+"/api/embed/error-page/",r=[];for(var o in r.push("dsn="+e.toString()),t)if("user"===o){if(!t.user)continue;t.user.name&&r.push("name="+encodeURIComponent(t.user.name)),t.user.email&&r.push("email="+encodeURIComponent(t.user.email))}else r.push(encodeURIComponent(o)+"="+encodeURIComponent(t[o]));return r.length?n+"?"+r.join("&"):n},t}(),N=n("8LbN"),C=n("9AQC");function L(t,e){return void 0===e&&(e=0),"string"!=typeof t||0===e?t:t.length<=e?t:t.substr(0,e)+"..."}function P(t,e){if(!Array.isArray(t))return"";for(var n=[],r=0;r=e)return L(t[0],e);for(var n=t.length;n>0;n--){var r=t.slice(0,n).join(", ");if(!(r.length>e))return n===t.length?r:L(r,e)}return""}function F(t,e){return Object(C.g)(e)?e.test(t):"string"==typeof e&&t.includes(e)}var U=n("9/Zf"),A=n("HR75"),B=[];function H(t){var e={};return function(t){var e=t.defaultIntegrations&&a.d(t.defaultIntegrations)||[],n=t.integrations,r=[];if(Array.isArray(n)){var o=n.map(function(t){return t.name}),i=[];e.forEach(function(t){-1===o.indexOf(t.name)&&-1===i.indexOf(t.name)&&(r.push(t),i.push(t.name))}),n.forEach(function(t){-1===i.indexOf(t.name)&&(r.push(t),i.push(t.name))})}else{if("function"!=typeof n)return a.d(e);r=n(e),r=Array.isArray(r)?r:[r]}return r}(t).forEach(function(t){e[t.name]=t,function(t){-1===B.indexOf(t.name)&&(t.setupOnce(u.b,p.b),B.push(t.name),N.a.log("Integration installed: "+t.name))}(t)}),e}var M=function(){function t(t,e){this._processing=!1,this._backend=new t(e),this._options=e,e.dsn&&(this._dsn=new R(e.dsn)),this._integrations=H(this._options)}return t.prototype.captureException=function(t,e,n){var r=this,o=e&&e.event_id;return this._processing=!0,this._getBackend().eventFromException(t,e).then(function(t){return r._processEvent(t,e,n)}).then(function(t){o=t&&t.event_id,r._processing=!1}).catch(function(t){N.a.error(t),r._processing=!1}),o},t.prototype.captureMessage=function(t,e,n,r){var o=this,i=n&&n.event_id;return this._processing=!0,(Object(C.f)(t)?this._getBackend().eventFromMessage(""+t,e,n):this._getBackend().eventFromException(t,n)).then(function(t){return o._processEvent(t,n,r)}).then(function(t){i=t&&t.event_id,o._processing=!1}).catch(function(t){N.a.error(t),o._processing=!1}),i},t.prototype.captureEvent=function(t,e,n){var r=this,o=e&&e.event_id;return this._processing=!0,this._processEvent(t,e,n).then(function(t){o=t&&t.event_id,r._processing=!1}).catch(function(t){N.a.error(t),r._processing=!1}),o},t.prototype.getDsn=function(){return this._dsn},t.prototype.getOptions=function(){return this._options},t.prototype.flush=function(t){var e=this;return this._isClientProcessing(t).then(function(n){return clearInterval(n.interval),e._getBackend().getTransport().close(t).then(function(t){return n.ready&&t})})},t.prototype.close=function(t){var e=this;return this.flush(t).then(function(t){return e.getOptions().enabled=!1,t})},t.prototype.getIntegrations=function(){return this._integrations||{}},t.prototype.getIntegration=function(t){try{return this._integrations[t.id]||null}catch(e){return N.a.warn("Cannot retrieve integration "+t.id+" from the current Client"),null}},t.prototype._isClientProcessing=function(t){var e=this;return new Promise(function(n){var r=0,o=0;clearInterval(o),o=setInterval(function(){e._processing?(r+=1,t&&r>=t&&n({interval:o,ready:!1})):n({interval:o,ready:!0})},1)})},t.prototype._getBackend=function(){return this._backend},t.prototype._isEnabled=function(){return!1!==this.getOptions().enabled&&void 0!==this._dsn},t.prototype._prepareEvent=function(t,e,n){var r=this.getOptions(),o=r.environment,i=r.release,s=r.dist,c=r.maxValueLength,u=void 0===c?250:c,p=a.a({},t);void 0===p.environment&&void 0!==o&&(p.environment=o),void 0===p.release&&void 0!==i&&(p.release=i),void 0===p.dist&&void 0!==s&&(p.dist=s),p.message&&(p.message=L(p.message,u));var l=p.exception&&p.exception.values&&p.exception.values[0];l&&l.value&&(l.value=L(l.value,u));var f=p.request;f&&f.url&&(f.url=L(f.url,u)),void 0===p.event_id&&(p.event_id=Object(U.g)()),this._addIntegrations(p.sdk);var h=A.a.resolve(p);return e&&(h=e.applyToEvent(p,n)),h},t.prototype._addIntegrations=function(t){var e=Object.keys(this._integrations);t&&e.length>0&&(t.integrations=e)},t.prototype._processEvent=function(t,e,n){var r=this,o=this.getOptions(),i=o.beforeSend,s=o.sampleRate;return this._isEnabled()?"number"==typeof s&&Math.random()>s?A.a.reject("This event has been sampled, will not send event."):new A.a(function(o,s){r._prepareEvent(t,n,e).then(function(t){if(null!==t){var n=t;try{if(e&&e.data&&!0===e.data.__sentry__||!i)return r._getBackend().sendEvent(n),void o(n);var c=i(t,e);if(void 0===c)N.a.error("`beforeSend` method has to return `null` or a valid event.");else if(Object(C.j)(c))r._handleAsyncBeforeSend(c,o,s);else{if(null===(n=c))return N.a.log("`beforeSend` returned `null`, will not send event."),void o(null);r._getBackend().sendEvent(n),o(n)}}catch(t){r.captureException(t,{data:{__sentry__:!0},originalException:t}),s("`beforeSend` throw an error, will not send event.")}}else s("An event processor returned null, will not send event.")})}):A.a.reject("SDK not enabled, will not send event.")},t.prototype._handleAsyncBeforeSend=function(t,e,n){var r=this;t.then(function(t){null!==t?(r._getBackend().sendEvent(t),e(t)):n("`beforeSend` returned `null`, will not send event.")}).catch(function(t){n("beforeSend rejected with "+t)})},t}(),W=function(){function t(){}return t.prototype.sendEvent=function(t){return Promise.resolve({reason:"NoopTransport: Event has been skipped because no Dsn is configured.",status:c.Skipped})},t.prototype.close=function(t){return Promise.resolve(!0)},t}(),Y=function(){function t(t){this._options=t,this._options.dsn||N.a.warn("No DSN provided, backend will not do anything."),this._transport=this._setupTransport()}return t.prototype._setupTransport=function(){return new W},t.prototype.eventFromException=function(t,e){throw new k("Backend has to implement `eventFromException` method")},t.prototype.eventFromMessage=function(t,e,n){throw new k("Backend has to implement `eventFromMessage` method")},t.prototype.sendEvent=function(t){this._transport.sendEvent(t).catch(function(t){N.a.error("Error while sending event: "+t)})},t.prototype.getTransport=function(){return this._transport},t}();function G(){if(!("fetch"in Object(U.e)()))return!1;try{return new Headers,new Request(""),new Response,!0}catch(t){return!1}}function q(){if(!G())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch(t){return!1}} 2 | /** 3 | * TraceKit - Cross brower stack traces 4 | * 5 | * This was originally forked from github.com/occ/TraceKit, but has since been 6 | * largely modified and is now maintained as part of Sentry JS SDK. 7 | * 8 | * NOTE: Last merge with upstream repository 9 | * Jul 11,2018 - #f03357c 10 | * 11 | * https://github.com/csnover/TraceKit 12 | * @license MIT 13 | * @namespace TraceKit 14 | */ 15 | var J=Object(U.e)(),$={_report:!1,_collectWindowErrors:!1,_computeStackTrace:!1,_linesOfContext:!1},X="?",z=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;function V(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Z(){return"undefined"==typeof document||null==document.location?"":document.location.href}$._report=function(){var t,e,n=[],r=null,o=null;function i(t,e,r){var o=null;if(!e||$._collectWindowErrors){for(var i in n)if(V(n,i))try{n[i](t,e,r)}catch(t){o=t}if(o)throw o}}function s(e,n,r,s,c){var p=null;if(c=Object(C.d)(c)?c.error:c,e=Object(C.d)(e)?e.message:e,o)$._computeStackTrace._augmentStackTraceWithInitialElement(o,n,r,e),u();else if(c&&Object(C.c)(c))(p=$._computeStackTrace(c)).mechanism="onerror",i(p,!0,c);else{var l,f={url:n,line:r,column:s},h=e;if("[object String]"==={}.toString.call(e)){var d=e.match(z);d&&(l=d[1],h=d[2])}f.func=X,f.context=null,i(p={name:l,message:h,mode:"onerror",mechanism:"onerror",stack:[a.a({},f,{url:f.url||Z()})]},!0,null)}return!!t&&t.apply(this,arguments)}function c(t){var e=t&&(t.detail?t.detail.reason:t.reason)||t,n=$._computeStackTrace(e);n.mechanism="onunhandledrejection",n.message||(n.message=JSON.stringify(Object(w.b)(e))),i(n,!0,e)}function u(){var t=o,e=r;o=null,r=null,i(t,!1,e)}function p(t){if(o){if(r===t)return;u()}var e=$._computeStackTrace(t);throw o=e,r=t,setTimeout(function(){r===t&&u()},e.incomplete?2e3:0),t}return p._subscribe=function(t){n.push(t)},p._installGlobalHandler=function(){!0!==e&&(t=J.onerror,J.onerror=s,e=!0)},p._installGlobalUnhandledRejectionHandler=function(){J.onunhandledrejection=c},p}(),$._computeStackTrace=function(){function t(t){if(!t||!t.stack)return null;for(var e,n,r,o=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,i=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i,s=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,c=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,a=/\((\S*)(?::(\d+))(?::(\d+))\)/,u=t.stack.split("\n"),p=[],l=/^(.*) is undefined$/.exec(t.message),f=0,h=u.length;f eval")>-1&&(e=c.exec(n[3]))?(n[1]=n[1]||"eval",n[3]=e[1],n[4]=e[2],n[5]=""):0!==f||n[5]||void 0===t.columnNumber||(p[0].column=t.columnNumber+1),r={url:n[3],func:n[1]||X,args:n[2]?n[2].split(","):[],line:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}!r.func&&r.line&&(r.func=X),r.context=null,p.push(r)}return p.length?(p[0]&&p[0].line&&!p[0].column&&l&&(p[0].column=null),{mode:"stack",name:t.name,message:t.message,stack:p}):null}function e(t,e,n,r){var o={url:e,line:n};if(o.url&&o.line){if(t.incomplete=!1,o.func||(o.func=X),o.context||(o.context=null),/ '([^']+)' /.exec(r)&&(o.column=null),t.stack.length>0&&t.stack[0].url===o.url){if(t.stack[0].line===o.line)return!1;if(!t.stack[0].line&&t.stack[0].func===o.func)return t.stack[0].line=o.line,t.stack[0].context=o.context,!1}return t.stack.unshift(o),t.partial=!0,!0}return t.incomplete=!0,!1}function n(t,r){for(var o,i,s=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],a={},u=!1,p=n.caller;p&&!u;p=p.caller)if(p!==et&&p!==$._report){if(i={url:null,func:X,args:[],line:null,column:null},p.name?i.func=p.name:(o=s.exec(p.toString()))&&(i.func=o[1]),void 0===i.func)try{i.func=o.input.substring(0,o.input.indexOf("{"))}catch(t){}a[""+p]?u=!0:a[""+p]=!0,c.push(i)}r&&c.splice(0,r);var l={mode:"callers",name:t.name,message:t.message,stack:c};return e(l,t.sourceURL||t.fileName,t.line||t.lineNumber,t.message||t.description),l}function r(e,r){var o=null;r=null==r?0:+r;try{if(o=function(t){var e=t.stacktrace;if(e){for(var n,r=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,o=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,i=e.split("\n"),s=[],c=0;c0&&n(!1)},t);Promise.all(e._buffer).then(function(){clearTimeout(r),n(!0)}).catch(function(){n(!0)})})},t}(),at=function(){function t(t){this.options=t,this._buffer=new ct(30),this.url=new I(this.options.dsn).getStoreEndpointWithUrlEncodedAuth()}return t.prototype.sendEvent=function(t){throw new k("Transport Class has to implement `sendEvent` method")},t.prototype.close=function(t){return this._buffer.drain(t)},t}(),ut=Object(U.e)(),pt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.b(e,t),e.prototype.sendEvent=function(t){var e={body:JSON.stringify(t),method:"POST",referrerPolicy:q()?"origin":""};return this._buffer.add(ut.fetch(this.url,e).then(function(t){return{status:c.fromHttpCode(t.status)}}))},e}(at),lt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.b(e,t),e.prototype.sendEvent=function(t){var e=this;return this._buffer.add(new Promise(function(n,r){var o=new XMLHttpRequest;o.onreadystatechange=function(){4===o.readyState&&(200===o.status&&n({status:c.fromHttpCode(o.status)}),r(o))},o.open("POST",e.url),o.send(JSON.stringify(t))}))},e}(at),ft=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.b(e,t),e.prototype._setupTransport=function(){if(!this._options.dsn)return t.prototype._setupTransport.call(this);var e=a.a({},this._options.transportOptions,{dsn:this._options.dsn});return this._options.transport?new this._options.transport(e):G()?new pt(e):new lt(e)},e.prototype.eventFromException=function(t,e){var n,r=this;if(Object(C.d)(t)&&t.error)return t=t.error,n=ot(et(t)),A.a.resolve(this._buildEvent(n,e));if(Object(C.a)(t)||Object(C.b)(t)){var o=t,i=o.name||(Object(C.a)(o)?"DOMError":"DOMException"),c=o.message?i+": "+o.message:i;return this.eventFromMessage(c,s.Error,e).then(function(t){return Object(U.a)(t,c),A.a.resolve(r._buildEvent(t,e))})}if(Object(C.c)(t))return n=ot(et(t)),A.a.resolve(this._buildEvent(n,e));if(Object(C.e)(t)&&e&&e.syntheticException)return n=function(t,e){var n=Object.keys(t).sort(),r={extra:{__serialized__:Object(w.c)(t)},message:"Non-Error exception captured with keys: "+D(n)};if(e){var o=it(et(e).stack);r.stacktrace={frames:o}}return r}(t,e.syntheticException),Object(U.a)(n,"Custom Object",void 0,{handled:!0,synthetic:!0,type:"generic"}),n.level=s.Error,A.a.resolve(this._buildEvent(n,e));var a=t;return this.eventFromMessage(a,void 0,e).then(function(t){return Object(U.a)(t,""+a,void 0,{handled:!0,synthetic:!0,type:"generic"}),t.level=s.Error,A.a.resolve(r._buildEvent(t,e))})},e.prototype._buildEvent=function(t,e){return a.a({},t,{event_id:e&&e.event_id})},e.prototype.eventFromMessage=function(t,e,n){void 0===e&&(e=s.Info);var r={event_id:n&&n.event_id,level:e,message:t};if(this._options.attachStacktrace&&n&&n.syntheticException){var o=it(et(n.syntheticException).stack);r.stacktrace={frames:o}}return A.a.resolve(r)},e}(Y),ht="sentry.javascript.browser",dt=function(t){function e(e){return void 0===e&&(e={}),t.call(this,ft,e)||this}return a.b(e,t),e.prototype._prepareEvent=function(e,n,r){return e.platform=e.platform||"javascript",e.sdk=a.a({},e.sdk,{name:ht,packages:a.d(e.sdk&&e.sdk.packages||[],[{name:"npm:@sentry/browser",version:"5.5.0"}]),version:"5.5.0"}),t.prototype._prepareEvent.call(this,e,n,r)},e.prototype.showReportDialog=function(t){void 0===t&&(t={});var e=Object(U.e)().document;if(e)if(this._isEnabled()){var n=t.dsn||this.getDsn();if(t.eventId)if(n){var r=e.createElement("script");r.async=!0,r.src=new I(n).getReportDialogEndpoint(t),t.onLoad&&(r.onload=t.onLoad),(e.head||e.body).appendChild(r)}else N.a.error("Missing `Dsn` option in showReportDialog call");else N.a.error("Missing `eventId` option in showReportDialog call")}else N.a.error("Trying to call showReportDialog with Sentry Client is disabled")},e}(M),_t=function(){function t(){this.name=t.id}return t.prototype.setupOnce=function(){st=Function.prototype.toString,Function.prototype.toString=function(){for(var t=[],e=0;e"}0!==e.length&&Object(p.b)().addBreadcrumb({category:"ui."+t,message:e},{event:n,name:t})};jt&&clearTimeout(jt),e?jt=setTimeout(r):r()}}}function wt(){return function(t){var e;try{e=t.target}catch(t){return}var n=e&&e.tagName;n&&("INPUT"===n||"TEXTAREA"===n||e.isContentEditable)&&(yt||St("input")(t),clearTimeout(yt),yt=setTimeout(function(){yt=void 0},bt))}}function xt(t){for(var e,n=t,r=[],o=0,i=0,s=" > ".length;n&&o++<5&&!("html"===(e=kt(n))||o>1&&i+r.length*s+e.length>=80);)r.push(e),i+=e.length,n=n.parentNode;return r.reverse().join(" > ")}function kt(t){var e,n,r,o,i,s=[];if(!t||!t.tagName)return"";if(s.push(t.tagName.toLowerCase()),t.id&&s.push("#"+t.id),(e=t.className)&&Object(C.h)(e))for(n=e.split(/\s+/),i=0;i"}catch(t){return""}}var It,Nt=Object(U.e)(),Ct=function(){function t(e){this.name=t.id,this._options=a.a({console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0},e)}return t.prototype._instrumentConsole=function(){"console"in Nt&&["debug","info","warn","error","log","assert"].forEach(function(e){e in Nt.console&&Object(w.a)(Nt.console,e,function(n){return function(){for(var r=[],o=0;o2?e[2]:void 0;return r&&s(It,String(r)),t.apply(this,e)}}},t.prototype._instrumentXHR=function(){if("XMLHttpRequest"in Nt){var e=XMLHttpRequest.prototype;Object(w.a)(e,"open",function(t){return function(){for(var e=[],n=0;n"},handled:!0,type:"instrument"}})})}(t,o)}),"onreadystatechange"in o&&"function"==typeof o.onreadystatechange?Object(w.a)(o,"onreadystatechange",function(t){return Ot(t,{mechanism:{data:{function:"onreadystatechange",handler:t&&t.name||""},handled:!0,type:"instrument"}},i)}):o.onreadystatechange=i,e.apply(this,n)}})}},t.addBreadcrumb=function(e,n){Object(p.b)().getIntegration(t)&&Object(p.b)().addBreadcrumb(e,n)},t.prototype.setupOnce=function(){this._options.console&&this._instrumentConsole(),this._options.dom&&this._instrumentDOM(),this._options.xhr&&this._instrumentXHR(),this._options.fetch&&this._instrumentFetch(),this._options.history&&this._instrumentHistory()},t.id="Breadcrumbs",t}();function Lt(t){try{var e=JSON.parse(t);Ct.addBreadcrumb({category:"sentry",event_id:e.event_id,level:e.level||s.fromString("error"),message:Object(U.d)(e)},{event:e})}catch(t){N.a.error("Error while adding sentry type breadcrumb")}}var Pt=function(){function t(e){this.name=t.id,this._options=a.a({onerror:!0,onunhandledrejection:!0},e)}return t.prototype.setupOnce=function(){Error.stackTraceLimit=50,K(function(e,n,r){if(!(Et>0)){var o=Object(p.b)().getIntegration(t);o&&Object(p.b)().captureEvent(o._eventFromGlobalHandler(e),{data:{stack:e},originalException:r})}}),this._options.onerror&&(N.a.log("Global Handler attached: onerror"),Q()),this._options.onunhandledrejection&&(N.a.log("Global Handler attached: onunhandledrejection"),tt())},t.prototype._eventFromGlobalHandler=function(t){if(!Object(C.h)(t.message)&&"onunhandledrejection"!==t.mechanism){var e=t.message;t.message=e.error&&Object(C.h)(e.error.message)?e.error.message:"No error message"}var n=ot(t),r={mode:t.mode};t.message&&(r.message=t.message),t.name&&(r.name=t.name);var o=Object(p.b)().getClient(),i=o&&o.getOptions().maxValueLength||250,s=t.original?L(JSON.stringify(Object(w.b)(t.original)),i):"",c="onunhandledrejection"===t.mechanism?"UnhandledRejection":"Error";return Object(U.a)(n,s,c,{data:r,handled:!1,type:t.mechanism}),n},t.id="GlobalHandlers",t}(),Dt="cause",Ft=5,Ut=function(){function t(e){void 0===e&&(e={}),this.name=t.id,this._key=e.key||Dt,this._limit=e.limit||Ft}return t.prototype.setupOnce=function(){Object(u.b)(function(e,n){var r=Object(p.b)().getIntegration(t);return r?r._handler(e,n):e})},t.prototype._handler=function(t,e){if(!(t.exception&&t.exception.values&&e&&e.originalException instanceof Error))return t;var n=this._walkErrorTree(e.originalException,this._key);return t.exception.values=a.d(n,t.exception.values),t},t.prototype._walkErrorTree=function(t,e,n){if(void 0===n&&(n=[]),!(t[e]instanceof Error)||n.length+1>=this._limit)return n;var r=rt(et(t[e]));return this._walkErrorTree(t[e],e,a.d([r],n))},t.id="LinkedErrors",t}(),At=Object(U.e)(),Bt=function(){function t(){this.name=t.id}return t.prototype.setupOnce=function(){Object(u.b)(function(e){if(Object(p.b)().getIntegration(t)){if(!At.navigator||!At.location)return e;var n=e.request||{};return n.url=n.url||At.location.href,n.headers=n.headers||{},n.headers["User-Agent"]=At.navigator.userAgent,a.a({},e,{request:n})}return e})},t.id="UserAgent",t}(),Ht=[new r.InboundFilters,new r.FunctionToString,new Tt,new Ct,new Pt,new Ut,new Bt];function Mt(t){if(void 0===t&&(t={}),void 0===t.defaultIntegrations&&(t.defaultIntegrations=Ht),void 0===t.release){var e=Object(U.e)();e.SENTRY_RELEASE&&e.SENTRY_RELEASE.id&&(t.release=e.SENTRY_RELEASE.id)}!function(t,e){!0===e.debug&&N.a.enable(),Object(p.b)().bindClient(new t(e))}(dt,t)}function Wt(t){void 0===t&&(t={}),t.eventId||(t.eventId=Object(p.b)().lastEventId());var e=Object(p.b)().getClient();e&&e.showReportDialog(t)}function Yt(){return Object(p.b)().lastEventId()}function Gt(){}function qt(t){t()}function Jt(t){var e=Object(p.b)().getClient();return e?e.flush(t):Promise.reject(!1)}function $t(t){var e=Object(p.b)().getClient();return e?e.close(t):Promise.reject(!1)}function Xt(t){Ot(t)()}n.d(e,"Integrations",function(){return Zt}),n.d(e,"Severity",function(){return s}),n.d(e,"Status",function(){return c}),n.d(e,"addGlobalEventProcessor",function(){return u.b}),n.d(e,"addBreadcrumb",function(){return v}),n.d(e,"captureException",function(){return f}),n.d(e,"captureEvent",function(){return d}),n.d(e,"captureMessage",function(){return h}),n.d(e,"configureScope",function(){return _}),n.d(e,"getHubFromCarrier",function(){return p.c}),n.d(e,"getCurrentHub",function(){return p.b}),n.d(e,"Hub",function(){return p.a}),n.d(e,"Scope",function(){return u.a}),n.d(e,"setContext",function(){return g}),n.d(e,"setExtra",function(){return b}),n.d(e,"setExtras",function(){return y}),n.d(e,"setTag",function(){return E}),n.d(e,"setTags",function(){return m}),n.d(e,"setUser",function(){return O}),n.d(e,"Span",function(){return S.a}),n.d(e,"withScope",function(){return j}),n.d(e,"BrowserClient",function(){return dt}),n.d(e,"defaultIntegrations",function(){return Ht}),n.d(e,"forceLoad",function(){return Gt}),n.d(e,"init",function(){return Mt}),n.d(e,"lastEventId",function(){return Yt}),n.d(e,"onLoad",function(){return qt}),n.d(e,"showReportDialog",function(){return Wt}),n.d(e,"flush",function(){return Jt}),n.d(e,"close",function(){return $t}),n.d(e,"wrap",function(){return Xt}),n.d(e,"SDK_NAME",function(){return ht}),n.d(e,"SDK_VERSION",function(){return"5.5.0"}),n.d(e,"Transports",function(){return i});var zt={},Vt=Object(U.e)();Vt.Sentry&&Vt.Sentry.Integrations&&(zt=Vt.Sentry.Integrations);var Zt=a.a({},zt,r,o)},"YGy+":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var r=n("9/Zf"),o=/^[ \t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \t]*$/,i=function(){function t(t,e,n,o){void 0===t&&(t=Object(r.g)()),void 0===e&&(e=Object(r.g)().substring(16)),this._traceId=t,this._spanId=e,this._sampled=n,this._parent=o}return t.prototype.setParent=function(t){return this._parent=t,this},t.prototype.setSampled=function(t){return this._sampled=t,this},t.fromTraceparent=function(e){var n=e.match(o);if(n){var r=void 0;"1"===n[3]?r=!0:"0"===n[3]&&(r=!1);var i=new t(n[1],n[2],r);return new t(n[1],void 0,r,i)}},t.prototype.toTraceparent=function(){var t="";return!0===this._sampled?t="-1":!1===this._sampled&&(t="-0"),this._traceId+"-"+this._spanId+t},t.prototype.toJSON=function(){return{parent:this._parent&&this._parent.toJSON()||void 0,sampled:this._sampled,span_id:this._spanId,trace_id:this._traceId}},t}()},lW6c:function(t,e,n){"use strict";(function(t){n.d(e,"a",function(){return a}),n.d(e,"b",function(){return l}),n.d(e,"c",function(){return h});var r=n("mrSG"),o=n("9/Zf"),i=n("8LbN"),s=n("KjyA"),c=3,a=function(){function t(t,e,n){void 0===e&&(e=new s.a),void 0===n&&(n=c),this._version=n,this._stack=[],this._stack.push({client:t,scope:e})}return t.prototype._invokeClient=function(t){for(var e,n=[],o=1;o0?t[t.length-1].scope:void 0,n=s.a.clone(e);return this.getStack().push({client:this.getClient(),scope:n}),n},t.prototype.popScope=function(){return void 0!==this.getStack().pop()},t.prototype.withScope=function(t){var e=this.pushScope();try{t(e)}finally{this.popScope()}},t.prototype.getClient=function(){return this.getStackTop().client},t.prototype.getScope=function(){return this.getStackTop().scope},t.prototype.getStack=function(){return this._stack},t.prototype.getStackTop=function(){return this._stack[this._stack.length-1]},t.prototype.captureException=function(t,e){var n=this._lastEventId=Object(o.g)(),i=e;if(!e){var s=void 0;try{throw new Error("Sentry syntheticException")}catch(t){s=t}i={originalException:t,syntheticException:s}}return this._invokeClient("captureException",t,r.a({},i,{event_id:n})),n},t.prototype.captureMessage=function(t,e,n){var i=this._lastEventId=Object(o.g)(),s=n;if(!n){var c=void 0;try{throw new Error(t)}catch(t){c=t}s={originalException:t,syntheticException:c}}return this._invokeClient("captureMessage",t,e,r.a({},s,{event_id:i})),i},t.prototype.captureEvent=function(t,e){var n=this._lastEventId=Object(o.g)();return this._invokeClient("captureEvent",t,r.a({},e,{event_id:n})),n},t.prototype.lastEventId=function(){return this._lastEventId},t.prototype.addBreadcrumb=function(t,e){var n=this.getStackTop();if(n.scope&&n.client){var i=n.client.getOptions&&n.client.getOptions()||{},s=i.beforeBreadcrumb,c=void 0===s?null:s,a=i.maxBreadcrumbs,u=void 0===a?30:a;if(!(u<=0)){var p=(new Date).getTime()/1e3,l=r.a({timestamp:p},t),f=c?Object(o.b)(function(){return c(l,e)}):l;null!==f&&n.scope.addBreadcrumb(f,Math.min(u,100))}}},t.prototype.setUser=function(t){var e=this.getStackTop();e.scope&&e.scope.setUser(t)},t.prototype.setTags=function(t){var e=this.getStackTop();e.scope&&e.scope.setTags(t)},t.prototype.setExtras=function(t){var e=this.getStackTop();e.scope&&e.scope.setExtras(t)},t.prototype.setTag=function(t,e){var n=this.getStackTop();n.scope&&n.scope.setTag(t,e)},t.prototype.setExtra=function(t,e){var n=this.getStackTop();n.scope&&n.scope.setExtra(t,e)},t.prototype.setContext=function(t,e){var n=this.getStackTop();n.scope&&n.scope.setContext(t,e)},t.prototype.configureScope=function(t){var e=this.getStackTop();e.scope&&e.client&&t(e.scope)},t.prototype.run=function(t){var e=p(this);try{t(this)}finally{p(e)}},t.prototype.getIntegration=function(t){var e=this.getClient();if(!e)return null;try{return e.getIntegration(t)}catch(e){return i.a.warn("Cannot retrieve integration "+t.id+" from the current Hub"),null}},t.prototype.traceHeaders=function(){var t=this.getStackTop();if(t.scope&&t.client){var e=t.scope.getSpan();if(e)return{"sentry-trace":e.toTraceparent()}}return{}},t}();function u(){var t=Object(o.e)();return t.__SENTRY__=t.__SENTRY__||{hub:void 0},t}function p(t){var e=u(),n=h(e);return d(e,t),n}function l(){var e=u();f(e)&&!h(e).isOlderThan(c)||d(e,new a);try{var n=Object(o.c)(t,"domain").active;if(!n)return h(e);if(!f(n)||h(n).isOlderThan(c)){var r=h(e).getStackTop();d(n,new a(r.client,s.a.clone(r.scope)))}return h(n)}catch(t){return h(e)}}function f(t){return!!(t&&t.__SENTRY__&&t.__SENTRY__.hub)}function h(t){return t&&t.__SENTRY__&&t.__SENTRY__.hub?t.__SENTRY__.hub:(t.__SENTRY__=t.__SENTRY__||{},t.__SENTRY__.hub=new a,t.__SENTRY__.hub)}function d(t,e){return!!t&&(t.__SENTRY__=t.__SENTRY__||{},t.__SENTRY__.hub=e,!0)}}).call(this,n("3UD+")(t))},mrSG:function(t,e,n){"use strict";n.d(e,"b",function(){return o}),n.d(e,"a",function(){return i}),n.d(e,"c",function(){return s}),n.d(e,"d",function(){return c}); 16 | /*! ***************************************************************************** 17 | Copyright (c) Microsoft Corporation. All rights reserved. 18 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 19 | this file except in compliance with the License. You may obtain a copy of the 20 | License at http://www.apache.org/licenses/LICENSE-2.0 21 | 22 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 23 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 24 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 25 | MERCHANTABLITY OR NON-INFRINGEMENT. 26 | 27 | See the Apache Version 2.0 License for specific language governing permissions 28 | and limitations under the License. 29 | ***************************************************************************** */ 30 | var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function o(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0)&&!(r=i.next()).done;)s.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function c(){for(var t=[],e=0;ediv{width:360px}.lF_ZoyIdZN{padding:10px 40px 40px}.VduFBb2hWX{padding:0 40px}.VduFBb2hWX>div{border-top:1px dashed #373737}._2NQoBOQcGA{padding:16px 0} 16 | .ctrHyq7uir{position:fixed;top:0;right:0;left:0;bottom:0;background:#444;z-index:1024}._17mHpKiOUD{outline:none;position:absolute;color:#ddd;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:#444;padding:20px;border-radius:10px} 17 | ._1r-KsYFNaj{position:relative;padding:10px 0}._1r-KsYFNaj input{-webkit-appearance:none;background-color:initial;background-image:none;border:none;border-radius:0;border-bottom:1px solid var(--color-input-border);box-sizing:border-box;color:#c1c1c1;display:inline-block;font-size:inherit;height:40px;outline:none;padding:0 8px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}._1r-KsYFNaj input:focus{border-color:var(--color-focus-blue)}._1r-KsYFNaj label{position:absolute;left:8px;bottom:22px;-webkit-transition:-webkit-transform .15s ease-in-out;transition:-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out;transition:transform .15s ease-in-out,-webkit-transform .15s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}._1r-KsYFNaj input:focus+label,._1r-KsYFNaj label.Hn6h5kxOg7{-webkit-transform:scale(.75) translateY(-25px);transform:scale(.75) translateY(-25px)}._1r-KsYFNaj input:focus+label{color:var(--color-focus-blue)} 18 | ._3hz7LVhvUv:focus{outline:none}._3HF-KB9mgO{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center}._3HF-KB9mgO ._3HzgPICn91{color:#2d2d30;opacity:.4;-webkit-transition:opacity .4s;transition:opacity .4s}._3HF-KB9mgO ._3HzgPICn91:hover{opacity:.7}._1wpZuvoD5I{padding:30px 0 10px}.L7jTy-EFJ2{display:-webkit-box;display:flex}.L7jTy-EFJ2 div{-webkit-box-flex:1;flex:1 1 auto}.L7jTy-EFJ2 div:nth-child(2){-webkit-box-flex:0;flex-grow:0;flex-basis:120px;margin-left:10px}._2fehqRU9GV{padding:30px 0 10px;display:-webkit-box;display:flex;-webkit-box-pack:end;justify-content:flex-end;-webkit-box-align:center;align-items:center} 19 | ._3D3ZNp4oBz{background:none;position:fixed;top:0;bottom:0;left:0;right:0;-webkit-transform:none;transform:none;padding:0;border-radius:0}.tgH3yv-xGR{position:absolute;top:10%;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%);max-width:376px;margin:0 auto}._3MMuzHtwZL{background:#222} 20 | @font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:local("Roboto Mono"),local("RobotoMono-Regular"),url(https://cdn.jsdelivr.net/npm/@hsjs/fonts@0.0.1/robotomono/v5/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.border-bottom,.border-left,.border-top{position:relative}.border-top:before{top:0}.border-bottom:after,.border-top:before{position:absolute;content:"";height:1px;width:100%;-webkit-transform:scaleY(.5) translateZ(0);transform:scaleY(.5) translateZ(0);left:0;right:0;background:#555}.border-bottom:after{bottom:0}.border-left:before{position:absolute;content:"";height:100%;width:1px;-webkit-transform:scaleX(.5) translateZ(0);transform:scaleX(.5) translateZ(0);top:0;bottom:0;background:#555;left:0}*,:after,:before{box-sizing:border-box}:root{--font-mono:"Roboto Mono",Menlo,monospace;--color-focus-blue:#1a73e8}body{font-family:Merriweather Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,PingFang SC,Microsoft YaHei,微软雅黑;margin:0;padding:0}body,body.dark{--color-background:#202020;--color-text:#ddd;--color-text-secondary:#ccc;--color-bg-sidebar:#2d2d30;--color-sb-active-row-bg:#494b4e;--color-input-bg:#2d2d30;--color-input-border:#3f3f3f;--color-toggle-bg:#353535;--color-toggle-selected:#181818;--color-icon:#c7c7c7;--color-btn-bg:#232323;--color-btn-fg:#bebebe;--color-bg-proxy-selected:#303030}body.light{--color-background:#fbfbfb;--color-text:#222;--color-text-secondary:#646464;--color-bg-sidebar:#e7e7e7;--color-sb-active-row-bg:#d0d0d0;--color-input-bg:#fff;--color-input-border:silver;--color-toggle-bg:#fff;--color-toggle-selected:#d7d7d7;--color-icon:#5b5b5b;--color-btn-bg:#f4f4f4;--color-btn-fg:#101010;--color-bg-proxy-selected:#cfcfcf} 21 | ._35EMVy62Je{display:-webkit-box;display:flex;background:var(--color-background);color:var(--color-text);min-height:300px;height:100vh}@media (max-width:768px){._35EMVy62Je{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}}.AwL8oIubvP{-webkit-box-flex:1;flex-grow:1;overflow:auto} 22 | -------------------------------------------------------------------------------- /dashboard/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | yacd - Yet Another Clash Dashboard 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /dashboard/proxies.9022775a13e050c1509f.css: -------------------------------------------------------------------------------- 1 | ._2V-RqIAl7n{border-radius:20px;padding:3px 0;color:#eee} 2 | .NpfXwxWAxo{position:relative;padding:10px;border-radius:10px;background-color:var(--color-bg-proxy-selected)}.NpfXwxWAxo._2zD7drviYH{background-color:var(--color-focus-blue);color:#ddd}._1rVl-Kdmss{font-family:var(--font-mono)}._3kdi5nima5{width:100%;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;font-size:1.1em}._12JM32OJa5{height:30px;display:-webkit-box;display:flex;-webkit-box-align:end;align-items:flex-end} 3 | ._3PCSxT0l14>h2{margin-top:0}._3PCSxT0l14>h2 span:nth-child(2){font-size:12px;color:#777;font-weight:400;margin:0 .3em}._1yYRIyvlRd{display:-webkit-box;display:flex;flex-wrap:wrap}._1OcDlvlM5R{max-width:280px;min-width:150px;margin:10px;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}._1OcDlvlM5R._3oAxPKtZFv{cursor:pointer}._1OcDlvlM5R._3oAxPKtZFv:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)} 4 | .pWc1mov26e{padding-bottom:50px}._1myfcMimT9{padding:10px 40px}._1khaX45NQe{position:fixed;z-index:1;right:20px;bottom:20px} 5 | -------------------------------------------------------------------------------- /dashboard/proxies.993826afdebb153e0805.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[2],{D46e:function(e,a,t){e.exports={header:"_3PCSxT0l14",list:"_1yYRIyvlRd",proxy:"_1OcDlvlM5R",proxySelectable:"_3oAxPKtZFv"}},FWZb:function(e,a,t){e.exports={proxy:"NpfXwxWAxo",now:"_2zD7drviYH",proxyType:"_1rVl-Kdmss",proxyName:"_3kdi5nima5",proxyLatencyWrap:"_12JM32OJa5"}},L5YO:function(e,a,t){e.exports={body:"pWc1mov26e",group:"_1myfcMimT9",fabgrp:"_1khaX45NQe"}},RbL9:function(e,a,t){e.exports={proxyLatency:"_2V-RqIAl7n"}},wyCT:function(e,a,t){"use strict";t.r(a);var n=t("o0o1"),r=t.n(n),c=t("HaE+"),o=t("q1tI"),l=t.n(o),s=t("u4Dv"),p=t("DKqX"),m=t("rePB"),i=t("17x9"),u=t.n(i),y=t("TSYQ"),b=t.n(y),x=t("RbL9"),d=t.n(x),f={good:"#67C23A",normal:"#E6A23C",bad:"#F56C6C",na:"#909399"};function v(e){var a=e.latency,t=a.number,n=a.error,r=Object(o.useMemo)(function(){return function(e,a){return""!==a?f.na:e<200?f.good:e<400?f.normal:f.bad}(t,n)},[t,n]);return l.a.createElement("span",{className:d.a.proxyLatency,style:{color:r}},""!==n?l.a.createElement("span",null,n):l.a.createElement("span",null,t," ms"))}v.propTypes={latency:u.a.shape({number:u.a.number,error:u.a.string})};var E=t("FWZb"),O=t.n(E),w=t("EQlU"),N=function(e){return{proxies:Object(w.d)(e),delay:Object(w.c)(e)}};function j(e){var a=e.now,t=e.name,n=Object(s.c)(N),r=n.proxies,c=n.delay[t],o=r[t];return l.a.createElement("div",{className:b()(O.a.proxy,Object(m.a)({},O.a.now,a))},l.a.createElement("div",{className:O.a.proxyName},t),l.a.createElement("div",{className:O.a.proxyType,style:{opacity:a?.6:.2}},o.type),l.a.createElement("div",{className:O.a.proxyLatencyWrap},c?l.a.createElement(v,{latency:c}):null))}j.propTypes={now:u.a.bool,name:u.a.string};var g=j,h=t("D46e"),_=t.n(h),T=function(e){return{proxies:Object(w.d)(e)}};function k(e){var a=e.name,t=Object(s.c)(T).proxies,n=Object(s.b)({switchProxy:w.g}),r=t[a],c=r.all;return l.a.createElement("div",{className:_.a.group},l.a.createElement("div",{className:_.a.header},l.a.createElement("h2",null,l.a.createElement("span",null,a),l.a.createElement("span",null,r.type))),l.a.createElement("div",{className:_.a.list},c.map(function(e){var t="Selector"===r.type,c=b()(_.a.proxy,Object(m.a)({},_.a.proxySelectable,t));return l.a.createElement("div",{className:c,key:e,onClick:function(){t&&n.switchProxy(a,e)}},l.a.createElement(g,{isSelectable:t,name:e,now:e===r.now}))})))}k.propTypes={name:u.a.string};var L=t("5Wrh"),C=t("L5YO"),D=t.n(C);t.d(a,"default",function(){return W});var P=function(e){return{proxies:Object(w.d)(e),groupNames:Object(w.e)(e)}},A={fetchProxies:w.b,requestDelayAll:w.f};function W(){var e=Object(s.b)(A),a=e.fetchProxies,t=e.requestDelayAll;Object(o.useEffect)(function(){Object(c.a)(r.a.mark(function e(){return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a();case 2:case"end":return e.stop()}},e)}))()},[a,t]);var n=Object(s.c)(P).groupNames;return l.a.createElement(l.a.Fragment,null,l.a.createElement(p.a,{title:"Proxies"}),l.a.createElement("div",{className:D.a.body},l.a.createElement("div",{className:D.a.fabgrp},l.a.createElement(L.a,{label:"Test Latency",onClick:t})),n.map(function(e){return l.a.createElement("div",{className:D.a.group,key:e},l.a.createElement(k,{name:e}))})))}}}]); -------------------------------------------------------------------------------- /dashboard/rules.1fba3c440f97fe0e3bb1.css: -------------------------------------------------------------------------------- 1 | ._3eSLieOhVX{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:10px 40px}._2n1pW09UvV{width:40px;padding-right:15px;color:var(--color-text-secondary);opacity:.4}.t1XJIwvW7A{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;font-size:12px;opacity:.8}._1fNf8kj0HA{padding:10px 0;font-family:Roboto Mono,Menlo,monospace;font-size:19px}._3yJmN0tON0{width:110px} 2 | ._2Tux7NhweE{position:fixed;right:20px;bottom:20px} 3 | -------------------------------------------------------------------------------- /dashboard/rules.6f76e629fb04fefe588a.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{BVyM:function(e,t,a){"use strict";a.r(t);var n=a("ODXe"),r=a("q1tI"),c=a.n(r),l=a("u4Dv"),i=a("5Wrh"),u=a("iR1w"),s=a("DKqX"),o=a("17x9"),m=a.n(o),f=a("xrux"),d=a.n(f),p={_default:"#59caf9",DIRECT:"#f5bc41",REJECT:"#cb3166"};function v(e){var t=e.type,a=e.payload,n=e.proxy,r=e.id,l=function(e){var t=e.proxy,a=p._default;return p[t]&&(a=p[t]),{color:a}}({proxy:n});return c.a.createElement("div",{className:d.a.rule},c.a.createElement("div",{className:d.a.left},r),c.a.createElement("div",null,c.a.createElement("div",{className:d.a.b},a),c.a.createElement("div",{className:d.a.a},c.a.createElement("div",{className:d.a.type},t),c.a.createElement("div",{style:l},n))))}v.propTypes={id:m.a.number,type:m.a.string,payload:m.a.string,proxy:m.a.string};var b=v,E=a("II4a"),h=a("Tvb5"),y={updateSearchText:h.f},x=Object(E.a)({mapStateToProps:function(e){return{searchText:Object(h.e)(e)}},actions:y}),O=a("Kv4h"),j=a("mlDh"),w=a.n(j);a.d(t,"default",function(){return _});var N=30,R=function(e){return{rules:Object(h.d)(e)}},g={fetchRules:h.b,fetchRulesOnce:h.c};function T(e,t){return t[e].id}var D=Object(r.memo)(function(e){var t=e.index,a=e.style,n=e.data[t];return c.a.createElement("div",{style:a},c.a.createElement(b,n))},u.b);function _(){var e=Object(l.b)(g),t=e.fetchRulesOnce,a=e.fetchRules,o=Object(l.c)(R).rules;Object(r.useEffect)(function(){t()},[t]);var m=Object(O.a)(),f=Object(n.a)(m,2),d=f[0],p=f[1];return c.a.createElement("div",null,c.a.createElement(s.a,{title:"Rules"}),c.a.createElement(x,null),c.a.createElement("div",{ref:d,style:{paddingBottom:N}},c.a.createElement(u.a,{height:p-N,width:"100%",itemCount:o.length,itemSize:80,itemData:o,itemKey:T},D)),c.a.createElement("div",{className:w.a.fabgrp},c.a.createElement(i.a,{label:"Refresh",onClick:a})))}},mlDh:function(e,t,a){e.exports={fabgrp:"_2Tux7NhweE"}},xrux:function(e,t,a){e.exports={rule:"_3eSLieOhVX",left:"_2n1pW09UvV",a:"t1XJIwvW7A",b:"_1fNf8kj0HA",type:"_3yJmN0tON0"}}}]); -------------------------------------------------------------------------------- /dashboard/runtime~app.dc7b6d94c7fe054b4bce.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(t){for(var n,o,c=t[0],l=t[1],f=t[2],s=t[3]||[],d=0,h=[];d 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sysproxy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderbean/ClashNet/dccc669c8b47d77d3328571223845284bed5e42c/sysproxy.exe --------------------------------------------------------------------------------