From 7f03116b652cfaaaba4367b3ae19748857a903b1 Mon Sep 17 00:00:00 2001 From: fkwp Date: Fri, 6 Sep 2024 10:21:49 +0200 Subject: [PATCH 1/7] Update LICENCE file --- LICENSE | 784 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 634 insertions(+), 150 deletions(-) diff --git a/LICENSE b/LICENSE index f433b1a5..be3f7b28 100644 --- a/LICENSE +++ b/LICENSE @@ -1,177 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + Preamble - 1. Definitions. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + The precise terms and conditions for copying, distribution and +modification follow. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + TERMS AND CONDITIONS - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + 0. Definitions. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "This License" refers to version 3 of the GNU Affero General Public License. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + A "covered work" means either the unmodified Program or a work based +on the Program. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 1. Source Code. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. - END OF TERMS AND CONDITIONS + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. From 9add3e52c46a6d127d2cde201001cb88b96ebb16 Mon Sep 17 00:00:00 2001 From: fkwp Date: Fri, 6 Sep 2024 10:22:13 +0200 Subject: [PATCH 2/7] Update file headers copyright and change licence to AGPL-3.0-only --- src/@types/global.d.ts | 15 ++-------- src/@types/i18next.d.ts | 15 ++-------- src/@types/modules.d.ts | 15 ++-------- src/App.tsx | 15 ++-------- src/Avatar.tsx | 15 ++-------- src/ClientContext.tsx | 15 ++-------- src/DisconnectedBanner.module.css | 15 ++-------- src/DisconnectedBanner.tsx | 15 ++-------- src/FullScreenView.module.css | 15 ++-------- src/FullScreenView.tsx | 15 ++-------- src/Header.module.css | 15 ++-------- src/Header.tsx | 15 ++-------- src/IndexedDBWorker.ts | 15 ++-------- src/LazyEventEmitter.ts | 15 ++-------- src/Modal.module.css | 15 ++-------- src/Modal.tsx | 15 ++-------- src/Overlay.module.css | 15 ++-------- src/Platform.ts | 15 ++-------- src/QrCode.module.css | 15 ++-------- src/QrCode.test.tsx | 15 ++-------- src/QrCode.tsx | 15 ++-------- src/Slider.module.css | 15 ++-------- src/Slider.tsx | 15 ++-------- src/Toast.module.css | 15 ++-------- src/Toast.test.tsx | 15 ++-------- src/Toast.tsx | 15 ++-------- src/TranslatedError.ts | 15 ++-------- src/UrlParams.test.ts | 15 ++-------- src/UrlParams.ts | 17 +++-------- src/UserMenu.module.css | 15 ++-------- src/UserMenu.tsx | 15 ++-------- src/UserMenuContainer.tsx | 15 ++-------- src/analytics/AnalyticsNotice.tsx | 15 ++-------- src/analytics/PosthogAnalytics.ts | 16 +++------- src/analytics/PosthogEvents.ts | 16 +++------- src/analytics/PosthogSpanProcessor.ts | 15 ++-------- src/analytics/RageshakeSpanProcessor.ts | 15 ++-------- src/auth/LoginPage.module.css | 15 ++-------- src/auth/LoginPage.tsx | 15 ++-------- src/auth/RegisterPage.tsx | 15 ++-------- src/auth/generateRandomName.ts | 15 ++-------- src/auth/useInteractiveLogin.ts | 15 ++-------- src/auth/useInteractiveRegistration.ts | 15 ++-------- src/auth/useRecaptcha.ts | 15 ++-------- src/auth/useRegisterPasswordlessUser.ts | 15 ++-------- src/button/Button.module.css | 15 ++-------- src/button/Button.tsx | 15 ++-------- src/button/InviteButton.tsx | 15 ++-------- src/button/Link.tsx | 15 ++-------- src/button/LinkButton.tsx | 15 ++-------- src/button/index.ts | 15 ++-------- src/config/Config.ts | 15 ++-------- src/config/ConfigOptions.ts | 15 ++-------- src/controls.ts | 15 ++-------- src/e2ee/e2eeType.ts | 15 ++-------- src/e2ee/matrixKeyProvider.ts | 15 ++-------- src/e2ee/sharedKeyManagement.ts | 15 ++-------- src/form/Form.module.css | 15 ++-------- src/form/Form.tsx | 15 ++-------- src/grid/CallLayout.ts | 15 ++-------- src/grid/Grid.css | 15 ++-------- src/grid/Grid.module.css | 15 ++-------- src/grid/Grid.tsx | 15 ++-------- src/grid/GridLayout.module.css | 15 ++-------- src/grid/GridLayout.tsx | 15 ++-------- src/grid/OneOnOneLayout.module.css | 15 ++-------- src/grid/OneOnOneLayout.tsx | 15 ++-------- src/grid/SpotlightExpandedLayout.module.css | 15 ++-------- src/grid/SpotlightExpandedLayout.tsx | 15 ++-------- src/grid/SpotlightLandscapeLayout.module.css | 15 ++-------- src/grid/SpotlightLandscapeLayout.tsx | 15 ++-------- src/grid/SpotlightPortraitLayout.module.css | 15 ++-------- src/grid/SpotlightPortraitLayout.tsx | 15 ++-------- src/grid/TileWrapper.module.css | 15 ++-------- src/grid/TileWrapper.tsx | 15 ++-------- src/home/CallList.module.css | 15 ++-------- src/home/CallList.test.tsx | 15 ++-------- src/home/CallList.tsx | 15 ++-------- src/home/HomePage.tsx | 15 ++-------- src/home/JoinExistingCallModal.module.css | 15 ++-------- src/home/JoinExistingCallModal.tsx | 15 ++-------- src/home/RegisteredView.module.css | 15 ++-------- src/home/RegisteredView.tsx | 15 ++-------- src/home/UnauthenticatedView.module.css | 15 ++-------- src/home/UnauthenticatedView.tsx | 15 ++-------- src/home/common.module.css | 15 ++-------- src/home/useGroupCallRooms.ts | 15 ++-------- src/index.css | 15 ++-------- src/initializer.test.ts | 15 ++-------- src/initializer.tsx | 15 ++-------- src/input/AvatarInputField.module.css | 15 ++-------- src/input/AvatarInputField.tsx | 15 ++-------- src/input/FeedbackInput.module.css | 15 ++-------- src/input/Input.module.css | 15 ++-------- src/input/Input.tsx | 15 ++-------- src/input/StarRatingInput.module.css | 15 ++-------- src/input/StarRatingInput.tsx | 15 ++-------- src/livekit/MediaDevicesContext.tsx | 15 ++-------- src/livekit/openIDSFU.ts | 15 ++-------- src/livekit/options.ts | 15 ++-------- src/livekit/useECConnectionState.ts | 15 ++-------- src/livekit/useLiveKit.ts | 15 ++-------- src/main.tsx | 15 ++-------- src/otel/OTelCall.ts | 15 ++-------- src/otel/OTelCallAbstractMediaStreamSpan.ts | 15 ++-------- src/otel/OTelCallFeedMediaStreamSpan.ts | 15 ++-------- src/otel/OTelCallMediaStreamTrackSpan.ts | 15 ++-------- .../OTelCallTransceiverMediaStreamSpan.ts | 15 ++-------- src/otel/OTelGroupCallMembership.ts | 15 ++-------- src/otel/ObjectFlattener.test.ts | 30 ++----------------- src/otel/ObjectFlattener.ts | 15 ++-------- src/otel/otel.ts | 15 ++-------- src/profile/useProfile.ts | 15 ++-------- src/room/AppSelectionModal.module.css | 15 ++-------- src/room/AppSelectionModal.tsx | 15 ++-------- src/room/CallEndedView.module.css | 15 ++-------- src/room/CallEndedView.tsx | 15 ++-------- src/room/EncryptionLock.module.css | 15 ++-------- src/room/EncryptionLock.tsx | 15 ++-------- src/room/GroupCallLoader.tsx | 15 ++-------- src/room/GroupCallView.tsx | 15 ++-------- src/room/InCallView.module.css | 15 ++-------- src/room/InCallView.tsx | 15 ++-------- src/room/InviteModal.module.css | 15 ++-------- src/room/InviteModal.tsx | 15 ++-------- src/room/LayoutToggle.module.css | 15 ++-------- src/room/LayoutToggle.tsx | 15 ++-------- src/room/LobbyView.module.css | 15 ++-------- src/room/LobbyView.tsx | 15 ++-------- src/room/MuteStates.ts | 15 ++-------- src/room/RageshakeRequestModal.tsx | 15 ++-------- src/room/RoomAuthView.module.css | 15 ++-------- src/room/RoomAuthView.tsx | 15 ++-------- src/room/RoomPage.tsx | 15 ++-------- src/room/VideoPreview.module.css | 15 ++-------- src/room/VideoPreview.tsx | 15 ++-------- src/room/checkForParallelCalls.test.ts | 15 ++-------- src/room/checkForParallelCalls.ts | 15 ++-------- src/room/useActiveFocus.ts | 15 ++-------- src/room/useJoinRule.ts | 15 ++-------- src/room/useLoadGroupCall.ts | 15 ++-------- src/room/useRoomAvatar.ts | 15 ++-------- src/room/useRoomName.ts | 15 ++-------- src/room/useRoomState.ts | 15 ++-------- src/rtcSessionHelper.test.ts | 15 ++-------- src/rtcSessionHelpers.ts | 15 ++-------- src/settings/FeedbackSettingsTab.tsx | 15 ++-------- src/settings/ProfileSettingsTab.module.css | 15 ++-------- src/settings/ProfileSettingsTab.tsx | 15 ++-------- src/settings/RageshakeButton.module.css | 15 ++-------- src/settings/RageshakeButton.tsx | 15 ++-------- src/settings/SettingsModal.module.css | 15 ++-------- src/settings/SettingsModal.tsx | 15 ++-------- src/settings/rageshake.ts | 16 ++-------- src/settings/settings.ts | 15 ++-------- src/settings/submit-rageshake.ts | 15 ++-------- src/state/CallViewModel.ts | 15 ++-------- src/state/MediaViewModel.test.ts | 15 ++-------- src/state/MediaViewModel.ts | 15 ++-------- src/state/ObservableScope.ts | 15 ++-------- src/state/ViewModel.ts | 15 ++-------- src/state/useObservable.ts | 15 ++-------- src/tabs/Tabs.module.css | 15 ++-------- src/tabs/Tabs.tsx | 15 ++-------- src/tile/GridTile.module.css | 15 ++-------- src/tile/GridTile.tsx | 15 ++-------- src/tile/MediaView.module.css | 15 ++-------- src/tile/MediaView.tsx | 15 ++-------- src/tile/SpotlightTile.module.css | 15 ++-------- src/tile/SpotlightTile.tsx | 15 ++-------- src/typography/Typography.module.css | 15 ++-------- src/typography/Typography.tsx | 15 ++-------- src/useCallViewKeyboardShortcuts.test.tsx | 15 ++-------- src/useCallViewKeyboardShortcuts.ts | 15 ++-------- src/useEvents.ts | 15 ++-------- src/useInitial.ts | 15 ++-------- src/useLatest.ts | 15 ++-------- src/useLocalStorage.ts | 15 ++-------- src/useLocationNavigation.ts | 15 ++-------- src/useMatrixRTCSessionJoinState.ts | 15 ++-------- src/useMatrixRTCSessionMemberships.ts | 15 ++-------- src/useMediaQuery.ts | 15 ++-------- src/useMergedRefs.ts | 15 ++-------- src/usePageTitle.ts | 15 ++-------- src/usePrefersReducedMotion.ts | 15 ++-------- src/useReactiveState.ts | 15 ++-------- src/useTheme.ts | 15 ++-------- src/useWakeLock.ts | 15 ++-------- src/utils/matrix.ts | 15 ++-------- src/utils/media.ts | 15 ++-------- src/utils/observable.ts | 15 ++-------- src/utils/test.ts | 15 ++-------- src/vitest.setup.ts | 15 ++-------- src/widget.ts | 15 ++-------- vite.config.js | 15 ++-------- 195 files changed, 588 insertions(+), 2357 deletions(-) diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts index fcb86147..de8bb788 100644 --- a/src/@types/global.d.ts +++ b/src/@types/global.d.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import "matrix-js-sdk/src/@types/global"; diff --git a/src/@types/i18next.d.ts b/src/@types/i18next.d.ts index a64240f9..ad35f456 100644 --- a/src/@types/i18next.d.ts +++ b/src/@types/i18next.d.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import "i18next"; diff --git a/src/@types/modules.d.ts b/src/@types/modules.d.ts index 071d0369..b66b6ba5 100644 --- a/src/@types/modules.d.ts +++ b/src/@types/modules.d.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ /// diff --git a/src/App.tsx b/src/App.tsx index fc12af39..0f87498f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021 - 2023 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, Suspense, useEffect, useState } from "react"; diff --git a/src/Avatar.tsx b/src/Avatar.tsx index abe01539..a0ae1483 100644 --- a/src/Avatar.tsx +++ b/src/Avatar.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useMemo, FC } from "react"; diff --git a/src/ClientContext.tsx b/src/ClientContext.tsx index 16c7bd26..805b2313 100644 --- a/src/ClientContext.tsx +++ b/src/ClientContext.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/DisconnectedBanner.module.css b/src/DisconnectedBanner.module.css index b5505c50..d1e1ecca 100644 --- a/src/DisconnectedBanner.module.css +++ b/src/DisconnectedBanner.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .banner { diff --git a/src/DisconnectedBanner.tsx b/src/DisconnectedBanner.tsx index a7f6307e..e317a5be 100644 --- a/src/DisconnectedBanner.tsx +++ b/src/DisconnectedBanner.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import classNames from "classnames"; diff --git a/src/FullScreenView.module.css b/src/FullScreenView.module.css index 18774c37..2007d5eb 100644 --- a/src/FullScreenView.module.css +++ b/src/FullScreenView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .page { diff --git a/src/FullScreenView.tsx b/src/FullScreenView.tsx index c6d8248f..ad66a3b8 100644 --- a/src/FullScreenView.tsx +++ b/src/FullScreenView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, ReactNode, useCallback, useEffect } from "react"; diff --git a/src/Header.module.css b/src/Header.module.css index 0984fea5..6a7f2937 100644 --- a/src/Header.module.css +++ b/src/Header.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .header { diff --git a/src/Header.tsx b/src/Header.tsx index 1929bcf5..69e77935 100644 --- a/src/Header.tsx +++ b/src/Header.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import classNames from "classnames"; diff --git a/src/IndexedDBWorker.ts b/src/IndexedDBWorker.ts index 43f65dfe..fe1a28ea 100644 --- a/src/IndexedDBWorker.ts +++ b/src/IndexedDBWorker.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { IndexedDBStoreWorker } from "matrix-js-sdk/src/indexeddb-worker"; diff --git a/src/LazyEventEmitter.ts b/src/LazyEventEmitter.ts index 6b1730f4..382dcabd 100644 --- a/src/LazyEventEmitter.ts +++ b/src/LazyEventEmitter.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import EventEmitter from "events"; diff --git a/src/Modal.module.css b/src/Modal.module.css index e59fe438..b69a1071 100644 --- a/src/Modal.module.css +++ b/src/Modal.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .modal { diff --git a/src/Modal.tsx b/src/Modal.tsx index e2d0ba14..6ba9e239 100644 --- a/src/Modal.tsx +++ b/src/Modal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, ReactNode, useCallback } from "react"; diff --git a/src/Overlay.module.css b/src/Overlay.module.css index b211c430..7f24e7f1 100644 --- a/src/Overlay.module.css +++ b/src/Overlay.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .bg { diff --git a/src/Platform.ts b/src/Platform.ts index 86f1bc57..397dc07c 100644 --- a/src/Platform.ts +++ b/src/Platform.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ /** diff --git a/src/QrCode.module.css b/src/QrCode.module.css index 500490bf..709ace23 100644 --- a/src/QrCode.module.css +++ b/src/QrCode.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .qrCode img { diff --git a/src/QrCode.test.tsx b/src/QrCode.test.tsx index 6537076d..2b873952 100644 --- a/src/QrCode.test.tsx +++ b/src/QrCode.test.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { describe, expect, test } from "vitest"; diff --git a/src/QrCode.tsx b/src/QrCode.tsx index 515234ab..8ad246e9 100644 --- a/src/QrCode.tsx +++ b/src/QrCode.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useEffect, useState } from "react"; diff --git a/src/Slider.module.css b/src/Slider.module.css index e6568193..d7e0830f 100644 --- a/src/Slider.module.css +++ b/src/Slider.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .slider { diff --git a/src/Slider.tsx b/src/Slider.tsx index c3471756..ba4fbeb5 100644 --- a/src/Slider.tsx +++ b/src/Slider.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback } from "react"; diff --git a/src/Toast.module.css b/src/Toast.module.css index 5f19b3b2..87a7b1d1 100644 --- a/src/Toast.module.css +++ b/src/Toast.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .toast { diff --git a/src/Toast.test.tsx b/src/Toast.test.tsx index e2e2f9f7..45850eb0 100644 --- a/src/Toast.test.tsx +++ b/src/Toast.test.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { describe, expect, test, vi } from "vitest"; diff --git a/src/Toast.tsx b/src/Toast.tsx index e9c534f1..5b463f31 100644 --- a/src/Toast.tsx +++ b/src/Toast.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/TranslatedError.ts b/src/TranslatedError.ts index b92880fc..0dbe675a 100644 --- a/src/TranslatedError.ts +++ b/src/TranslatedError.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import type { DefaultNamespace, ParseKeys, TFunction, TOptions } from "i18next"; diff --git a/src/UrlParams.test.ts b/src/UrlParams.test.ts index 12076512..2bf12a6b 100644 --- a/src/UrlParams.test.ts +++ b/src/UrlParams.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { describe, expect, it } from "vitest"; diff --git a/src/UrlParams.ts b/src/UrlParams.ts index 3977b3df..5db5f0d5 100644 --- a/src/UrlParams.ts +++ b/src/UrlParams.ts @@ -1,18 +1,9 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - */ +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. +*/ import { useMemo } from "react"; import { useLocation } from "react-router-dom"; diff --git a/src/UserMenu.module.css b/src/UserMenu.module.css index d4e06037..11444f73 100644 --- a/src/UserMenu.module.css +++ b/src/UserMenu.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .menuIcon { diff --git a/src/UserMenu.tsx b/src/UserMenu.tsx index 55ccc2c0..906f220f 100644 --- a/src/UserMenu.tsx +++ b/src/UserMenu.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useMemo, useState } from "react"; diff --git a/src/UserMenuContainer.tsx b/src/UserMenuContainer.tsx index 87149c22..8a16301d 100644 --- a/src/UserMenuContainer.tsx +++ b/src/UserMenuContainer.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useState } from "react"; diff --git a/src/analytics/AnalyticsNotice.tsx b/src/analytics/AnalyticsNotice.tsx index 892a21e4..8df2d742 100644 --- a/src/analytics/AnalyticsNotice.tsx +++ b/src/analytics/AnalyticsNotice.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC } from "react"; diff --git a/src/analytics/PosthogAnalytics.ts b/src/analytics/PosthogAnalytics.ts index 05979a89..cda77e43 100644 --- a/src/analytics/PosthogAnalytics.ts +++ b/src/analytics/PosthogAnalytics.ts @@ -1,17 +1,9 @@ /* -Copyright 2022 The New Vector Ltd +Copyright 2024 New Vector Ltd. +Copyright 2022-2024 The New Vector Ltd -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import posthog, { CaptureOptions, PostHog, Properties } from "posthog-js"; diff --git a/src/analytics/PosthogEvents.ts b/src/analytics/PosthogEvents.ts index 778392ba..c22407ec 100644 --- a/src/analytics/PosthogEvents.ts +++ b/src/analytics/PosthogEvents.ts @@ -1,17 +1,9 @@ /* -Copyright 2022 The New Vector Ltd +Copyright 2024 New Vector Ltd. +Copyright 2022-2024 The New Vector Ltd -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { DisconnectReason } from "livekit-client"; diff --git a/src/analytics/PosthogSpanProcessor.ts b/src/analytics/PosthogSpanProcessor.ts index 59960c92..072e85df 100644 --- a/src/analytics/PosthogSpanProcessor.ts +++ b/src/analytics/PosthogSpanProcessor.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/analytics/RageshakeSpanProcessor.ts b/src/analytics/RageshakeSpanProcessor.ts index 91d0e190..ee547e29 100644 --- a/src/analytics/RageshakeSpanProcessor.ts +++ b/src/analytics/RageshakeSpanProcessor.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { AttributeValue, Attributes } from "@opentelemetry/api"; diff --git a/src/auth/LoginPage.module.css b/src/auth/LoginPage.module.css index 91ba8599..d42e1b5a 100644 --- a/src/auth/LoginPage.module.css +++ b/src/auth/LoginPage.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .logo { diff --git a/src/auth/LoginPage.tsx b/src/auth/LoginPage.tsx index 5cfa2c1b..515b6c99 100644 --- a/src/auth/LoginPage.tsx +++ b/src/auth/LoginPage.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, FormEvent, useCallback, useRef, useState } from "react"; diff --git a/src/auth/RegisterPage.tsx b/src/auth/RegisterPage.tsx index a7231300..5ee1c9eb 100644 --- a/src/auth/RegisterPage.tsx +++ b/src/auth/RegisterPage.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/auth/generateRandomName.ts b/src/auth/generateRandomName.ts index 543704a8..a04ca358 100644 --- a/src/auth/generateRandomName.ts +++ b/src/auth/generateRandomName.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/auth/useInteractiveLogin.ts b/src/auth/useInteractiveLogin.ts index 7877b285..55b5fa0e 100644 --- a/src/auth/useInteractiveLogin.ts +++ b/src/auth/useInteractiveLogin.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback } from "react"; diff --git a/src/auth/useInteractiveRegistration.ts b/src/auth/useInteractiveRegistration.ts index 6b753363..95b1fd30 100644 --- a/src/auth/useInteractiveRegistration.ts +++ b/src/auth/useInteractiveRegistration.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useState, useEffect, useCallback, useRef } from "react"; diff --git a/src/auth/useRecaptcha.ts b/src/auth/useRecaptcha.ts index 00daa18c..7dddf3f9 100644 --- a/src/auth/useRecaptcha.ts +++ b/src/auth/useRecaptcha.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect, useCallback, useRef, useState } from "react"; diff --git a/src/auth/useRegisterPasswordlessUser.ts b/src/auth/useRegisterPasswordlessUser.ts index 44f2132f..2226f14a 100644 --- a/src/auth/useRegisterPasswordlessUser.ts +++ b/src/auth/useRegisterPasswordlessUser.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback } from "react"; diff --git a/src/button/Button.module.css b/src/button/Button.module.css index 516725be..9cdbddc2 100644 --- a/src/button/Button.module.css +++ b/src/button/Button.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .endCall > svg { diff --git a/src/button/Button.tsx b/src/button/Button.tsx index db578494..5d747a03 100644 --- a/src/button/Button.tsx +++ b/src/button/Button.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ComponentPropsWithoutRef, FC } from "react"; import classNames from "classnames"; diff --git a/src/button/InviteButton.tsx b/src/button/InviteButton.tsx index 8a807057..874c1046 100644 --- a/src/button/InviteButton.tsx +++ b/src/button/InviteButton.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ComponentPropsWithoutRef, FC } from "react"; diff --git a/src/button/Link.tsx b/src/button/Link.tsx index 686cfa83..35c9af98 100644 --- a/src/button/Link.tsx +++ b/src/button/Link.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/button/LinkButton.tsx b/src/button/LinkButton.tsx index 3cff744d..5e231a49 100644 --- a/src/button/LinkButton.tsx +++ b/src/button/LinkButton.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ComponentPropsWithoutRef, forwardRef } from "react"; diff --git a/src/button/index.ts b/src/button/index.ts index 2b9ea68e..178b58c0 100644 --- a/src/button/index.ts +++ b/src/button/index.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ export * from "./Button"; diff --git a/src/config/Config.ts b/src/config/Config.ts index 382e7eab..e21bbe28 100644 --- a/src/config/Config.ts +++ b/src/config/Config.ts @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { getUrlParams } from "../UrlParams"; diff --git a/src/config/ConfigOptions.ts b/src/config/ConfigOptions.ts index 00e0bfa2..2fd264ab 100644 --- a/src/config/ConfigOptions.ts +++ b/src/config/ConfigOptions.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ export interface ConfigOptions { diff --git a/src/controls.ts b/src/controls.ts index 3f6ecc54..2e8ea7d3 100644 --- a/src/controls.ts +++ b/src/controls.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Subject } from "rxjs"; diff --git a/src/e2ee/e2eeType.ts b/src/e2ee/e2eeType.ts index be4a4ba9..a0445de8 100644 --- a/src/e2ee/e2eeType.ts +++ b/src/e2ee/e2eeType.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ export enum E2eeType { diff --git a/src/e2ee/matrixKeyProvider.ts b/src/e2ee/matrixKeyProvider.ts index 7fac8193..ba2bc37d 100644 --- a/src/e2ee/matrixKeyProvider.ts +++ b/src/e2ee/matrixKeyProvider.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { BaseKeyProvider, createKeyMaterialFromBuffer } from "livekit-client"; diff --git a/src/e2ee/sharedKeyManagement.ts b/src/e2ee/sharedKeyManagement.ts index 6f826cfe..2b67ec4a 100644 --- a/src/e2ee/sharedKeyManagement.ts +++ b/src/e2ee/sharedKeyManagement.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect, useMemo } from "react"; diff --git a/src/form/Form.module.css b/src/form/Form.module.css index 7e35d37a..b782e026 100644 --- a/src/form/Form.module.css +++ b/src/form/Form.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .form { diff --git a/src/form/Form.tsx b/src/form/Form.tsx index 2b0400bc..03291b79 100644 --- a/src/form/Form.tsx +++ b/src/form/Form.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import classNames from "classnames"; diff --git a/src/grid/CallLayout.ts b/src/grid/CallLayout.ts index fb602132..5e73b38b 100644 --- a/src/grid/CallLayout.ts +++ b/src/grid/CallLayout.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { BehaviorSubject, Observable } from "rxjs"; diff --git a/src/grid/Grid.css b/src/grid/Grid.css index c579c897..bdfa7e48 100644 --- a/src/grid/Grid.css +++ b/src/grid/Grid.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .grid { diff --git a/src/grid/Grid.module.css b/src/grid/Grid.module.css index 33e593be..050ea82b 100644 --- a/src/grid/Grid.module.css +++ b/src/grid/Grid.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .grid { diff --git a/src/grid/Grid.tsx b/src/grid/Grid.tsx index c524d928..45cb9252 100644 --- a/src/grid/Grid.tsx +++ b/src/grid/Grid.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/grid/GridLayout.module.css b/src/grid/GridLayout.module.css index d8f4a6ab..7785195a 100644 --- a/src/grid/GridLayout.module.css +++ b/src/grid/GridLayout.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .fixed, diff --git a/src/grid/GridLayout.tsx b/src/grid/GridLayout.tsx index 85448323..ec6937e4 100644 --- a/src/grid/GridLayout.tsx +++ b/src/grid/GridLayout.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { CSSProperties, forwardRef, useCallback, useMemo } from "react"; diff --git a/src/grid/OneOnOneLayout.module.css b/src/grid/OneOnOneLayout.module.css index 5bdeb2c8..dd5dfc4e 100644 --- a/src/grid/OneOnOneLayout.module.css +++ b/src/grid/OneOnOneLayout.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .layer { diff --git a/src/grid/OneOnOneLayout.tsx b/src/grid/OneOnOneLayout.tsx index 4401ae49..71db635d 100644 --- a/src/grid/OneOnOneLayout.tsx +++ b/src/grid/OneOnOneLayout.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { forwardRef, useCallback, useMemo } from "react"; diff --git a/src/grid/SpotlightExpandedLayout.module.css b/src/grid/SpotlightExpandedLayout.module.css index bf30dadb..f94d0ee3 100644 --- a/src/grid/SpotlightExpandedLayout.module.css +++ b/src/grid/SpotlightExpandedLayout.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .layer { diff --git a/src/grid/SpotlightExpandedLayout.tsx b/src/grid/SpotlightExpandedLayout.tsx index 146eb151..34464bcc 100644 --- a/src/grid/SpotlightExpandedLayout.tsx +++ b/src/grid/SpotlightExpandedLayout.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { forwardRef, useCallback, useMemo } from "react"; diff --git a/src/grid/SpotlightLandscapeLayout.module.css b/src/grid/SpotlightLandscapeLayout.module.css index 8ca91e10..02133a1a 100644 --- a/src/grid/SpotlightLandscapeLayout.module.css +++ b/src/grid/SpotlightLandscapeLayout.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .layer { diff --git a/src/grid/SpotlightLandscapeLayout.tsx b/src/grid/SpotlightLandscapeLayout.tsx index fb73884d..4132535a 100644 --- a/src/grid/SpotlightLandscapeLayout.tsx +++ b/src/grid/SpotlightLandscapeLayout.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { forwardRef, useMemo } from "react"; diff --git a/src/grid/SpotlightPortraitLayout.module.css b/src/grid/SpotlightPortraitLayout.module.css index 1ee91334..aa534686 100644 --- a/src/grid/SpotlightPortraitLayout.module.css +++ b/src/grid/SpotlightPortraitLayout.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .layer { diff --git a/src/grid/SpotlightPortraitLayout.tsx b/src/grid/SpotlightPortraitLayout.tsx index acbc3570..56c5e07b 100644 --- a/src/grid/SpotlightPortraitLayout.tsx +++ b/src/grid/SpotlightPortraitLayout.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { CSSProperties, forwardRef, useMemo } from "react"; diff --git a/src/grid/TileWrapper.module.css b/src/grid/TileWrapper.module.css index ed3acda3..cef5b896 100644 --- a/src/grid/TileWrapper.module.css +++ b/src/grid/TileWrapper.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .tile.draggable { diff --git a/src/grid/TileWrapper.tsx b/src/grid/TileWrapper.tsx index dcb8e908..aeb581fe 100644 --- a/src/grid/TileWrapper.tsx +++ b/src/grid/TileWrapper.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ComponentType, memo, RefObject, useRef } from "react"; diff --git a/src/home/CallList.module.css b/src/home/CallList.module.css index 86d5fc32..8e988d03 100644 --- a/src/home/CallList.module.css +++ b/src/home/CallList.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .callTileSpacer, diff --git a/src/home/CallList.test.tsx b/src/home/CallList.test.tsx index 4b090d22..8a853d27 100644 --- a/src/home/CallList.test.tsx +++ b/src/home/CallList.test.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { render, RenderResult } from "@testing-library/react"; diff --git a/src/home/CallList.tsx b/src/home/CallList.tsx index bb4e9aa9..aa6db6f3 100644 --- a/src/home/CallList.tsx +++ b/src/home/CallList.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Link } from "react-router-dom"; diff --git a/src/home/HomePage.tsx b/src/home/HomePage.tsx index 4560b467..74575494 100644 --- a/src/home/HomePage.tsx +++ b/src/home/HomePage.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useTranslation } from "react-i18next"; diff --git a/src/home/JoinExistingCallModal.module.css b/src/home/JoinExistingCallModal.module.css index fcc06d57..fb0e6175 100644 --- a/src/home/JoinExistingCallModal.module.css +++ b/src/home/JoinExistingCallModal.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .buttons { diff --git a/src/home/JoinExistingCallModal.tsx b/src/home/JoinExistingCallModal.tsx index bc60b8fb..6de3d2a9 100644 --- a/src/home/JoinExistingCallModal.tsx +++ b/src/home/JoinExistingCallModal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useTranslation } from "react-i18next"; diff --git a/src/home/RegisteredView.module.css b/src/home/RegisteredView.module.css index e11e397f..2806c672 100644 --- a/src/home/RegisteredView.module.css +++ b/src/home/RegisteredView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .form { diff --git a/src/home/RegisteredView.tsx b/src/home/RegisteredView.tsx index 3335acd2..34abe113 100644 --- a/src/home/RegisteredView.tsx +++ b/src/home/RegisteredView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useState, useCallback, FormEvent, FormEventHandler, FC } from "react"; diff --git a/src/home/UnauthenticatedView.module.css b/src/home/UnauthenticatedView.module.css index 277004d8..6108abb1 100644 --- a/src/home/UnauthenticatedView.module.css +++ b/src/home/UnauthenticatedView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .footer { diff --git a/src/home/UnauthenticatedView.tsx b/src/home/UnauthenticatedView.tsx index ae222737..a1ea8514 100644 --- a/src/home/UnauthenticatedView.tsx +++ b/src/home/UnauthenticatedView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useState, FormEventHandler } from "react"; diff --git a/src/home/common.module.css b/src/home/common.module.css index a3e84eee..2032420f 100644 --- a/src/home/common.module.css +++ b/src/home/common.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .container { diff --git a/src/home/useGroupCallRooms.ts b/src/home/useGroupCallRooms.ts index 4c481543..3946b51b 100644 --- a/src/home/useGroupCallRooms.ts +++ b/src/home/useGroupCallRooms.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { MatrixClient } from "matrix-js-sdk/src/client"; diff --git a/src/index.css b/src/index.css index 134d2a57..b416dcca 100644 --- a/src/index.css +++ b/src/index.css @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ /* Inter unexpectedly contains various codepoints which collide with emoji, even diff --git a/src/initializer.test.ts b/src/initializer.test.ts index 062e5cac..dff1651e 100644 --- a/src/initializer.test.ts +++ b/src/initializer.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { expect, test } from "vitest"; diff --git a/src/initializer.tsx b/src/initializer.tsx index 42a84663..3b3b4de5 100644 --- a/src/initializer.tsx +++ b/src/initializer.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import i18n from "i18next"; diff --git a/src/input/AvatarInputField.module.css b/src/input/AvatarInputField.module.css index 89227c66..3fe6b124 100644 --- a/src/input/AvatarInputField.module.css +++ b/src/input/AvatarInputField.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .avatarInputField { diff --git a/src/input/AvatarInputField.tsx b/src/input/AvatarInputField.tsx index e21637f7..84eb48ac 100644 --- a/src/input/AvatarInputField.tsx +++ b/src/input/AvatarInputField.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/input/FeedbackInput.module.css b/src/input/FeedbackInput.module.css index 75647939..0a18f104 100644 --- a/src/input/FeedbackInput.module.css +++ b/src/input/FeedbackInput.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .feedback textarea { diff --git a/src/input/Input.module.css b/src/input/Input.module.css index b81a903f..cfe045c9 100644 --- a/src/input/Input.module.css +++ b/src/input/Input.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .fieldRow { diff --git a/src/input/Input.tsx b/src/input/Input.tsx index 0aa5e4d8..cf2902cd 100644 --- a/src/input/Input.tsx +++ b/src/input/Input.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/input/StarRatingInput.module.css b/src/input/StarRatingInput.module.css index 08a65d11..952e1d63 100644 --- a/src/input/StarRatingInput.module.css +++ b/src/input/StarRatingInput.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .starIcon { diff --git a/src/input/StarRatingInput.tsx b/src/input/StarRatingInput.tsx index 97742980..e862e820 100644 --- a/src/input/StarRatingInput.tsx +++ b/src/input/StarRatingInput.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/src/livekit/MediaDevicesContext.tsx b/src/livekit/MediaDevicesContext.tsx index 2f654946..ebd34ca7 100644 --- a/src/livekit/MediaDevicesContext.tsx +++ b/src/livekit/MediaDevicesContext.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/livekit/openIDSFU.ts b/src/livekit/openIDSFU.ts index 949eea90..47ff8321 100644 --- a/src/livekit/openIDSFU.ts +++ b/src/livekit/openIDSFU.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { IOpenIDToken, MatrixClient } from "matrix-js-sdk/src/matrix"; diff --git a/src/livekit/options.ts b/src/livekit/options.ts index bb271f65..f7fe03ff 100644 --- a/src/livekit/options.ts +++ b/src/livekit/options.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/livekit/useECConnectionState.ts b/src/livekit/useECConnectionState.ts index 9afb2578..6fcb4386 100644 --- a/src/livekit/useECConnectionState.ts +++ b/src/livekit/useECConnectionState.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/livekit/useLiveKit.ts b/src/livekit/useLiveKit.ts index 988dc0f8..68ec0be2 100644 --- a/src/livekit/useLiveKit.ts +++ b/src/livekit/useLiveKit.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/main.tsx b/src/main.tsx index ed64a09c..263619c9 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021-2022 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ // We need to import this somewhere, once, so that the correct 'request' diff --git a/src/otel/OTelCall.ts b/src/otel/OTelCall.ts index 06f45cd6..586d410c 100644 --- a/src/otel/OTelCall.ts +++ b/src/otel/OTelCall.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Span } from "@opentelemetry/api"; diff --git a/src/otel/OTelCallAbstractMediaStreamSpan.ts b/src/otel/OTelCallAbstractMediaStreamSpan.ts index 3ecb6b28..98862597 100644 --- a/src/otel/OTelCallAbstractMediaStreamSpan.ts +++ b/src/otel/OTelCallAbstractMediaStreamSpan.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import opentelemetry, { Span } from "@opentelemetry/api"; diff --git a/src/otel/OTelCallFeedMediaStreamSpan.ts b/src/otel/OTelCallFeedMediaStreamSpan.ts index 02dd2f86..68a683fb 100644 --- a/src/otel/OTelCallFeedMediaStreamSpan.ts +++ b/src/otel/OTelCallFeedMediaStreamSpan.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Span } from "@opentelemetry/api"; diff --git a/src/otel/OTelCallMediaStreamTrackSpan.ts b/src/otel/OTelCallMediaStreamTrackSpan.ts index 72fee9b4..cee2b298 100644 --- a/src/otel/OTelCallMediaStreamTrackSpan.ts +++ b/src/otel/OTelCallMediaStreamTrackSpan.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { TrackStats } from "matrix-js-sdk/src/webrtc/stats/statsReport"; diff --git a/src/otel/OTelCallTransceiverMediaStreamSpan.ts b/src/otel/OTelCallTransceiverMediaStreamSpan.ts index 2be5dbe6..c1fa33a2 100644 --- a/src/otel/OTelCallTransceiverMediaStreamSpan.ts +++ b/src/otel/OTelCallTransceiverMediaStreamSpan.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Span } from "@opentelemetry/api"; diff --git a/src/otel/OTelGroupCallMembership.ts b/src/otel/OTelGroupCallMembership.ts index 3af6de53..c9eded22 100644 --- a/src/otel/OTelGroupCallMembership.ts +++ b/src/otel/OTelGroupCallMembership.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import opentelemetry, { Span, Attributes, Context } from "@opentelemetry/api"; diff --git a/src/otel/ObjectFlattener.test.ts b/src/otel/ObjectFlattener.test.ts index 56a7d648..42f029cb 100644 --- a/src/otel/ObjectFlattener.test.ts +++ b/src/otel/ObjectFlattener.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { GroupCallStatsReport } from "matrix-js-sdk/src/webrtc/groupCall"; @@ -24,21 +15,6 @@ import { describe, expect, it } from "vitest"; import { ObjectFlattener } from "../../src/otel/ObjectFlattener"; -/* -Copyright 2023 New Vector Ltd - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ describe("ObjectFlattener", () => { const noConcealment: AudioConcealment = { concealedAudio: 0, diff --git a/src/otel/ObjectFlattener.ts b/src/otel/ObjectFlattener.ts index 6c0326bf..ebf66975 100644 --- a/src/otel/ObjectFlattener.ts +++ b/src/otel/ObjectFlattener.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Attributes } from "@opentelemetry/api"; import { VoipEvent } from "matrix-js-sdk/src/webrtc/call"; diff --git a/src/otel/otel.ts b/src/otel/otel.ts index 14c22cb6..78f7807a 100644 --- a/src/otel/otel.ts +++ b/src/otel/otel.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base"; diff --git a/src/profile/useProfile.ts b/src/profile/useProfile.ts index f340ea58..6e04eec8 100644 --- a/src/profile/useProfile.ts +++ b/src/profile/useProfile.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { MatrixClient } from "matrix-js-sdk/src/client"; diff --git a/src/room/AppSelectionModal.module.css b/src/room/AppSelectionModal.module.css index 773df4fd..c2e89714 100644 --- a/src/room/AppSelectionModal.module.css +++ b/src/room/AppSelectionModal.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .modal p { diff --git a/src/room/AppSelectionModal.tsx b/src/room/AppSelectionModal.tsx index de0c0b24..588fceef 100644 --- a/src/room/AppSelectionModal.tsx +++ b/src/room/AppSelectionModal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, MouseEvent, useCallback, useMemo, useState } from "react"; diff --git a/src/room/CallEndedView.module.css b/src/room/CallEndedView.module.css index 9a43ccb4..3598b995 100644 --- a/src/room/CallEndedView.module.css +++ b/src/room/CallEndedView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2021 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .headline { diff --git a/src/room/CallEndedView.tsx b/src/room/CallEndedView.tsx index 99686775..296bf2fb 100644 --- a/src/room/CallEndedView.tsx +++ b/src/room/CallEndedView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, FormEventHandler, ReactNode, useCallback, useState } from "react"; diff --git a/src/room/EncryptionLock.module.css b/src/room/EncryptionLock.module.css index abdff443..2cf5d6ad 100644 --- a/src/room/EncryptionLock.module.css +++ b/src/room/EncryptionLock.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .lock { diff --git a/src/room/EncryptionLock.tsx b/src/room/EncryptionLock.tsx index 53b8e430..55f116f9 100644 --- a/src/room/EncryptionLock.tsx +++ b/src/room/EncryptionLock.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC } from "react"; diff --git a/src/room/GroupCallLoader.tsx b/src/room/GroupCallLoader.tsx index e3e85cb4..36bdcc4c 100644 --- a/src/room/GroupCallLoader.tsx +++ b/src/room/GroupCallLoader.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback } from "react"; diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index 8339e749..25eb7dce 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useEffect, useMemo, useRef, useState } from "react"; diff --git a/src/room/InCallView.module.css b/src/room/InCallView.module.css index cfc436c9..14e58be7 100644 --- a/src/room/InCallView.module.css +++ b/src/room/InCallView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2021-2024 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .inRoom { diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index ebda4271..4191c17f 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/room/InviteModal.module.css b/src/room/InviteModal.module.css index 1f6868f9..bba72e35 100644 --- a/src/room/InviteModal.module.css +++ b/src/room/InviteModal.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .url { diff --git a/src/room/InviteModal.tsx b/src/room/InviteModal.tsx index 2f999054..4ef9a5a5 100644 --- a/src/room/InviteModal.tsx +++ b/src/room/InviteModal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, MouseEvent, useCallback, useMemo, useState } from "react"; diff --git a/src/room/LayoutToggle.module.css b/src/room/LayoutToggle.module.css index 7e2a2cb2..db6759e1 100644 --- a/src/room/LayoutToggle.module.css +++ b/src/room/LayoutToggle.module.css @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .toggle { diff --git a/src/room/LayoutToggle.tsx b/src/room/LayoutToggle.tsx index d0dc1ba0..59dff95f 100644 --- a/src/room/LayoutToggle.tsx +++ b/src/room/LayoutToggle.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ChangeEvent, FC, TouchEvent, useCallback } from "react"; diff --git a/src/room/LobbyView.module.css b/src/room/LobbyView.module.css index 8a3d2a2c..5d5bfe83 100644 --- a/src/room/LobbyView.module.css +++ b/src/room/LobbyView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2021 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .content { diff --git a/src/room/LobbyView.tsx b/src/room/LobbyView.tsx index 189b64a1..f965c222 100644 --- a/src/room/LobbyView.tsx +++ b/src/room/LobbyView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useState } from "react"; diff --git a/src/room/MuteStates.ts b/src/room/MuteStates.ts index 8ec58265..be569aef 100644 --- a/src/room/MuteStates.ts +++ b/src/room/MuteStates.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/room/RageshakeRequestModal.tsx b/src/room/RageshakeRequestModal.tsx index 4dcbb81d..03b0c1c0 100644 --- a/src/room/RageshakeRequestModal.tsx +++ b/src/room/RageshakeRequestModal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useEffect } from "react"; diff --git a/src/room/RoomAuthView.module.css b/src/room/RoomAuthView.module.css index 539d739c..0894b73b 100644 --- a/src/room/RoomAuthView.module.css +++ b/src/room/RoomAuthView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .form { diff --git a/src/room/RoomAuthView.tsx b/src/room/RoomAuthView.tsx index 1a172205..b8a3c85e 100644 --- a/src/room/RoomAuthView.tsx +++ b/src/room/RoomAuthView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useState } from "react"; diff --git a/src/room/RoomPage.tsx b/src/room/RoomPage.tsx index 00071331..29e44df0 100644 --- a/src/room/RoomPage.tsx +++ b/src/room/RoomPage.tsx @@ -1,17 +1,8 @@ /* -Copyright 2021-2023 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useEffect, useState, useCallback, ReactNode } from "react"; diff --git a/src/room/VideoPreview.module.css b/src/room/VideoPreview.module.css index e858c3c2..e7aabf79 100644 --- a/src/room/VideoPreview.module.css +++ b/src/room/VideoPreview.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .preview { diff --git a/src/room/VideoPreview.tsx b/src/room/VideoPreview.tsx index 6a10c682..f8d45971 100644 --- a/src/room/VideoPreview.tsx +++ b/src/room/VideoPreview.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect, useMemo, useRef, FC, ReactNode, useCallback } from "react"; diff --git a/src/room/checkForParallelCalls.test.ts b/src/room/checkForParallelCalls.test.ts index 584a62a4..59378e43 100644 --- a/src/room/checkForParallelCalls.test.ts +++ b/src/room/checkForParallelCalls.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { vi, Mocked, test, expect } from "vitest"; diff --git a/src/room/checkForParallelCalls.ts b/src/room/checkForParallelCalls.ts index b065c872..92fa8174 100644 --- a/src/room/checkForParallelCalls.ts +++ b/src/room/checkForParallelCalls.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { EventType } from "matrix-js-sdk/src/@types/event"; diff --git a/src/room/useActiveFocus.ts b/src/room/useActiveFocus.ts index 8f70d870..b66fe488 100644 --- a/src/room/useActiveFocus.ts +++ b/src/room/useActiveFocus.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/room/useJoinRule.ts b/src/room/useJoinRule.ts index 798999e4..7900a174 100644 --- a/src/room/useJoinRule.ts +++ b/src/room/useJoinRule.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback } from "react"; diff --git a/src/room/useLoadGroupCall.ts b/src/room/useLoadGroupCall.ts index 685b8833..03e82cb5 100644 --- a/src/room/useLoadGroupCall.ts +++ b/src/room/useLoadGroupCall.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useState, useEffect, useRef, useCallback } from "react"; diff --git a/src/room/useRoomAvatar.ts b/src/room/useRoomAvatar.ts index b00597e7..377dd7fd 100644 --- a/src/room/useRoomAvatar.ts +++ b/src/room/useRoomAvatar.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback } from "react"; diff --git a/src/room/useRoomName.ts b/src/room/useRoomName.ts index 575f7714..b58d3be1 100644 --- a/src/room/useRoomName.ts +++ b/src/room/useRoomName.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Room, RoomEvent } from "matrix-js-sdk/src/matrix"; diff --git a/src/room/useRoomState.ts b/src/room/useRoomState.ts index 6e069b67..f4d52ff5 100644 --- a/src/room/useRoomState.ts +++ b/src/room/useRoomState.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { RoomState, RoomStateEvent } from "matrix-js-sdk/src/models/room-state"; diff --git a/src/rtcSessionHelper.test.ts b/src/rtcSessionHelper.test.ts index fc00aa61..8a428661 100644 --- a/src/rtcSessionHelper.test.ts +++ b/src/rtcSessionHelper.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession"; diff --git a/src/rtcSessionHelpers.ts b/src/rtcSessionHelpers.ts index 451871ea..0ff00f6c 100644 --- a/src/rtcSessionHelpers.ts +++ b/src/rtcSessionHelpers.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession"; diff --git a/src/settings/FeedbackSettingsTab.tsx b/src/settings/FeedbackSettingsTab.tsx index b1babb0b..bea36884 100644 --- a/src/settings/FeedbackSettingsTab.tsx +++ b/src/settings/FeedbackSettingsTab.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback } from "react"; diff --git a/src/settings/ProfileSettingsTab.module.css b/src/settings/ProfileSettingsTab.module.css index e85a00a5..756c6fbf 100644 --- a/src/settings/ProfileSettingsTab.module.css +++ b/src/settings/ProfileSettingsTab.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .content { diff --git a/src/settings/ProfileSettingsTab.tsx b/src/settings/ProfileSettingsTab.tsx index a67fd853..3c54164b 100644 --- a/src/settings/ProfileSettingsTab.tsx +++ b/src/settings/ProfileSettingsTab.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { FC, useCallback, useEffect, useMemo, useRef } from "react"; diff --git a/src/settings/RageshakeButton.module.css b/src/settings/RageshakeButton.module.css index 5a621b6c..de15a75e 100644 --- a/src/settings/RageshakeButton.module.css +++ b/src/settings/RageshakeButton.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .rageshakeControl { diff --git a/src/settings/RageshakeButton.tsx b/src/settings/RageshakeButton.tsx index 92c56a52..2bbc1d0b 100644 --- a/src/settings/RageshakeButton.tsx +++ b/src/settings/RageshakeButton.tsx @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useTranslation } from "react-i18next"; diff --git a/src/settings/SettingsModal.module.css b/src/settings/SettingsModal.module.css index d7b06f5a..b8c2857e 100644 --- a/src/settings/SettingsModal.module.css +++ b/src/settings/SettingsModal.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .settingsModal { diff --git a/src/settings/SettingsModal.tsx b/src/settings/SettingsModal.tsx index 6ed6ccd8..3dfbae65 100644 --- a/src/settings/SettingsModal.tsx +++ b/src/settings/SettingsModal.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ChangeEvent, FC, ReactNode, useCallback } from "react"; diff --git a/src/settings/rageshake.ts b/src/settings/rageshake.ts index bf6909fb..3d5103ac 100644 --- a/src/settings/rageshake.ts +++ b/src/settings/rageshake.ts @@ -1,19 +1,9 @@ /* +Copyright 2018-2024 New Vector Ltd. Copyright 2017 OpenMarket Ltd -Copyright 2018 New Vector Ltd -Copyright 2019 The New Vector Ltd -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ // This module contains all the code needed to log the console, persist it to diff --git a/src/settings/settings.ts b/src/settings/settings.ts index 47ca9816..61471bff 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; diff --git a/src/settings/submit-rageshake.ts b/src/settings/submit-rageshake.ts index 52d1ca21..94ac2925 100644 --- a/src/settings/submit-rageshake.ts +++ b/src/settings/submit-rageshake.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ComponentProps, useCallback, useEffect, useState } from "react"; diff --git a/src/state/CallViewModel.ts b/src/state/CallViewModel.ts index 144b0937..63dd7bde 100644 --- a/src/state/CallViewModel.ts +++ b/src/state/CallViewModel.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/state/MediaViewModel.test.ts b/src/state/MediaViewModel.test.ts index f65b7775..6239e10b 100644 --- a/src/state/MediaViewModel.test.ts +++ b/src/state/MediaViewModel.test.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { RoomMember } from "matrix-js-sdk/src/matrix"; diff --git a/src/state/MediaViewModel.ts b/src/state/MediaViewModel.ts index ff262996..47344b3a 100644 --- a/src/state/MediaViewModel.ts +++ b/src/state/MediaViewModel.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/state/ObservableScope.ts b/src/state/ObservableScope.ts index 813e064c..4a2dca6f 100644 --- a/src/state/ObservableScope.ts +++ b/src/state/ObservableScope.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/state/ViewModel.ts b/src/state/ViewModel.ts index dd7d422c..60e7c8e5 100644 --- a/src/state/ViewModel.ts +++ b/src/state/ViewModel.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { ObservableScope } from "./ObservableScope"; diff --git a/src/state/useObservable.ts b/src/state/useObservable.ts index 037c3bd5..0d53cf40 100644 --- a/src/state/useObservable.ts +++ b/src/state/useObservable.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Ref, useCallback, useRef } from "react"; diff --git a/src/tabs/Tabs.module.css b/src/tabs/Tabs.module.css index f8f2f91c..327d083a 100644 --- a/src/tabs/Tabs.module.css +++ b/src/tabs/Tabs.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .tabContainer { diff --git a/src/tabs/Tabs.tsx b/src/tabs/Tabs.tsx index a4184952..8f063a97 100644 --- a/src/tabs/Tabs.tsx +++ b/src/tabs/Tabs.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Key, ReactNode, useId } from "react"; diff --git a/src/tile/GridTile.module.css b/src/tile/GridTile.module.css index ea015f43..7416e2e4 100644 --- a/src/tile/GridTile.module.css +++ b/src/tile/GridTile.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .tile { diff --git a/src/tile/GridTile.tsx b/src/tile/GridTile.tsx index 01e0f420..a46ff472 100644 --- a/src/tile/GridTile.tsx +++ b/src/tile/GridTile.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/tile/MediaView.module.css b/src/tile/MediaView.module.css index a9037977..adde1c7b 100644 --- a/src/tile/MediaView.module.css +++ b/src/tile/MediaView.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022-2024 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .media { diff --git a/src/tile/MediaView.tsx b/src/tile/MediaView.tsx index 4d073092..ab18a526 100644 --- a/src/tile/MediaView.tsx +++ b/src/tile/MediaView.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { TrackReferenceOrPlaceholder } from "@livekit/components-core"; diff --git a/src/tile/SpotlightTile.module.css b/src/tile/SpotlightTile.module.css index 25239111..31948044 100644 --- a/src/tile/SpotlightTile.module.css +++ b/src/tile/SpotlightTile.module.css @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .contents { diff --git a/src/tile/SpotlightTile.tsx b/src/tile/SpotlightTile.tsx index f920d01e..1e63ffbe 100644 --- a/src/tile/SpotlightTile.tsx +++ b/src/tile/SpotlightTile.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/typography/Typography.module.css b/src/typography/Typography.module.css index 2b202b2b..d9ce7476 100644 --- a/src/typography/Typography.module.css +++ b/src/typography/Typography.module.css @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ .caption { diff --git a/src/typography/Typography.tsx b/src/typography/Typography.tsx index f82a24e1..48b5a7f2 100644 --- a/src/typography/Typography.tsx +++ b/src/typography/Typography.tsx @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { createElement, forwardRef, ReactNode } from "react"; diff --git a/src/useCallViewKeyboardShortcuts.test.tsx b/src/useCallViewKeyboardShortcuts.test.tsx index 3c51df03..cb6693a2 100644 --- a/src/useCallViewKeyboardShortcuts.test.tsx +++ b/src/useCallViewKeyboardShortcuts.test.tsx @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { render } from "@testing-library/react"; diff --git a/src/useCallViewKeyboardShortcuts.ts b/src/useCallViewKeyboardShortcuts.ts index 221e8a22..d3e4f65e 100644 --- a/src/useCallViewKeyboardShortcuts.ts +++ b/src/useCallViewKeyboardShortcuts.ts @@ -1,17 +1,8 @@ /* -Copyright 2022-2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { RefObject, useCallback, useMemo, useRef } from "react"; diff --git a/src/useEvents.ts b/src/useEvents.ts index 6e883599..ac9ebc65 100644 --- a/src/useEvents.ts +++ b/src/useEvents.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect } from "react"; diff --git a/src/useInitial.ts b/src/useInitial.ts index 3b794dd3..0a49d004 100644 --- a/src/useInitial.ts +++ b/src/useInitial.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useRef } from "react"; diff --git a/src/useLatest.ts b/src/useLatest.ts index a0e1ecc7..6a7ec41a 100644 --- a/src/useLatest.ts +++ b/src/useLatest.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { RefObject, useRef } from "react"; diff --git a/src/useLocalStorage.ts b/src/useLocalStorage.ts index c2ce9e78..7371a7f1 100644 --- a/src/useLocalStorage.ts +++ b/src/useLocalStorage.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import EventEmitter from "events"; diff --git a/src/useLocationNavigation.ts b/src/useLocationNavigation.ts index cc1c2f9f..c082421e 100644 --- a/src/useLocationNavigation.ts +++ b/src/useLocationNavigation.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect } from "react"; diff --git a/src/useMatrixRTCSessionJoinState.ts b/src/useMatrixRTCSessionJoinState.ts index 3e9cabb2..42fed070 100644 --- a/src/useMatrixRTCSessionJoinState.ts +++ b/src/useMatrixRTCSessionJoinState.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; diff --git a/src/useMatrixRTCSessionMemberships.ts b/src/useMatrixRTCSessionMemberships.ts index a7d62ba7..942a2257 100644 --- a/src/useMatrixRTCSessionMemberships.ts +++ b/src/useMatrixRTCSessionMemberships.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; diff --git a/src/useMediaQuery.ts b/src/useMediaQuery.ts index 3927a64a..b98eb349 100644 --- a/src/useMediaQuery.ts +++ b/src/useMediaQuery.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useCallback, useMemo, useState } from "react"; diff --git a/src/useMergedRefs.ts b/src/useMergedRefs.ts index 5adfdf72..20627b30 100644 --- a/src/useMergedRefs.ts +++ b/src/useMergedRefs.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { MutableRefObject, RefCallback, useCallback } from "react"; diff --git a/src/usePageTitle.ts b/src/usePageTitle.ts index 0e1b1a0c..3a70bbaa 100644 --- a/src/usePageTitle.ts +++ b/src/usePageTitle.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useEffect } from "react"; diff --git a/src/usePrefersReducedMotion.ts b/src/usePrefersReducedMotion.ts index 29d6ff39..3f51fb00 100644 --- a/src/usePrefersReducedMotion.ts +++ b/src/usePrefersReducedMotion.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 - 2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useMediaQuery } from "./useMediaQuery"; diff --git a/src/useReactiveState.ts b/src/useReactiveState.ts index afd509fb..76d8d410 100644 --- a/src/useReactiveState.ts +++ b/src/useReactiveState.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { diff --git a/src/useTheme.ts b/src/useTheme.ts index 50f07ff4..3ad1ed9d 100644 --- a/src/useTheme.ts +++ b/src/useTheme.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { useLayoutEffect, useRef } from "react"; diff --git a/src/useWakeLock.ts b/src/useWakeLock.ts index 7857c532..9ed73dc9 100644 --- a/src/useWakeLock.ts +++ b/src/useWakeLock.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; diff --git a/src/utils/matrix.ts b/src/utils/matrix.ts index 936a69e2..056606d8 100644 --- a/src/utils/matrix.ts +++ b/src/utils/matrix.ts @@ -1,17 +1,8 @@ /* -Copyright 2022-2023 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { IndexedDBStore } from "matrix-js-sdk/src/store/indexeddb"; diff --git a/src/utils/media.ts b/src/utils/media.ts index 74e5ca33..4a3103eb 100644 --- a/src/utils/media.ts +++ b/src/utils/media.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ /** diff --git a/src/utils/observable.ts b/src/utils/observable.ts index bc0135c3..dc804941 100644 --- a/src/utils/observable.ts +++ b/src/utils/observable.ts @@ -1,17 +1,8 @@ /* -Copyright 2023 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { Observable, defer, finalize, scan, startWith, tap } from "rxjs"; diff --git a/src/utils/test.ts b/src/utils/test.ts index 43329be0..d11e8961 100644 --- a/src/utils/test.ts +++ b/src/utils/test.ts @@ -1,17 +1,8 @@ /* -Copyright 2023-2024 New Vector Ltd +Copyright 2023, 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { map } from "rxjs"; import { RunHelpers, TestScheduler } from "rxjs/testing"; diff --git a/src/vitest.setup.ts b/src/vitest.setup.ts index e4210b7c..ff6ce268 100644 --- a/src/vitest.setup.ts +++ b/src/vitest.setup.ts @@ -1,17 +1,8 @@ /* -Copyright 2024 New Vector Ltd +Copyright 2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import "global-jsdom/register"; import globalJsdom from "global-jsdom"; diff --git a/src/widget.ts b/src/widget.ts index 8ce55ace..9bb8e031 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -1,17 +1,8 @@ /* -Copyright 2022 New Vector Ltd +Copyright 2022-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; diff --git a/vite.config.js b/vite.config.js index adea0d96..141cd80c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,17 +1,8 @@ /* -Copyright 2021 New Vector Ltd +Copyright 2021-2024 New Vector Ltd. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +SPDX-License-Identifier: AGPL-3.0-only +Please see LICENSE in the repository root for full details. */ import { defineConfig, loadEnv } from "vite"; From f517099f271eda386d822707db208dd707836af1 Mon Sep 17 00:00:00 2001 From: fkwp Date: Fri, 6 Sep 2024 10:35:10 +0200 Subject: [PATCH 3/7] The New Vector Ltd. -> New Vector Ltd --- src/analytics/PosthogAnalytics.ts | 3 +-- src/analytics/PosthogEvents.ts | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/analytics/PosthogAnalytics.ts b/src/analytics/PosthogAnalytics.ts index cda77e43..643fb7eb 100644 --- a/src/analytics/PosthogAnalytics.ts +++ b/src/analytics/PosthogAnalytics.ts @@ -1,6 +1,5 @@ /* -Copyright 2024 New Vector Ltd. -Copyright 2022-2024 The New Vector Ltd +Copyright 2022-2024 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only Please see LICENSE in the repository root for full details. diff --git a/src/analytics/PosthogEvents.ts b/src/analytics/PosthogEvents.ts index c22407ec..86e35fb5 100644 --- a/src/analytics/PosthogEvents.ts +++ b/src/analytics/PosthogEvents.ts @@ -1,6 +1,5 @@ /* -Copyright 2024 New Vector Ltd. -Copyright 2022-2024 The New Vector Ltd +Copyright 2022-2024 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only Please see LICENSE in the repository root for full details. From 0f63e2a181417ce31d3f19f3d7d0a1f954f363c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:03:09 +0200 Subject: [PATCH 4/7] Update all non-major dependencies (#2615) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 756 ++++++++++++++++++++++++++---------------------------- 1 file changed, 368 insertions(+), 388 deletions(-) diff --git a/yarn.lock b/yarn.lock index b2abbac6..e863ff66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2441,149 +2441,154 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz#d941173f82f9b041c61b0dc1a2a91dcd06e4b31e" - integrity sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA== +"@rollup/rollup-android-arm-eabi@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11" + integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg== -"@rollup/rollup-android-arm64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz#7e7157c8543215245ceffc445134d9e843ba51c0" - integrity sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA== +"@rollup/rollup-android-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb" + integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA== -"@rollup/rollup-darwin-arm64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz#f0a18a4fc8dc6eb1e94a51fa2adb22876f477947" - integrity sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA== +"@rollup/rollup-darwin-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz#0a2c364e775acdf1172fe3327662eec7c46e55b1" + integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q== -"@rollup/rollup-darwin-x64@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz#34b7867613e5cc42d2b85ddc0424228cc33b43f0" - integrity sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg== +"@rollup/rollup-darwin-x64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42" + integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w== -"@rollup/rollup-linux-arm-gnueabihf@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz#422b19ff9ae02b05d3395183d1d43b38c7c8be0b" - integrity sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA== +"@rollup/rollup-linux-arm-gnueabihf@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1" + integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w== -"@rollup/rollup-linux-arm-musleabihf@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz#568aa29195ef6fc57ec6ed3f518923764406a8ee" - integrity sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w== +"@rollup/rollup-linux-arm-musleabihf@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266" + integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w== -"@rollup/rollup-linux-arm64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz#22309c8bcba9a73114f69165c72bc94b2fbec085" - integrity sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w== +"@rollup/rollup-linux-arm64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7" + integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw== -"@rollup/rollup-linux-arm64-musl@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz#c93c388af6d33f082894b8a60839d7265b2b9bc5" - integrity sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw== +"@rollup/rollup-linux-arm64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80" + integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w== -"@rollup/rollup-linux-powerpc64le-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz#493c5e19e395cf3c6bd860c7139c8a903dea72b4" - integrity sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg== +"@rollup/rollup-linux-powerpc64le-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54" + integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ== -"@rollup/rollup-linux-riscv64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz#a2eab4346fbe5909165ce99adb935ba30c9fb444" - integrity sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg== +"@rollup/rollup-linux-riscv64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09" + integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg== -"@rollup/rollup-linux-s390x-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz#0bc49a79db4345d78d757bb1b05e73a1b42fa5c3" - integrity sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw== +"@rollup/rollup-linux-s390x-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18" + integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ== -"@rollup/rollup-linux-x64-gnu@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz#4fd36a6a41f3406d8693321b13d4f9b7658dd4b9" - integrity sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg== +"@rollup/rollup-linux-x64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad" + integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw== -"@rollup/rollup-linux-x64-musl@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz#10ebb13bd4469cbad1a5d9b073bd27ec8a886200" - integrity sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ== +"@rollup/rollup-linux-x64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8" + integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg== -"@rollup/rollup-win32-arm64-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz#2fef1a90f1402258ef915ae5a94cc91a5a1d5bfc" - integrity sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ== +"@rollup/rollup-win32-arm64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504" + integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ== -"@rollup/rollup-win32-ia32-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz#a18ad47a95c5f264defb60acdd8c27569f816fc1" - integrity sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg== +"@rollup/rollup-win32-ia32-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e" + integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw== -"@rollup/rollup-win32-x64-msvc@4.21.0": - version "4.21.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz#20c09cf44dcb082140cc7f439dd679fe4bba3375" - integrity sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ== +"@rollup/rollup-win32-x64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b" + integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA== -"@sentry-internal/browser-utils@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.27.0.tgz#b8fd1c5e6b8c01d76abbba7ac5017eebcf7d3ed2" - integrity sha512-YTIwQ1GM1NTRXgN4DvpFSQ2x4pjlqQ0FQAyHW5x2ZYv4z7VmqG4Xkid1P/srQUipECk6nxkebfD4WR19nLsvnQ== +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@sentry-internal/browser-utils@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.28.0.tgz#bddc58c154e898195d45e971e058e237085bbcc2" + integrity sha512-tE9++KEy8SlqibTmYymuxFVAnutsXBqrwQ936WJbjaMfkqXiro7C1El0ybkprskd0rKS7kln20Q6nQlNlMEoTA== dependencies: - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" -"@sentry-internal/feedback@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.27.0.tgz#46a4cbde49d7a1cb182792c28341a8c89249e6b1" - integrity sha512-b71PQc9aK1X9b/SO1DiJlrnAEx4n0MzPZQ/tKd9oRWDyGit6pJWZfQns9r2rvc96kJPMOTxFAa/upXRCkA723A== +"@sentry-internal/feedback@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.28.0.tgz#f278548ead037ad38e54d24b1afcdc1f711c5715" + integrity sha512-5vYunPCDBLCJ8QNnhepacdYheiN+UtYxpGAIaC/zjBC1nDuBgWs+TfKPo1UlO/1sesfgs9ibpxtShOweucL61g== dependencies: - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" -"@sentry-internal/replay-canvas@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.27.0.tgz#24a154f37b200ed99bb99a39cf98c35f25c2b93b" - integrity sha512-uuEfiWbjwugB9M4KxXxovHYiKRqg/R6U4EF8xM/Ub4laUuEcWsfRp7lQ3MxL3qYojbca8ncIFic2bIoKMPeejA== +"@sentry-internal/replay-canvas@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.28.0.tgz#6a08541f9fecd912b7334c693a403469c9e34a89" + integrity sha512-RfpYHDHMUKGeEdx41QtHITjEn6P3tGaDPHvatqdrD3yv4j+wbJ6laX1PrIxCpGFUtjdzkqi/KUcvUd2kzbH/FA== dependencies: - "@sentry-internal/replay" "8.27.0" - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry-internal/replay" "8.28.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" -"@sentry-internal/replay@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.27.0.tgz#7762647930c3a9b3d99f6d4c486b28f9d3da70c2" - integrity sha512-Ofucncaon98dvlxte2L//hwuG9yILSxNrTz/PmO0k+HzB9q+oBic4667QF+azWR2qv4oKSWpc+vEovP3hVqveA== +"@sentry-internal/replay@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.28.0.tgz#a84523066ab363239ef6b4180726908cab510e5f" + integrity sha512-70jvzzOL5O74gahgXKyRkZgiYN93yly5gq+bbj4/6NRQ+EtPd285+ccy0laExdfyK0ugvvwD4v+1MQit52OAsg== dependencies: - "@sentry-internal/browser-utils" "8.27.0" - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry-internal/browser-utils" "8.28.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" -"@sentry/babel-plugin-component-annotate@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.3.tgz#de4970d51a54ef52b21f0d6ec49bd06bf37753c1" - integrity sha512-OlHA+i+vnQHRIdry4glpiS/xTOtgjmpXOt6IBOUqynx5Jd/iK1+fj+t8CckqOx9wRacO/hru2wfW/jFq0iViLg== +"@sentry/babel-plugin-component-annotate@2.22.4": + version "2.22.4" + resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.4.tgz#c5adef7201a799c971cdccc5ba11c97d4609b1a2" + integrity sha512-hbSq067KwmeKIEkmyzkTNJbmbtx2KRqvpiy9Q/DynI5Z46Nko/ppvgIfyFXK9DelwvEPOqZic4WXTIhO4iv3DA== -"@sentry/browser@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.27.0.tgz#997eb6b3c298a659a109704a0fb660eae365cd3a" - integrity sha512-eL1eaHwoYUGkp4mpeYesH6WtCrm+0u9jYCW5Lm0MAeTmpx22BZKEmj0OljuUJXGnJwFbvPDlRjyz6QG11m8kZA== +"@sentry/browser@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.28.0.tgz#e3d28e7a917c212418c887b4fabacc6ed88baea8" + integrity sha512-i/gjMYzIGQiPFH1pCbdnTwH9xs9mTAqzN+goP3GWX5a58frc7h8vxyA/5z0yMd0aCW6U8mVxnoAT72vGbKbx0g== dependencies: - "@sentry-internal/browser-utils" "8.27.0" - "@sentry-internal/feedback" "8.27.0" - "@sentry-internal/replay" "8.27.0" - "@sentry-internal/replay-canvas" "8.27.0" - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry-internal/browser-utils" "8.28.0" + "@sentry-internal/feedback" "8.28.0" + "@sentry-internal/replay" "8.28.0" + "@sentry-internal/replay-canvas" "8.28.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" -"@sentry/bundler-plugin-core@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.3.tgz#f8c0a25321216ae9777749c1a4b9d982ae1ec2e1" - integrity sha512-DeoUl0WffcqZZRl5Wy9aHvX4WfZbbWt0QbJ7NJrcEViq+dRAI2FQTYECFLwdZi5Gtb3oyqZICO+P7k8wDnzsjQ== +"@sentry/bundler-plugin-core@2.22.4": + version "2.22.4" + resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.4.tgz#e2c4efc713436b5a38dbbc4be510769c1c548cca" + integrity sha512-25NiyV3v6mdqOXlpzbbJnq0FHdAu1uTEDr+DU8CzNLjIXlq2Sr2CFZ/mhRcR6daM8OAretJdQ34lu0yHUVeE4Q== dependencies: "@babel/core" "^7.18.5" - "@sentry/babel-plugin-component-annotate" "2.22.3" + "@sentry/babel-plugin-component-annotate" "2.22.4" "@sentry/cli" "^2.33.1" dotenv "^16.3.1" find-up "^5.0.0" @@ -2591,45 +2596,45 @@ magic-string "0.30.8" unplugin "1.0.1" -"@sentry/cli-darwin@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.34.1.tgz#5106ab7eae3fc8218ddcc4d5da209390b4b7edbe" - integrity sha512-SqlCunwhweMDJNKVf3kabiN6FwpvCIffn2cjfaZD0zqZQ3M1tWMJ/kSA0TGfe7lWu9JloNmVm+ArcudGitvX3w== +"@sentry/cli-darwin@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.35.0.tgz#4bc9a07690f0de75d930ba47f4655f6465191768" + integrity sha512-dRtDaASkB1ncSbCLMIL8bxki4dPMimSdYz74XOUJ5IvDVVzEInEO7PqvyOj/cyafB+1FSNudaZ90ZRvsNN1Maw== -"@sentry/cli-linux-arm64@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.34.1.tgz#60ccbd029c63861e45a007026b88c97d8a134205" - integrity sha512-iSl/uNWjKbVPb6ll12SmHG9iGcC3oN8jjzdycm/mD3H/d8DLMloEiaz8lHQnsYCaPiNKwap1ThKlPvnKOU4SNg== +"@sentry/cli-linux-arm64@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.35.0.tgz#bad8a45b81d2b317f702991783a503f566b2294e" + integrity sha512-NpyVz2lQWWkMa9GZkt0m4cA/wsgYnWOE6Z+4ePUGjbOIG3Ws9DLaHjYxUUYI79kxfbVCp7wLo1S6kOkj+M1Dlw== -"@sentry/cli-linux-arm@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.34.1.tgz#b52880718df35c99972dc870aefd9ef49b63d6cd" - integrity sha512-CDhtFbUs16CoU10wEbxnn/pEuenFIMosTcxI7v0gWp3Wo0B2h0bOsLEk9dlT0YsqRTAldKUzef9AVX82m5Svwg== +"@sentry/cli-linux-arm@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.35.0.tgz#dacfc219876f5dce3d8c65dab7128ea3e493f561" + integrity sha512-zNL+/HnepZ4/MkIS8wfoUQxSa+k6r0DSSdX1TpDH5436u+3LB5rfCTBfZ624DWHKMoXX+1dI+rWSi+zL8QFMsg== -"@sentry/cli-linux-i686@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.34.1.tgz#5ff75602350a6b803d9e9b8d20abb55d230de009" - integrity sha512-jq5o49pgzJFv/CQtvx4FLVO1xra22gzP76FtmvPwEhZQhJT6QduW9fpnvVDnOaY8YLzC7GAeszUV6sqZ0MZUqg== +"@sentry/cli-linux-i686@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.35.0.tgz#d0e6401b60b0a4b6c3578998995ba6cb31c1bf20" + integrity sha512-vIYwZVqx+kYZdPsenIm+UqjSCKe9Q2Aof6kzrzW0DPR1WyqIWbWG4NbiugiPTiuA1dLjUjYpGP8wyIqb8hxv4w== -"@sentry/cli-linux-x64@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.34.1.tgz#e620a5bfe46479df37ea96760679fd8e8e85cc80" - integrity sha512-O99RAkrcMErWLPRdza6HaG7kmHCx9MYFNDX6FLrAgSP3oz+X3ral1oDTIrMs4hVbPDK287ZGAqCJtk+1iOjEBg== +"@sentry/cli-linux-x64@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.35.0.tgz#a1e8e7bff960ed8916b4cc9c0ef75a057e30f989" + integrity sha512-7Wy5QNt6wZ8EaxEbHqP0DEiyUcXRVItRt9jzhpa2nCaawL+fwDOQCjUkHGsdIC+y14UqA+er9CaPCSp8sA6Vaw== -"@sentry/cli-win32-i686@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.34.1.tgz#0d1897f74dc7318bbf5cbac3865208ca0cb77d03" - integrity sha512-yEeuneEVmExCbWlnSauhIg8wZDfKxRaou8XRfM6oPlSBu0XO5HUI3uRK5t2xT0zX8Syzh2kCZpdVE1KLavVeKA== +"@sentry/cli-win32-i686@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.35.0.tgz#c1b090f7c740c5b22d1019ca48a84f58cd4b2670" + integrity sha512-XDcBUtO5A9elH+xgFNs6NBjkMBnz0sZLo5DU7LE77qKXULnlLeJ63eZD1ukQIRPvxEDsIEPOllRweLuAlUMDtw== -"@sentry/cli-win32-x64@2.34.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.34.1.tgz#40a5f9aba47c1e3b20dd10982643004f89b0d918" - integrity sha512-mU48VpDTwRgt7/Pf3vk/P87m4kM3XEXHHHfq9EvHCTspFF6GtMfL9njZ7+5Z+7ko852JS4kpunjZtsxmoP4/zA== +"@sentry/cli-win32-x64@2.35.0": + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.35.0.tgz#f592af483da239be846e556f57f5c6fc7dc1dc54" + integrity sha512-86yHO+31qAXUeAdSCH7MNodn/cn/9xd2fTrxjtfNZWO0pX0jW91sCdomfBxhu5b977cyV9gNcqeBbc9XSIKIIA== "@sentry/cli@^2.33.1": - version "2.34.1" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.34.1.tgz#5c68db72deb6a00438be46e0d3d58ba02db6bace" - integrity sha512-hAHvu+XH1kn1ee2NUWvuqAZenK/MrxqQzeIrIYATqF2XGjtSOr7irjAKWjd97/vXdLHA6TBnMW1wHwLcuJK2tg== + version "2.35.0" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.35.0.tgz#5514eb8f5808bc70707ffa186156f8ff7ca5971e" + integrity sha512-7sHRJViEgHTfEXf+HD1Fb2cwmnxlILmb2NNxghP2vvrgC2PhuwuJU7AX4zg7HjJgxH9HBmnn4AJskDujaJ/6cQ== dependencies: https-proxy-agent "^5.0.0" node-fetch "^2.6.7" @@ -2637,51 +2642,51 @@ proxy-from-env "^1.1.0" which "^2.0.2" optionalDependencies: - "@sentry/cli-darwin" "2.34.1" - "@sentry/cli-linux-arm" "2.34.1" - "@sentry/cli-linux-arm64" "2.34.1" - "@sentry/cli-linux-i686" "2.34.1" - "@sentry/cli-linux-x64" "2.34.1" - "@sentry/cli-win32-i686" "2.34.1" - "@sentry/cli-win32-x64" "2.34.1" + "@sentry/cli-darwin" "2.35.0" + "@sentry/cli-linux-arm" "2.35.0" + "@sentry/cli-linux-arm64" "2.35.0" + "@sentry/cli-linux-i686" "2.35.0" + "@sentry/cli-linux-x64" "2.35.0" + "@sentry/cli-win32-i686" "2.35.0" + "@sentry/cli-win32-x64" "2.35.0" -"@sentry/core@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.27.0.tgz#a0ebe31cdd9313186a14d9738238ed9cf7a59c01" - integrity sha512-4frlXluHT3Du+Omw91K04jpvbfMtydvg4Bxj2+gt/DT19Swhm/fbEpzdUjgbAd3Jinj/n0qk/jFRXjr9JZKFjg== +"@sentry/core@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.28.0.tgz#dd28fa913c296b443d4070f147c63e81edf429c8" + integrity sha512-+If9uubvpZpvaQQw4HLiKPhrSS9/KcoA/AcdQkNm+5CVwAoOmDPtyYfkPBgfo2hLZnZQqR1bwkz/PrNoOm+gqA== dependencies: - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" "@sentry/react@^8.0.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.27.0.tgz#3ff4b8ece65af170fe32102ecb8847b53c675ffd" - integrity sha512-8pD+J9UVnSGmPnm5dHJup5OVsHTN/pL4Ozi01yyrpivLkQiMZNac3OXsc0C7zXnztfLQx0kmTyCOzbRROfbpnA== + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.28.0.tgz#99cb555c98f6b486870d6dbb6b1c697ee53c1b55" + integrity sha512-rpeO8ikpAK7/9kVHc1IMtJc7A7IyPzswcFJ0uL1faCt8oZEzlotrQnEe6hgFnv4xvMledTrohnKj/fWVd55Aig== dependencies: - "@sentry/browser" "8.27.0" - "@sentry/core" "8.27.0" - "@sentry/types" "8.27.0" - "@sentry/utils" "8.27.0" + "@sentry/browser" "8.28.0" + "@sentry/core" "8.28.0" + "@sentry/types" "8.28.0" + "@sentry/utils" "8.28.0" hoist-non-react-statics "^3.3.2" -"@sentry/types@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.27.0.tgz#a5c7d2877c6c3620f812b2b31377b58d390b89d4" - integrity sha512-B6lrP46+m2x0lfqWc9F4VcUbN893mVGnPEd7KIMRk95mPzkFJ3sNxggTQF5/ZfNO7lDQYQb22uysB5sj/BqFiw== +"@sentry/types@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.28.0.tgz#a1cfc004d5714679cb3fed06c27298b0275d13b5" + integrity sha512-hOfqfd92/AzBrEdMgmmV1VfOXJbIfleFTnerRl0mg/+CcNgP/6+Fdonp354TD56ouWNF2WkOM6sEKSXMWp6SEQ== -"@sentry/utils@8.27.0": - version "8.27.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.27.0.tgz#308f6cc34acac175c500e4dd5b5007cdb621c79e" - integrity sha512-gyJM3SyLQe0A3mkQVVNdKYvk3ZoikkYgyA/D+5StFNLKdyUgEbJgXOGXrQSSYPF7BSX6Sc5b0KHCglPII0KuKw== +"@sentry/utils@8.28.0": + version "8.28.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.28.0.tgz#0feb46015033879b2a3cee4c0661386610025f47" + integrity sha512-smhk7PJpvDMQ2DB5p2qn9UeoUHdU41IgjMmS2xklZpa8tjzBTxDeWpGvrX2fuH67D9bAJuLC/XyZjJCHLoEW5g== dependencies: - "@sentry/types" "8.27.0" + "@sentry/types" "8.28.0" "@sentry/vite-plugin@^2.0.0": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.22.3.tgz#b52802412b6f3d8e3e56742afc9624d9babae5b6" - integrity sha512-+5bsLFRKOZzBp68XigoNE1pJ3tJ4gt2jXluApu54ui0N/yjfqGQ7LQTD7nL4tmJvB5Agwi0e7M7+fcxe9gSgBA== + version "2.22.4" + resolved "https://registry.yarnpkg.com/@sentry/vite-plugin/-/vite-plugin-2.22.4.tgz#6237e62635c51b6ddc0bed5f14902488c3a0f840" + integrity sha512-C51PUlTv0BXN3+e9SjPHptNX3b9E0clrsaR5c//l/sFkQjuteDHKChA1gNzZSvfoa3gm9NzZAgpk3hVF2O3nBA== dependencies: - "@sentry/bundler-plugin-core" "2.22.3" + "@sentry/bundler-plugin-core" "2.22.4" unplugin "1.0.1" "@snyk/github-codeowners@1.1.0": @@ -2904,9 +2909,9 @@ undici-types "~6.13.0" "@types/node@^20.0.0": - version "20.16.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.3.tgz#7b4f9a37091cf03a0c2561bf76a9a55f03f4f523" - integrity sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ== + version "20.16.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.5.tgz#d43c7f973b32ffdf9aa7bd4f80e1072310fd7a53" + integrity sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA== dependencies: undici-types "~6.19.2" @@ -2985,61 +2990,61 @@ integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== "@typescript-eslint/eslint-plugin@^8.0.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz#726627fad16d41d20539637efee8c2329fe6be32" - integrity sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA== + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz#188c65610ef875a086404b5bfe105df936b035da" + integrity sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.3.0" - "@typescript-eslint/type-utils" "8.3.0" - "@typescript-eslint/utils" "8.3.0" - "@typescript-eslint/visitor-keys" "8.3.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/type-utils" "8.4.0" + "@typescript-eslint/utils" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" "@typescript-eslint/parser@^8.0.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.3.0.tgz#3c72c32bc909cb91ce3569e7d11d729ad84deafa" - integrity sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ== + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.4.0.tgz#36b7cd7643a1c190d49dc0278192b2450f615a6f" + integrity sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA== dependencies: - "@typescript-eslint/scope-manager" "8.3.0" - "@typescript-eslint/types" "8.3.0" - "@typescript-eslint/typescript-estree" "8.3.0" - "@typescript-eslint/visitor-keys" "8.3.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/typescript-estree" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz#834301d2e70baf924c26818b911bdc40086f7468" - integrity sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg== +"@typescript-eslint/scope-manager@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz#8a13d3c0044513d7960348db6f4789d2a06fa4b4" + integrity sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A== dependencies: - "@typescript-eslint/types" "8.3.0" - "@typescript-eslint/visitor-keys" "8.3.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" -"@typescript-eslint/type-utils@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz#c1ae6af8c21a27254321016b052af67ddb44a9ac" - integrity sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg== +"@typescript-eslint/type-utils@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz#4a91b5789f41946adb56d73e2fb4639fdcf37af7" + integrity sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A== dependencies: - "@typescript-eslint/typescript-estree" "8.3.0" - "@typescript-eslint/utils" "8.3.0" + "@typescript-eslint/typescript-estree" "8.4.0" + "@typescript-eslint/utils" "8.4.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.3.0.tgz#378e62447c2d7028236e55a81d3391026600563b" - integrity sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw== +"@typescript-eslint/types@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.4.0.tgz#b44d6a90a317a6d97a3e5fabda5196089eec6171" + integrity sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw== -"@typescript-eslint/typescript-estree@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz#3e3d38af101ba61a8568f034733b72bfc9f176b9" - integrity sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA== +"@typescript-eslint/typescript-estree@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz#00ed79ae049e124db37315cde1531a900a048482" + integrity sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A== dependencies: - "@typescript-eslint/types" "8.3.0" - "@typescript-eslint/visitor-keys" "8.3.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -3047,22 +3052,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.3.0.tgz#b10972319deac5959c7a7075d0cf2b5e1de7ec08" - integrity sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA== +"@typescript-eslint/utils@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.4.0.tgz#35c552a404858c853a1f62ba6df2214f1988afc3" + integrity sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.3.0" - "@typescript-eslint/types" "8.3.0" - "@typescript-eslint/typescript-estree" "8.3.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/typescript-estree" "8.4.0" -"@typescript-eslint/visitor-keys@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz#320d747d107af1eef1eb43fbc4ccdbddda13068b" - integrity sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA== +"@typescript-eslint/visitor-keys@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz#1e8a8b8fd3647db1e42361fdd8de3e1679dec9d2" + integrity sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A== dependencies: - "@typescript-eslint/types" "8.3.0" + "@typescript-eslint/types" "8.4.0" eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": @@ -3328,17 +3333,6 @@ array-includes@^3.1.6, array-includes@^3.1.8: get-intrinsic "^1.2.4" is-string "^1.0.7" -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - array.prototype.findlast@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" @@ -3351,16 +3345,17 @@ array.prototype.findlast@^1.2.5: es-object-atoms "^1.0.0" es-shim-unscopables "^1.0.2" -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.2" @@ -3441,17 +3436,15 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axe-core@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.9.1.tgz#fcd0f4496dad09e0c899b44f6c4bb7848da912ae" - integrity sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw== +axe-core@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -axobject-query@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" - integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== - dependencies: - deep-equal "^2.0.5" +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== b4a@^1.6.4: version "1.6.6" @@ -3645,9 +3638,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001646: - version "1.0.30001655" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz#0ce881f5a19a2dcfda2ecd927df4d5c1684b982f" - integrity sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg== + version "1.0.30001658" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001658.tgz#b5f7be8ac748a049ab06aa1cf7a1408d83f074ec" + integrity sha512-N2YVqWbJELVdrnsW5p+apoQyYt51aBMSsBZki1XZEfeBCexcM/sf4xiAHcXQBkuOwJBXtWF7aW1sYX6tKebPHw== chai@^5.1.1: version "5.1.1" @@ -3994,12 +3987,12 @@ debounce@^1.2.1: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.3.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== +debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.1.2" + ms "^2.1.3" debug@^2.2.0: version "2.6.9" @@ -4015,6 +4008,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.1.1, debug@^4.3.5: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + debug@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -4188,9 +4188,9 @@ easy-table@1.2.0: wcwidth "^1.0.1" electron-to-chromium@^1.5.4: - version "1.5.13" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" - integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== + version "1.5.18" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.18.tgz#5fe62b9d21efbcfa26571066502d94f3ed97e495" + integrity sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ== emoji-regex@^8.0.0: version "8.0.0" @@ -4464,10 +4464,10 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +eslint-module-utils@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4" + integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ== dependencies: debug "^3.2.7" @@ -4477,39 +4477,40 @@ eslint-plugin-deprecate@^0.8.2: integrity sha512-nBH14smi2O1qsQY/deVf1xg1XPMB5ADPPcXWpUDp5ptGrWuNGD7Ghe0mIQKmsoFr6VjjDxJZ5tt78hb5GaCScA== eslint-plugin-import@^2.26.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + version "2.30.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449" + integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw== dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" array.prototype.flat "^1.3.2" array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.9.0" + hasown "^2.0.2" + is-core-module "^2.15.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" semver "^6.3.1" tsconfig-paths "^3.15.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8" - integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g== + version "6.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz#36fb9dead91cafd085ddbe3829602fb10ef28339" + integrity sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg== dependencies: aria-query "~5.1.3" array-includes "^3.1.8" array.prototype.flatmap "^1.3.2" ast-types-flow "^0.0.8" - axe-core "^4.9.1" - axobject-query "~3.1.1" + axe-core "^4.10.0" + axobject-query "^4.1.0" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" es-iterator-helpers "^1.0.19" @@ -4532,9 +4533,9 @@ eslint-plugin-react-hooks@^4.5.0: integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== eslint-plugin-react@^7.29.4: - version "7.35.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" - integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + version "7.35.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz#d32500d3ec268656d5071918bfec78cfd8b070ed" + integrity sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" @@ -4878,7 +4879,7 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: +function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -5253,20 +5254,20 @@ ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.8: +ignore@^5.1.8, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -ignore@^5.2.0, ignore@^5.3.1: +ignore@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" - integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== + version "4.3.7" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -5382,20 +5383,13 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: +is-core-module@^2.13.0, is-core-module@^2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== dependencies: hasown "^2.0.2" -is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - is-data-view@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" @@ -5755,9 +5749,9 @@ keyv@^4.5.3: json-buffer "3.0.1" knip@^5.27.2: - version "5.29.1" - resolved "https://registry.yarnpkg.com/knip/-/knip-5.29.1.tgz#596ba9aea44fb56d89c9cc7d73e2522d50280713" - integrity sha512-l8qFtRqNpCk8xf46VOwhBUva7LBwanoGPJ4KQNwVRl6hmEXStf1BJlfbYRZ+yQpbilbIV6LN+ztX6LaGtyd4TQ== + version "5.30.0" + resolved "https://registry.yarnpkg.com/knip/-/knip-5.30.0.tgz#182e449a1bb246bb5d2ad1ffbfde6ae6be5ffd25" + integrity sha512-QDpxtXosXK3OBnmWC2LJudjJROozAXyGzSi+aTuEx/Pf9/OKjmegQWix+X6uBYhPbMb8YEFcKWvI7qBnQCkIEA== dependencies: "@nodelib/fs.walk" "1.2.8" "@snyk/github-codeowners" "1.1.0" @@ -5854,7 +5848,7 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@1.9.1, loglevel@^1.8.0, loglevel@^1.9.1: +loglevel@1.9.1, loglevel@^1.8.0: version "1.9.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== @@ -5864,6 +5858,11 @@ loglevel@^1.7.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== +loglevel@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" + integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== + long@^5.0.0: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" @@ -6069,7 +6068,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -6197,15 +6196,6 @@ object.entries@^1.1.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - object.fromentries@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" @@ -6216,15 +6206,14 @@ object.fromentries@^2.0.8: es-abstract "^1.23.2" es-object-atoms "^1.0.0" -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" object.values@^1.1.6, object.values@^1.2.0: version "1.2.0" @@ -6235,15 +6224,6 @@ object.values@^1.1.6, object.values@^1.2.0: define-properties "^1.2.1" es-object-atoms "^1.0.0" -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - observable-hooks@^4.2.3: version "4.2.4" resolved "https://registry.yarnpkg.com/observable-hooks/-/observable-hooks-4.2.4.tgz#e1ee0f867e0f2216f79c1e13c58716fb50b410ec" @@ -6445,9 +6425,9 @@ pathval@^2.0.0: integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== picocolors@^1.0.0, picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" @@ -6744,19 +6724,19 @@ postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.41: - version "8.4.44" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.44.tgz#d56834ef6508610ba224bb22b2457b2169ed0480" - integrity sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw== +postcss@^8.4.41, postcss@^8.4.43: + version "8.4.45" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.45.tgz#538d13d89a16ef71edbf75d895284ae06b79e603" + integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q== dependencies: nanoid "^3.3.7" picocolors "^1.0.1" source-map-js "^1.2.0" posthog-js@^1.29.0: - version "1.160.1" - resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.160.1.tgz#6ef51351190c6bfc246c16799c83ba8bf8d4cd9f" - integrity sha512-OfzFSArlkSEUxQzL9+2qulbkJsVFAvpgb7rQaWBGtlY3qPKfdND+ak79rZkVPZHkP0JOh4keAM6xE4ZxLesvXA== + version "1.160.3" + resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.160.3.tgz#17c8af4c9ffa2d795d925ca1e7146e61cd5ccabd" + integrity sha512-mGvxOIlWPtdPx8EI0MQ81wNKlnH2K0n4RqwQOl044b34BCKiFVzZ7Hc7geMuZNaRAvCi5/5zyGeWHcAYZQxiMQ== dependencies: fflate "^0.4.8" preact "^10.19.3" @@ -7214,28 +7194,28 @@ rimraf@^3.0.2: glob "^7.1.3" rollup@^4.20.0: - version "4.21.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.0.tgz#28db5f5c556a5180361d35009979ccc749560b9d" - integrity sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ== + version "4.21.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.2.tgz#f41f277a448d6264e923dd1ea179f0a926aaf9b7" + integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.21.0" - "@rollup/rollup-android-arm64" "4.21.0" - "@rollup/rollup-darwin-arm64" "4.21.0" - "@rollup/rollup-darwin-x64" "4.21.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.21.0" - "@rollup/rollup-linux-arm-musleabihf" "4.21.0" - "@rollup/rollup-linux-arm64-gnu" "4.21.0" - "@rollup/rollup-linux-arm64-musl" "4.21.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.21.0" - "@rollup/rollup-linux-riscv64-gnu" "4.21.0" - "@rollup/rollup-linux-s390x-gnu" "4.21.0" - "@rollup/rollup-linux-x64-gnu" "4.21.0" - "@rollup/rollup-linux-x64-musl" "4.21.0" - "@rollup/rollup-win32-arm64-msvc" "4.21.0" - "@rollup/rollup-win32-ia32-msvc" "4.21.0" - "@rollup/rollup-win32-x64-msvc" "4.21.0" + "@rollup/rollup-android-arm-eabi" "4.21.2" + "@rollup/rollup-android-arm64" "4.21.2" + "@rollup/rollup-darwin-arm64" "4.21.2" + "@rollup/rollup-darwin-x64" "4.21.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.2" + "@rollup/rollup-linux-arm-musleabihf" "4.21.2" + "@rollup/rollup-linux-arm64-gnu" "4.21.2" + "@rollup/rollup-linux-arm64-musl" "4.21.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.2" + "@rollup/rollup-linux-riscv64-gnu" "4.21.2" + "@rollup/rollup-linux-s390x-gnu" "4.21.2" + "@rollup/rollup-linux-x64-gnu" "4.21.2" + "@rollup/rollup-linux-x64-musl" "4.21.2" + "@rollup/rollup-win32-arm64-msvc" "4.21.2" + "@rollup/rollup-win32-ia32-msvc" "4.21.2" + "@rollup/rollup-win32-x64-msvc" "4.21.2" fsevents "~2.3.2" rrweb-cssom@^0.6.0: @@ -7307,9 +7287,9 @@ safe-regex-test@^1.0.3: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.42.1: - version "1.77.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" - integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== + version "1.78.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.78.0.tgz#cef369b2f9dc21ea1d2cf22c979f52365da60841" + integrity sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7349,12 +7329,12 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3: +semver@^7.5.3, semver@^7.6.0: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -semver@^7.6.0, semver@^7.6.1: +semver@^7.6.1: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -7448,9 +7428,9 @@ sort-keys@^5.0.0: is-plain-obj "^4.0.0" "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== spdx-correct@^3.0.0: version "3.2.0" @@ -8203,12 +8183,12 @@ vite-plugin-svgr@^4.0.0: "@svgr/plugin-jsx" "^8.1.0" vite@^5.0.0: - version "5.4.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.2.tgz#8acb6ec4bfab823cdfc1cb2d6c53ed311bc4e47e" - integrity sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA== + version "5.4.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.3.tgz#771c470e808cb6732f204e1ee96c2ed65b97a0eb" + integrity sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q== dependencies: esbuild "^0.21.3" - postcss "^8.4.41" + postcss "^8.4.43" rollup "^4.20.0" optionalDependencies: fsevents "~2.3.3" @@ -8339,12 +8319,12 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" is-async-function "^2.0.0" is-date-object "^1.0.5" is-finalizationregistry "^1.0.2" @@ -8353,10 +8333,10 @@ which-builtin-type@^1.1.3: is-weakref "^1.0.2" isarray "^2.0.5" which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" + which-collection "^1.0.2" + which-typed-array "^1.1.15" -which-collection@^1.0.1: +which-collection@^1.0.1, which-collection@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== @@ -8371,7 +8351,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== From c30c8ac7d627149bd0b5c16a879959f3b7b241c1 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Mon, 9 Sep 2024 11:14:46 +0100 Subject: [PATCH 5/7] Include the hostname of where EC is running in rageshakes (#2616) --- src/settings/submit-rageshake.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/settings/submit-rageshake.ts b/src/settings/submit-rageshake.ts index 94ac2925..f9e10aba 100644 --- a/src/settings/submit-rageshake.ts +++ b/src/settings/submit-rageshake.ts @@ -181,6 +181,7 @@ export function useSubmitRageshake(): { body.append("installed_pwa", "false"); body.append("touch_input", touchInput); body.append("call_backend", "livekit"); + body.append("hostname", window.location.hostname); if (client) { const userId = client.getUserId()!; From c3edd3e25e51daef8a6901119fc294811f858e11 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:49:35 +0200 Subject: [PATCH 6/7] Enable lint rules for Promise handling to discourage misuse of them. (#2607) * Enable lint rules for Promise handling to discourage misuse of them. Squashed all of Hugh's commits into one. --------- Co-authored-by: Hugh Nimmo-Smith --- .eslintrc.cjs | 6 +++ src/App.tsx | 13 +++-- src/UserMenuContainer.tsx | 2 +- src/analytics/PosthogAnalytics.ts | 37 ++++++++----- src/analytics/PosthogSpanProcessor.ts | 9 ++-- src/auth/useInteractiveLogin.ts | 7 ++- src/auth/useInteractiveRegistration.ts | 30 +++++++---- src/auth/useRecaptcha.ts | 9 +++- src/config/Config.ts | 24 ++++----- src/e2ee/matrixKeyProvider.ts | 24 +++++---- src/grid/Grid.tsx | 6 ++- src/home/CallList.test.tsx | 2 +- src/initializer.tsx | 17 ++++-- src/livekit/openIDSFU.ts | 18 ++++--- src/livekit/useECConnectionState.ts | 22 +++++--- src/livekit/useLiveKit.ts | 38 +++++++++---- src/main.tsx | 5 +- src/otel/otel.ts | 4 +- src/room/GroupCallView.tsx | 75 +++++++++++++------------- src/room/InCallView.tsx | 37 ++++++++----- src/room/MuteStates.ts | 13 +++-- src/room/RoomPage.tsx | 10 ++-- src/room/useLoadGroupCall.ts | 20 +++---- src/rtcSessionHelpers.ts | 12 +++-- src/settings/FeedbackSettingsTab.tsx | 3 ++ src/settings/ProfileSettingsTab.tsx | 3 ++ src/settings/RageshakeButton.tsx | 3 ++ src/settings/rageshake.ts | 50 ++++++++--------- src/settings/submit-rageshake.ts | 12 +++-- src/state/CallViewModel.ts | 2 +- src/useWakeLock.ts | 27 +++++----- src/utils/matrix.ts | 30 ++++++----- src/utils/media.ts | 4 +- src/vitest.setup.ts | 18 ++++--- src/widget.ts | 18 +++---- 35 files changed, 369 insertions(+), 241 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 5970790f..3ef03c68 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -39,6 +39,12 @@ module.exports = { // We should use the js-sdk logger, never console directly. "no-console": ["error"], "react/display-name": "error", + // Encourage proper usage of Promises: + "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/no-misused-promises": "error", + "@typescript-eslint/promise-function-async": "error", + "@typescript-eslint/require-await": "error", + "@typescript-eslint/await-thenable": "error", }, settings: { react: { diff --git a/src/App.tsx b/src/App.tsx index 0f87498f..8d841dba 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -15,6 +15,7 @@ import { import * as Sentry from "@sentry/react"; import { History } from "history"; import { TooltipProvider } from "@vector-im/compound-web"; +import { logger } from "matrix-js-sdk/src/logger"; import { HomePage } from "./home/HomePage"; import { LoginPage } from "./auth/LoginPage"; @@ -61,11 +62,13 @@ interface AppProps { export const App: FC = ({ history }) => { const [loaded, setLoaded] = useState(false); useEffect(() => { - Initializer.init()?.then(() => { - if (loaded) return; - setLoaded(true); - widget?.api.sendContentLoaded(); - }); + Initializer.init() + ?.then(async () => { + if (loaded) return; + setLoaded(true); + await widget?.api.sendContentLoaded(); + }) + .catch(logger.error); }); const errorPage = ; diff --git a/src/UserMenuContainer.tsx b/src/UserMenuContainer.tsx index 8a16301d..e73f2780 100644 --- a/src/UserMenuContainer.tsx +++ b/src/UserMenuContainer.tsx @@ -31,7 +31,7 @@ export const UserMenuContainer: FC = ({ preventNavigation = false }) => { const [settingsTab, setSettingsTab] = useState(defaultSettingsTab); const onAction = useCallback( - async (value: string) => { + (value: string) => { switch (value) { case "user": setSettingsTab("profile"); diff --git a/src/analytics/PosthogAnalytics.ts b/src/analytics/PosthogAnalytics.ts index 643fb7eb..f66a5ab7 100644 --- a/src/analytics/PosthogAnalytics.ts +++ b/src/analytics/PosthogAnalytics.ts @@ -256,7 +256,7 @@ export class PosthogAnalytics { this.posthog.identify(analyticsID); } else { logger.info( - "No analyticsID is availble. Should not try to setup posthog", + "No analyticsID is available. Should not try to setup posthog", ); } } @@ -324,7 +324,9 @@ export class PosthogAnalytics { } public onLoginStatusChanged(): void { - this.maybeIdentifyUser(); + this.maybeIdentifyUser().catch(() => + logger.log("Could not identify user on login status change"), + ); } private updateSuperProperties(): void { @@ -373,20 +375,27 @@ export class PosthogAnalytics { } } - public async trackEvent( + public trackEvent( { eventName, ...properties }: E, options?: CaptureOptions, - ): Promise { + ): void { + const doCapture = (): void => { + if ( + this.anonymity == Anonymity.Disabled || + this.anonymity == Anonymity.Anonymous + ) + return; + this.capture(eventName, properties, options); + }; + if (this.identificationPromise) { - // only make calls to posthog after the identificaion is done - await this.identificationPromise; + // only make calls to posthog after the identification is done + this.identificationPromise.then(doCapture, (e) => { + logger.error("Failed to identify user for tracking", e); + }); + } else { + doCapture(); } - if ( - this.anonymity == Anonymity.Disabled || - this.anonymity == Anonymity.Anonymous - ) - return; - this.capture(eventName, properties, options); } private startListeningToSettingsChanges(): void { @@ -400,7 +409,9 @@ export class PosthogAnalytics { // won't be called (i.e. this.anonymity will be left as the default, until the setting changes) optInAnalytics.value.subscribe((optIn) => { this.setAnonymity(optIn ? Anonymity.Pseudonymous : Anonymity.Disabled); - this.maybeIdentifyUser(); + this.maybeIdentifyUser().catch(() => + logger.log("Could not identify user"), + ); }); } diff --git a/src/analytics/PosthogSpanProcessor.ts b/src/analytics/PosthogSpanProcessor.ts index 072e85df..102de159 100644 --- a/src/analytics/PosthogSpanProcessor.ts +++ b/src/analytics/PosthogSpanProcessor.ts @@ -34,7 +34,7 @@ export class PosthogSpanProcessor implements SpanProcessor { public onStart(span: Span): void { // Hack: Yield to allow attributes to be set before processing - Promise.resolve().then(() => { + try { switch (span.name) { case "matrix.groupCallMembership": this.onGroupCallMembershipStart(span); @@ -43,7 +43,10 @@ export class PosthogSpanProcessor implements SpanProcessor { this.onSummaryReportStart(span); return; } - }); + } catch (e) { + // log to avoid tripping @typescript-eslint/no-unused-vars + logger.debug(e); + } } public onEnd(span: ReadableSpan): void { @@ -148,7 +151,7 @@ export class PosthogSpanProcessor implements SpanProcessor { /** * Shutdown the processor. */ - public shutdown(): Promise { + public async shutdown(): Promise { return Promise.resolve(); } } diff --git a/src/auth/useInteractiveLogin.ts b/src/auth/useInteractiveLogin.ts index 55b5fa0e..2bd15acb 100644 --- a/src/auth/useInteractiveLogin.ts +++ b/src/auth/useInteractiveLogin.ts @@ -40,7 +40,7 @@ export function useInteractiveLogin( const interactiveAuth = new InteractiveAuth({ matrixClient: authClient, - doRequest: (): Promise => + doRequest: async (): Promise => authClient.login("m.login.password", { identifier: { type: "m.id.user", @@ -49,9 +49,8 @@ export function useInteractiveLogin( password, }), stateUpdated: (): void => {}, - requestEmailToken: (): Promise<{ sid: string }> => { - return Promise.resolve({ sid: "" }); - }, + requestEmailToken: async (): Promise<{ sid: string }> => + Promise.resolve({ sid: "" }), }); // XXX: This claims to return an IAuthData which contains none of these diff --git a/src/auth/useInteractiveRegistration.ts b/src/auth/useInteractiveRegistration.ts index 95b1fd30..2c272cb1 100644 --- a/src/auth/useInteractiveRegistration.ts +++ b/src/auth/useInteractiveRegistration.ts @@ -12,6 +12,7 @@ import { MatrixClient, RegisterResponse, } from "matrix-js-sdk/src/matrix"; +import { logger } from "matrix-js-sdk/src/logger"; import { initClient } from "../utils/matrix"; import { Session } from "../ClientContext"; @@ -66,7 +67,7 @@ export const useInteractiveRegistration = ( ): Promise<[MatrixClient, Session]> => { const interactiveAuth = new InteractiveAuth({ matrixClient: authClient.current!, - doRequest: (auth): Promise => + doRequest: async (auth): Promise => authClient.current!.registerRequest({ username, password, @@ -78,19 +79,26 @@ export const useInteractiveRegistration = ( } if (nextStage === "m.login.terms") { - interactiveAuth.submitAuthDict({ - type: "m.login.terms", - }); + interactiveAuth + .submitAuthDict({ + type: "m.login.terms", + }) + .catch((e) => { + logger.error(e); + }); } else if (nextStage === "m.login.recaptcha") { - interactiveAuth.submitAuthDict({ - type: "m.login.recaptcha", - response: recaptchaResponse, - }); + interactiveAuth + .submitAuthDict({ + type: "m.login.recaptcha", + response: recaptchaResponse, + }) + .catch((e) => { + logger.error(e); + }); } }, - requestEmailToken: (): Promise<{ sid: string }> => { - return Promise.resolve({ sid: "dummy" }); - }, + requestEmailToken: async (): Promise<{ sid: string }> => + Promise.resolve({ sid: "dummy" }), }); // XXX: This claims to return an IAuthData which contains none of these diff --git a/src/auth/useRecaptcha.ts b/src/auth/useRecaptcha.ts index 7dddf3f9..f6b07c69 100644 --- a/src/auth/useRecaptcha.ts +++ b/src/auth/useRecaptcha.ts @@ -63,7 +63,7 @@ export function useRecaptcha(sitekey?: string): { } }, [recaptchaId, sitekey]); - const execute = useCallback((): Promise => { + const execute = useCallback(async (): Promise => { if (!sitekey) { return Promise.resolve(""); } @@ -95,7 +95,12 @@ export function useRecaptcha(sitekey?: string): { }, }; - window.grecaptcha.execute(); + window.grecaptcha.execute().then( + () => {}, // noop + (e) => { + logger.error("Recaptcha execution failed", e); + }, + ); const iframe = document.querySelector( 'iframe[src*="recaptcha/api2/bframe"]', diff --git a/src/config/Config.ts b/src/config/Config.ts index e21bbe28..941ffc82 100644 --- a/src/config/Config.ts +++ b/src/config/Config.ts @@ -13,7 +13,7 @@ import { } from "./ConfigOptions"; export class Config { - private static internalInstance: Config; + private static internalInstance: Config | undefined; public static get(): ConfigOptions { if (!this.internalInstance?.config) @@ -21,23 +21,23 @@ export class Config { return this.internalInstance.config; } - public static init(): Promise { - if (Config.internalInstance?.initPromise) { - return Config.internalInstance.initPromise; - } - Config.internalInstance = new Config(); - Config.internalInstance.initPromise = new Promise((resolve) => { - downloadConfig("../config.json").then((config) => { - Config.internalInstance.config = { ...DEFAULT_CONFIG, ...config }; - resolve(); + public static async init(): Promise { + if (!Config.internalInstance?.initPromise) { + const internalInstance = new Config(); + Config.internalInstance = internalInstance; + + Config.internalInstance.initPromise = downloadConfig( + "../config.json", + ).then((config) => { + internalInstance.config = { ...DEFAULT_CONFIG, ...config }; }); - }); + } return Config.internalInstance.initPromise; } /** * This is a alternative initializer that does not load anything - * from a hosted config file but instead just initializes the conifg using the + * from a hosted config file but instead just initializes the config using the * default config. * * It is supposed to only be used in tests. (It is executed in `vite.setup.js`) diff --git a/src/e2ee/matrixKeyProvider.ts b/src/e2ee/matrixKeyProvider.ts index ba2bc37d..d84c3684 100644 --- a/src/e2ee/matrixKeyProvider.ts +++ b/src/e2ee/matrixKeyProvider.ts @@ -46,19 +46,25 @@ export class MatrixKeyProvider extends BaseKeyProvider { } } - private onEncryptionKeyChanged = async ( + private onEncryptionKeyChanged = ( encryptionKey: Uint8Array, encryptionKeyIndex: number, participantId: string, - ): Promise => { - this.onSetEncryptionKey( - await createKeyMaterialFromBuffer(encryptionKey), - participantId, - encryptionKeyIndex, - ); + ): void => { + createKeyMaterialFromBuffer(encryptionKey).then( + (keyMaterial) => { + this.onSetEncryptionKey(keyMaterial, participantId, encryptionKeyIndex); - logger.debug( - `Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, + logger.debug( + `Sent new key to livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, + ); + }, + (e) => { + logger.error( + `Failed to create key material from buffer for livekit room=${this.rtcSession?.room.roomId} participantId=${participantId} encryptionKeyIndex=${encryptionKeyIndex}`, + e, + ); + }, ); }; } diff --git a/src/grid/Grid.tsx b/src/grid/Grid.tsx index 45cb9252..51d258e3 100644 --- a/src/grid/Grid.tsx +++ b/src/grid/Grid.tsx @@ -32,6 +32,7 @@ import { } from "react"; import useMeasure from "react-use-measure"; import classNames from "classnames"; +import { logger } from "matrix-js-sdk/src/logger"; import styles from "./Grid.module.css"; import { useMergedRefs } from "../useMergedRefs"; @@ -353,7 +354,7 @@ export function Grid< // Because we're using react-spring in imperative mode, we're responsible for // firing animations manually whenever the tiles array updates useEffect(() => { - springRef.start(); + springRef.start().forEach((p) => void p.catch(logger.error)); }, [placedTiles, springRef]); const animateDraggedTile = ( @@ -390,7 +391,8 @@ export function Grid< ((key): boolean => key === "zIndex" || key === "x" || key === "y"), }, - ); + ) + .catch(logger.error); if (endOfGesture) callback({ diff --git a/src/home/CallList.test.tsx b/src/home/CallList.test.tsx index 8a853d27..cd9e38d1 100644 --- a/src/home/CallList.test.tsx +++ b/src/home/CallList.test.tsx @@ -22,7 +22,7 @@ describe("CallList", () => { ); }; - it("should show room", async () => { + it("should show room", () => { const rooms = [ { roomName: "Room #1", diff --git a/src/initializer.tsx b/src/initializer.tsx index 3b3b4de5..4bc1dc9f 100644 --- a/src/initializer.tsx +++ b/src/initializer.tsx @@ -10,6 +10,7 @@ import { initReactI18next } from "react-i18next"; import LanguageDetector from "i18next-browser-languagedetector"; import Backend from "i18next-http-backend"; import * as Sentry from "@sentry/react"; +import { logger } from "matrix-js-sdk/src/logger"; import { getUrlParams } from "./UrlParams"; import { Config } from "./config/Config"; @@ -73,6 +74,9 @@ export class Initializer { order: ["urlFragment", "navigator"], caches: [], }, + }) + .catch((e) => { + logger.error("Failed to initialize i18n", e); }); // Custom Themeing @@ -120,10 +124,15 @@ export class Initializer { // config if (this.loadStates.config === LoadState.None) { this.loadStates.config = LoadState.Loading; - Config.init().then(() => { - this.loadStates.config = LoadState.Loaded; - this.initStep(resolve); - }); + Config.init().then( + () => { + this.loadStates.config = LoadState.Loaded; + this.initStep(resolve); + }, + (e) => { + logger.error("Failed to load config", e); + }, + ); } //sentry (only initialize after the config is ready) diff --git a/src/livekit/openIDSFU.ts b/src/livekit/openIDSFU.ts index 47ff8321..3c77db2f 100644 --- a/src/livekit/openIDSFU.ts +++ b/src/livekit/openIDSFU.ts @@ -40,12 +40,18 @@ export function useOpenIDSFU( const activeFocus = useActiveLivekitFocus(rtcSession); useEffect(() => { - (async (): Promise => { - const sfuConfig = activeFocus - ? await getSFUConfigWithOpenID(client, activeFocus) - : undefined; - setSFUConfig(sfuConfig); - })(); + if (activeFocus) { + getSFUConfigWithOpenID(client, activeFocus).then( + (sfuConfig) => { + setSFUConfig(sfuConfig); + }, + (e) => { + logger.error("Failed to get SFU config", e); + }, + ); + } else { + setSFUConfig(undefined); + } }, [client, activeFocus]); return sfuConfig; diff --git a/src/livekit/useECConnectionState.ts b/src/livekit/useECConnectionState.ts index 6fcb4386..60c5b9bb 100644 --- a/src/livekit/useECConnectionState.ts +++ b/src/livekit/useECConnectionState.ts @@ -36,7 +36,7 @@ export enum ECAddonConnectionState { // We are switching from one focus to another (or between livekit room aliases on the same focus) ECSwitchingFocus = "ec_switching_focus", // The call has just been initialised and is waiting for credentials to arrive before attempting - // to connect. This distinguishes from the 'Disconected' state which is now just for when livekit + // to connect. This distinguishes from the 'Disconnected' state which is now just for when livekit // gives up on connectivity and we consider the call to have failed. ECWaiting = "ec_waiting", } @@ -151,9 +151,13 @@ async function connectAndPublish( `Publishing ${screenshareTracks.length} precreated screenshare tracks`, ); for (const st of screenshareTracks) { - livekitRoom.localParticipant.publishTrack(st, { - source: Track.Source.ScreenShare, - }); + livekitRoom.localParticipant + .publishTrack(st, { + source: Track.Source.ScreenShare, + }) + .catch((e) => { + logger.error("Failed to publish screenshare track", e); + }); } } @@ -231,7 +235,9 @@ export function useECConnectionState( `SFU config changed! URL was ${currentSFUConfig.current?.url} now ${sfuConfig?.url}`, ); - doFocusSwitch(); + doFocusSwitch().catch((e) => { + logger.error("Failed to switch focus", e); + }); } else if ( !sfuConfigValid(currentSFUConfig.current) && sfuConfigValid(sfuConfig) @@ -248,7 +254,11 @@ export function useECConnectionState( sfuConfig!, initialAudioEnabled, initialAudioOptions, - ).finally(() => setIsInDoConnect(false)); + ) + .catch((e) => { + logger.error("Failed to connect to SFU", e); + }) + .finally(() => setIsInDoConnect(false)); } currentSFUConfig.current = Object.assign({}, sfuConfig); diff --git a/src/livekit/useLiveKit.ts b/src/livekit/useLiveKit.ts index 68ec0be2..4645fab7 100644 --- a/src/livekit/useLiveKit.ts +++ b/src/livekit/useLiveKit.ts @@ -67,9 +67,11 @@ export function useLiveKit( if (e2eeSystem.kind === E2eeType.PER_PARTICIPANT) { (e2eeOptions.keyProvider as MatrixKeyProvider).setRTCSession(rtcSession); } else if (e2eeSystem.kind === E2eeType.SHARED_KEY && e2eeSystem.secret) { - (e2eeOptions.keyProvider as ExternalE2EEKeyProvider).setKey( - e2eeSystem.secret, - ); + (e2eeOptions.keyProvider as ExternalE2EEKeyProvider) + .setKey(e2eeSystem.secret) + .catch((e) => { + logger.error("Failed to set shared key for E2EE", e); + }); } }, [e2eeOptions, e2eeSystem, rtcSession]); @@ -112,7 +114,9 @@ export function useLiveKit( // useEffect() with an argument that references itself, if E2EE is enabled const room = useMemo(() => { const r = new Room(roomOptions); - r.setE2EEEnabled(e2eeSystem.kind !== E2eeType.NONE); + r.setE2EEEnabled(e2eeSystem.kind !== E2eeType.NONE).catch((e) => { + logger.error("Failed to set E2EE enabled on room", e); + }); return r; }, [roomOptions, e2eeSystem]); @@ -217,7 +221,7 @@ export function useLiveKit( // itself we need might need to update the mute state right away. // This async recursion makes sure that setCamera/MicrophoneEnabled is // called as little times as possible. - syncMuteState(iterCount + 1, type); + await syncMuteState(iterCount + 1, type); } else { throw new Error( "track with new mute state could not be published", @@ -226,7 +230,7 @@ export function useLiveKit( } catch (e) { if ((e as DOMException).name === "NotAllowedError") { logger.error( - "Fatal errror while syncing mute state: resetting", + "Fatal error while syncing mute state: resetting", e, ); if (type === MuteDevice.Microphone) { @@ -241,14 +245,25 @@ export function useLiveKit( "Failed to sync audio mute state with LiveKit (will retry to sync in 1s):", e, ); - setTimeout(() => syncMuteState(iterCount + 1, type), 1000); + setTimeout(() => { + syncMuteState(iterCount + 1, type).catch((e) => { + logger.error( + `Failed to sync ${MuteDevice[type]} mute state with LiveKit iterCount=${iterCount + 1}`, + e, + ); + }); + }, 1000); } } } }; - syncMuteState(0, MuteDevice.Microphone); - syncMuteState(0, MuteDevice.Camera); + syncMuteState(0, MuteDevice.Microphone).catch((e) => { + logger.error("Failed to sync audio mute state with LiveKit", e); + }); + syncMuteState(0, MuteDevice.Camera).catch((e) => { + logger.error("Failed to sync video mute state with LiveKit", e); + }); } }, [room, muteStates, connectionState]); @@ -295,7 +310,10 @@ export function useLiveKit( // the deviceId hasn't changed (was & still is default). room.localParticipant .getTrackPublication(Track.Source.Microphone) - ?.audioTrack?.restartTrack(); + ?.audioTrack?.restartTrack() + .catch((e) => { + logger.error(`Failed to restart audio device track`, e); + }); } } else { if (id !== undefined && room.getActiveDevice(kind) !== id) { diff --git a/src/main.tsx b/src/main.tsx index 263619c9..b3e10985 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -25,7 +25,10 @@ import { App } from "./App"; import { init as initRageshake } from "./settings/rageshake"; import { Initializer } from "./initializer"; -initRageshake(); +initRageshake().catch((e) => { + logger.error("Failed to initialize rageshake", e); +}); + setLogLevel("debug"); setLKLogExtension(global.mx_rage_logger.log); diff --git a/src/otel/otel.ts b/src/otel/otel.ts index 78f7807a..14d31ec8 100644 --- a/src/otel/otel.ts +++ b/src/otel/otel.ts @@ -90,7 +90,9 @@ export class ElementCallOpenTelemetry { public dispose(): void { opentelemetry.trace.disable(); - this._provider?.shutdown(); + this._provider?.shutdown().catch((e) => { + logger.error("Failed to shutdown OpenTelemetry", e); + }); } public get isOtlpEnabled(): boolean { diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx index 25eb7dce..f1986d4b 100644 --- a/src/room/GroupCallView.tsx +++ b/src/room/GroupCallView.tsx @@ -138,11 +138,7 @@ export const GroupCallView: FC = ({ if (audioInput === null) { latestMuteStates.current!.audio.setEnabled?.(false); } else { - const deviceId = await findDeviceByName( - audioInput, - "audioinput", - devices, - ); + const deviceId = findDeviceByName(audioInput, "audioinput", devices); if (!deviceId) { logger.warn("Unknown audio input: " + audioInput); latestMuteStates.current!.audio.setEnabled?.(false); @@ -158,11 +154,7 @@ export const GroupCallView: FC = ({ if (videoInput === null) { latestMuteStates.current!.video.setEnabled?.(false); } else { - const deviceId = await findDeviceByName( - videoInput, - "videoinput", - devices, - ); + const deviceId = findDeviceByName(videoInput, "videoinput", devices); if (!deviceId) { logger.warn("Unknown video input: " + videoInput); latestMuteStates.current!.video.setEnabled?.(false); @@ -178,24 +170,27 @@ export const GroupCallView: FC = ({ if (widget && preload && skipLobby) { // In preload mode without lobby we wait for a join action before entering - const onJoin = async ( - ev: CustomEvent, - ): Promise => { - await defaultDeviceSetup(ev.detail.data as unknown as JoinCallData); - await enterRTCSession(rtcSession, perParticipantE2EE); - await widget!.api.transport.reply(ev.detail, {}); + const onJoin = (ev: CustomEvent): void => { + (async (): Promise => { + await defaultDeviceSetup(ev.detail.data as unknown as JoinCallData); + await enterRTCSession(rtcSession, perParticipantE2EE); + widget!.api.transport.reply(ev.detail, {}); + })().catch((e) => { + logger.error("Error joining RTC session", e); + }); }; widget.lazyActions.on(ElementWidgetActions.JoinCall, onJoin); return (): void => { widget!.lazyActions.off(ElementWidgetActions.JoinCall, onJoin); }; } else if (widget && !preload && skipLobby) { - const join = async (): Promise => { + // No lobby and no preload: we enter the rtc session right away + (async (): Promise => { await defaultDeviceSetup({ audioInput: null, videoInput: null }); await enterRTCSession(rtcSession, perParticipantE2EE); - }; - // No lobby and no preload: we enter the RTC Session right away. - join(); + })().catch((e) => { + logger.error("Error joining RTC session", e); + }); } }, [rtcSession, preload, skipLobby, perParticipantE2EE]); @@ -204,7 +199,7 @@ export const GroupCallView: FC = ({ const history = useHistory(); const onLeave = useCallback( - async (leaveError?: Error) => { + (leaveError?: Error): void => { setLeaveError(leaveError); setLeft(true); @@ -218,15 +213,19 @@ export const GroupCallView: FC = ({ ); // Only sends matrix leave event. The Livekit session will disconnect once the ActiveCall-view unmounts. - await leaveRTCSession(rtcSession); - - if ( - !isPasswordlessUser && - !confineToRoom && - !PosthogAnalytics.instance.isEnabled() - ) { - history.push("/"); - } + leaveRTCSession(rtcSession) + .then(() => { + if ( + !isPasswordlessUser && + !confineToRoom && + !PosthogAnalytics.instance.isEnabled() + ) { + history.push("/"); + } + }) + .catch((e) => { + logger.error("Error leaving RTC session", e); + }); }, [rtcSession, isPasswordlessUser, confineToRoom, history], ); @@ -234,14 +233,16 @@ export const GroupCallView: FC = ({ useEffect(() => { if (widget && isJoined) { // set widget to sticky once joined. - widget!.api.setAlwaysOnScreen(true); + widget!.api.setAlwaysOnScreen(true).catch((e) => { + logger.error("Error calling setAlwaysOnScreen(true)", e); + }); - const onHangup = async ( - ev: CustomEvent, - ): Promise => { + const onHangup = (ev: CustomEvent): void => { widget!.api.transport.reply(ev.detail, {}); // Only sends matrix leave event. The Livekit session will disconnect once the ActiveCall-view unmounts. - await leaveRTCSession(rtcSession); + leaveRTCSession(rtcSession).catch((e) => { + logger.error("Failed to leave RTC session", e); + }); }; widget.lazyActions.once(ElementWidgetActions.HangupCall, onHangup); return (): void => { @@ -253,7 +254,9 @@ export const GroupCallView: FC = ({ const onReconnect = useCallback(() => { setLeft(false); setLeaveError(undefined); - enterRTCSession(rtcSession, perParticipantE2EE); + enterRTCSession(rtcSession, perParticipantE2EE).catch((e) => { + logger.error("Error re-entering RTC session on reconnect", e); + }); }, [rtcSession, perParticipantE2EE]); const joinRule = useJoinRule(rtcSession.room); diff --git a/src/room/InCallView.tsx b/src/room/InCallView.tsx index 4191c17f..d50be3c9 100644 --- a/src/room/InCallView.tsx +++ b/src/room/InCallView.tsx @@ -29,6 +29,7 @@ import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession"; import classNames from "classnames"; import { BehaviorSubject, of } from "rxjs"; import { useObservableEagerState } from "observable-hooks"; +import { logger } from "matrix-js-sdk/src/logger"; import LogoMark from "../icons/LogoMark.svg?react"; import LogoType from "../icons/LogoType.svg?react"; @@ -100,7 +101,9 @@ export const ActiveCall: FC = (props) => { useEffect(() => { return (): void => { - livekitRoom?.disconnect(); + livekitRoom?.disconnect().catch((e) => { + logger.error("Failed to disconnect from livekit room", e); + }); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); @@ -296,12 +299,16 @@ export const InCallView: FC = ({ ); useEffect(() => { - widget?.api.transport.send( - gridMode === "grid" - ? ElementWidgetActions.TileLayout - : ElementWidgetActions.SpotlightLayout, - {}, - ); + widget?.api.transport + .send( + gridMode === "grid" + ? ElementWidgetActions.TileLayout + : ElementWidgetActions.SpotlightLayout, + {}, + ) + .catch((e) => { + logger.error("Failed to send layout change to widget API", e); + }); }, [gridMode]); useEffect(() => { @@ -461,13 +468,15 @@ export const InCallView: FC = ({ rtcSession.room.roomId, ); - const toggleScreensharing = useCallback(async () => { - await localParticipant.setScreenShareEnabled(!isScreenShareEnabled, { - audio: true, - selfBrowserSurface: "include", - surfaceSwitching: "include", - systemAudio: "include", - }); + const toggleScreensharing = useCallback(() => { + localParticipant + .setScreenShareEnabled(!isScreenShareEnabled, { + audio: true, + selfBrowserSurface: "include", + surfaceSwitching: "include", + systemAudio: "include", + }) + .catch(logger.error); }, [localParticipant, isScreenShareEnabled]); let footer: JSX.Element | null; diff --git a/src/room/MuteStates.ts b/src/room/MuteStates.ts index be569aef..80723f01 100644 --- a/src/room/MuteStates.ts +++ b/src/room/MuteStates.ts @@ -13,6 +13,7 @@ import { useMemo, } from "react"; import { IWidgetApiRequest } from "matrix-widget-api"; +import { logger } from "matrix-js-sdk/src/logger"; import { MediaDevice, useMediaDevices } from "../livekit/MediaDevicesContext"; import { useReactiveState } from "../useReactiveState"; @@ -74,10 +75,14 @@ export function useMuteStates(): MuteStates { const video = useMuteState(devices.videoInput, () => true); useEffect(() => { - widget?.api.transport.send(ElementWidgetActions.DeviceMute, { - audio_enabled: audio.enabled, - video_enabled: video.enabled, - }); + widget?.api.transport + .send(ElementWidgetActions.DeviceMute, { + audio_enabled: audio.enabled, + video_enabled: video.enabled, + }) + .catch((e) => + logger.warn("Could not send DeviceMute action to widget", e), + ); }, [audio, video]); const onMuteStateChangeRequest = useCallback( diff --git a/src/room/RoomPage.tsx b/src/room/RoomPage.tsx index 29e44df0..bb32040d 100644 --- a/src/room/RoomPage.tsx +++ b/src/room/RoomPage.tsx @@ -59,9 +59,13 @@ export const RoomPage: FC = () => { // a URL param, automatically register a passwordless user if (!loading && !authenticated && displayName && !widget) { setIsRegistering(true); - registerPasswordlessUser(displayName).finally(() => { - setIsRegistering(false); - }); + registerPasswordlessUser(displayName) + .catch((e) => { + logger.error("Failed to register passwordless user", e); + }) + .finally(() => { + setIsRegistering(false); + }); } }, [ loading, diff --git a/src/room/useLoadGroupCall.ts b/src/room/useLoadGroupCall.ts index 03e82cb5..8b758726 100644 --- a/src/room/useLoadGroupCall.ts +++ b/src/room/useLoadGroupCall.ts @@ -150,23 +150,22 @@ export const useLoadGroupCall = ( viaServers: string[], onKnockSent: () => void, ): Promise => { - let joinedRoom: Room | null = null; await client.knockRoom(roomId, { viaServers }); onKnockSent(); - const invitePromise = new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { client.on( RoomEvent.MyMembership, - async (room, membership, prevMembership) => { + (room, membership, prevMembership): void => { if (roomId !== room.roomId) return; activeRoom.current = room; if ( membership === KnownMembership.Invite && prevMembership === KnownMembership.Knock ) { - await client.joinRoom(room.roomId, { viaServers }); - joinedRoom = room; - logger.log("Auto-joined %s", room.roomId); - resolve(); + client.joinRoom(room.roomId, { viaServers }).then((room) => { + logger.log("Auto-joined %s", room.roomId); + resolve(room); + }, reject); } if (membership === KnownMembership.Ban) reject(bannedError()); if (membership === KnownMembership.Leave) @@ -174,11 +173,6 @@ export const useLoadGroupCall = ( }, ); }); - await invitePromise; - if (!joinedRoom) { - throw new Error("Failed to join room after knocking."); - } - return joinedRoom; }; const fetchOrCreateRoom = async (): Promise => { @@ -308,7 +302,7 @@ export const useLoadGroupCall = ( const observeMyMembership = async (): Promise => { await new Promise((_, reject) => { - client.on(RoomEvent.MyMembership, async (_, membership) => { + client.on(RoomEvent.MyMembership, (_, membership) => { if (membership === KnownMembership.Leave) reject(removeNoticeError()); if (membership === KnownMembership.Ban) reject(bannedError()); }); diff --git a/src/rtcSessionHelpers.ts b/src/rtcSessionHelpers.ts index 0ff00f6c..d7f93ad2 100644 --- a/src/rtcSessionHelpers.ts +++ b/src/rtcSessionHelpers.ts @@ -74,8 +74,7 @@ async function makePreferredLivekitFoci( `No livekit_service_url is configured so we could not create a focus. Currently we skip computing a focus based on other users in the room.`, ); - - return preferredFoci; + return Promise.resolve(preferredFoci); // TODO: we want to do something like this: // @@ -119,13 +118,18 @@ const widgetPostHangupProcedure = async ( // we need to wait until the callEnded event is tracked on posthog. // Otherwise the iFrame gets killed before the callEnded event got tracked. await new Promise((resolve) => window.setTimeout(resolve, 10)); // 10ms - widget.api.setAlwaysOnScreen(false); PosthogAnalytics.instance.logout(); + try { + await widget.api.setAlwaysOnScreen(false); + } catch (e) { + logger.error("Failed to set call widget `alwaysOnScreen` to false", e); + } + // We send the hangup event after the memberships have been updated // calling leaveRTCSession. // We need to wait because this makes the client hosting this widget killing the IFrame. - widget.api.transport.send(ElementWidgetActions.HangupCall, {}); + await widget.api.transport.send(ElementWidgetActions.HangupCall, {}); }; export async function leaveRTCSession( diff --git a/src/settings/FeedbackSettingsTab.tsx b/src/settings/FeedbackSettingsTab.tsx index bea36884..f47d10ac 100644 --- a/src/settings/FeedbackSettingsTab.tsx +++ b/src/settings/FeedbackSettingsTab.tsx @@ -9,6 +9,7 @@ import { FC, useCallback } from "react"; import { randomString } from "matrix-js-sdk/src/randomstring"; import { useTranslation } from "react-i18next"; import { Button } from "@vector-im/compound-web"; +import { logger } from "matrix-js-sdk/src/logger"; import { FieldRow, InputField, ErrorMessage } from "../input/Input"; import { useSubmitRageshake, useRageshakeRequest } from "./submit-rageshake"; @@ -41,6 +42,8 @@ export const FeedbackSettingsTab: FC = ({ roomId }) => { sendLogs, rageshakeRequestId, roomId, + }).catch((e) => { + logger.error("Failed to send feedback rageshake", e); }); if (roomId && sendLogs) { diff --git a/src/settings/ProfileSettingsTab.tsx b/src/settings/ProfileSettingsTab.tsx index 3c54164b..4eb5b0d9 100644 --- a/src/settings/ProfileSettingsTab.tsx +++ b/src/settings/ProfileSettingsTab.tsx @@ -8,6 +8,7 @@ Please see LICENSE in the repository root for full details. import { FC, useCallback, useEffect, useMemo, useRef } from "react"; import { MatrixClient } from "matrix-js-sdk/src/client"; import { useTranslation } from "react-i18next"; +import { logger } from "matrix-js-sdk/src/logger"; import { useProfile } from "../profile/useProfile"; import { FieldRow, InputField, ErrorMessage } from "../input/Input"; @@ -61,6 +62,8 @@ export const ProfileSettingsTab: FC = ({ client }) => { // @ts-ignore avatar: avatar && avatarSize > 0 ? avatar : undefined, removeAvatar: removeAvatar.current && (!avatar || avatarSize === 0), + }).catch((e) => { + logger.error("Failed to save profile", e); }); } }; diff --git a/src/settings/RageshakeButton.tsx b/src/settings/RageshakeButton.tsx index 2bbc1d0b..0854da6e 100644 --- a/src/settings/RageshakeButton.tsx +++ b/src/settings/RageshakeButton.tsx @@ -8,6 +8,7 @@ Please see LICENSE in the repository root for full details. import { useTranslation } from "react-i18next"; import { FC, useCallback } from "react"; import { Button } from "@vector-im/compound-web"; +import { logger } from "matrix-js-sdk/src/logger"; import { Config } from "../config/Config"; import styles from "./RageshakeButton.module.css"; @@ -25,6 +26,8 @@ export const RageshakeButton: FC = ({ description }) => { submitRageshake({ description, sendLogs: true, + }).catch((e) => { + logger.error("Failed to send rageshake", e); }); }, [submitRageshake, description]); diff --git a/src/settings/rageshake.ts b/src/settings/rageshake.ts index 3d5103ac..e0868b9e 100644 --- a/src/settings/rageshake.ts +++ b/src/settings/rageshake.ts @@ -128,13 +128,17 @@ class IndexedDBLogStore { this.id = "instance-" + randomString(16); loggerInstance.on(ConsoleLoggerEvent.Log, this.onLoggerLog); - window.addEventListener("beforeunload", this.flush); + window.addEventListener("beforeunload", () => { + this.flush().catch((e) => + logger.error("Failed to flush logs before unload", e), + ); + }); } /** * @return {Promise} Resolves when the store is ready. */ - public connect(): Promise { + public async connect(): Promise { const req = this.indexedDB.open("logs"); return new Promise((resolve, reject) => { req.onsuccess = (): void => { @@ -190,16 +194,10 @@ class IndexedDBLogStore { // Throttled function to flush logs. We use throttle rather // than debounce as we want logs to be written regularly, otherwise // if there's a constant stream of logging, we'd never write anything. - private throttledFlush = throttle( - () => { - this.flush(); - }, - MAX_FLUSH_INTERVAL_MS, - { - leading: false, - trailing: true, - }, - ); + private throttledFlush = throttle(() => this.flush, MAX_FLUSH_INTERVAL_MS, { + leading: false, + trailing: true, + }); /** * Flush logs to disk. @@ -220,7 +218,7 @@ class IndexedDBLogStore { * * @return {Promise} Resolved when the logs have been flushed. */ - public flush = (): Promise => { + public flush = async (): Promise => { // check if a flush() operation is ongoing if (this.flushPromise) { if (this.flushAgainPromise) { @@ -228,13 +226,9 @@ class IndexedDBLogStore { return this.flushAgainPromise; } // queue up a flush to occur immediately after the pending one completes. - this.flushAgainPromise = this.flushPromise - .then(() => { - return this.flush(); - }) - .then(() => { - this.flushAgainPromise = undefined; - }); + this.flushAgainPromise = this.flushPromise.then(this.flush).then(() => { + this.flushAgainPromise = undefined; + }); return this.flushAgainPromise; } // there is no flush promise or there was but it has finished, so do @@ -286,7 +280,7 @@ class IndexedDBLogStore { // Returns: a string representing the concatenated logs for this ID. // Stops adding log fragments when the size exceeds maxSize - function fetchLogs(id: string, maxSize: number): Promise { + async function fetchLogs(id: string, maxSize: number): Promise { const objectStore = db! .transaction("logs", "readonly") .objectStore("logs"); @@ -316,7 +310,7 @@ class IndexedDBLogStore { } // Returns: A sorted array of log IDs. (newest first) - function fetchLogIds(): Promise { + async function fetchLogIds(): Promise { // To gather all the log IDs, query for all records in logslastmod. const o = db! .transaction("logslastmod", "readonly") @@ -336,7 +330,7 @@ class IndexedDBLogStore { }); } - function deleteLogs(id: number): Promise { + async function deleteLogs(id: number): Promise { return new Promise((resolve, reject) => { const txn = db!.transaction(["logs", "logslastmod"], "readwrite"); const o = txn.objectStore("logs"); @@ -394,7 +388,7 @@ class IndexedDBLogStore { logger.log("Removing logs: ", removeLogIds); // Don't await this because it's non-fatal if we can't clean up // logs. - Promise.all(removeLogIds.map((id) => deleteLogs(id))).then( + Promise.all(removeLogIds.map(async (id) => deleteLogs(id))).then( () => { logger.log(`Removed ${removeLogIds.length} old logs.`); }, @@ -432,7 +426,7 @@ class IndexedDBLogStore { * @return {Promise} Resolves to an array of whatever you returned from * resultMapper. */ -function selectQuery( +async function selectQuery( store: IDBObjectStore, keyRange: IDBKeyRange | undefined, resultMapper: (cursor: IDBCursorWithValue) => T, @@ -461,7 +455,7 @@ declare global { // eslint-disable-next-line no-var, camelcase var mx_rage_logger: ConsoleLogger; // eslint-disable-next-line no-var, camelcase - var mx_rage_initStoragePromise: Promise; + var mx_rage_initStoragePromise: Promise | undefined; } /** @@ -471,7 +465,7 @@ declare global { * be set up immediately for the logs. * @return {Promise} Resolves when set up. */ -export function init(): Promise { +export async function init(): Promise { global.mx_rage_logger = new ConsoleLogger(); setLogExtension(global.mx_rage_logger.log); @@ -483,7 +477,7 @@ export function init(): Promise { * then this no-ops. * @return {Promise} Resolves when complete. */ -function tryInitStorage(): Promise { +async function tryInitStorage(): Promise { if (global.mx_rage_initStoragePromise) { return global.mx_rage_initStoragePromise; } diff --git a/src/settings/submit-rageshake.ts b/src/settings/submit-rageshake.ts index f9e10aba..16b81d0b 100644 --- a/src/settings/submit-rageshake.ts +++ b/src/settings/submit-rageshake.ts @@ -300,10 +300,14 @@ export function useRageshakeRequest(): ( const sendRageshakeRequest = useCallback( (roomId: string, rageshakeRequestId: string) => { - // @ts-expect-error - org.matrix.rageshake_request is not part of `keyof TimelineEvents` but it is okay to sent a custom event. - client!.sendEvent(roomId, "org.matrix.rageshake_request", { - request_id: rageshakeRequestId, - }); + client! + // @ts-expect-error - org.matrix.rageshake_request is not part of `keyof TimelineEvents` but it is okay to sent a custom event. + .sendEvent(roomId, "org.matrix.rageshake_request", { + request_id: rageshakeRequestId, + }) + .catch((e) => { + logger.error("Failed to send org.matrix.rageshake_request event", e); + }); }, [client], ); diff --git a/src/state/CallViewModel.ts b/src/state/CallViewModel.ts index 63dd7bde..219df600 100644 --- a/src/state/CallViewModel.ts +++ b/src/state/CallViewModel.ts @@ -279,7 +279,7 @@ export class CallViewModel extends ViewModel { }); }), // Then unhold them - ]).then(() => Promise.resolve({ unhold: ps })), + ]).then(() => ({ unhold: ps })), ); } else { return EMPTY; diff --git a/src/useWakeLock.ts b/src/useWakeLock.ts index 9ed73dc9..f22f7c1d 100644 --- a/src/useWakeLock.ts +++ b/src/useWakeLock.ts @@ -19,19 +19,22 @@ export function useWakeLock(): void { // The lock is automatically released whenever the window goes invisible, // so we need to reacquire it on visibility changes - const onVisibilityChange = async (): Promise => { + const onVisibilityChange = (): void => { if (document.visibilityState === "visible") { - try { - lock = await navigator.wakeLock.request("screen"); - // Handle the edge case where this component unmounts before the - // promise resolves - if (!mounted) - lock - .release() - .catch((e) => logger.warn("Can't release wake lock", e)); - } catch (e) { - logger.warn("Can't acquire wake lock", e); - } + navigator.wakeLock.request("screen").then( + (newLock) => { + lock = newLock; + // Handle the edge case where this component unmounts before the + // promise resolves + if (!mounted) + lock + .release() + .catch((e) => logger.warn("Can't release wake lock", e)); + }, + (e) => { + logger.warn("Can't acquire wake lock", e); + }, + ); } }; diff --git a/src/utils/matrix.ts b/src/utils/matrix.ts index 056606d8..d3821a3f 100644 --- a/src/utils/matrix.ts +++ b/src/utils/matrix.ts @@ -260,34 +260,40 @@ export async function createRoom( }); // Wait for the room to arrive - await new Promise((resolve, reject) => { - const onRoom = async (room: Room): Promise => { - if (room.roomId === (await createPromise).room_id) { - resolve(); - cleanUp(); - } - }; + const roomId = await new Promise((resolve, reject) => { createPromise.catch((e) => { reject(e); cleanUp(); }); + const onRoom = (room: Room): void => { + createPromise.then( + (result) => { + if (room.roomId === result.room_id) { + resolve(room.roomId); + cleanUp(); + } + }, + (e) => { + logger.error("Failed to wait for the room to arrive", e); + }, + ); + }; + const cleanUp = (): void => { client.off(ClientEvent.Room, onRoom); }; client.on(ClientEvent.Room, onRoom); }); - const result = await createPromise; - - let password; + let password: string | undefined; if (e2ee == E2eeType.SHARED_KEY) { password = secureRandomBase64Url(16); - saveKeyForRoom(result.room_id, password); + saveKeyForRoom(roomId, password); } return { - roomId: result.room_id, + roomId, alias: e2ee ? undefined : fullAliasFromRoomName(name, client), password, }; diff --git a/src/utils/media.ts b/src/utils/media.ts index 4a3103eb..1aedc5f3 100644 --- a/src/utils/media.ts +++ b/src/utils/media.ts @@ -11,11 +11,11 @@ Please see LICENSE in the repository root for full details. * @param devices The list of devices to search * @returns A matching media device or undefined if no matching device was found */ -export async function findDeviceByName( +export function findDeviceByName( deviceName: string, kind: MediaDeviceKind, devices: MediaDeviceInfo[], -): Promise { +): string | undefined { const deviceInfo = devices.find( (d) => d.kind === kind && d.label === deviceName, ); diff --git a/src/vitest.setup.ts b/src/vitest.setup.ts index ff6ce268..9b0a1f96 100644 --- a/src/vitest.setup.ts +++ b/src/vitest.setup.ts @@ -11,17 +11,21 @@ import posthog from "posthog-js"; import { initReactI18next } from "react-i18next"; import { afterEach, beforeEach } from "vitest"; import { cleanup } from "@testing-library/react"; +import { logger } from "matrix-js-sdk/src/logger"; import { Config } from "./config/Config"; // Bare-minimum i18n config -i18n.use(initReactI18next).init({ - lng: "en-GB", - fallbackLng: "en-GB", - interpolation: { - escapeValue: false, // React has built-in XSS protections - }, -}); +i18n + .use(initReactI18next) + .init({ + lng: "en-GB", + fallbackLng: "en-GB", + interpolation: { + escapeValue: false, // React has built-in XSS protections + }, + }) + .catch((e) => logger.warn("Failed to init i18n for testing", e)); Config.initDefault(); posthog.opt_out_capturing(); diff --git a/src/widget.ts b/src/widget.ts index 9bb8e031..f08968b6 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -158,17 +158,15 @@ export const widget = ((): WidgetHelpers | null => { false, ); - const clientPromise = new Promise((resolve) => { - (async (): Promise => { - // Wait for the config file to be ready (we load very early on so it might not - // be otherwise) - await Config.init(); - await client.startClient({ clientWellKnownPollPeriod: 60 * 10 }); - resolve(client); - })(); - }); + const clientPromise = async (): Promise => { + // Wait for the config file to be ready (we load very early on so it might not + // be otherwise) + await Config.init(); + await client.startClient({ clientWellKnownPollPeriod: 60 * 10 }); + return client; + }; - return { api, lazyActions, client: clientPromise }; + return { api, lazyActions, client: clientPromise() }; } else { if (import.meta.env.MODE !== "test") logger.info("No widget API available"); From 460aa7618a53237e4aaa946b7c6fa1c29113fba9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:50:24 +0200 Subject: [PATCH 7/7] Update dependency @vector-im/compound-web to v6.1.2 (#2617) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e863ff66..40c69d44 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3093,9 +3093,9 @@ integrity sha512-PtQMG7kDzwtjw/fLKD63uWP5rJ8cgWc/aXarfEzxYUf9ceWxBajnYOBI2jDqtE3WIUe9uTVBzNEvmOBG/VIgTA== "@vector-im/compound-web@^6.0.0": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-6.1.1.tgz#872ec411fce600358812fe6c868b2521b57a9a9f" - integrity sha512-13cw8XFtt0oqGbUS9bPlvikZoJxrU+zZoziZGE+1Xv6h4JwNHIBB8CvqVOoUfEhta4U1BHOClgV1XD/YzbZXdA== + version "6.1.2" + resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-6.1.2.tgz#3f8bbd69f2b06a2b8dd12c68df813356e5486074" + integrity sha512-kWOcprUsGGrGPRT9lPE3tnyGYWzNEIQSZ57BT/vMx9NX4QqT/Dpq0VhkBKm8W583NoYtxDOgSWWkvFQhyHVkWw== dependencies: "@floating-ui/react" "^0.26.9" "@radix-ui/react-context-menu" "^2.1.5"