├── LICENSE
├── README.md
├── fxmanifest.lua
├── lua
├── client.lua
├── server.lua
└── trackerlist.lua
└── web
├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── build
├── assets
│ ├── index-9FAKevTS.css
│ └── index-iyCNvIaY.js
└── index.html
├── index.html
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── src
├── App.svelte
├── app.css
├── lib
│ └── TrackerBoard.svelte
├── main.ts
├── store
│ └── boardStore.ts
├── utils
│ ├── ReceiveNUI.ts
│ └── SendNUI.ts
└── vite-env.d.ts
├── svelte.config.js
├── tailwind.config.js
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🚧 um-error-tracker
2 | Most of you are missing errors due to too many stream files at server startup and sometimes confused what exactly is not working, so I made a small tool that monitors the (server-side) console, it takes the entire console from the time the server is started and monitors it instantly
3 |
4 | ## Usage
5 | * first download from [here](https://github.com/alp1x/um-error-tracker/releases/latest) **[not source!]**
6 | * ``server.cfg > ensure um-error-tracker``
7 | * command: ``/errortracker``
8 |
9 | ## Development
10 | ``git clone https://github.com/alp1x/um-error-tracker``
11 |
12 | ``cd um-error-tracker``
13 |
14 | ``cd web``
15 |
16 | ``pnpm i``
17 |
18 | ``pnpm run build --watch``
19 |
20 |
21 |
22 | ## Requirements
23 | [ox_lib](https://github.com/overextended/ox_lib/releases/latest)
24 |
--------------------------------------------------------------------------------
/fxmanifest.lua:
--------------------------------------------------------------------------------
1 | fx_version 'cerulean'
2 | game 'gta5'
3 | lua54 'yes'
4 |
5 | name "um-error-tracker"
6 | description "um-error-tracker"
7 | author "uyuyorum {um}"
8 | version "1.0.0"
9 |
10 | shared_scripts {
11 | '@ox_lib/init.lua',
12 | }
13 |
14 | client_scripts {
15 | 'lua/trackerlist.lua',
16 | 'lua/client.lua'
17 | }
18 |
19 | server_script 'lua/server.lua'
20 |
21 | ui_page 'web/build/index.html'
22 |
23 | files {
24 | 'web/build/**'
25 | }
--------------------------------------------------------------------------------
/lua/client.lua:
--------------------------------------------------------------------------------
1 | local processedLines = {}
2 | local nuiReady = false
3 |
4 | -- The `setNuiFocus` function is a Lua function that takes a boolean parameter `bool`. It calls the
5 | -- `SetNuiFocus` function with two boolean arguments `bool`. The purpose of this function is to set the
6 | -- NUI (Native UI) focus to either enable or disable user interaction with the NUI elements.
7 | local function setNuiFocus(bool)
8 | SetNuiFocus(bool, bool)
9 | end
10 |
11 | -- The `addConsoleTableData` function is responsible for processing the console buffer and generating a
12 | -- table of tracked messages based on certain criteria.
13 | local function addConsoleTableData()
14 | local consoleBuffer = lib.callback.await('um-admin-tracker:server:getConsoleBuffer', false)
15 | local trackerTable = {}
16 |
17 | for line in consoleBuffer:gmatch("([^\n]+)") do
18 | if not processedLines[line] then
19 | for category, details in pairs(Tracker_list_code) do
20 | local prefixes = type(details.prefix) == "table" and details.prefix or {details.prefix}
21 |
22 | local colorMatch = string.find(line, "%" .. details.color)
23 | local prefixMatch = false
24 | for _, prefix in ipairs(prefixes) do
25 | if string.find(line, prefix) then
26 | prefixMatch = true
27 | break
28 | end
29 | end
30 |
31 | if colorMatch and prefixMatch then
32 | trackerTable[category] = trackerTable[category] or {}
33 | local messageList = trackerTable[category]
34 |
35 | messageList[#messageList + 1] = {
36 | id = category..'-'..math.random(1, 999999),
37 | line = line
38 | }
39 | processedLines[line] = true
40 | break
41 | end
42 | end
43 | end
44 | end
45 |
46 | Wait(1000)
47 | SendNUIMessage({type = 'updateTrackerTable', data = trackerTable})
48 | end
49 |
50 |
51 | -- The `RegisterCommand('errortracker', function() ... end)` function is registering a command in Lua.
52 | -- When the command "errortracker" is executed, the function inside the `RegisterCommand` is called.
53 | RegisterCommand('errortracker', function()
54 | if not nuiReady then
55 | return print('NUI is not ready yet')
56 | end
57 | setNuiFocus(true)
58 | SendNUIMessage({type = 'openTracker'})
59 | addConsoleTableData()
60 | end)
61 |
62 | -- The `RegisterNUICallback('updateTrackerTable', function(_, cb) ... end)` function is registering a
63 | -- callback in Lua for the NUI (Native UI) event with the name 'updateTrackerTable'.
64 | RegisterNUICallback('updateTrackerTable', function(_, cb)
65 | addConsoleTableData()
66 | cb('ok' or 1)
67 | end)
68 |
69 | -- The `RegisterNUICallback('trackerNUIReady', function(_, cb) ... end)` function is registering a
70 | -- callback in Lua for the NUI (Native UI) event with the name 'trackerNUIReady'.
71 | RegisterNUICallback('trackerNUIReady', function(_, cb)
72 | nuiReady = true
73 | cb('ok' or 1)
74 | end)
75 |
76 | -- The `RegisterNUICallback('closeTracker', function(_, cb) ... end)` function is registering a
77 | -- callback in Lua for the NUI (Native UI) event with the name 'closeTracker'.
78 | RegisterNUICallback('closeTracker', function(_, cb)
79 | setNuiFocus(false)
80 | cb('ok' or 1)
81 | end)
--------------------------------------------------------------------------------
/lua/server.lua:
--------------------------------------------------------------------------------
1 | -- The code is registering a callback function with the name
2 | -- 'um-admin-tracker:server:getConsoleBuffer'. When this callback is triggered, it will execute the
3 | -- provided function, which calls the function GetConsoleBuffer() and returns its result.
4 | lib.callback.register('um-admin-tracker:server:getConsoleBuffer', function()
5 | return GetConsoleBuffer() --@see https://docs.fivem.net/natives/?_0xE57429FA
6 | end)
7 |
8 |
9 | -- The code `lib.versionCheck('overextended/ox_lib')` is checking the version of the library--
10 | -- 'overextended/ox_lib'. It is likely a function provided by the library that allows you to check if
11 | -- you have the latest version installed.
12 | lib.versionCheck('alp1x/um-error-tracker')
13 |
--------------------------------------------------------------------------------
/lua/trackerlist.lua:
--------------------------------------------------------------------------------
1 | --The code is creating a Lua table called `Tracker_list_code` that contains three sub-tables:
2 | -- `errors`, `warnings`, and `updates`. Each sub-table has two key-value pairs. The keys are `color`
3 | -- and `prefix`, and the values are strings.
4 | Tracker_list_code = {
5 | ['errors'] = {
6 | color = '^1',
7 | prefix = 'SCRIPT ERROR:',
8 | },
9 | ['warnings'] = {
10 | color = '^3',
11 | prefix = {'Couldn\'t', 'Warning:', 'duplicate'},
12 | },
13 | ['updates'] = {
14 | color = '^3',
15 | prefix = 'update',
16 | },
17 | ['fxmanifest'] = {
18 | color = '^3',
19 | prefix = '__resource.lua',
20 | },
21 | }
--------------------------------------------------------------------------------
/web/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/web/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["svelte.svelte-vscode"]
3 | }
4 |
--------------------------------------------------------------------------------
/web/README.md:
--------------------------------------------------------------------------------
1 | # Svelte + TS + Vite
2 |
3 | This template should help get you started developing with Svelte and TypeScript in Vite.
4 |
5 | ## Recommended IDE Setup
6 |
7 | [VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
8 |
9 | ## Need an official Svelte framework?
10 |
11 | Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
12 |
13 | ## Technical considerations
14 |
15 | **Why use this over SvelteKit?**
16 |
17 | - It brings its own routing solution which might not be preferable for some users.
18 | - It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
19 |
20 | This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
21 |
22 | Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
23 |
24 | **Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
25 |
26 | Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
27 |
28 | **Why include `.vscode/extensions.json`?**
29 |
30 | Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
31 |
32 | **Why enable `allowJs` in the TS template?**
33 |
34 | While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
35 |
36 | **Why is HMR not preserving my local component state?**
37 |
38 | HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
39 |
40 | If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
41 |
42 | ```ts
43 | // store.ts
44 | // An extremely simple external store
45 | import { writable } from 'svelte/store'
46 | export default writable(0)
47 | ```
48 |
--------------------------------------------------------------------------------
/web/build/assets/index-9FAKevTS.css:
--------------------------------------------------------------------------------
1 | *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.mb-3{margin-bottom:.75rem}.mt-2{margin-top:.5rem}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.h-2{height:.5rem}.h-screen{height:100vh}.w-2{width:.5rem}.cursor-pointer{cursor:pointer}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-5{gap:1.25rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;user-select:none;--errors: #c35555;--warnings: #d9a13b;--updates: #1fa989;--fixed: #46a943;--fxmanifest: #b3b3b3;--inprogress: #a93795 }.bg-color{background-color:#2a2b2f}.box{background-color:#24262c;width:22rem;height:17rem}.card-color{background-color:#32353d}.column-content::-webkit-scrollbar{display:none}.column-content{height:10rem;overflow-y:scroll}.errors-class{color:var(--errors)}.warnings-class{color:var(--warnings)}.updates-class{color:var(--updates)}.fixed-class{color:var(--fixed)}.fxmanifest-class{color:var(--fxmanifest)}.inprogress-class{color:var(--inprogress)}.errors-bg{background-color:var(--errors)}.warnings-bg{background-color:var(--warnings)}.updates-bg{background-color:var(--updates)}.fixed-bg{background-color:var(--fixed)}.fxmanifest-bg{background-color:var(--fxmanifest)}.inprogress-bg{background-color:var(--inprogress)}
2 |
--------------------------------------------------------------------------------
/web/build/assets/index-iyCNvIaY.js:
--------------------------------------------------------------------------------
1 | var Kn=Object.defineProperty;var Xn=(e,t,n)=>t in e?Kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ft=(e,t,n)=>(Xn(e,typeof t!="symbol"?t+"":t,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function x(){}const Jn=e=>e;function cn(e){return e()}function Gt(){return Object.create(null)}function fe(e){e.forEach(cn)}function $e(e){return typeof e=="function"}function xt(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}function Qn(e){return Object.keys(e).length===0}function er(e,...t){if(e==null){for(const r of t)r(void 0);return x}const n=e.subscribe(...t);return n.unsubscribe?()=>n.unsubscribe():n}function tr(e,t,n){e.$$.on_destroy.push(er(t,n))}function nr(e){return e&&$e(e.destroy)?e.destroy:x}const dn=typeof window<"u";let rr=dn?()=>window.performance.now():()=>Date.now(),St=dn?e=>requestAnimationFrame(e):x;const ve=new Set;function fn(e){ve.forEach(t=>{t.c(e)||(ve.delete(t),t.f())}),ve.size!==0&&St(fn)}function ir(e){let t;return ve.size===0&&St(fn),{promise:new Promise(n=>{ve.add(t={c:e,f:n})}),abort(){ve.delete(t)}}}function T(e,t){e.appendChild(t)}function gn(e){if(!e)return document;const t=e.getRootNode?e.getRootNode():e.ownerDocument;return t&&t.host?t:e.ownerDocument}function or(e){const t=L("style");return t.textContent="/* empty */",ar(gn(e),t),t.sheet}function ar(e,t){return T(e.head||e,t),t.sheet}function J(e,t,n){e.insertBefore(t,n||null)}function H(e){e.parentNode&&e.parentNode.removeChild(e)}function L(e){return document.createElement(e)}function Se(e){return document.createTextNode(e)}function le(){return Se(" ")}function rt(){return Se("")}function mt(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function $(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function sr(e){return Array.from(e.childNodes)}function ht(e,t){t=""+t,e.data!==t&&(e.data=t)}function lr(e,t,n,r){n==null?e.style.removeProperty(t):e.style.setProperty(t,n,r?"important":"")}const He=new Map;let Ye=0;function ur(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}function cr(e,t){const n={stylesheet:or(t),rules:{}};return He.set(e,n),n}function dr(e,t,n,r,i,o,a,s=0){const l=16.666/r;let d=`{
2 | `;for(let h=0;h<=1;h+=l){const v=t+(n-t)*o(h);d+=h*100+`%{${a(v,1-v)}}
3 | `}const u=d+`100% {${a(n,1-n)}}
4 | }`,g=`__svelte_${ur(u)}_${s}`,c=gn(e),{stylesheet:f,rules:p}=He.get(c)||cr(c,e);p[g]||(p[g]=!0,f.insertRule(`@keyframes ${g} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?`${m}, `:""}${g} ${r}ms linear ${i}ms 1 both`,Ye+=1,g}function fr(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?o=>o.indexOf(t)<0:o=>o.indexOf("__svelte")===-1),i=n.length-r.length;i&&(e.style.animation=r.join(", "),Ye-=i,Ye||gr())}function gr(){St(()=>{Ye||(He.forEach(e=>{const{ownerNode:t}=e.stylesheet;t&&H(t)}),He.clear())})}function pn(e,t,n,r){if(!t)return x;const i=e.getBoundingClientRect();if(t.left===i.left&&t.right===i.right&&t.top===i.top&&t.bottom===i.bottom)return x;const{delay:o=0,duration:a=300,easing:s=Jn,start:l=rr()+o,end:d=l+a,tick:u=x,css:g}=n(e,{from:t,to:i},r);let c=!0,f=!1,p;function m(){g&&(p=dr(e,0,1,a,o,s,g)),o||(f=!0)}function h(){g&&fr(e,p),c=!1}return ir(v=>{if(!f&&v>=l&&(f=!0),f&&v>=d&&(u(1,0),h()),!c)return!1;if(f){const y=v-l,b=0+1*s(y/a);u(b,1-b)}return!0}),m(),u(0,1),h}function mn(e){const t=getComputedStyle(e);if(t.position!=="absolute"&&t.position!=="fixed"){const{width:n,height:r}=t,i=e.getBoundingClientRect();e.style.position="absolute",e.style.width=n,e.style.height=r,pr(e,i)}}function pr(e,t){const n=e.getBoundingClientRect();if(t.left!==n.left||t.top!==n.top){const r=getComputedStyle(e),i=r.transform==="none"?"":r.transform;e.style.transform=`${i} translate(${t.left-n.left}px, ${t.top-n.top}px)`}}let Ne;function Ae(e){Ne=e}function hn(){if(!Ne)throw new Error("Function called outside component initialization");return Ne}function vn(e){hn().$$.on_mount.push(e)}function yn(e){hn().$$.on_destroy.push(e)}const he=[],Ut=[];let ye=[];const Bt=[],mr=Promise.resolve();let vt=!1;function hr(){vt||(vt=!0,mr.then(_n))}function yt(e){ye.push(e)}const gt=new Set;let pe=0;function _n(){if(pe!==0)return;const e=Ne;do{try{for(;pee.indexOf(r)===-1?t.push(r):n.push(r)),n.forEach(r=>r()),ye=t}const Be=new Set;let se;function _r(){se={r:0,c:[],p:se}}function Er(){se.r||fe(se.c),se=se.p}function _e(e,t){e&&e.i&&(Be.delete(e),e.i(t))}function _t(e,t,n,r){if(e&&e.o){if(Be.has(e))return;Be.add(e),se.c.push(()=>{Be.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}else r&&r()}function Ve(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function Dr(e,t){e.d(1),t.delete(e.key)}function En(e,t){e.f(),Dr(e,t)}function Dn(e,t,n,r,i,o,a,s,l,d,u,g){let c=e.length,f=o.length,p=c;const m={};for(;p--;)m[e[p].key]=p;const h=[],v=new Map,y=new Map,b=[];for(p=f;p--;){const E=g(i,o,p),_=n(E);let D=a.get(_);D?r&&b.push(()=>D.p(E,t)):(D=d(_,E),D.c()),v.set(_,h[p]=D),_ in m&&y.set(_,Math.abs(p-m[_]))}const z=new Set,A=new Set;function Y(E){_e(E,1),E.m(s,u),a.set(E.key,E),u=E.first,f--}for(;c&&f;){const E=h[f-1],_=e[c-1],D=E.key,V=_.key;E===_?(u=E.first,c--,f--):v.has(V)?!a.has(D)||z.has(D)?Y(E):A.has(V)?c--:y.get(D)>y.get(V)?(A.add(D),Y(E)):(z.add(V),c--):(l(_,a),c--)}for(;c--;){const E=e[c];v.has(E.key)||l(E,a)}for(;f;)Y(h[f-1]);return fe(b),h}function br(e){e&&e.c()}function bn(e,t,n){const{fragment:r,after_update:i}=e.$$;r&&r.m(t,n),yt(()=>{const o=e.$$.on_mount.map(cn).filter($e);e.$$.on_destroy?e.$$.on_destroy.push(...o):fe(o),e.$$.on_mount=[]}),i.forEach(yt)}function wn(e,t){const n=e.$$;n.fragment!==null&&(yr(n.after_update),fe(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function wr(e,t){e.$$.dirty[0]===-1&&(he.push(e),hr(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const p=f.length?f[0]:c;return d.ctx&&i(d.ctx[g],d.ctx[g]=p)&&(!d.skip_bound&&d.bound[g]&&d.bound[g](p),u&&wr(e,g)),c}):[],d.update(),u=!0,fe(d.before_update),d.fragment=r?r(d.ctx):!1,t.target){if(t.hydrate){const g=sr(t.target);d.fragment&&d.fragment.l(g),g.forEach(H)}else d.fragment&&d.fragment.c();t.intro&&_e(e.$$.fragment),bn(e,t.target,t.anchor),_n()}Ae(l)}class On{constructor(){ft(this,"$$");ft(this,"$$set")}$destroy(){wn(this,1),this.$destroy=x}$on(t,n){if(!$e(n))return x;const r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(t){this.$$set&&!Qn(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const Tr="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Tr);function In(e,t){const n=r=>{const{type:i,data:o}=r.data;i===e&&t(o)};vn(()=>window.addEventListener("message",n)),yn(()=>window.removeEventListener("message",n))}async function Et(e,t){const n={method:"post",headers:{"Content-Type":"application/json; charset=UTF-8"},body:JSON.stringify(t)},r=window.GetParentResourceName?window.GetParentResourceName():"nui-frame-app";return await(await fetch(`https://${r}/${e}`,n)).json()}function Or(e){const t=e-1;return t*t*t+1}function An(e,{from:t,to:n},r={}){const i=getComputedStyle(e),o=i.transform==="none"?"":i.transform,[a,s]=i.transformOrigin.split(" ").map(parseFloat),l=t.left+t.width*a/n.width-(n.left+a),d=t.top+t.height*s/n.height-(n.top+s),{delay:u=0,duration:g=f=>Math.sqrt(f)*120,easing:c=Or}=r;return{delay:u,duration:$e(g)?g(Math.sqrt(l*l+d*d)):g,easing:c,css:(f,p)=>{const m=p*l,h=p*d,v=f+p*t.width/n.width,y=f+p*t.height/n.height;return`transform: ${o} translate(${m}px, ${h}px) scale(${v}, ${y});`}}}function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function qe(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function Ar(e,t){if(e==null)return{};var n=Ir(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function xr(e,t){return Nr(e)||Cr(e,t)||Nt(e,t)||$r()}function te(e){return Sr(e)||Rr(e)||Nt(e)||Lr()}function Sr(e){if(Array.isArray(e))return Dt(e)}function Nr(e){if(Array.isArray(e))return e}function Rr(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Cr(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(r.push(a.value),!(t&&r.length===t));i=!0);}catch(l){o=!0,s=l}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function Nt(e,t){if(e){if(typeof e=="string")return Dt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Dt(e,t)}}function Dt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
7 | In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var l=n.next();return o=l.done,l},e:function(l){a=!0,s=l},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(a)throw s}}}}var Pr="finalize",Mr="consider";function be(e,t,n){e.dispatchEvent(new CustomEvent(Pr,{detail:{items:t,info:n}}))}function re(e,t,n){e.dispatchEvent(new CustomEvent(Mr,{detail:{items:t,info:n}}))}var ot="draggedEntered",Pe="draggedLeft",at="draggedOverIndex",Rt="draggedLeftDocument",Ke={LEFT_FOR_ANOTHER:"leftForAnother",OUTSIDE_OF_ANY:"outsideOfAny"};function Fr(e,t,n){e.dispatchEvent(new CustomEvent(ot,{detail:{indexObj:t,draggedEl:n}}))}function kr(e,t,n){e.dispatchEvent(new CustomEvent(Pe,{detail:{draggedEl:t,type:Ke.LEFT_FOR_ANOTHER,theOtherDz:n}}))}function zr(e,t){e.dispatchEvent(new CustomEvent(Pe,{detail:{draggedEl:t,type:Ke.OUTSIDE_OF_ANY}}))}function Gr(e,t,n){e.dispatchEvent(new CustomEvent(at,{detail:{indexObj:t,draggedEl:n}}))}function Ur(e){window.dispatchEvent(new CustomEvent(Rt,{detail:{draggedEl:e}}))}var F={DRAG_STARTED:"dragStarted",DRAGGED_ENTERED:ot,DRAGGED_ENTERED_ANOTHER:"dragEnteredAnother",DRAGGED_OVER_INDEX:at,DRAGGED_LEFT:Pe,DRAGGED_LEFT_ALL:"draggedLeftAll",DROPPED_INTO_ZONE:"droppedIntoZone",DROPPED_INTO_ANOTHER:"droppedIntoAnother",DROPPED_OUTSIDE_OF_ANY:"droppedOutsideOfAny",DRAG_STOPPED:"dragStopped"},k={POINTER:"pointer",KEYBOARD:"keyboard"},st="isDndShadowItem",Ct="data-is-dnd-shadow-item-internal",Br="data-is-dnd-shadow-item-hint",jr="id:dnd-shadow-placeholder-0000",Wr="dnd-action-dragged-el",M="id",bt=0;function xn(){bt++}function Sn(){if(bt===0)throw new Error("Bug! trying to decrement when there are no dropzones");bt--}var Lt=typeof window>"u";function Nn(e){var t,n=e.getBoundingClientRect(),r=getComputedStyle(e),i=r.transform;if(i){var o,a,s,l;if(i.startsWith("matrix3d("))t=i.slice(9,-1).split(/, /),o=+t[0],a=+t[5],s=+t[12],l=+t[13];else if(i.startsWith("matrix("))t=i.slice(7,-1).split(/, /),o=+t[0],a=+t[3],s=+t[4],l=+t[5];else return n;var d=r.transformOrigin,u=n.x-s-(1-o)*parseFloat(d),g=n.y-l-(1-a)*parseFloat(d.slice(d.indexOf(" ")+1)),c=o?n.width/o:e.offsetWidth,f=a?n.height/a:e.offsetHeight;return{x:u,y:g,width:c,height:f,top:g,right:u+c,bottom:g+f,left:u}}else return n}function Rn(e){var t=Nn(e);return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function $t(e){var t=e.getBoundingClientRect();return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function Cn(e){return{x:(e.left+e.right)/2,y:(e.top+e.bottom)/2}}function Zr(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Pt(e,t){return e.y<=t.bottom&&e.y>=t.top&&e.x>=t.left&&e.x<=t.right}function Re(e){return Cn($t(e))}function Wt(e,t){var n=Re(e),r=Rn(t);return Pt(n,r)}function Hr(e,t){var n=Re(e),r=Re(t);return Zr(n,r)}function Yr(e){var t=$t(e);return t.right<0||t.left>document.documentElement.scrollWidth||t.bottom<0||t.top>document.documentElement.scrollHeight}function Vr(e,t){var n=$t(t);return Pt(e,n)?{top:e.y-n.top,bottom:n.bottom-e.y,left:e.x-n.left,right:Math.min(n.right,document.documentElement.clientWidth)-e.x}:null}var ue;function Mt(){ue=new Map}Mt();function qr(e){ue.delete(e)}function Kr(e){var t=Array.from(e.children).findIndex(function(n){return n.getAttribute(Ct)});if(t>=0)return ue.has(e)||ue.set(e,new Map),ue.get(e).set(t,Rn(e.children[t])),t}function Xr(e,t){if(!Wt(e,t))return null;var n=t.children;if(n.length===0)return{index:0,isProximityBased:!0};for(var r=Kr(t),i=0;ia.clientHeight&&(s.bottoma.clientWidth&&(s.right1&&arguments[1]!==void 0?arguments[1]:0;return e.parentElement?$n(e.parentElement,t+1):t-1}function Jr(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!{}.hasOwnProperty.call(t,n)||t[n]!==e[n])return!1;return!0}function Qr(e,t){if(e.length!==t.length)return!1;for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:ei,r,i,o=!1,a,s=Array.from(t).sort(function(d,u){return Zt(u)-Zt(d)});function l(){var d=Re(e),u=ti(d,r);if(!u&&a&&Math.abs(a.x-d.x)0)for(var l=r?[t]:te(t.querySelectorAll("select")),d=0;d0)for(var m=f?[t]:te(t.querySelectorAll("canvas")),h=0;h1&&arguments[1]!==void 0?arguments[1]:function(){},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){return[]};e.forEach(function(r){var i=t(r);Object.keys(i).forEach(function(o){r.style[o]=i[o]}),n(r).forEach(function(o){return r.classList.add(o)})})}function Qe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){return[]};e.forEach(function(r){var i=t(r);Object.keys(i).forEach(function(o){r.style[o]=""}),n(r).forEach(function(o){return r.classList.contains(o)&&r.classList.remove(o)})})}function _i(e){var t=e.style.minHeight;e.style.minHeight=window.getComputedStyle(e).getPropertyValue("height");var n=e.style.minWidth;return e.style.minWidth=window.getComputedStyle(e).getPropertyValue("width"),function(){e.style.minHeight=t,e.style.minWidth=n}}var Ei="--any--",Di=100,bi=20,Yt=3,Vt={outline:"rgba(255, 255, 102, 0.7) solid 2px"},qt="data-is-dnd-original-dragged-item",K,R,G,lt,w,ut,de,C,ee,U,ae=!1,Ft=!1,kt,Me=!1,We=[],Z=new Map,I=new Map,pt=new WeakMap;function wi(e,t){Z.has(t)||Z.set(t,new Set),Z.get(t).has(e)||(Z.get(t).add(e),xn())}function Kt(e,t){Z.get(t).delete(e),Sn(),Z.get(t).size===0&&Z.delete(t)}function Ti(){li();var e=Z.get(lt),t=it(e),n;try{for(t.s();!(n=t.n()).done;){var r=n.value;r.addEventListener(ot,Bn),r.addEventListener(Pe,jn),r.addEventListener(at,Wn)}}catch(a){t.e(a)}finally{t.f()}window.addEventListener(Rt,we);var i=Math.max.apply(Math,te(Array.from(e.keys()).map(function(a){return I.get(a).dropAnimationDurationMs}))),o=i===0?bi:Math.max(i,Di);ri(R,e,o*1.07)}function Oi(){ui();var e=Z.get(lt),t=it(e),n;try{for(t.s();!(n=t.n()).done;){var r=n.value;r.removeEventListener(ot,Bn),r.removeEventListener(Pe,jn),r.removeEventListener(at,Wn)}}catch(i){t.e(i)}finally{t.f()}window.removeEventListener(Rt,we),ii()}function ct(e){return e.findIndex(function(t){return!!t[st]})}function Ii(e){var t;return qe(qe({},e),{},(t={},De(t,st,!0),De(t,M,jr),t))}function Bn(e){var t=I.get(e.currentTarget),n=t.items,r=t.dropFromOthersDisabled;if(!(r&&e.currentTarget!==w)){if(Me=!1,n=n.filter(function(u){return u[M]!==de[M]}),w!==e.currentTarget){var i=I.get(w).items,o=i.filter(function(u){return!u[st]});re(w,o,{trigger:F.DRAGGED_ENTERED_ANOTHER,id:G[M],source:k.POINTER})}var a=e.detail.indexObj,s=a.index,l=a.isProximityBased,d=l&&s===e.currentTarget.children.length-1?s+1:s;C=e.currentTarget,n.splice(d,0,de),re(e.currentTarget,n,{trigger:F.DRAGGED_ENTERED,id:G[M],source:k.POINTER})}}function jn(e){if(ae){var t=I.get(e.currentTarget),n=t.items,r=t.dropFromOthersDisabled;if(!(r&&e.currentTarget!==w&&e.currentTarget!==C)){var i=ct(n);i!==-1&&n.splice(i,1),C=void 0;var o=e.detail,a=o.type,s=o.theOtherDz;if(a===Ke.OUTSIDE_OF_ANY||a===Ke.LEFT_FOR_ANOTHER&&s!==w&&I.get(s).dropFromOthersDisabled){Me=!0,C=w;var l=I.get(w).items;l.splice(ut,0,de),re(w,l,{trigger:F.DRAGGED_LEFT_ALL,id:G[M],source:k.POINTER})}re(e.currentTarget,n,{trigger:F.DRAGGED_LEFT,id:G[M],source:k.POINTER})}}}function Wn(e){var t=I.get(e.currentTarget),n=t.items,r=t.dropFromOthersDisabled;if(!(r&&e.currentTarget!==w)){Me=!1;var i=e.detail.indexObj.index,o=ct(n);o!==-1&&n.splice(o,1),n.splice(i,0,de),re(e.currentTarget,n,{trigger:F.DRAGGED_OVER_INDEX,id:G[M],source:k.POINTER})}}function et(e){e.preventDefault();var t=e.touches?e.touches[0]:e;U={x:t.clientX,y:t.clientY},R.style.transform="translate3d(".concat(U.x-ee.x,"px, ").concat(U.y-ee.y,"px, 0)")}function we(){Ft=!0,window.removeEventListener("mousemove",et),window.removeEventListener("touchmove",et),window.removeEventListener("mouseup",we),window.removeEventListener("touchend",we),Oi(),pi(R),C||(C=w);var e=I.get(C),t=e.items,n=e.type;Qe(Z.get(n),function(o){return I.get(o).dropTargetStyle},function(o){return I.get(o).dropTargetClasses});var r=ct(t);r===-1&&(C===w?r=ut:C.children.length>0&&(r=C.children.length-1)),t=t.map(function(o){return o[st]?G:o});function i(){kt(),be(C,t,{trigger:Me?F.DROPPED_OUTSIDE_OF_ANY:F.DROPPED_INTO_ZONE,id:G[M],source:k.POINTER}),C!==w&&be(w,I.get(w).items,{trigger:F.DROPPED_INTO_ANOTHER,id:G[M],source:k.POINTER}),r!==-1&&yi(C.children[r]),Si()}r!==-1&&Ai(r,i)}function Ai(e,t){var n=Nn(C.children[e]),r={x:n.left-parseFloat(R.style.left),y:n.top-parseFloat(R.style.top)},i=I.get(C),o=i.dropAnimationDurationMs,a="transform ".concat(o,"ms ease");R.style.transition=R.style.transition?R.style.transition+","+a:a,R.style.transform="translate3d(".concat(r.x,"px, ").concat(r.y,"px, 0)"),window.setTimeout(t,o)}function xi(e,t){We.push({dz:e,destroy:t}),window.requestAnimationFrame(function(){Un(e),document.body.appendChild(e)})}function Si(){R.remove(),K.remove(),We.length&&(We.forEach(function(e){var t=e.dz,n=e.destroy;n(),t.remove()}),We=[]),R=void 0,K=void 0,G=void 0,lt=void 0,w=void 0,ut=void 0,de=void 0,C=void 0,ee=void 0,U=void 0,ae=!1,Ft=!1,kt=void 0,Me=!1}function Ni(e,t){var n=!1,r={items:void 0,type:void 0,flipDurationMs:0,dragDisabled:!1,morphDisabled:!1,dropFromOthersDisabled:!1,dropTargetStyle:Vt,dropTargetClasses:[],transformDraggedElement:function(){},centreDraggedOnCursor:!1},i=new Map;function o(){window.addEventListener("mousemove",l,{passive:!1}),window.addEventListener("touchmove",l,{passive:!1,capture:!1}),window.addEventListener("mouseup",s,{passive:!1}),window.addEventListener("touchend",s,{passive:!1})}function a(){window.removeEventListener("mousemove",l),window.removeEventListener("touchmove",l),window.removeEventListener("mouseup",s),window.removeEventListener("touchend",s)}function s(){a(),K=void 0,ee=void 0,U=void 0}function l(c){c.preventDefault();var f=c.touches?c.touches[0]:c;U={x:f.clientX,y:f.clientY},(Math.abs(U.x-ee.x)>=Yt||Math.abs(U.y-ee.y)>=Yt)&&(a(),u())}function d(c){if(!(c.target!==c.currentTarget&&(c.target.value!==void 0||c.target.isContentEditable))&&!c.button&&!ae){c.stopPropagation();var f=c.touches?c.touches[0]:c;ee={x:f.clientX,y:f.clientY},U=qe({},ee),K=c.currentTarget,o()}}function u(){ae=!0;var c=i.get(K);ut=c,w=K.parentElement;var f=w.closest("dialog")||w.getRootNode(),p=f.body||f,m=r.items,h=r.type,v=r.centreDraggedOnCursor;G=m[c],lt=h,de=Ii(G),R=gi(K,v&&U),K.setAttribute(qt,!0);function y(){R.parentElement?window.requestAnimationFrame(y):(p.appendChild(R),R.focus(),Ti(),Un(K),p.appendChild(K))}window.requestAnimationFrame(y),je(Array.from(Z.get(r.type)).filter(function(b){return b===w||!I.get(b).dropFromOthersDisabled}),function(b){return I.get(b).dropTargetStyle},function(b){return I.get(b).dropTargetClasses}),m.splice(c,1,de),kt=_i(w),re(w,m,{trigger:F.DRAG_STARTED,id:G[M],source:k.POINTER}),window.addEventListener("mousemove",et,{passive:!1}),window.addEventListener("touchmove",et,{passive:!1,capture:!1}),window.addEventListener("mouseup",we,{passive:!1}),window.addEventListener("touchend",we,{passive:!1})}function g(c){var f=c.items,p=f===void 0?void 0:f,m=c.flipDurationMs,h=m===void 0?0:m,v=c.type,y=v===void 0?Ei:v,b=c.dragDisabled,z=b===void 0?!1:b,A=c.morphDisabled,Y=A===void 0?!1:A,E=c.dropFromOthersDisabled,_=E===void 0?!1:E,D=c.dropTargetStyle,V=D===void 0?Vt:D,Te=c.dropTargetClasses,Q=Te===void 0?[]:Te,Fe=c.transformDraggedElement,Oe=Fe===void 0?function(){}:Fe,dt=c.centreDraggedOnCursor,ke=dt===void 0?!1:dt;r.dropAnimationDurationMs=h,r.type&&y!==r.type&&Kt(e,r.type),r.type=y,r.items=te(p),r.dragDisabled=z,r.morphDisabled=Y,r.transformDraggedElement=Oe,r.centreDraggedOnCursor=ke,n&&ae&&!Ft&&(!Jr(V,r.dropTargetStyle)||!Qr(Q,r.dropTargetClasses))&&(Qe([e],function(){return r.dropTargetStyle},function(){return Q}),je([e],function(){return V},function(){return Q})),r.dropTargetStyle=V,r.dropTargetClasses=te(Q);function S(q,zt){return I.get(q)?I.get(q)[zt]:r[zt]}n&&ae&&r.dropFromOthersDisabled!==_&&(_?Qe([e],function(q){return S(q,"dropTargetStyle")},function(q){return S(q,"dropTargetClasses")}):je([e],function(q){return S(q,"dropTargetStyle")},function(q){return S(q,"dropTargetClasses")})),r.dropFromOthersDisabled=_,I.set(e,r),wi(e,y);for(var qn=ct(r.items),ge=0;ge".concat(t,"
"),n.style.display="none",n.style.position="fixed",n.style.zIndex="-5",n}function Ee(e){if(!Lt){O||Ot(),O.innerHTML="";var t=document.createTextNode(e);O.appendChild(t),O.style.display="none",O.style.display="inline"}}var Pi="--any--",Xt={outline:"rgba(255, 255, 102, 0.7) solid 2px"},B=!1,It,P,ce="",oe,X,ne="",tt=new WeakSet,Jt=new WeakMap,Qt=new WeakMap,At=new Map,N=new Map,W=new Map,nt;function Mi(e,t){W.size===0&&(nt=Ci(),window.addEventListener("keydown",Hn),window.addEventListener("click",Yn)),W.has(t)||W.set(t,new Set),W.get(t).has(e)||(W.get(t).add(e),xn())}function en(e,t){P===e&&Le(),W.get(t).delete(e),Sn(),W.get(t).size===0&&W.delete(t),W.size===0&&(window.removeEventListener("keydown",Hn),window.removeEventListener("click",Yn),nt=void 0,Li())}function Hn(e){if(B)switch(e.key){case"Escape":{Le();break}}}function Yn(){B&&(tt.has(document.activeElement)||Le())}function Fi(e){if(B){var t=e.currentTarget;if(t!==P){ce=t.getAttribute("aria-label")||"";var n=N.get(P),r=n.items,i=r.find(function(g){return g[M]===X}),o=r.indexOf(i),a=r.splice(o,1)[0],s=N.get(t),l=s.items,d=s.autoAriaDisabled;t.getBoundingClientRect().top0&&arguments[0]!==void 0?arguments[0]:!0;N.get(P).autoAriaDisabled||Ee("Stopped dragging item ".concat(ne)),tt.has(document.activeElement)&&document.activeElement.blur(),e&&re(P,N.get(P).items,{trigger:F.DRAG_STOPPED,id:X,source:k.KEYBOARD}),Qe(W.get(It),function(t){return N.get(t).dropTargetStyle},function(t){return N.get(t).dropTargetClasses}),oe=null,X=null,ne="",It=null,P=null,ce="",B=!1,Vn()}function ki(e,t){var n={items:void 0,type:void 0,dragDisabled:!1,zoneTabIndex:0,zoneItemTabIndex:0,dropFromOthersDisabled:!1,dropTargetStyle:Xt,dropTargetClasses:[],autoAriaDisabled:!1};function r(u,g,c){u.length<=1||u.splice(c,1,u.splice(g,1,u[c])[0])}function i(u){switch(u.key){case"Enter":case" ":{if((u.target.disabled!==void 0||u.target.href||u.target.isContentEditable)&&!tt.has(u.target))return;u.preventDefault(),u.stopPropagation(),B?Le():o(u);break}case"ArrowDown":case"ArrowRight":{if(!B)return;u.preventDefault(),u.stopPropagation();var g=N.get(e),c=g.items,f=Array.from(e.children),p=f.indexOf(u.currentTarget);p0&&(n.autoAriaDisabled||Ee("Moved item ".concat(ne," to position ").concat(y," in the list ").concat(ce)),r(h,y,y-1),be(e,h,{trigger:F.DROPPED_INTO_ZONE,id:X,source:k.KEYBOARD}));break}}}function o(u){s(u.currentTarget),P=e,It=n.type,B=!0;var g=Array.from(W.get(n.type)).filter(function(f){return f===P||!N.get(f).dropFromOthersDisabled});if(je(g,function(f){return N.get(f).dropTargetStyle},function(f){return N.get(f).dropTargetClasses}),!n.autoAriaDisabled){var c="Started dragging item ".concat(ne,". Use the arrow keys to move it within its list ").concat(ce);g.length>1&&(c+=", or tab to another list in order to move the item into it"),Ee(c)}re(e,N.get(e).items,{trigger:F.DRAG_STARTED,id:X,source:k.KEYBOARD}),Vn()}function a(u){B&&u.currentTarget!==oe&&(u.stopPropagation(),Le(!1),o(u))}function s(u){var g=N.get(e),c=g.items,f=Array.from(e.children),p=f.indexOf(u);oe=u,oe.tabIndex=n.zoneItemTabIndex,X=c[p][M],ne=f[p].getAttribute("aria-label")||""}function l(u){var g=u.items,c=g===void 0?[]:g,f=u.type,p=f===void 0?Pi:f,m=u.dragDisabled,h=m===void 0?!1:m,v=u.zoneTabIndex,y=v===void 0?0:v,b=u.zoneItemTabIndex,z=b===void 0?0:b,A=u.dropFromOthersDisabled,Y=A===void 0?!1:A,E=u.dropTargetStyle,_=E===void 0?Xt:E,D=u.dropTargetClasses,V=D===void 0?[]:D,Te=u.autoAriaDisabled,Q=Te===void 0?!1:Te;n.items=te(c),n.dragDisabled=h,n.dropFromOthersDisabled=Y,n.zoneTabIndex=y,n.zoneItemTabIndex=z,n.dropTargetStyle=_,n.dropTargetClasses=V,n.autoAriaDisabled=Q,n.type&&p!==n.type&&en(e,n.type),n.type=p,Mi(e,p),Q||(e.setAttribute("aria-disabled",h),e.setAttribute("role","list"),e.setAttribute("aria-describedby",h?nt.DND_ZONE_DRAG_DISABLED:nt.DND_ZONE_ACTIVE)),N.set(e,n),B?e.tabIndex=e===P||oe.contains(e)||n.dropFromOthersDisabled||P&&n.type!==N.get(P).type?-1:0:e.tabIndex=n.zoneTabIndex,e.addEventListener("focus",Fi);for(var Fe=function(ke){var S=e.children[ke];tt.add(S),S.tabIndex=B?-1:n.zoneItemTabIndex,Q||S.setAttribute("role","listitem"),S.removeEventListener("keydown",Jt.get(S)),S.removeEventListener("click",Qt.get(S)),h||(S.addEventListener("keydown",i),Jt.set(S,i),S.addEventListener("click",a),Qt.set(S,a)),B&&n.items[ke][M]===X&&(oe=S,oe.tabIndex=n.zoneItemTabIndex,S.focus())},Oe=0;Oe0&&console.warn("dndzone will ignore unknown options",o),!t)throw new Error("no 'items' key provided to dndzone");var a=t.find(function(s){return!{}.hasOwnProperty.call(s,M)});if(a)throw new Error("missing '".concat(M,"' property for item ").concat(ze(a)));if(i&&!Array.isArray(i))throw new Error("dropTargetClasses should be an array but instead it is a ".concat(xe(i),", ").concat(ze(i)));if(n&&!nn(n))throw new Error("zoneTabIndex should be a number but instead it is a ".concat(xe(n),", ").concat(ze(n)));if(r&&!nn(r))throw new Error("zoneItemTabIndex should be a number but instead it is a ".concat(xe(r),", ").concat(ze(r)))}function nn(e){return!isNaN(e)&&function(t){return(t|0)===t}(parseFloat(e))}const me=[];function Bi(e,t=x){let n;const r=new Set;function i(s){if(xt(e,s)&&(e=s,n)){const l=!me.length;for(const d of r)d[1](),me.push(d,e);if(l){for(let d=0;d{r.delete(d),r.size===0&&n&&(n(),n=null)}}return{set:i,update:o,subscribe:a}}const ji=[{id:1,name:"errors",items:[]},{id:2,name:"warnings",items:[]},{id:3,name:"updates",items:[]},{id:4,name:"fxmanifest",items:[]},{id:5,name:"inprogress",items:[]},{id:6,name:"fixed",items:[]}],Ue=Bi(ji);function rn(e,t,n){const r=e.slice();return r[7]=t[n],r}function on(e,t,n){const r=e.slice();return r[10]=t[n],r}function Wi(e){let t;return{c(){t=L("div"),t.innerHTML="