├── .gitattributes ├── .github └── workflows │ ├── cache.yml │ ├── debug.yml │ └── test.yml ├── .gitignore ├── .prettierrc ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── action.yml ├── assets.json ├── dist ├── main.js └── main.js.map ├── generate.ts ├── index.ts ├── main.ts ├── move-v2.ps1 ├── package.json ├── test.ts ├── tsconfig.json └── yarn.lock /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/workflows/cache.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://json-schema.org/draft-07/schema# 2 | 3 | name: Cache 4 | 5 | on: 6 | pull_request: 7 | push: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | test: 13 | strategy: 14 | fail-fast: false 15 | matrix: 16 | os: 17 | - ubuntu-latest 18 | 19 | runs-on: "${{ matrix.os }}" 20 | 21 | steps: 22 | - name: Checkout 23 | uses: actions/checkout@v4 24 | 25 | - name: Cache LLVM and Clang 26 | id: cache-llvm 27 | uses: actions/cache@v4 28 | with: 29 | path: | 30 | C:/Program Files/LLVM 31 | ./llvm 32 | key: llvm-15 33 | 34 | - name: Install LLVM and Clang 35 | uses: KyleMayes/install-llvm-action@v2 36 | with: 37 | version: "15" 38 | cached: ${{ steps.cache-llvm.outputs.cache-hit }} 39 | -------------------------------------------------------------------------------- /.github/workflows/debug.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://json-schema.org/draft-07/schema# 2 | 3 | name: Debug 4 | 5 | on: 6 | workflow_dispatch: 7 | inputs: 8 | runs-on: 9 | type: string 10 | required: true 11 | 12 | jobs: 13 | test: 14 | runs-on: ${{ inputs.runs-on }} 15 | 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | 20 | - name: Install LLVM and Clang 21 | uses: ./ 22 | with: 23 | version: 17 24 | env: true 25 | 26 | - name: Debug 27 | uses: mxschmitt/action-tmate@v3 28 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://json-schema.org/draft-07/schema# 2 | 3 | name: Test 4 | 5 | on: 6 | pull_request: 7 | push: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | test: 13 | strategy: 14 | fail-fast: false 15 | matrix: 16 | os: 17 | - ubuntu-latest 18 | - macos-14 19 | - windows-latest 20 | version: 21 | - 17 22 | - 17.0.2 23 | 24 | runs-on: "${{ matrix.os }}" 25 | 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@v4 29 | 30 | - name: Arch (Ubuntu / macOS) 31 | if: matrix.os != 'windows-latest' 32 | run: uname -a 33 | 34 | - name: Arch (Windows) 35 | if: matrix.os == 'windows-latest' 36 | run: printenv PROCESSOR_ARCHITECTURE 37 | 38 | - name: Install LLVM and Clang 39 | uses: ./ 40 | with: 41 | version: "${{ matrix.version }}" 42 | env: true 43 | 44 | - name: Test (Ubuntu / macOS) 45 | if: matrix.os != 'windows-latest' 46 | run: | 47 | echo $CC 48 | echo $CXX 49 | $CC --version 50 | $CXX --version 51 | 52 | - name: Test (Windows) 53 | if: matrix.os == 'windows-latest' 54 | run: | 55 | echo $env:CC 56 | echo $env:CXX 57 | clang --version 58 | clang++ --version 59 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | *.log 4 | package-lock.json 5 | .parcel-cache 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "avoid", 3 | "printWidth": 120, 4 | "trailingComma": "all" 5 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [2.0.7] - 2025-05-02 2 | 3 | - Added support for LLVM and Clang 20 (and some more 18 and 19 versions) 4 | 5 | ## [2.0.6] - 2025-02-24 6 | 7 | - Added support for LLVM and Clang 19 8 | 9 | ## [2.0.5] - 2024-09-08 10 | 11 | - Added support for LLVM and Clang 18.1.8 on ARM64 macOS 12 | 13 | ## [2.0.4] - 2024-08-11 14 | 15 | - Added support up to LLVM and Clang 18.1.8 (for platforms with binaries available) 16 | 17 | ## [2.0.3] - 2024-05-26 18 | 19 | - Added support up to LLVM and Clang 18.1.6 (for platforms with binaries available) 20 | 21 | ## [2.0.2] - 2024-04-09 22 | 23 | - Added support up to LLVM and Clang 18.1.3 (for platforms with binaries available) 24 | 25 | ## [2.0.1] - 2024-04-02 26 | 27 | ### Fixes 28 | - Fixed exact LLVM and Clang versions (e.g., `17.0.6`) causing the action to fail 29 | - Fixed LLVM and Clang executables failing to run on ARM64 macOS runners 30 | 31 | ## [2.0.0] - 2024-03-31 32 | 33 | ### Migrating from v1 34 | 35 | - Support for LLVM and Clang 3.5 through 7.0 has been removed (use 7.1 or later) 36 | - The `download-url` input has been renamed to `mirror-url` 37 | - The `force-version` and `ubuntu-version` inputs have been replaced with the `force-url` input 38 | 39 | ### Other Changes 40 | 41 | - Added `arch` input 42 | - Added support for various missing LLVM and Clang versions up to 18.1.2 43 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright [yyyy] [name of copyright owner] 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # install-llvm-action 2 | 3 | [![Test](https://github.com/KyleMayes/install-llvm-action/actions/workflows/test.yml/badge.svg)](https://github.com/KyleMayes/install-llvm-action/actions/workflows/test.yml) 4 | 5 | A GitHub Action for downloading and installing LLVM and Clang binaries. 6 | 7 | Supports LLVM and Clang 7.1.0 and later. The binaries will be added to the relevant environment variables for the platform after installation (e.g., `PATH`, `LD_LIBRARY_PATH`, and/or `DYLD_LIBRARY_PATH`). 8 | 9 | Released under the Apache License 2.0. 10 | 11 | > **Note:** As mentioned in the notes for [recent `llvm/llvm-project` releases](https://github.com/llvm/llvm-project/releases), LLVM and Clang binaries are provided by volunteers and there is no guarantee of the availability of pre-built binaries for every platform and for every LLVM and Clang release. The LLVM and Clang versions currently supported by this action can be found in the [`assets.json`](assets.json) file. Note that availability of pre-built binaries can also differ depending on the targeted operating system and processor architecture (e.g., x86-64 vs ARM64). 12 | 13 | ## Example Usage 14 | 15 | ```yml 16 | - name: Install LLVM and Clang 17 | uses: KyleMayes/install-llvm-action@v2 18 | with: 19 | version: "10.0" 20 | ``` 21 | 22 | ## Example Usage (with non-default installation directory): 23 | 24 | ```yml 25 | - name: Install LLVM and Clang 26 | uses: KyleMayes/install-llvm-action@v2 27 | with: 28 | version: "10.0" 29 | directory: ${{ runner.temp }}/llvm 30 | ``` 31 | 32 | ## Linking to Installed Libraries (Linux) 33 | 34 | If your build system requires a library from the installed LLVM and Clang binaries such as `libclang.so`, and it fails to find it, then it may help to create a symlink for the versioned `.so` using the following step which utilizes the `LLVM_PATH` environment variable set by this action: 35 | 36 | ```yaml 37 | - name: Symlink libclang.so (Linux) 38 | if: contains(matrix.os, 'ubuntu') 39 | run: sudo ln -s libclang-11.so.1 /lib/x86_64-linux-gnu/libclang.so 40 | working-directory: ${{ env.LLVM_PATH }}/lib 41 | ``` 42 | 43 | ## Inputs 44 | 45 | ### `version` 46 | 47 | **Required** The version of LLVM and Clang binaries to install. 48 | 49 | This can be a specific LLVM and Clang version such as `10.1.2` or a minimum version like `10.1` or just `10`. When specifying a minimum version, the highest compatible version supported by the platform will be installed (e.g., `10.1.2` for `10.1` or `10.2.0` for `10`). 50 | 51 | Note that when using minimum versions like `10` the specific version installed by this action may not be the same on every operating system and architecture (e.g., x86-86 vs ARM64). This is because some versions of the LLVM and Clang binaries do not exist for some operating systems. You can view [this file](assets.json) to see the currently supported LLVM and Clang versions for each operating system and architecture pairing. 52 | 53 | ### `arch` 54 | 55 | The archtecture (either `x64` or `arm64`) to install LLVM and Clang binaries for. 56 | 57 | By default, the architecture of the machine this action is running on will be used. 58 | 59 | ### `force-url` 60 | 61 | The full download URL to use for LLVM and Clang binaries. 62 | 63 | If this input is used, the `version`, `arch`, and `mirror-url` inputs will be ignored (except in that the value of the `version` input will be used verbatim as the value for the `version` output). Instead, the URL supplied for this input is assumed to be a full URL to download LLVM and Clang binaries. This input can be used if this action lacks support for a recent LLVM and Clang version or if you have LLVM and Clang binaries mirror in a way that can't be handled by the `mirror-url` input. 64 | 65 | ### `directory` 66 | 67 | The directory to install LLVM and Clang binaries to. If not provided, `C:\Program Files\LLVM` is used as the default value on Windows and `./llvm` is used on other operating systems. 68 | 69 | This action puts the value of this input into the `LLVM_PATH` environment variable which allows for easy use of the directory containing the LLVM and Clang binaries in subsequent jobs (e.g., `${{ env.LLVM_PATH }}`). 70 | 71 | ### `cached` 72 | 73 | Whether the LLVM and Clang binaries were cached. 74 | 75 | **Note:** Caching is not currently recommended, it is usually slower than just directly downloading the LLVM and Clang binaries. 76 | 77 | ### `mirror-url` 78 | 79 | The base URL to download LLVM and Clang binaries from instead of using GitHub. 80 | 81 | This can be used if you want to download the LLVM and Clang binaries from a mirror of the GitHub releases for the `llvm/llvm-project` repository provided by a service like Artifactory. 82 | 83 | ### `auth` 84 | 85 | The `Authorization` header to use when downloading LLVM and Clang binaries. 86 | 87 | This is unnecessary unless you are providing the `mirror-url` input and you need to provide an `Authorization` header when downloading the LLVM and Clang binaries from the service targeted by that custom download URL. 88 | 89 | ### `env` 90 | 91 | Whether to set `CC` and `CXX` environment variables to Clang paths. 92 | 93 | ## Outputs 94 | 95 | ### `version` 96 | 97 | The full version of LLVM and Clang binaries installed. 98 | 99 | This will only differ from the value of the `version` input when specifying a minimum version like `10.1` or `10`. 100 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: "Install LLVM and Clang" 2 | description: "Downloads and installs LLVM and Clang binaries." 3 | 4 | branding: 5 | icon: "arrow-down-circle" 6 | color: "black" 7 | 8 | inputs: 9 | version: 10 | description: "The version of LLVM and Clang binaries to install." 11 | required: true 12 | arch: 13 | description: "The archtecture (either `x64` or `arm64`) to install LLVM and Clang binaries for." 14 | required: false 15 | force-url: 16 | description: "The full download URL to use for LLVM and Clang binaries." 17 | required: false 18 | directory: 19 | description: "The directory to install LLVM and Clang binaries to." 20 | required: false 21 | cached: 22 | description: "Whether the LLVM and Clang binaries were cached." 23 | required: false 24 | mirror-url: 25 | description: "The base URL to download LLVM and Clang binaries from instead of using GitHub." 26 | required: false 27 | auth: 28 | description: "The Authorization header to use when downloading LLVM and Clang binaries." 29 | required: false 30 | env: 31 | description: "Whether to set CC and CXX environment variables to Clang paths." 32 | required: false 33 | 34 | outputs: 35 | version: 36 | description: "The full version of LLVM and Clang binaries installed." 37 | 38 | runs: 39 | using: "node20" 40 | main: "dist/main.js" 41 | -------------------------------------------------------------------------------- /assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "darwin": { 3 | "arm64": { 4 | "14.0.6": "/clang%2Bllvm-14.0.6-arm64-apple-darwin22.3.0.tar.xz", 5 | "15.0.0": "/clang%2Bllvm-15.0.0-arm64-apple-darwin21.0.tar.xz", 6 | "15.0.1": "/clang%2Bllvm-15.0.1-arm64-apple-darwin21.0.tar.xz", 7 | "15.0.2": "/clang%2Bllvm-15.0.2-arm64-apple-darwin21.0.tar.xz", 8 | "15.0.3": "/clang%2Bllvm-15.0.3-arm64-apple-darwin21.0.tar.xz", 9 | "15.0.4": "/clang%2Bllvm-15.0.4-arm64-apple-darwin21.0.tar.xz", 10 | "15.0.5": "/clang%2Bllvm-15.0.5-arm64-apple-darwin21.0.tar.xz", 11 | "15.0.6": "/clang%2Bllvm-15.0.6-arm64-apple-darwin21.0.tar.xz", 12 | "15.0.7": "/clang%2Bllvm-15.0.7-arm64-apple-darwin22.0.tar.xz", 13 | "16.0.0": "/clang%2Bllvm-16.0.0-arm64-apple-darwin22.0.tar.xz", 14 | "16.0.1": "/clang%2Bllvm-16.0.1-arm64-apple-darwin22.0.tar.xz", 15 | "16.0.2": "/clang%2Bllvm-16.0.2-arm64-apple-darwin22.0.tar.xz", 16 | "16.0.3": "/clang%2Bllvm-16.0.3-arm64-apple-darwin22.0.tar.xz", 17 | "16.0.4": "/clang%2Bllvm-16.0.4-arm64-apple-darwin22.0.tar.xz", 18 | "16.0.5": "/clang%2Bllvm-16.0.5-arm64-apple-darwin22.0.tar.xz", 19 | "17.0.1": "/clang%2Bllvm-17.0.1-arm64-apple-darwin22.0.tar.xz", 20 | "17.0.2": "/clang%2Bllvm-17.0.2-arm64-apple-darwin22.0.tar.xz", 21 | "17.0.3": "/clang%2Bllvm-17.0.3-arm64-apple-darwin22.0.tar.xz", 22 | "17.0.4": "/clang%2Bllvm-17.0.4-arm64-apple-darwin22.0.tar.xz", 23 | "17.0.5": "/clang%2Bllvm-17.0.5-arm64-apple-darwin22.0.tar.xz", 24 | "17.0.6": "/clang%2Bllvm-17.0.6-arm64-apple-darwin22.0.tar.xz", 25 | "18.1.8": "/clang%2Bllvm-18.1.8-arm64-apple-macos11.tar.xz", 26 | "19.1.0": "/LLVM-19.1.0-macOS-ARM64.tar.xz", 27 | "19.1.1": "/LLVM-19.1.1-macOS-ARM64.tar.xz", 28 | "19.1.2": "/LLVM-19.1.2-macOS-ARM64.tar.xz", 29 | "19.1.3": "/LLVM-19.1.3-macOS-ARM64.tar.xz", 30 | "19.1.4": "/LLVM-19.1.4-macOS-ARM64.tar.xz", 31 | "19.1.6": "/LLVM-19.1.6-macOS-ARM64.tar.xz", 32 | "19.1.7": "/LLVM-19.1.7-macOS-ARM64.tar.xz", 33 | "20.1.0": "/LLVM-20.1.0-macOS-ARM64.tar.xz", 34 | "20.1.1": "/LLVM-20.1.1-macOS-ARM64.tar.xz", 35 | "20.1.2": "/LLVM-20.1.2-macOS-ARM64.tar.xz", 36 | "20.1.3": "/LLVM-20.1.3-macOS-ARM64.tar.xz", 37 | "20.1.4": "/LLVM-20.1.4-macOS-ARM64.tar.xz" 38 | }, 39 | "x64": { 40 | "9.0.1": "/clang%2Bllvm-9.0.1-x86_64-apple-darwin.tar.xz", 41 | "10.0.0": "/clang%2Bllvm-10.0.0-x86_64-apple-darwin.tar.xz", 42 | "10.0.1": "/clang%2Bllvm-10.0.1-x86_64-apple-darwin.tar.xz", 43 | "11.0.0": "/clang%2Bllvm-11.0.0-x86_64-apple-darwin.tar.xz", 44 | "12.0.0": "/clang%2Bllvm-12.0.0-x86_64-apple-darwin.tar.xz", 45 | "13.0.0": "/clang%2Bllvm-13.0.0-x86_64-apple-darwin.tar.xz", 46 | "13.0.1": "/clang%2Bllvm-13.0.1-x86_64-apple-darwin.tar.xz", 47 | "14.0.0": "/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz", 48 | "14.0.1": "/clang%2Bllvm-14.0.1-x86_64-apple-darwin.tar.xz", 49 | "14.0.2": "/clang%2Bllvm-14.0.2-x86_64-apple-darwin.tar.xz", 50 | "14.0.3": "/clang%2Bllvm-14.0.3-x86_64-apple-darwin.tar.xz", 51 | "14.0.4": "/clang%2Bllvm-14.0.4-x86_64-apple-darwin.tar.xz", 52 | "14.0.5": "/clang%2Bllvm-14.0.5-x86_64-apple-darwin.tar.xz", 53 | "14.0.6": "/clang%2Bllvm-14.0.6-x86_64-apple-darwin.tar.xz", 54 | "15.0.0": "/clang%2Bllvm-15.0.0-x86_64-apple-darwin.tar.xz", 55 | "15.0.1": "/clang%2Bllvm-15.0.1-x86_64-apple-darwin.tar.xz", 56 | "15.0.2": "/clang%2Bllvm-15.0.2-x86_64-apple-darwin.tar.xz", 57 | "15.0.3": "/clang%2Bllvm-15.0.3-x86_64-apple-darwin.tar.xz", 58 | "15.0.4": "/clang%2Bllvm-15.0.4-x86_64-apple-darwin.tar.xz", 59 | "15.0.7": "/clang%2Bllvm-15.0.7-x86_64-apple-darwin21.0.tar.xz", 60 | "19.1.0": "/LLVM-19.1.0-macOS-X64.tar.xz", 61 | "19.1.3": "/LLVM-19.1.3-macOS-X64.tar.xz", 62 | "19.1.4": "/LLVM-19.1.4-macOS-X64.tar.xz", 63 | "19.1.5": "/LLVM-19.1.5-macOS-X64.tar.xz", 64 | "19.1.6": "/LLVM-19.1.6-macOS-X64.tar.xz", 65 | "19.1.7": "/LLVM-19.1.7-macOS-X64.tar.xz", 66 | "20.1.3": "/LLVM-20.1.3-macOS-X64.tar.xz" 67 | } 68 | }, 69 | "linux": { 70 | "arm64": { 71 | "7.1.0": "/clang%2Bllvm-7.1.0-aarch64-linux-gnu.tar.xz", 72 | "8.0.1": "/clang%2Bllvm-8.0.1-aarch64-linux-gnu.tar.xz", 73 | "9.0.1": "/clang%2Bllvm-9.0.1-aarch64-linux-gnu.tar.xz", 74 | "10.0.0": "/clang%2Bllvm-10.0.0-aarch64-linux-gnu.tar.xz", 75 | "10.0.1": "/clang%2Bllvm-10.0.1-aarch64-linux-gnu.tar.xz", 76 | "11.0.0": "/clang%2Bllvm-11.0.0-aarch64-linux-gnu.tar.xz", 77 | "11.0.1": "/clang%2Bllvm-11.0.1-aarch64-linux-gnu.tar.xz", 78 | "11.1.0": "/clang%2Bllvm-11.1.0-aarch64-linux-gnu.tar.xz", 79 | "12.0.0": "/clang%2Bllvm-12.0.0-aarch64-linux-gnu.tar.xz", 80 | "12.0.1": "/clang%2Bllvm-12.0.1-aarch64-linux-gnu.tar.xz", 81 | "13.0.0": "/clang%2Bllvm-13.0.0-aarch64-linux-gnu.tar.xz", 82 | "13.0.1": "/clang%2Bllvm-13.0.1-aarch64-linux-gnu.tar.xz", 83 | "14.0.0": "/clang%2Bllvm-14.0.0-aarch64-linux-gnu.tar.xz", 84 | "14.0.1": "/clang%2Bllvm-14.0.1-aarch64-linux-gnu.tar.xz", 85 | "14.0.2": "/clang%2Bllvm-14.0.2-aarch64-linux-gnu.tar.xz", 86 | "14.0.3": "/clang%2Bllvm-14.0.3-aarch64-linux-gnu.tar.xz", 87 | "14.0.4": "/clang%2Bllvm-14.0.4-aarch64-linux-gnu.tar.xz", 88 | "14.0.5": "/clang%2Bllvm-14.0.5-aarch64-linux-gnu.tar.xz", 89 | "14.0.6": "/clang%2Bllvm-14.0.6-aarch64-linux-gnu.tar.xz", 90 | "15.0.0": "/clang%2Bllvm-15.0.0-aarch64-linux-gnu.tar.xz", 91 | "15.0.1": "/clang%2Bllvm-15.0.1-aarch64-linux-gnu.tar.xz", 92 | "15.0.2": "/clang%2Bllvm-15.0.2-aarch64-linux-gnu.tar.xz", 93 | "15.0.3": "/clang%2Bllvm-15.0.3-aarch64-linux-gnu.tar.xz", 94 | "15.0.6": "/clang%2Bllvm-15.0.6-aarch64-linux-gnu.tar.xz", 95 | "16.0.0": "/clang%2Bllvm-16.0.0-aarch64-linux-gnu.tar.xz", 96 | "16.0.1": "/clang%2Bllvm-16.0.1-aarch64-linux-gnu.tar.xz", 97 | "16.0.2": "/clang%2Bllvm-16.0.2-aarch64-linux-gnu.tar.xz", 98 | "16.0.3": "/clang%2Bllvm-16.0.3-aarch64-linux-gnu.tar.xz", 99 | "16.0.4": "/clang%2Bllvm-16.0.4-aarch64-linux-gnu.tar.xz", 100 | "16.0.5": "/clang%2Bllvm-16.0.5-aarch64-linux-gnu.tar.xz", 101 | "16.0.6": "/clang%2Bllvm-16.0.6-aarch64-linux-gnu.tar.xz", 102 | "17.0.1": "/clang%2Bllvm-17.0.1-aarch64-linux-gnu.tar.xz", 103 | "17.0.2": "/clang%2Bllvm-17.0.2-aarch64-linux-gnu.tar.xz", 104 | "17.0.3": "/clang%2Bllvm-17.0.3-aarch64-linux-gnu.tar.xz", 105 | "17.0.4": "/clang%2Bllvm-17.0.4-aarch64-linux-gnu.tar.xz", 106 | "17.0.5": "/clang%2Bllvm-17.0.5-aarch64-linux-gnu.tar.xz", 107 | "17.0.6": "/clang%2Bllvm-17.0.6-aarch64-linux-gnu.tar.xz", 108 | "18.1.0": "/clang%2Bllvm-18.1.0-aarch64-linux-gnu.tar.xz", 109 | "18.1.1": "/clang%2Bllvm-18.1.1-aarch64-linux-gnu.tar.xz", 110 | "18.1.2": "/clang%2Bllvm-18.1.2-aarch64-linux-gnu.tar.xz", 111 | "18.1.3": "/clang%2Bllvm-18.1.3-aarch64-linux-gnu.tar.xz", 112 | "18.1.4": "/clang%2Bllvm-18.1.4-aarch64-linux-gnu.tar.xz", 113 | "18.1.5": "/clang%2Bllvm-18.1.5-aarch64-linux-gnu.tar.xz", 114 | "18.1.6": "/clang%2Bllvm-18.1.6-aarch64-linux-gnu.tar.xz", 115 | "18.1.7": "/clang%2Bllvm-18.1.7-aarch64-linux-gnu.tar.xz", 116 | "18.1.8": "/clang%2Bllvm-18.1.8-aarch64-linux-gnu.tar.xz", 117 | "19.1.0": "/clang%2Bllvm-19.1.0-aarch64-linux-gnu.tar.xz", 118 | "19.1.1": "/clang%2Bllvm-19.1.1-aarch64-linux-gnu.tar.xz", 119 | "19.1.2": "/clang%2Bllvm-19.1.2-aarch64-linux-gnu.tar.xz", 120 | "19.1.3": "/clang%2Bllvm-19.1.3-aarch64-linux-gnu.tar.xz", 121 | "19.1.4": "/clang%2Bllvm-19.1.4-aarch64-linux-gnu.tar.xz", 122 | "19.1.5": "/clang%2Bllvm-19.1.5-aarch64-linux-gnu.tar.xz", 123 | "19.1.6": "/clang%2Bllvm-19.1.6-aarch64-linux-gnu.tar.xz", 124 | "19.1.7": "/clang%2Bllvm-19.1.7-aarch64-linux-gnu.tar.xz", 125 | "20.1.0": "/LLVM-20.1.0-Linux-ARM64.tar.xz", 126 | "20.1.1": "/LLVM-20.1.1-Linux-ARM64.tar.xz", 127 | "20.1.2": "/LLVM-20.1.2-Linux-ARM64.tar.xz", 128 | "20.1.3": "/LLVM-20.1.3-Linux-ARM64.tar.xz", 129 | "20.1.4": "/LLVM-20.1.4-Linux-ARM64.tar.xz" 130 | }, 131 | "x64": { 132 | "7.1.0": "/clang%2Bllvm-7.1.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz", 133 | "8.0.1": "/clang%2Bllvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz", 134 | "9.0.1": "/clang%2Bllvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz", 135 | "10.0.0": "/clang%2Bllvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 136 | "10.0.1": "/clang%2Bllvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz", 137 | "11.0.0": "/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz", 138 | "11.0.1": "/clang%2Bllvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz", 139 | "11.1.0": "/clang%2Bllvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz", 140 | "12.0.0": "/clang%2Bllvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz", 141 | "12.0.1": "/clang%2Bllvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz", 142 | "13.0.0": "/clang%2Bllvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz", 143 | "13.0.1": "/clang%2Bllvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 144 | "14.0.0": "/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 145 | "15.0.5": "/clang%2Bllvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 146 | "15.0.6": "/clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 147 | "16.0.0": "/clang%2Bllvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 148 | "16.0.2": "/clang%2Bllvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 149 | "16.0.3": "/clang%2Bllvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 150 | "16.0.4": "/clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 151 | "17.0.2": "/clang%2Bllvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 152 | "17.0.4": "/clang%2Bllvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 153 | "17.0.5": "/clang%2Bllvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 154 | "17.0.6": "/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz", 155 | "18.1.4": "/clang%2Bllvm-18.1.4-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 156 | "18.1.7": "/clang%2Bllvm-18.1.7-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 157 | "18.1.8": "/clang%2Bllvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz", 158 | "19.1.0": "/LLVM-19.1.0-Linux-X64.tar.xz", 159 | "19.1.1": "/LLVM-19.1.1-Linux-X64.tar.xz", 160 | "19.1.2": "/LLVM-19.1.2-Linux-X64.tar.xz", 161 | "19.1.3": "/LLVM-19.1.3-Linux-X64.tar.xz", 162 | "19.1.4": "/LLVM-19.1.4-Linux-X64.tar.xz", 163 | "19.1.5": "/LLVM-19.1.5-Linux-X64.tar.xz", 164 | "19.1.6": "/LLVM-19.1.6-Linux-X64.tar.xz", 165 | "19.1.7": "/LLVM-19.1.7-Linux-X64.tar.xz", 166 | "20.1.0": "/LLVM-20.1.0-Linux-X64.tar.xz", 167 | "20.1.1": "/LLVM-20.1.1-Linux-X64.tar.xz", 168 | "20.1.2": "/LLVM-20.1.2-Linux-X64.tar.xz", 169 | "20.1.3": "/LLVM-20.1.3-Linux-X64.tar.xz", 170 | "20.1.4": "/LLVM-20.1.4-Linux-X64.tar.xz" 171 | } 172 | }, 173 | "win32": { 174 | "arm64": { 175 | "12.0.0": "/LLVM-12.0.0-woa64.exe", 176 | "15.0.0": "/LLVM-15.0.0-woa64.exe", 177 | "15.0.1": "/LLVM-15.0.1-woa64.exe", 178 | "15.0.2": "/LLVM-15.0.2-woa64.exe", 179 | "15.0.3": "/LLVM-15.0.3-woa64.exe", 180 | "15.0.6": "/LLVM-15.0.6-woa64.exe", 181 | "16.0.0": "/LLVM-16.0.0-woa64.exe", 182 | "16.0.1": "/LLVM-16.0.1-woa64.exe", 183 | "16.0.2": "/LLVM-16.0.2-woa64.exe", 184 | "16.0.3": "/LLVM-16.0.3-woa64.exe", 185 | "16.0.4": "/LLVM-16.0.4-woa64.exe", 186 | "16.0.5": "/LLVM-16.0.5-woa64.exe", 187 | "16.0.6": "/LLVM-16.0.6-woa64.exe", 188 | "17.0.1": "/LLVM-17.0.1-woa64.exe", 189 | "17.0.2": "/LLVM-17.0.2-woa64.exe", 190 | "17.0.3": "/LLVM-17.0.3-woa64.exe", 191 | "17.0.4": "/LLVM-17.0.4-woa64.exe", 192 | "17.0.5": "/LLVM-17.0.5-woa64.exe", 193 | "17.0.6": "/LLVM-17.0.6-woa64.exe", 194 | "18.1.0": "/LLVM-18.1.0-woa64.exe", 195 | "18.1.1": "/LLVM-18.1.1-woa64.exe", 196 | "18.1.2": "/LLVM-18.1.2-woa64.exe", 197 | "18.1.3": "/LLVM-18.1.3-woa64.exe", 198 | "18.1.4": "/LLVM-18.1.4-woa64.exe", 199 | "18.1.5": "/LLVM-18.1.5-woa64.exe", 200 | "18.1.6": "/LLVM-18.1.6-woa64.exe", 201 | "18.1.7": "/LLVM-18.1.7-woa64.exe", 202 | "18.1.8": "/LLVM-18.1.8-woa64.exe", 203 | "19.1.0": "/LLVM-19.1.0-woa64.exe", 204 | "19.1.1": "/LLVM-19.1.1-woa64.exe", 205 | "19.1.2": "/LLVM-19.1.2-woa64.exe", 206 | "19.1.3": "/LLVM-19.1.3-woa64.exe", 207 | "19.1.4": "/LLVM-19.1.4-woa64.exe", 208 | "19.1.5": "/LLVM-19.1.5-woa64.exe", 209 | "19.1.6": "/LLVM-19.1.6-woa64.exe", 210 | "19.1.7": "/LLVM-19.1.7-woa64.exe", 211 | "20.1.0": "/LLVM-20.1.0-woa64.exe", 212 | "20.1.1": "/LLVM-20.1.1-woa64.exe", 213 | "20.1.2": "/LLVM-20.1.2-woa64.exe", 214 | "20.1.3": "/LLVM-20.1.3-woa64.exe" 215 | }, 216 | "x64": { 217 | "7.1.0": "/LLVM-7.1.0-win64.exe", 218 | "8.0.1": "/LLVM-8.0.1-win64.exe", 219 | "9.0.1": "/LLVM-9.0.1-win64.exe", 220 | "10.0.0": "/LLVM-10.0.0-win64.exe", 221 | "11.0.0": "/LLVM-11.0.0-win64.exe", 222 | "11.0.1": "/LLVM-11.0.1-win64.exe", 223 | "11.1.0": "/LLVM-11.1.0-win64.exe", 224 | "12.0.0": "/LLVM-12.0.0-win64.exe", 225 | "12.0.1": "/LLVM-12.0.1-win64.exe", 226 | "13.0.0": "/LLVM-13.0.0-win64.exe", 227 | "13.0.1": "/LLVM-13.0.1-win64.exe", 228 | "14.0.0": "/LLVM-14.0.0-win64.exe", 229 | "14.0.1": "/LLVM-14.0.1-win64.exe", 230 | "14.0.2": "/LLVM-14.0.2-win64.exe", 231 | "14.0.3": "/LLVM-14.0.3-win64.exe", 232 | "14.0.4": "/LLVM-14.0.4-win64.exe", 233 | "14.0.5": "/LLVM-14.0.5-win64.exe", 234 | "14.0.6": "/LLVM-14.0.6-win64.exe", 235 | "15.0.0": "/LLVM-15.0.0-win64.exe", 236 | "15.0.1": "/LLVM-15.0.1-win64.exe", 237 | "15.0.2": "/LLVM-15.0.2-win64.exe", 238 | "15.0.3": "/LLVM-15.0.3-win64.exe", 239 | "15.0.4": "/LLVM-15.0.4-win64.exe", 240 | "15.0.5": "/LLVM-15.0.5-win64.exe", 241 | "15.0.6": "/LLVM-15.0.6-win64.exe", 242 | "15.0.7": "/LLVM-15.0.7-win64.exe", 243 | "16.0.0": "/LLVM-16.0.0-win64.exe", 244 | "16.0.1": "/LLVM-16.0.1-win64.exe", 245 | "16.0.2": "/LLVM-16.0.2-win64.exe", 246 | "16.0.3": "/LLVM-16.0.3-win64.exe", 247 | "16.0.4": "/LLVM-16.0.4-win64.exe", 248 | "16.0.5": "/LLVM-16.0.5-win64.exe", 249 | "16.0.6": "/LLVM-16.0.6-win64.exe", 250 | "17.0.1": "/LLVM-17.0.1-win64.exe", 251 | "17.0.2": "/LLVM-17.0.2-win64.exe", 252 | "17.0.3": "/LLVM-17.0.3-win64.exe", 253 | "17.0.4": "/LLVM-17.0.4-win64.exe", 254 | "17.0.5": "/LLVM-17.0.5-win64.exe", 255 | "17.0.6": "/LLVM-17.0.6-win64.exe", 256 | "18.1.0": "/LLVM-18.1.0-win64.exe", 257 | "18.1.1": "/LLVM-18.1.1-win64.exe", 258 | "18.1.2": "/LLVM-18.1.2-win64.exe", 259 | "18.1.3": "/LLVM-18.1.3-win64.exe", 260 | "18.1.4": "/LLVM-18.1.4-win64.exe", 261 | "18.1.5": "/LLVM-18.1.5-win64.exe", 262 | "18.1.6": "/LLVM-18.1.6-win64.exe", 263 | "18.1.7": "/LLVM-18.1.7-win64.exe", 264 | "18.1.8": "/LLVM-18.1.8-win64.exe", 265 | "19.1.0": "/LLVM-19.1.0-win64.exe", 266 | "19.1.1": "/LLVM-19.1.1-win64.exe", 267 | "19.1.2": "/LLVM-19.1.2-win64.exe", 268 | "19.1.3": "/LLVM-19.1.3-win64.exe", 269 | "19.1.4": "/LLVM-19.1.4-win64.exe", 270 | "19.1.5": "/LLVM-19.1.5-win64.exe", 271 | "19.1.6": "/LLVM-19.1.6-win64.exe", 272 | "19.1.7": "/LLVM-19.1.7-win64.exe", 273 | "20.1.0": "/LLVM-20.1.0-win64.exe", 274 | "20.1.1": "/LLVM-20.1.1-win64.exe", 275 | "20.1.2": "/LLVM-20.1.2-win64.exe", 276 | "20.1.3": "/LLVM-20.1.3-win64.exe", 277 | "20.1.4": "/LLVM-20.1.4-win64.exe" 278 | } 279 | } 280 | } -------------------------------------------------------------------------------- /generate.ts: -------------------------------------------------------------------------------- 1 | import * as _ from "lodash"; 2 | import stringify, { Comparator } from "json-stable-stringify"; 3 | import { Octokit } from "@octokit/rest"; 4 | import { Endpoints } from "@octokit/types"; 5 | import { writeFileSync } from "fs"; 6 | import { resolve } from "path"; 7 | 8 | //================================================ 9 | // GitHub 10 | //================================================ 11 | 12 | type Release = Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]["data"][number]; 13 | 14 | const github = new Octokit({ auth: process.env.GH_TOKEN }); 15 | 16 | //================================================ 17 | // Version 18 | //================================================ 19 | 20 | type Version = string; 21 | 22 | const VERSION_PATTERNS: RegExp[] = [/^llvmorg-(?\d+\.\d+\.\d+)$/]; 23 | 24 | function extractVersionNumber(release: Release): Version | undefined { 25 | return _.chain(VERSION_PATTERNS) 26 | .map(pattern => pattern.exec(release.tag_name)?.groups?.version) 27 | .find(version => !!version) 28 | .value(); 29 | } 30 | 31 | //================================================ 32 | // Asset 33 | //================================================ 34 | 35 | interface Asset { 36 | readonly version: Version; 37 | readonly os: "darwin" | "linux" | "win32"; 38 | readonly arch: "arm64" | "x64"; 39 | readonly url: string; 40 | } 41 | 42 | const ASSET_PATTERNS: [Asset["os"], Asset["arch"], RegExp][] = [ 43 | ["darwin", "arm64", /^((clang\+llvm-.+-arm64-apple-(darwin|macos).*)|(LLVM-.*-macOS-ARM64))\.tar\.xz$/], 44 | ["darwin", "x64", /^((clang\+llvm-.+-x86_64-apple-(darwin|macos).*)|(LLVM-.*-macOS-X64))\.tar\.xz$/], 45 | ["linux", "arm64", /^((clang\+llvm-.+-aarch64-linux-gnu.*)|(LLVM-.+-Linux-ARM64))\.tar\.xz$/], 46 | ["linux", "x64", /^((clang\+llvm-.+-x86_64-linux-gnu-?ubuntu.*)|(LLVM-.+-Linux-X64))\.tar\.xz$/], 47 | ["win32", "arm64", /^LLVM-.+-woa64\.exe$/], 48 | ["win32", "x64", /^LLVM-.+-win64\.exe$/], 49 | ]; 50 | 51 | function extractAssets(release: Release): Asset[] { 52 | const version = extractVersionNumber(release); 53 | if (!version) { 54 | return []; 55 | } 56 | 57 | const assets: Asset[] = []; 58 | for (const asset of release.assets) { 59 | for (const [os, arch, pattern] of ASSET_PATTERNS) { 60 | if (!/rc\d+/.test(asset.name) && pattern.test(asset.name)) { 61 | assets.push({ version, os, arch, url: asset.browser_download_url }); 62 | } 63 | } 64 | } 65 | 66 | return assets; 67 | } 68 | 69 | //================================================ 70 | // Generate 71 | //================================================ 72 | 73 | function parseVersionNumber(string: string): number | null { 74 | const match = /(\d+)\.(\d+)\.(\d+)/.exec(string); 75 | if (match) { 76 | const parts = match.slice(1, 4).map(p => Number.parseInt(p)); 77 | return parts[0] * 100_000_000 + parts[1] * 100_000 + parts[2]; 78 | } else { 79 | return null; 80 | } 81 | } 82 | 83 | async function generate() { 84 | const assets = ( 85 | await github.paginate("GET /repos/{owner}/{repo}/releases", { 86 | owner: "llvm", 87 | repo: "llvm-project", 88 | }) 89 | ).flatMap(extractAssets); 90 | 91 | const output: Record>> = {}; 92 | for (const asset of assets) { 93 | let os = output[asset.os] ?? (output[asset.os] = {}); 94 | let arch = os[asset.arch] ?? (os[asset.arch] = {}); 95 | arch[asset.version] = asset.url.replace( 96 | `https://github.com/llvm/llvm-project/releases/download/llvmorg-${asset.version}`, 97 | "", 98 | ); 99 | } 100 | 101 | const comparator: Comparator = (a, b) => { 102 | const versionA = parseVersionNumber(a.key); 103 | const versionB = parseVersionNumber(b.key); 104 | if (versionA && versionB) { 105 | return versionA - versionB; 106 | } else { 107 | return a.key.localeCompare(b.key); 108 | } 109 | }; 110 | 111 | const json = stringify(output, { space: " ", cmp: comparator }) ?? ""; 112 | writeFileSync(resolve(__dirname, "assets.json"), json); 113 | } 114 | 115 | generate(); 116 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import * as core from "@actions/core"; 2 | import * as exec from "@actions/exec"; 3 | import * as io from "@actions/io"; 4 | import * as tc from "@actions/tool-cache"; 5 | import * as fs from "fs"; 6 | import * as path from "path"; 7 | 8 | const ASSETS_JSON = fs.readFileSync(path.resolve(__dirname, "assets.json")).toString("utf-8"); 9 | const ASSETS: Record>> = JSON.parse(ASSETS_JSON); 10 | 11 | export interface Options { 12 | version: string; 13 | arch: string | null; 14 | forceUrl: string | null; 15 | directory: string | null; 16 | cached: boolean; 17 | mirrorUrl: string | null; 18 | auth: string | null; 19 | env: boolean; 20 | } 21 | 22 | function getRequiredInput(name: string): string { 23 | const value = core.getInput(name).trim(); 24 | if (value !== "") { 25 | return value; 26 | } else { 27 | throw new Error(`'${name}' input must be provided as a non-empty string`); 28 | } 29 | } 30 | 31 | function getOptionalInput(name: string): string | null { 32 | const value = core.getInput(name).trim(); 33 | if (value !== "") { 34 | return value; 35 | } else { 36 | return null; 37 | } 38 | } 39 | 40 | export function getOptions(): Options { 41 | return { 42 | version: getRequiredInput("version"), 43 | arch: getOptionalInput("arch"), 44 | forceUrl: getOptionalInput("force-url"), 45 | directory: getOptionalInput("directory"), 46 | cached: getOptionalInput("cached")?.toLowerCase() === "true", 47 | mirrorUrl: getOptionalInput("mirror-url"), 48 | auth: getOptionalInput("auth"), 49 | env: getOptionalInput("env")?.toLowerCase() === "true", 50 | }; 51 | } 52 | 53 | //================================================ 54 | // Version 55 | //================================================ 56 | 57 | /** 58 | * Gets the specific LLVM versions supported by this action compatible with the 59 | * supplied (specific or minimum) LLVM version in descending order of release 60 | * (e.g., `5.0.2`, `5.0.1`, and `5.0.0` for `5`). 61 | */ 62 | function getSpecificVersions(specificVersions: string[], version: string): string[] { 63 | return Array.from(specificVersions) 64 | .filter(v => /^\d+\.\d+\.\d+$/.test(v) && (v.startsWith(`${version}.`) || v === version)) 65 | .sort() 66 | .reverse(); 67 | } 68 | 69 | //================================================ 70 | // Asset 71 | //================================================ 72 | 73 | export interface Asset { 74 | readonly specificVersion: string; 75 | readonly url: string; 76 | } 77 | 78 | export function getAsset(os: string, options: Options): Asset { 79 | const info = { os: process.platform, arch: process.arch }; 80 | console.log(`NodeJS process info = ${JSON.stringify(info)}`); 81 | 82 | if (options.forceUrl) { 83 | console.log("Using asset specified by `force-url` option."); 84 | return { specificVersion: options.version, url: options.forceUrl }; 85 | } 86 | 87 | const arch = (options.arch ?? process.arch) || "x64"; 88 | console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`); 89 | 90 | const assets = ASSETS[os]?.[arch]; 91 | if (!assets) { 92 | throw new Error(`Unsupported platform (os=${os}, arch=${arch})!`); 93 | } 94 | 95 | const specificVersions = getSpecificVersions(Object.keys(assets), options.version); 96 | if (!specificVersions.length) { 97 | throw new Error(`Unsupported version for platform (os=${os}, arch=${arch}, version=${options.version})!`); 98 | } 99 | 100 | const specificVersion = specificVersions[0]; 101 | const path = ASSETS[os][arch][specificVersion]; 102 | 103 | let url: string; 104 | if (options.mirrorUrl) { 105 | url = `${options.mirrorUrl}${path}`; 106 | } else { 107 | url = `https://github.com/llvm/llvm-project/releases/download/llvmorg-${specificVersion}${path}`; 108 | } 109 | 110 | return { specificVersion, url }; 111 | } 112 | 113 | //================================================ 114 | // Action 115 | //================================================ 116 | 117 | const DEFAULT_NIX_DIRECTORY = "./llvm"; 118 | const DEFAULT_WIN32_DIRECTORY = "C:/Program Files/LLVM"; 119 | 120 | async function install(options: Options): Promise { 121 | const os = process.platform; 122 | const { specificVersion, url } = getAsset(os, options); 123 | core.setOutput("version", specificVersion); 124 | 125 | console.log(`Installing LLVM and Clang ${options.version} (${specificVersion})...`); 126 | console.log(`Downloading and extracting '${url}'...`); 127 | const archive = await tc.downloadTool(url, "", options.auth ?? undefined); 128 | 129 | let exit; 130 | if (os === "win32") { 131 | exit = await exec.exec("7z", ["x", archive, `-o${options.directory}`, "-y"]); 132 | } else { 133 | const directory = options.directory ?? ""; 134 | await io.mkdirP(directory); 135 | exit = await exec.exec("tar", ["xf", archive, "-C", directory, "--strip-components=1"]); 136 | } 137 | 138 | if (exit !== 0) { 139 | throw new Error("Could not extract LLVM and Clang binaries."); 140 | } 141 | 142 | core.info(`Installed LLVM and Clang ${options.version} (${specificVersion})!`); 143 | core.info(`Install location: ${options.directory}`); 144 | } 145 | 146 | export async function run(options: Options): Promise { 147 | if (!options.directory) { 148 | options.directory = process.platform === "win32" ? DEFAULT_WIN32_DIRECTORY : DEFAULT_NIX_DIRECTORY; 149 | } 150 | 151 | options.directory = path.resolve(options.directory); 152 | 153 | if (options.cached) { 154 | console.log(`Using cached LLVM and Clang ${options.version}...`); 155 | } else { 156 | await install(options); 157 | } 158 | 159 | const bin = path.join(options.directory, "bin"); 160 | const lib = path.join(options.directory, "lib"); 161 | 162 | core.addPath(bin); 163 | 164 | core.exportVariable("LLVM_PATH", options.directory); 165 | 166 | const ld = process.env.LD_LIBRARY_PATH ?? ""; 167 | core.exportVariable("LD_LIBRARY_PATH", `${lib}${path.delimiter}${ld}`); 168 | 169 | // Ensure system libraries are first on ARM64 macOS to avoid issues with Apple's libc++ being weird. 170 | // https://discourse.llvm.org/t/apples-libc-now-provides-std-type-descriptor-t-functionality-not-found-in-upstream-libc/73881/5 171 | const dyld = process.env.DYLD_LIBRARY_PATH; 172 | let dyldPrefix = ""; 173 | if (process.platform === "darwin" && process.arch === "arm64") { 174 | dyldPrefix = `/usr/lib${path.delimiter}`; 175 | } 176 | 177 | core.exportVariable("DYLD_LIBRARY_PATH", `${dyldPrefix}${lib}${path.delimiter}${dyld}`); 178 | 179 | if (options.env) { 180 | core.exportVariable("CC", path.join(options.directory, "bin", "clang")); 181 | core.exportVariable("CXX", path.join(options.directory, "bin", "clang++")); 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- 1 | import * as core from "@actions/core"; 2 | 3 | import { getOptions, run } from "./index"; 4 | 5 | async function main() { 6 | try { 7 | await run(getOptions()); 8 | } catch (error: any) { 9 | console.error(error.stack); 10 | core.setFailed(error.message); 11 | } 12 | } 13 | 14 | main(); 15 | -------------------------------------------------------------------------------- /move-v2.ps1: -------------------------------------------------------------------------------- 1 | # Moves the v2 tag on GitHub to the latest commit. 2 | 3 | git pull --tag 4 | git push origin :refs/tags/v2 5 | git tag -f v2 6 | git push origin master --tags 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "install-llvm-action", 3 | "version": "2.0.0", 4 | "description": "A GitHub Action for downloading and installing LLVM and Clang binaries.", 5 | "author": "Kyle Mayes ", 6 | "license": "Apache-2.0", 7 | "main": "dist/main.js", 8 | "scripts": { 9 | "format": "prettier --write *.ts", 10 | "generate": "ts-node generate.ts", 11 | "build": "parcel build main.ts", 12 | "test": "ts-node test.ts test" 13 | }, 14 | "dependencies": { 15 | "@actions/core": "~1.11.1", 16 | "@actions/exec": "~1.1.1", 17 | "@actions/io": "~1.1.3", 18 | "@actions/tool-cache": "~2.0.2" 19 | }, 20 | "devDependencies": { 21 | "@octokit/rest": "^21", 22 | "@types/lodash": "^4", 23 | "@types/node": "~20", 24 | "json-stable-stringify": "^1", 25 | "lodash": "^4", 26 | "parcel": "^2", 27 | "ts-node": "^10", 28 | "typescript": "^5" 29 | }, 30 | "targets": { 31 | "main": { 32 | "context": "node", 33 | "engines": { "node": "20" }, 34 | "includeNodeModules": true 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /test.ts: -------------------------------------------------------------------------------- 1 | import * as https from "https"; 2 | 3 | import { Options, getAsset } from "./index"; 4 | 5 | async function test(os: string, options: Options): Promise { 6 | const { specificVersion, url } = getAsset(os, options); 7 | 8 | console.log(`Version: ${options.version} => ${specificVersion}`); 9 | console.log(`URL: ${url}`); 10 | 11 | return new Promise((resolve, reject) => { 12 | https.get(url, res => { 13 | console.log(`Status: ${res.statusCode}`); 14 | console.log(`Content-Length: ${res.headers["content-length"]}`); 15 | if (res.statusCode && res.statusCode >= 200 && res.statusCode <= 399) { 16 | resolve(); 17 | } else { 18 | reject("Failed to download LLVM and Clang binaries."); 19 | } 20 | }); 21 | }); 22 | } 23 | 24 | async function main() { 25 | const start = process.argv.indexOf("test"); 26 | 27 | if (process.argv.length < start + 3) { 28 | console.error(`\ 29 | Expected at least two arguments: 30 | 1. 31 | 2. 32 | 3. --arch= (optional) 33 | 4. --force-url= (optional)`); 34 | process.exit(1); 35 | } 36 | 37 | try { 38 | const os = process.argv[start + 1]; 39 | 40 | const options: Options = { 41 | version: process.argv[start + 2], 42 | arch: null, 43 | forceUrl: null, 44 | directory: "", 45 | cached: false, 46 | mirrorUrl: null, 47 | auth: null, 48 | env: false, 49 | }; 50 | 51 | for (const argument of process.argv.slice(start + 3)) { 52 | const [name, value] = argument.split("="); 53 | switch (name) { 54 | case "--arch": 55 | options.arch = value; 56 | break; 57 | case "--force-url": 58 | options.forceUrl = value; 59 | break; 60 | default: 61 | console.error(`Invalid argument: ${argument}`); 62 | process.exit(1); 63 | break; 64 | } 65 | } 66 | 67 | console.log(`Options: ${JSON.stringify(options, null, " ")}`); 68 | 69 | await test(os, options); 70 | process.exit(0); 71 | } catch (error: any) { 72 | console.error(error.stack); 73 | process.exit(1); 74 | } 75 | } 76 | 77 | if (!module.parent) { 78 | main(); 79 | } 80 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "lib": ["ES2023"], 5 | "moduleResolution": "node", 6 | "resolveJsonModule": true, 7 | "strict": true, 8 | "target": "ES2018" 9 | }, 10 | "files": ["./generate.ts", "./index.ts", "./test.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@actions/core@^1.11.1", "@actions/core@~1.11.1": 6 | version "1.11.1" 7 | resolved "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz" 8 | integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A== 9 | dependencies: 10 | "@actions/exec" "^1.1.1" 11 | "@actions/http-client" "^2.0.1" 12 | 13 | "@actions/exec@^1.0.0", "@actions/exec@^1.1.1", "@actions/exec@~1.1.1": 14 | version "1.1.1" 15 | resolved "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz" 16 | integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== 17 | dependencies: 18 | "@actions/io" "^1.0.1" 19 | 20 | "@actions/http-client@^2.0.1": 21 | version "2.2.3" 22 | resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz" 23 | integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== 24 | dependencies: 25 | tunnel "^0.0.6" 26 | undici "^5.25.4" 27 | 28 | "@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@~1.1.3": 29 | version "1.1.3" 30 | resolved "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz" 31 | integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== 32 | 33 | "@actions/tool-cache@~2.0.2": 34 | version "2.0.2" 35 | resolved "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz" 36 | integrity sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w== 37 | dependencies: 38 | "@actions/core" "^1.11.1" 39 | "@actions/exec" "^1.0.0" 40 | "@actions/http-client" "^2.0.1" 41 | "@actions/io" "^1.1.1" 42 | semver "^6.1.0" 43 | 44 | "@babel/code-frame@^7.0.0": 45 | version "7.26.2" 46 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" 47 | integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== 48 | dependencies: 49 | "@babel/helper-validator-identifier" "^7.25.9" 50 | js-tokens "^4.0.0" 51 | picocolors "^1.0.0" 52 | 53 | "@babel/helper-validator-identifier@^7.25.9": 54 | version "7.25.9" 55 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" 56 | integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== 57 | 58 | "@cspotcode/source-map-support@^0.8.0": 59 | version "0.8.1" 60 | resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" 61 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 62 | dependencies: 63 | "@jridgewell/trace-mapping" "0.3.9" 64 | 65 | "@fastify/busboy@^2.0.0": 66 | version "2.1.1" 67 | resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" 68 | integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== 69 | 70 | "@jridgewell/resolve-uri@^3.0.3": 71 | version "3.1.2" 72 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" 73 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 74 | 75 | "@jridgewell/sourcemap-codec@^1.4.10": 76 | version "1.5.0" 77 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" 78 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 79 | 80 | "@jridgewell/trace-mapping@0.3.9": 81 | version "0.3.9" 82 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" 83 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 84 | dependencies: 85 | "@jridgewell/resolve-uri" "^3.0.3" 86 | "@jridgewell/sourcemap-codec" "^1.4.10" 87 | 88 | "@lezer/common@^1.0.0": 89 | version "1.2.3" 90 | resolved "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz" 91 | integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA== 92 | 93 | "@lezer/lr@^1.0.0": 94 | version "1.4.2" 95 | resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz" 96 | integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA== 97 | dependencies: 98 | "@lezer/common" "^1.0.0" 99 | 100 | "@lmdb/lmdb-linux-x64@2.8.5": 101 | version "2.8.5" 102 | resolved "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz" 103 | integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== 104 | 105 | "@mischnic/json-sourcemap@^0.1.0": 106 | version "0.1.1" 107 | resolved "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz" 108 | integrity sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w== 109 | dependencies: 110 | "@lezer/common" "^1.0.0" 111 | "@lezer/lr" "^1.0.0" 112 | json5 "^2.2.1" 113 | 114 | "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3": 115 | version "3.0.3" 116 | resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz" 117 | integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg== 118 | 119 | "@octokit/auth-token@^5.0.0": 120 | version "5.1.2" 121 | resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz" 122 | integrity sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw== 123 | 124 | "@octokit/core@^6.1.4", "@octokit/core@>=6": 125 | version "6.1.4" 126 | resolved "https://registry.npmjs.org/@octokit/core/-/core-6.1.4.tgz" 127 | integrity sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg== 128 | dependencies: 129 | "@octokit/auth-token" "^5.0.0" 130 | "@octokit/graphql" "^8.1.2" 131 | "@octokit/request" "^9.2.1" 132 | "@octokit/request-error" "^6.1.7" 133 | "@octokit/types" "^13.6.2" 134 | before-after-hook "^3.0.2" 135 | universal-user-agent "^7.0.0" 136 | 137 | "@octokit/endpoint@^10.1.3": 138 | version "10.1.3" 139 | resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz" 140 | integrity sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA== 141 | dependencies: 142 | "@octokit/types" "^13.6.2" 143 | universal-user-agent "^7.0.2" 144 | 145 | "@octokit/graphql@^8.1.2": 146 | version "8.2.1" 147 | resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.1.tgz" 148 | integrity sha512-n57hXtOoHrhwTWdvhVkdJHdhTv0JstjDbDRhJfwIRNfFqmSo1DaK/mD2syoNUoLCyqSjBpGAKOG0BuwF392slw== 149 | dependencies: 150 | "@octokit/request" "^9.2.2" 151 | "@octokit/types" "^13.8.0" 152 | universal-user-agent "^7.0.0" 153 | 154 | "@octokit/openapi-types@^23.0.1": 155 | version "23.0.1" 156 | resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz" 157 | integrity sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g== 158 | 159 | "@octokit/plugin-paginate-rest@^11.4.2": 160 | version "11.4.2" 161 | resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.2.tgz" 162 | integrity sha512-BXJ7XPCTDXFF+wxcg/zscfgw2O/iDPtNSkwwR1W1W5c4Mb3zav/M2XvxQ23nVmKj7jpweB4g8viMeCQdm7LMVA== 163 | dependencies: 164 | "@octokit/types" "^13.7.0" 165 | 166 | "@octokit/plugin-request-log@^5.3.1": 167 | version "5.3.1" 168 | resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz" 169 | integrity sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw== 170 | 171 | "@octokit/plugin-rest-endpoint-methods@^13.3.0": 172 | version "13.3.1" 173 | resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.1.tgz" 174 | integrity sha512-o8uOBdsyR+WR8MK9Cco8dCgvG13H1RlM1nWnK/W7TEACQBFux/vPREgKucxUfuDQ5yi1T3hGf4C5ZmZXAERgwQ== 175 | dependencies: 176 | "@octokit/types" "^13.8.0" 177 | 178 | "@octokit/request-error@^6.1.7": 179 | version "6.1.7" 180 | resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz" 181 | integrity sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g== 182 | dependencies: 183 | "@octokit/types" "^13.6.2" 184 | 185 | "@octokit/request@^9.2.1", "@octokit/request@^9.2.2": 186 | version "9.2.2" 187 | resolved "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz" 188 | integrity sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg== 189 | dependencies: 190 | "@octokit/endpoint" "^10.1.3" 191 | "@octokit/request-error" "^6.1.7" 192 | "@octokit/types" "^13.6.2" 193 | fast-content-type-parse "^2.0.0" 194 | universal-user-agent "^7.0.2" 195 | 196 | "@octokit/rest@^21": 197 | version "21.1.1" 198 | resolved "https://registry.npmjs.org/@octokit/rest/-/rest-21.1.1.tgz" 199 | integrity sha512-sTQV7va0IUVZcntzy1q3QqPm/r8rWtDCqpRAmb8eXXnKkjoQEtFe3Nt5GTVsHft+R6jJoHeSiVLcgcvhtue/rg== 200 | dependencies: 201 | "@octokit/core" "^6.1.4" 202 | "@octokit/plugin-paginate-rest" "^11.4.2" 203 | "@octokit/plugin-request-log" "^5.3.1" 204 | "@octokit/plugin-rest-endpoint-methods" "^13.3.0" 205 | 206 | "@octokit/types@^13.6.2", "@octokit/types@^13.7.0", "@octokit/types@^13.8.0": 207 | version "13.8.0" 208 | resolved "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz" 209 | integrity sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A== 210 | dependencies: 211 | "@octokit/openapi-types" "^23.0.1" 212 | 213 | "@parcel/bundler-default@2.13.3": 214 | version "2.13.3" 215 | resolved "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.13.3.tgz" 216 | integrity sha512-mOuWeth0bZzRv1b9Lrvydis/hAzJyePy0gwa0tix3/zyYBvw0JY+xkXVR4qKyD/blc1Ra2qOlfI2uD3ucnsdXA== 217 | dependencies: 218 | "@parcel/diagnostic" "2.13.3" 219 | "@parcel/graph" "3.3.3" 220 | "@parcel/plugin" "2.13.3" 221 | "@parcel/rust" "2.13.3" 222 | "@parcel/utils" "2.13.3" 223 | nullthrows "^1.1.1" 224 | 225 | "@parcel/cache@2.13.3": 226 | version "2.13.3" 227 | resolved "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.3.tgz" 228 | integrity sha512-Vz5+K5uCt9mcuQAMDo0JdbPYDmVdB8Nvu/A2vTEK2rqZPxvoOTczKeMBA4JqzKqGURHPRLaJCvuR8nDG+jhK9A== 229 | dependencies: 230 | "@parcel/fs" "2.13.3" 231 | "@parcel/logger" "2.13.3" 232 | "@parcel/utils" "2.13.3" 233 | lmdb "2.8.5" 234 | 235 | "@parcel/codeframe@2.13.3": 236 | version "2.13.3" 237 | resolved "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.3.tgz" 238 | integrity sha512-L/PQf+PT0xM8k9nc0B+PxxOYO2phQYnbuifu9o4pFRiqVmCtHztP+XMIvRJ2gOEXy3pgAImSPFVJ3xGxMFky4g== 239 | dependencies: 240 | chalk "^4.1.2" 241 | 242 | "@parcel/compressor-raw@2.13.3": 243 | version "2.13.3" 244 | resolved "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.13.3.tgz" 245 | integrity sha512-C6vjDlgTLjYc358i7LA/dqcL0XDQZ1IHXFw6hBaHHOfxPKW2T4bzUI6RURyToEK9Q1X7+ggDKqgdLxwp4veCFg== 246 | dependencies: 247 | "@parcel/plugin" "2.13.3" 248 | 249 | "@parcel/config-default@2.13.3": 250 | version "2.13.3" 251 | resolved "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.13.3.tgz" 252 | integrity sha512-WUsx83ic8DgLwwnL1Bua4lRgQqYjxiTT+DBxESGk1paNm1juWzyfPXEQDLXwiCTcWMQGiXQFQ8OuSISauVQ8dQ== 253 | dependencies: 254 | "@parcel/bundler-default" "2.13.3" 255 | "@parcel/compressor-raw" "2.13.3" 256 | "@parcel/namer-default" "2.13.3" 257 | "@parcel/optimizer-css" "2.13.3" 258 | "@parcel/optimizer-htmlnano" "2.13.3" 259 | "@parcel/optimizer-image" "2.13.3" 260 | "@parcel/optimizer-svgo" "2.13.3" 261 | "@parcel/optimizer-swc" "2.13.3" 262 | "@parcel/packager-css" "2.13.3" 263 | "@parcel/packager-html" "2.13.3" 264 | "@parcel/packager-js" "2.13.3" 265 | "@parcel/packager-raw" "2.13.3" 266 | "@parcel/packager-svg" "2.13.3" 267 | "@parcel/packager-wasm" "2.13.3" 268 | "@parcel/reporter-dev-server" "2.13.3" 269 | "@parcel/resolver-default" "2.13.3" 270 | "@parcel/runtime-browser-hmr" "2.13.3" 271 | "@parcel/runtime-js" "2.13.3" 272 | "@parcel/runtime-react-refresh" "2.13.3" 273 | "@parcel/runtime-service-worker" "2.13.3" 274 | "@parcel/transformer-babel" "2.13.3" 275 | "@parcel/transformer-css" "2.13.3" 276 | "@parcel/transformer-html" "2.13.3" 277 | "@parcel/transformer-image" "2.13.3" 278 | "@parcel/transformer-js" "2.13.3" 279 | "@parcel/transformer-json" "2.13.3" 280 | "@parcel/transformer-postcss" "2.13.3" 281 | "@parcel/transformer-posthtml" "2.13.3" 282 | "@parcel/transformer-raw" "2.13.3" 283 | "@parcel/transformer-react-refresh-wrap" "2.13.3" 284 | "@parcel/transformer-svg" "2.13.3" 285 | 286 | "@parcel/core@^2.13.3", "@parcel/core@2.13.3": 287 | version "2.13.3" 288 | resolved "https://registry.npmjs.org/@parcel/core/-/core-2.13.3.tgz" 289 | integrity sha512-SRZFtqGiaKHlZ2YAvf+NHvBFWS3GnkBvJMfOJM7kxJRK3M1bhbwJa/GgSdzqro5UVf9Bfj6E+pkdrRQIOZ7jMQ== 290 | dependencies: 291 | "@mischnic/json-sourcemap" "^0.1.0" 292 | "@parcel/cache" "2.13.3" 293 | "@parcel/diagnostic" "2.13.3" 294 | "@parcel/events" "2.13.3" 295 | "@parcel/feature-flags" "2.13.3" 296 | "@parcel/fs" "2.13.3" 297 | "@parcel/graph" "3.3.3" 298 | "@parcel/logger" "2.13.3" 299 | "@parcel/package-manager" "2.13.3" 300 | "@parcel/plugin" "2.13.3" 301 | "@parcel/profiler" "2.13.3" 302 | "@parcel/rust" "2.13.3" 303 | "@parcel/source-map" "^2.1.1" 304 | "@parcel/types" "2.13.3" 305 | "@parcel/utils" "2.13.3" 306 | "@parcel/workers" "2.13.3" 307 | base-x "^3.0.8" 308 | browserslist "^4.6.6" 309 | clone "^2.1.1" 310 | dotenv "^16.4.5" 311 | dotenv-expand "^11.0.6" 312 | json5 "^2.2.0" 313 | msgpackr "^1.9.9" 314 | nullthrows "^1.1.1" 315 | semver "^7.5.2" 316 | 317 | "@parcel/diagnostic@2.13.3": 318 | version "2.13.3" 319 | resolved "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.3.tgz" 320 | integrity sha512-C70KXLBaXLJvr7XCEVu8m6TqNdw1gQLxqg5BQ8roR62R4vWWDnOq8PEksxDi4Y8Z/FF4i3Sapv6tRx9iBNxDEg== 321 | dependencies: 322 | "@mischnic/json-sourcemap" "^0.1.0" 323 | nullthrows "^1.1.1" 324 | 325 | "@parcel/events@2.13.3": 326 | version "2.13.3" 327 | resolved "https://registry.npmjs.org/@parcel/events/-/events-2.13.3.tgz" 328 | integrity sha512-ZkSHTTbD/E+53AjUzhAWTnMLnxLEU5yRw0H614CaruGh+GjgOIKyukGeToF5Gf/lvZ159VrJCGE0Z5EpgHVkuQ== 329 | 330 | "@parcel/feature-flags@2.13.3": 331 | version "2.13.3" 332 | resolved "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.3.tgz" 333 | integrity sha512-UZm14QpamDFoUut9YtCZSpG1HxPs07lUwUCpsAYL0PpxASD3oWJQxIJGfDZPa2272DarXDG9adTKrNXvkHZblw== 334 | 335 | "@parcel/fs@2.13.3": 336 | version "2.13.3" 337 | resolved "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.3.tgz" 338 | integrity sha512-+MPWAt0zr+TCDSlj1LvkORTjfB/BSffsE99A9AvScKytDSYYpY2s0t4vtV9unSh0FHMS2aBCZNJ4t7KL+DcPIg== 339 | dependencies: 340 | "@parcel/feature-flags" "2.13.3" 341 | "@parcel/rust" "2.13.3" 342 | "@parcel/types-internal" "2.13.3" 343 | "@parcel/utils" "2.13.3" 344 | "@parcel/watcher" "^2.0.7" 345 | "@parcel/workers" "2.13.3" 346 | 347 | "@parcel/graph@3.3.3": 348 | version "3.3.3" 349 | resolved "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.3.tgz" 350 | integrity sha512-pxs4GauEdvCN8nRd6wG3st6LvpHske3GfqGwUSR0P0X0pBPI1/NicvXz6xzp3rgb9gPWfbKXeI/2IOTfIxxVfg== 351 | dependencies: 352 | "@parcel/feature-flags" "2.13.3" 353 | nullthrows "^1.1.1" 354 | 355 | "@parcel/logger@2.13.3": 356 | version "2.13.3" 357 | resolved "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.3.tgz" 358 | integrity sha512-8YF/ZhsQgd7ohQ2vEqcMD1Ag9JlJULROWRPGgGYLGD+twuxAiSdiFBpN3f+j4gQN4PYaLaIS/SwUFx11J243fQ== 359 | dependencies: 360 | "@parcel/diagnostic" "2.13.3" 361 | "@parcel/events" "2.13.3" 362 | 363 | "@parcel/markdown-ansi@2.13.3": 364 | version "2.13.3" 365 | resolved "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.3.tgz" 366 | integrity sha512-B4rUdlNUulJs2xOQuDbN7Hq5a9roq8IZUcJ1vQ8PAv+zMGb7KCfqIIr/BSCDYGhayfAGBVWW8x55Kvrl1zrDYw== 367 | dependencies: 368 | chalk "^4.1.2" 369 | 370 | "@parcel/namer-default@2.13.3": 371 | version "2.13.3" 372 | resolved "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.13.3.tgz" 373 | integrity sha512-A2a5A5fuyNcjSGOS0hPcdQmOE2kszZnLIXof7UMGNkNkeC62KAG8WcFZH5RNOY3LT5H773hq51zmc2Y2gE5Rnw== 374 | dependencies: 375 | "@parcel/diagnostic" "2.13.3" 376 | "@parcel/plugin" "2.13.3" 377 | nullthrows "^1.1.1" 378 | 379 | "@parcel/node-resolver-core@3.4.3": 380 | version "3.4.3" 381 | resolved "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.3.tgz" 382 | integrity sha512-IEnMks49egEic1ITBp59VQyHzkSQUXqpU9hOHwqN3KoSTdZ6rEgrXcS3pa6tdXay4NYGlcZ88kFCE8i/xYoVCg== 383 | dependencies: 384 | "@mischnic/json-sourcemap" "^0.1.0" 385 | "@parcel/diagnostic" "2.13.3" 386 | "@parcel/fs" "2.13.3" 387 | "@parcel/rust" "2.13.3" 388 | "@parcel/utils" "2.13.3" 389 | nullthrows "^1.1.1" 390 | semver "^7.5.2" 391 | 392 | "@parcel/optimizer-css@2.13.3": 393 | version "2.13.3" 394 | resolved "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.13.3.tgz" 395 | integrity sha512-A8o9IVCv919vhv69SkLmyW2WjJR5WZgcMqV6L1uiGF8i8z18myrMhrp2JuSHx29PRT9uNyzNC4Xrd4StYjIhJg== 396 | dependencies: 397 | "@parcel/diagnostic" "2.13.3" 398 | "@parcel/plugin" "2.13.3" 399 | "@parcel/source-map" "^2.1.1" 400 | "@parcel/utils" "2.13.3" 401 | browserslist "^4.6.6" 402 | lightningcss "^1.22.1" 403 | nullthrows "^1.1.1" 404 | 405 | "@parcel/optimizer-htmlnano@2.13.3": 406 | version "2.13.3" 407 | resolved "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.3.tgz" 408 | integrity sha512-K4Uvg0Sy2pECP7pdvvbud++F0pfcbNkq+IxTrgqBX5HJnLEmRZwgdvZEKF43oMEolclMnURMQRGjRplRaPdbXg== 409 | dependencies: 410 | "@parcel/diagnostic" "2.13.3" 411 | "@parcel/plugin" "2.13.3" 412 | "@parcel/utils" "2.13.3" 413 | htmlnano "^2.0.0" 414 | nullthrows "^1.1.1" 415 | posthtml "^0.16.5" 416 | 417 | "@parcel/optimizer-image@2.13.3": 418 | version "2.13.3" 419 | resolved "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.13.3.tgz" 420 | integrity sha512-wlDUICA29J4UnqkKrWiyt68g1e85qfYhp4zJFcFJL0LX1qqh1QwsLUz3YJ+KlruoqPxJSFEC8ncBEKiVCsqhEQ== 421 | dependencies: 422 | "@parcel/diagnostic" "2.13.3" 423 | "@parcel/plugin" "2.13.3" 424 | "@parcel/rust" "2.13.3" 425 | "@parcel/utils" "2.13.3" 426 | "@parcel/workers" "2.13.3" 427 | 428 | "@parcel/optimizer-svgo@2.13.3": 429 | version "2.13.3" 430 | resolved "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.13.3.tgz" 431 | integrity sha512-piIKxQKzhZK54dJR6yqIcq+urZmpsfgUpLCZT3cnWlX4ux5+S2iN66qqZBs0zVn+a58LcWcoP4Z9ieiJmpiu2w== 432 | dependencies: 433 | "@parcel/diagnostic" "2.13.3" 434 | "@parcel/plugin" "2.13.3" 435 | "@parcel/utils" "2.13.3" 436 | 437 | "@parcel/optimizer-swc@2.13.3": 438 | version "2.13.3" 439 | resolved "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.13.3.tgz" 440 | integrity sha512-zNSq6oWqLlW8ksPIDjM0VgrK6ZAJbPQCDvs1V+p0oX3CzEe85lT5VkRpnfrN1+/vvEJNGL8e60efHKpI+rXGTA== 441 | dependencies: 442 | "@parcel/diagnostic" "2.13.3" 443 | "@parcel/plugin" "2.13.3" 444 | "@parcel/source-map" "^2.1.1" 445 | "@parcel/utils" "2.13.3" 446 | "@swc/core" "^1.7.26" 447 | nullthrows "^1.1.1" 448 | 449 | "@parcel/package-manager@2.13.3": 450 | version "2.13.3" 451 | resolved "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.3.tgz" 452 | integrity sha512-FLNI5OrZxymGf/Yln0E/kjnGn5sdkQAxW7pQVdtuM+5VeN75yibJRjsSGv88PvJ+KvpD2ANgiIJo1RufmoPcww== 453 | dependencies: 454 | "@parcel/diagnostic" "2.13.3" 455 | "@parcel/fs" "2.13.3" 456 | "@parcel/logger" "2.13.3" 457 | "@parcel/node-resolver-core" "3.4.3" 458 | "@parcel/types" "2.13.3" 459 | "@parcel/utils" "2.13.3" 460 | "@parcel/workers" "2.13.3" 461 | "@swc/core" "^1.7.26" 462 | semver "^7.5.2" 463 | 464 | "@parcel/packager-css@2.13.3": 465 | version "2.13.3" 466 | resolved "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.13.3.tgz" 467 | integrity sha512-ghDqRMtrUwaDERzFm9le0uz2PTeqqsjsW0ihQSZPSAptElRl9o5BR+XtMPv3r7Ui0evo+w35gD55oQCJ28vCig== 468 | dependencies: 469 | "@parcel/diagnostic" "2.13.3" 470 | "@parcel/plugin" "2.13.3" 471 | "@parcel/source-map" "^2.1.1" 472 | "@parcel/utils" "2.13.3" 473 | lightningcss "^1.22.1" 474 | nullthrows "^1.1.1" 475 | 476 | "@parcel/packager-html@2.13.3": 477 | version "2.13.3" 478 | resolved "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.13.3.tgz" 479 | integrity sha512-jDLnKSA/EzVEZ3/aegXO3QJ/Ij732AgBBkIQfeC8tUoxwVz5b3HiPBAjVjcUSfZs7mdBSHO+ELWC3UD+HbsIrQ== 480 | dependencies: 481 | "@parcel/plugin" "2.13.3" 482 | "@parcel/types" "2.13.3" 483 | "@parcel/utils" "2.13.3" 484 | nullthrows "^1.1.1" 485 | posthtml "^0.16.5" 486 | 487 | "@parcel/packager-js@2.13.3": 488 | version "2.13.3" 489 | resolved "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.13.3.tgz" 490 | integrity sha512-0pMHHf2zOn7EOJe88QJw5h/wcV1bFfj6cXVcE55Wa8GX3V+SdCgolnlvNuBcRQ1Tlx0Xkpo+9hMFVIQbNQY6zw== 491 | dependencies: 492 | "@parcel/diagnostic" "2.13.3" 493 | "@parcel/plugin" "2.13.3" 494 | "@parcel/rust" "2.13.3" 495 | "@parcel/source-map" "^2.1.1" 496 | "@parcel/types" "2.13.3" 497 | "@parcel/utils" "2.13.3" 498 | globals "^13.2.0" 499 | nullthrows "^1.1.1" 500 | 501 | "@parcel/packager-raw@2.13.3": 502 | version "2.13.3" 503 | resolved "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.13.3.tgz" 504 | integrity sha512-AWu4UB+akBdskzvT3KGVHIdacU9f7cI678DQQ1jKQuc9yZz5D0VFt3ocFBOmvDfEQDF0uH3jjtJR7fnuvX7Biw== 505 | dependencies: 506 | "@parcel/plugin" "2.13.3" 507 | 508 | "@parcel/packager-svg@2.13.3": 509 | version "2.13.3" 510 | resolved "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.13.3.tgz" 511 | integrity sha512-tKGRiFq/4jh5u2xpTstNQ7gu+RuZWzlWqpw5NaFmcKe6VQe5CMcS499xTFoREAGnRvevSeIgC38X1a+VOo+/AA== 512 | dependencies: 513 | "@parcel/plugin" "2.13.3" 514 | "@parcel/types" "2.13.3" 515 | "@parcel/utils" "2.13.3" 516 | posthtml "^0.16.4" 517 | 518 | "@parcel/packager-wasm@2.13.3": 519 | version "2.13.3" 520 | resolved "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.13.3.tgz" 521 | integrity sha512-SZB56/b230vFrSehVXaUAWjJmWYc89gzb8OTLkBm7uvtFtov2J1R8Ig9TTJwinyXE3h84MCFP/YpQElSfoLkJw== 522 | dependencies: 523 | "@parcel/plugin" "2.13.3" 524 | 525 | "@parcel/plugin@2.13.3": 526 | version "2.13.3" 527 | resolved "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.3.tgz" 528 | integrity sha512-cterKHHcwg6q11Gpif/aqvHo056TR+yDVJ3fSdiG2xr5KD1VZ2B3hmofWERNNwjMcnR1h9Xq40B7jCKUhOyNFA== 529 | dependencies: 530 | "@parcel/types" "2.13.3" 531 | 532 | "@parcel/profiler@2.13.3": 533 | version "2.13.3" 534 | resolved "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.3.tgz" 535 | integrity sha512-ok6BwWSLvyHe5TuSXjSacYnDStFgP5Y30tA9mbtWSm0INDsYf+m5DqzpYPx8U54OaywWMK8w3MXUClosJX3aPA== 536 | dependencies: 537 | "@parcel/diagnostic" "2.13.3" 538 | "@parcel/events" "2.13.3" 539 | "@parcel/types-internal" "2.13.3" 540 | chrome-trace-event "^1.0.2" 541 | 542 | "@parcel/reporter-cli@2.13.3": 543 | version "2.13.3" 544 | resolved "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.13.3.tgz" 545 | integrity sha512-EA5tKt/6bXYNMEavSs35qHlFdx6cZmRazlZxPBgxPePQYoouNAPMNLUOEQozaPhz9f5fvNDN7EHOFaAWcdO2LA== 546 | dependencies: 547 | "@parcel/plugin" "2.13.3" 548 | "@parcel/types" "2.13.3" 549 | "@parcel/utils" "2.13.3" 550 | chalk "^4.1.2" 551 | term-size "^2.2.1" 552 | 553 | "@parcel/reporter-dev-server@2.13.3": 554 | version "2.13.3" 555 | resolved "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.3.tgz" 556 | integrity sha512-ZNeFp6AOIQFv7mZIv2P5O188dnZHNg0ymeDVcakfZomwhpSva2dFNS3AnvWo4eyWBlUxkmQO8BtaxeWTs7jAuA== 557 | dependencies: 558 | "@parcel/plugin" "2.13.3" 559 | "@parcel/utils" "2.13.3" 560 | 561 | "@parcel/reporter-tracer@2.13.3": 562 | version "2.13.3" 563 | resolved "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.13.3.tgz" 564 | integrity sha512-aBsVPI8jLZTDkFYrI69GxnsdvZKEYerkPsu935LcX9rfUYssOnmmUP+3oI+8fbg+qNjJuk9BgoQ4hCp9FOphMQ== 565 | dependencies: 566 | "@parcel/plugin" "2.13.3" 567 | "@parcel/utils" "2.13.3" 568 | chrome-trace-event "^1.0.3" 569 | nullthrows "^1.1.1" 570 | 571 | "@parcel/resolver-default@2.13.3": 572 | version "2.13.3" 573 | resolved "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.13.3.tgz" 574 | integrity sha512-urBZuRALWT9pFMeWQ8JirchLmsQEyI9lrJptiwLbJWrwvmlwSUGkcstmPwoNRf/aAQjICB7ser/247Vny0pFxA== 575 | dependencies: 576 | "@parcel/node-resolver-core" "3.4.3" 577 | "@parcel/plugin" "2.13.3" 578 | 579 | "@parcel/runtime-browser-hmr@2.13.3": 580 | version "2.13.3" 581 | resolved "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.3.tgz" 582 | integrity sha512-EAcPojQFUNUGUrDk66cu3ySPO0NXRVS5CKPd4QrxPCVVbGzde4koKu8krC/TaGsoyUqhie8HMnS70qBP0GFfcQ== 583 | dependencies: 584 | "@parcel/plugin" "2.13.3" 585 | "@parcel/utils" "2.13.3" 586 | 587 | "@parcel/runtime-js@2.13.3": 588 | version "2.13.3" 589 | resolved "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.13.3.tgz" 590 | integrity sha512-62OucNAnxb2Q0uyTFWW/0Hvv2DJ4b5H6neh/YFu2/wmxaZ37xTpEuEcG2do7KW54xE5DeLP+RliHLwi4NvR3ww== 591 | dependencies: 592 | "@parcel/diagnostic" "2.13.3" 593 | "@parcel/plugin" "2.13.3" 594 | "@parcel/utils" "2.13.3" 595 | nullthrows "^1.1.1" 596 | 597 | "@parcel/runtime-react-refresh@2.13.3": 598 | version "2.13.3" 599 | resolved "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.3.tgz" 600 | integrity sha512-PYZ1klpJVwqE3WuifILjtF1dugtesHEuJcXYZI85T6UoRSD5ctS1nAIpZzT14Ga1lRt/jd+eAmhWL1l3m/Vk1Q== 601 | dependencies: 602 | "@parcel/plugin" "2.13.3" 603 | "@parcel/utils" "2.13.3" 604 | react-error-overlay "6.0.9" 605 | react-refresh ">=0.9 <=0.14" 606 | 607 | "@parcel/runtime-service-worker@2.13.3": 608 | version "2.13.3" 609 | resolved "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.3.tgz" 610 | integrity sha512-BjMhPuT7Us1+YIo31exPRwomPiL+jrZZS5UUAwlEW2XGHDceEotzRM94LwxeFliCScT4IOokGoxixm19qRuzWg== 611 | dependencies: 612 | "@parcel/plugin" "2.13.3" 613 | "@parcel/utils" "2.13.3" 614 | nullthrows "^1.1.1" 615 | 616 | "@parcel/rust@2.13.3": 617 | version "2.13.3" 618 | resolved "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.3.tgz" 619 | integrity sha512-dLq85xDAtzr3P5200cvxk+8WXSWauYbxuev9LCPdwfhlaWo/JEj6cu9seVdWlkagjGwkoV1kXC+GGntgUXOLAQ== 620 | 621 | "@parcel/source-map@^2.1.1": 622 | version "2.1.1" 623 | resolved "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz" 624 | integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew== 625 | dependencies: 626 | detect-libc "^1.0.3" 627 | 628 | "@parcel/transformer-babel@2.13.3": 629 | version "2.13.3" 630 | resolved "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.13.3.tgz" 631 | integrity sha512-ikzK9f5WTFrdQsPitQgjCPH6HmVU8AQPRemIJ2BndYhtodn5PQut5cnSvTrqax8RjYvheEKCQk/Zb/uR7qgS3g== 632 | dependencies: 633 | "@parcel/diagnostic" "2.13.3" 634 | "@parcel/plugin" "2.13.3" 635 | "@parcel/source-map" "^2.1.1" 636 | "@parcel/utils" "2.13.3" 637 | browserslist "^4.6.6" 638 | json5 "^2.2.0" 639 | nullthrows "^1.1.1" 640 | semver "^7.5.2" 641 | 642 | "@parcel/transformer-css@2.13.3": 643 | version "2.13.3" 644 | resolved "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.13.3.tgz" 645 | integrity sha512-zbrNURGph6JeVADbGydyZ7lcu/izj41kDxQ9xw4RPRW/3rofQiTU0OTREi+uBWiMENQySXVivEdzHA9cA+aLAA== 646 | dependencies: 647 | "@parcel/diagnostic" "2.13.3" 648 | "@parcel/plugin" "2.13.3" 649 | "@parcel/source-map" "^2.1.1" 650 | "@parcel/utils" "2.13.3" 651 | browserslist "^4.6.6" 652 | lightningcss "^1.22.1" 653 | nullthrows "^1.1.1" 654 | 655 | "@parcel/transformer-html@2.13.3": 656 | version "2.13.3" 657 | resolved "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.13.3.tgz" 658 | integrity sha512-Yf74FkL9RCCB4+hxQRVMNQThH9+fZ5w0NLiQPpWUOcgDEEyxTi4FWPQgEBsKl/XK2ehdydbQB9fBgPQLuQxwPg== 659 | dependencies: 660 | "@parcel/diagnostic" "2.13.3" 661 | "@parcel/plugin" "2.13.3" 662 | "@parcel/rust" "2.13.3" 663 | nullthrows "^1.1.1" 664 | posthtml "^0.16.5" 665 | posthtml-parser "^0.12.1" 666 | posthtml-render "^3.0.0" 667 | semver "^7.5.2" 668 | srcset "4" 669 | 670 | "@parcel/transformer-image@2.13.3": 671 | version "2.13.3" 672 | resolved "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.13.3.tgz" 673 | integrity sha512-wL1CXyeFAqbp2wcEq/JD3a/tbAyVIDMTC6laQxlIwnVV7dsENhK1qRuJZuoBdixESeUpFQSmmQvDIhcfT/cUUg== 674 | dependencies: 675 | "@parcel/plugin" "2.13.3" 676 | "@parcel/utils" "2.13.3" 677 | "@parcel/workers" "2.13.3" 678 | nullthrows "^1.1.1" 679 | 680 | "@parcel/transformer-js@2.13.3": 681 | version "2.13.3" 682 | resolved "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.13.3.tgz" 683 | integrity sha512-KqfNGn1IHzDoN2aPqt4nDksgb50Xzcny777C7A7hjlQ3cmkjyJrixYjzzsPaPSGJ+kJpknh3KE8unkQ9mhFvRQ== 684 | dependencies: 685 | "@parcel/diagnostic" "2.13.3" 686 | "@parcel/plugin" "2.13.3" 687 | "@parcel/rust" "2.13.3" 688 | "@parcel/source-map" "^2.1.1" 689 | "@parcel/utils" "2.13.3" 690 | "@parcel/workers" "2.13.3" 691 | "@swc/helpers" "^0.5.0" 692 | browserslist "^4.6.6" 693 | nullthrows "^1.1.1" 694 | regenerator-runtime "^0.14.1" 695 | semver "^7.5.2" 696 | 697 | "@parcel/transformer-json@2.13.3": 698 | version "2.13.3" 699 | resolved "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.13.3.tgz" 700 | integrity sha512-rrq0ab6J0w9ePtsxi0kAvpCmrUYXXAx1Z5PATZakv89rSYbHBKEdXxyCoKFui/UPVCUEGVs5r0iOFepdHpIyeA== 701 | dependencies: 702 | "@parcel/plugin" "2.13.3" 703 | json5 "^2.2.0" 704 | 705 | "@parcel/transformer-postcss@2.13.3": 706 | version "2.13.3" 707 | resolved "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.13.3.tgz" 708 | integrity sha512-AIiWpU0QSFBrPcYIqAnhqB8RGE6yHFznnxztfg1t2zMSOnK3xoU6xqYKv8H/MduShGGrC3qVOeDfM8MUwzL3cw== 709 | dependencies: 710 | "@parcel/diagnostic" "2.13.3" 711 | "@parcel/plugin" "2.13.3" 712 | "@parcel/rust" "2.13.3" 713 | "@parcel/utils" "2.13.3" 714 | clone "^2.1.1" 715 | nullthrows "^1.1.1" 716 | postcss-value-parser "^4.2.0" 717 | semver "^7.5.2" 718 | 719 | "@parcel/transformer-posthtml@2.13.3": 720 | version "2.13.3" 721 | resolved "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.3.tgz" 722 | integrity sha512-5GSLyccpHASwFAu3uJ83gDIBSvfsGdVmhJvy0Vxe+K1Fklk2ibhvvtUHMhB7mg6SPHC+R9jsNc3ZqY04ZLeGjw== 723 | dependencies: 724 | "@parcel/plugin" "2.13.3" 725 | "@parcel/utils" "2.13.3" 726 | nullthrows "^1.1.1" 727 | posthtml "^0.16.5" 728 | posthtml-parser "^0.12.1" 729 | posthtml-render "^3.0.0" 730 | semver "^7.5.2" 731 | 732 | "@parcel/transformer-raw@2.13.3": 733 | version "2.13.3" 734 | resolved "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.13.3.tgz" 735 | integrity sha512-BFsAbdQF0l8/Pdb7dSLJeYcd8jgwvAUbHgMink2MNXJuRUvDl19Gns8jVokU+uraFHulJMBj40+K/RTd33in4g== 736 | dependencies: 737 | "@parcel/plugin" "2.13.3" 738 | 739 | "@parcel/transformer-react-refresh-wrap@2.13.3": 740 | version "2.13.3" 741 | resolved "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.3.tgz" 742 | integrity sha512-mOof4cRyxsZRdg8kkWaFtaX98mHpxUhcGPU+nF9RQVa9q737ItxrorsPNR9hpZAyE2TtFNflNW7RoYsgvlLw8w== 743 | dependencies: 744 | "@parcel/plugin" "2.13.3" 745 | "@parcel/utils" "2.13.3" 746 | react-refresh ">=0.9 <=0.14" 747 | 748 | "@parcel/transformer-svg@2.13.3": 749 | version "2.13.3" 750 | resolved "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.13.3.tgz" 751 | integrity sha512-9jm7ZF4KHIrGLWlw/SFUz5KKJ20nxHvjFAmzde34R9Wu+F1BOjLZxae7w4ZRwvIc+UVOUcBBQFmhSVwVDZg6Dw== 752 | dependencies: 753 | "@parcel/diagnostic" "2.13.3" 754 | "@parcel/plugin" "2.13.3" 755 | "@parcel/rust" "2.13.3" 756 | nullthrows "^1.1.1" 757 | posthtml "^0.16.5" 758 | posthtml-parser "^0.12.1" 759 | posthtml-render "^3.0.0" 760 | semver "^7.5.2" 761 | 762 | "@parcel/types-internal@2.13.3": 763 | version "2.13.3" 764 | resolved "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.3.tgz" 765 | integrity sha512-Lhx0n+9RCp+Ipktf/I+CLm3zE9Iq9NtDd8b2Vr5lVWyoT8AbzBKIHIpTbhLS4kjZ80L3I6o93OYjqAaIjsqoZw== 766 | dependencies: 767 | "@parcel/diagnostic" "2.13.3" 768 | "@parcel/feature-flags" "2.13.3" 769 | "@parcel/source-map" "^2.1.1" 770 | utility-types "^3.10.0" 771 | 772 | "@parcel/types@2.13.3": 773 | version "2.13.3" 774 | resolved "https://registry.npmjs.org/@parcel/types/-/types-2.13.3.tgz" 775 | integrity sha512-+RpFHxx8fy8/dpuehHUw/ja9PRExC3wJoIlIIF42E7SLu2SvlTHtKm6EfICZzxCXNEBzjoDbamCRcN0nmTPlhw== 776 | dependencies: 777 | "@parcel/types-internal" "2.13.3" 778 | "@parcel/workers" "2.13.3" 779 | 780 | "@parcel/utils@2.13.3": 781 | version "2.13.3" 782 | resolved "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.3.tgz" 783 | integrity sha512-yxY9xw2wOUlJaScOXYZmMGoZ4Ck4Kqj+p6Koe5kLkkWM1j98Q0Dj2tf/mNvZi4yrdnlm+dclCwNRnuE8Q9D+pw== 784 | dependencies: 785 | "@parcel/codeframe" "2.13.3" 786 | "@parcel/diagnostic" "2.13.3" 787 | "@parcel/logger" "2.13.3" 788 | "@parcel/markdown-ansi" "2.13.3" 789 | "@parcel/rust" "2.13.3" 790 | "@parcel/source-map" "^2.1.1" 791 | chalk "^4.1.2" 792 | nullthrows "^1.1.1" 793 | 794 | "@parcel/watcher-linux-x64-glibc@2.5.1": 795 | version "2.5.1" 796 | resolved "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz" 797 | integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== 798 | 799 | "@parcel/watcher@^2.0.7": 800 | version "2.5.1" 801 | resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz" 802 | integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== 803 | dependencies: 804 | detect-libc "^1.0.3" 805 | is-glob "^4.0.3" 806 | micromatch "^4.0.5" 807 | node-addon-api "^7.0.0" 808 | optionalDependencies: 809 | "@parcel/watcher-android-arm64" "2.5.1" 810 | "@parcel/watcher-darwin-arm64" "2.5.1" 811 | "@parcel/watcher-darwin-x64" "2.5.1" 812 | "@parcel/watcher-freebsd-x64" "2.5.1" 813 | "@parcel/watcher-linux-arm-glibc" "2.5.1" 814 | "@parcel/watcher-linux-arm-musl" "2.5.1" 815 | "@parcel/watcher-linux-arm64-glibc" "2.5.1" 816 | "@parcel/watcher-linux-arm64-musl" "2.5.1" 817 | "@parcel/watcher-linux-x64-glibc" "2.5.1" 818 | "@parcel/watcher-linux-x64-musl" "2.5.1" 819 | "@parcel/watcher-win32-arm64" "2.5.1" 820 | "@parcel/watcher-win32-ia32" "2.5.1" 821 | "@parcel/watcher-win32-x64" "2.5.1" 822 | 823 | "@parcel/workers@2.13.3": 824 | version "2.13.3" 825 | resolved "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.3.tgz" 826 | integrity sha512-oAHmdniWTRwwwsKbcF4t3VjOtKN+/W17Wj5laiYB+HLkfsjGTfIQPj3sdXmrlBAGpI4omIcvR70PHHXnfdTfwA== 827 | dependencies: 828 | "@parcel/diagnostic" "2.13.3" 829 | "@parcel/logger" "2.13.3" 830 | "@parcel/profiler" "2.13.3" 831 | "@parcel/types-internal" "2.13.3" 832 | "@parcel/utils" "2.13.3" 833 | nullthrows "^1.1.1" 834 | 835 | "@swc/core-linux-x64-gnu@1.10.18": 836 | version "1.10.18" 837 | resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.18.tgz" 838 | integrity sha512-vTNmyRBVP+sZca+vtwygYPGTNudTU6Gl6XhaZZ7cEUTBr8xvSTgEmYXoK/2uzyXpaTUI4Bmtp1x81cGN0mMoLQ== 839 | 840 | "@swc/core@^1.7.26", "@swc/core@>=1.2.50": 841 | version "1.10.18" 842 | resolved "https://registry.npmjs.org/@swc/core/-/core-1.10.18.tgz" 843 | integrity sha512-IUWKD6uQYGRy8w2X9EZrtYg1O3SCijlHbCXzMaHQYc1X7yjijQh4H3IVL9ssZZyVp2ZDfQZu4bD5DWxxvpyjvg== 844 | dependencies: 845 | "@swc/counter" "^0.1.3" 846 | "@swc/types" "^0.1.17" 847 | optionalDependencies: 848 | "@swc/core-darwin-arm64" "1.10.18" 849 | "@swc/core-darwin-x64" "1.10.18" 850 | "@swc/core-linux-arm-gnueabihf" "1.10.18" 851 | "@swc/core-linux-arm64-gnu" "1.10.18" 852 | "@swc/core-linux-arm64-musl" "1.10.18" 853 | "@swc/core-linux-x64-gnu" "1.10.18" 854 | "@swc/core-linux-x64-musl" "1.10.18" 855 | "@swc/core-win32-arm64-msvc" "1.10.18" 856 | "@swc/core-win32-ia32-msvc" "1.10.18" 857 | "@swc/core-win32-x64-msvc" "1.10.18" 858 | 859 | "@swc/counter@^0.1.3": 860 | version "0.1.3" 861 | resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" 862 | integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== 863 | 864 | "@swc/helpers@*", "@swc/helpers@^0.5.0": 865 | version "0.5.15" 866 | resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz" 867 | integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== 868 | dependencies: 869 | tslib "^2.8.0" 870 | 871 | "@swc/types@^0.1.17": 872 | version "0.1.17" 873 | resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz" 874 | integrity sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ== 875 | dependencies: 876 | "@swc/counter" "^0.1.3" 877 | 878 | "@tsconfig/node10@^1.0.7": 879 | version "1.0.11" 880 | resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz" 881 | integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== 882 | 883 | "@tsconfig/node12@^1.0.7": 884 | version "1.0.11" 885 | resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" 886 | integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== 887 | 888 | "@tsconfig/node14@^1.0.0": 889 | version "1.0.3" 890 | resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" 891 | integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== 892 | 893 | "@tsconfig/node16@^1.0.2": 894 | version "1.0.4" 895 | resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" 896 | integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== 897 | 898 | "@types/lodash@^4": 899 | version "4.17.15" 900 | resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz" 901 | integrity sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw== 902 | 903 | "@types/node@*", "@types/node@~20": 904 | version "20.17.19" 905 | resolved "https://registry.npmjs.org/@types/node/-/node-20.17.19.tgz" 906 | integrity sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A== 907 | dependencies: 908 | undici-types "~6.19.2" 909 | 910 | acorn-walk@^8.1.1: 911 | version "8.3.4" 912 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" 913 | integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== 914 | dependencies: 915 | acorn "^8.11.0" 916 | 917 | acorn@^8.11.0, acorn@^8.4.1: 918 | version "8.14.0" 919 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" 920 | integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== 921 | 922 | ansi-styles@^4.1.0: 923 | version "4.3.0" 924 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 925 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 926 | dependencies: 927 | color-convert "^2.0.1" 928 | 929 | arg@^4.1.0: 930 | version "4.1.3" 931 | resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" 932 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 933 | 934 | argparse@^2.0.1: 935 | version "2.0.1" 936 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 937 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 938 | 939 | base-x@^3.0.8: 940 | version "3.0.10" 941 | resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz" 942 | integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== 943 | dependencies: 944 | safe-buffer "^5.0.1" 945 | 946 | before-after-hook@^3.0.2: 947 | version "3.0.2" 948 | resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz" 949 | integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A== 950 | 951 | braces@^3.0.3: 952 | version "3.0.3" 953 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" 954 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 955 | dependencies: 956 | fill-range "^7.1.1" 957 | 958 | browserslist@^4.6.6, "browserslist@>= 4.21.0": 959 | version "4.24.4" 960 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz" 961 | integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== 962 | dependencies: 963 | caniuse-lite "^1.0.30001688" 964 | electron-to-chromium "^1.5.73" 965 | node-releases "^2.0.19" 966 | update-browserslist-db "^1.1.1" 967 | 968 | call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: 969 | version "1.0.2" 970 | resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" 971 | integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== 972 | dependencies: 973 | es-errors "^1.3.0" 974 | function-bind "^1.1.2" 975 | 976 | call-bind@^1.0.8: 977 | version "1.0.8" 978 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" 979 | integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== 980 | dependencies: 981 | call-bind-apply-helpers "^1.0.0" 982 | es-define-property "^1.0.0" 983 | get-intrinsic "^1.2.4" 984 | set-function-length "^1.2.2" 985 | 986 | call-bound@^1.0.3: 987 | version "1.0.3" 988 | resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz" 989 | integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== 990 | dependencies: 991 | call-bind-apply-helpers "^1.0.1" 992 | get-intrinsic "^1.2.6" 993 | 994 | callsites@^3.0.0: 995 | version "3.1.0" 996 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 997 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 998 | 999 | caniuse-lite@^1.0.30001688: 1000 | version "1.0.30001700" 1001 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz" 1002 | integrity sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ== 1003 | 1004 | chalk@^4.1.2: 1005 | version "4.1.2" 1006 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 1007 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 1008 | dependencies: 1009 | ansi-styles "^4.1.0" 1010 | supports-color "^7.1.0" 1011 | 1012 | chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3: 1013 | version "1.0.4" 1014 | resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" 1015 | integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== 1016 | 1017 | clone@^2.1.1: 1018 | version "2.1.2" 1019 | resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" 1020 | integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== 1021 | 1022 | color-convert@^2.0.1: 1023 | version "2.0.1" 1024 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 1025 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1026 | dependencies: 1027 | color-name "~1.1.4" 1028 | 1029 | color-name@~1.1.4: 1030 | version "1.1.4" 1031 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 1032 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1033 | 1034 | commander@^12.1.0: 1035 | version "12.1.0" 1036 | resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" 1037 | integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== 1038 | 1039 | cosmiconfig@^9.0.0: 1040 | version "9.0.0" 1041 | resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" 1042 | integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== 1043 | dependencies: 1044 | env-paths "^2.2.1" 1045 | import-fresh "^3.3.0" 1046 | js-yaml "^4.1.0" 1047 | parse-json "^5.2.0" 1048 | 1049 | create-require@^1.1.0: 1050 | version "1.1.1" 1051 | resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" 1052 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 1053 | 1054 | define-data-property@^1.1.4: 1055 | version "1.1.4" 1056 | resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" 1057 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 1058 | dependencies: 1059 | es-define-property "^1.0.0" 1060 | es-errors "^1.3.0" 1061 | gopd "^1.0.1" 1062 | 1063 | detect-libc@^1.0.3: 1064 | version "1.0.3" 1065 | resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" 1066 | integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== 1067 | 1068 | detect-libc@^2.0.1: 1069 | version "2.0.3" 1070 | resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" 1071 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== 1072 | 1073 | diff@^4.0.1: 1074 | version "4.0.2" 1075 | resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" 1076 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 1077 | 1078 | dom-serializer@^1.0.1: 1079 | version "1.4.1" 1080 | resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" 1081 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 1082 | dependencies: 1083 | domelementtype "^2.0.1" 1084 | domhandler "^4.2.0" 1085 | entities "^2.0.0" 1086 | 1087 | dom-serializer@^2.0.0: 1088 | version "2.0.0" 1089 | resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" 1090 | integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== 1091 | dependencies: 1092 | domelementtype "^2.3.0" 1093 | domhandler "^5.0.2" 1094 | entities "^4.2.0" 1095 | 1096 | domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: 1097 | version "2.3.0" 1098 | resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" 1099 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 1100 | 1101 | domhandler@^4.2.0, domhandler@^4.2.2: 1102 | version "4.3.1" 1103 | resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" 1104 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 1105 | dependencies: 1106 | domelementtype "^2.2.0" 1107 | 1108 | domhandler@^5.0.2, domhandler@^5.0.3: 1109 | version "5.0.3" 1110 | resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" 1111 | integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== 1112 | dependencies: 1113 | domelementtype "^2.3.0" 1114 | 1115 | domutils@^2.8.0: 1116 | version "2.8.0" 1117 | resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" 1118 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 1119 | dependencies: 1120 | dom-serializer "^1.0.1" 1121 | domelementtype "^2.2.0" 1122 | domhandler "^4.2.0" 1123 | 1124 | domutils@^3.1.0: 1125 | version "3.2.2" 1126 | resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" 1127 | integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== 1128 | dependencies: 1129 | dom-serializer "^2.0.0" 1130 | domelementtype "^2.3.0" 1131 | domhandler "^5.0.3" 1132 | 1133 | dotenv-expand@^11.0.6: 1134 | version "11.0.7" 1135 | resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz" 1136 | integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA== 1137 | dependencies: 1138 | dotenv "^16.4.5" 1139 | 1140 | dotenv@^16.4.5: 1141 | version "16.4.7" 1142 | resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz" 1143 | integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== 1144 | 1145 | dunder-proto@^1.0.1: 1146 | version "1.0.1" 1147 | resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" 1148 | integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== 1149 | dependencies: 1150 | call-bind-apply-helpers "^1.0.1" 1151 | es-errors "^1.3.0" 1152 | gopd "^1.2.0" 1153 | 1154 | electron-to-chromium@^1.5.73: 1155 | version "1.5.103" 1156 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.103.tgz" 1157 | integrity sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA== 1158 | 1159 | entities@^2.0.0: 1160 | version "2.2.0" 1161 | resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" 1162 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 1163 | 1164 | entities@^3.0.1: 1165 | version "3.0.1" 1166 | resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz" 1167 | integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== 1168 | 1169 | entities@^4.2.0, entities@^4.5.0: 1170 | version "4.5.0" 1171 | resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" 1172 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 1173 | 1174 | env-paths@^2.2.1: 1175 | version "2.2.1" 1176 | resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" 1177 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 1178 | 1179 | error-ex@^1.3.1: 1180 | version "1.3.2" 1181 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 1182 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1183 | dependencies: 1184 | is-arrayish "^0.2.1" 1185 | 1186 | es-define-property@^1.0.0, es-define-property@^1.0.1: 1187 | version "1.0.1" 1188 | resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" 1189 | integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== 1190 | 1191 | es-errors@^1.3.0: 1192 | version "1.3.0" 1193 | resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" 1194 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 1195 | 1196 | es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: 1197 | version "1.1.1" 1198 | resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" 1199 | integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== 1200 | dependencies: 1201 | es-errors "^1.3.0" 1202 | 1203 | escalade@^3.2.0: 1204 | version "3.2.0" 1205 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" 1206 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 1207 | 1208 | fast-content-type-parse@^2.0.0: 1209 | version "2.0.1" 1210 | resolved "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz" 1211 | integrity sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q== 1212 | 1213 | fill-range@^7.1.1: 1214 | version "7.1.1" 1215 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" 1216 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 1217 | dependencies: 1218 | to-regex-range "^5.0.1" 1219 | 1220 | function-bind@^1.1.2: 1221 | version "1.1.2" 1222 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" 1223 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1224 | 1225 | get-intrinsic@^1.2.4, get-intrinsic@^1.2.6: 1226 | version "1.3.0" 1227 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" 1228 | integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== 1229 | dependencies: 1230 | call-bind-apply-helpers "^1.0.2" 1231 | es-define-property "^1.0.1" 1232 | es-errors "^1.3.0" 1233 | es-object-atoms "^1.1.1" 1234 | function-bind "^1.1.2" 1235 | get-proto "^1.0.1" 1236 | gopd "^1.2.0" 1237 | has-symbols "^1.1.0" 1238 | hasown "^2.0.2" 1239 | math-intrinsics "^1.1.0" 1240 | 1241 | get-port@^4.2.0: 1242 | version "4.2.0" 1243 | resolved "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz" 1244 | integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== 1245 | 1246 | get-proto@^1.0.1: 1247 | version "1.0.1" 1248 | resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" 1249 | integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== 1250 | dependencies: 1251 | dunder-proto "^1.0.1" 1252 | es-object-atoms "^1.0.0" 1253 | 1254 | globals@^13.2.0: 1255 | version "13.24.0" 1256 | resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" 1257 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== 1258 | dependencies: 1259 | type-fest "^0.20.2" 1260 | 1261 | gopd@^1.0.1, gopd@^1.2.0: 1262 | version "1.2.0" 1263 | resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" 1264 | integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== 1265 | 1266 | has-flag@^4.0.0: 1267 | version "4.0.0" 1268 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 1269 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1270 | 1271 | has-property-descriptors@^1.0.2: 1272 | version "1.0.2" 1273 | resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" 1274 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 1275 | dependencies: 1276 | es-define-property "^1.0.0" 1277 | 1278 | has-symbols@^1.1.0: 1279 | version "1.1.0" 1280 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" 1281 | integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== 1282 | 1283 | hasown@^2.0.2: 1284 | version "2.0.2" 1285 | resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" 1286 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1287 | dependencies: 1288 | function-bind "^1.1.2" 1289 | 1290 | htmlnano@^2.0.0: 1291 | version "2.1.1" 1292 | resolved "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz" 1293 | integrity sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw== 1294 | dependencies: 1295 | cosmiconfig "^9.0.0" 1296 | posthtml "^0.16.5" 1297 | timsort "^0.3.0" 1298 | 1299 | htmlparser2@^7.1.1: 1300 | version "7.2.0" 1301 | resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz" 1302 | integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== 1303 | dependencies: 1304 | domelementtype "^2.0.1" 1305 | domhandler "^4.2.2" 1306 | domutils "^2.8.0" 1307 | entities "^3.0.1" 1308 | 1309 | htmlparser2@^9.0.0: 1310 | version "9.1.0" 1311 | resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz" 1312 | integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== 1313 | dependencies: 1314 | domelementtype "^2.3.0" 1315 | domhandler "^5.0.3" 1316 | domutils "^3.1.0" 1317 | entities "^4.5.0" 1318 | 1319 | import-fresh@^3.3.0: 1320 | version "3.3.1" 1321 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" 1322 | integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== 1323 | dependencies: 1324 | parent-module "^1.0.0" 1325 | resolve-from "^4.0.0" 1326 | 1327 | is-arrayish@^0.2.1: 1328 | version "0.2.1" 1329 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 1330 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1331 | 1332 | is-extglob@^2.1.1: 1333 | version "2.1.1" 1334 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 1335 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1336 | 1337 | is-glob@^4.0.3: 1338 | version "4.0.3" 1339 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 1340 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1341 | dependencies: 1342 | is-extglob "^2.1.1" 1343 | 1344 | is-json@^2.0.1: 1345 | version "2.0.1" 1346 | resolved "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz" 1347 | integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA== 1348 | 1349 | is-number@^7.0.0: 1350 | version "7.0.0" 1351 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 1352 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1353 | 1354 | isarray@^2.0.5: 1355 | version "2.0.5" 1356 | resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" 1357 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== 1358 | 1359 | js-tokens@^4.0.0: 1360 | version "4.0.0" 1361 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 1362 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1363 | 1364 | js-yaml@^4.1.0: 1365 | version "4.1.0" 1366 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 1367 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1368 | dependencies: 1369 | argparse "^2.0.1" 1370 | 1371 | json-parse-even-better-errors@^2.3.0: 1372 | version "2.3.1" 1373 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 1374 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1375 | 1376 | json-stable-stringify@^1: 1377 | version "1.2.1" 1378 | resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz" 1379 | integrity sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA== 1380 | dependencies: 1381 | call-bind "^1.0.8" 1382 | call-bound "^1.0.3" 1383 | isarray "^2.0.5" 1384 | jsonify "^0.0.1" 1385 | object-keys "^1.1.1" 1386 | 1387 | json5@^2.2.0, json5@^2.2.1: 1388 | version "2.2.3" 1389 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" 1390 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1391 | 1392 | jsonify@^0.0.1: 1393 | version "0.0.1" 1394 | resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" 1395 | integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== 1396 | 1397 | lightningcss-linux-x64-gnu@1.29.1: 1398 | version "1.29.1" 1399 | resolved "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz" 1400 | integrity sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw== 1401 | 1402 | lightningcss@^1.22.1: 1403 | version "1.29.1" 1404 | resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz" 1405 | integrity sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q== 1406 | dependencies: 1407 | detect-libc "^1.0.3" 1408 | optionalDependencies: 1409 | lightningcss-darwin-arm64 "1.29.1" 1410 | lightningcss-darwin-x64 "1.29.1" 1411 | lightningcss-freebsd-x64 "1.29.1" 1412 | lightningcss-linux-arm-gnueabihf "1.29.1" 1413 | lightningcss-linux-arm64-gnu "1.29.1" 1414 | lightningcss-linux-arm64-musl "1.29.1" 1415 | lightningcss-linux-x64-gnu "1.29.1" 1416 | lightningcss-linux-x64-musl "1.29.1" 1417 | lightningcss-win32-arm64-msvc "1.29.1" 1418 | lightningcss-win32-x64-msvc "1.29.1" 1419 | 1420 | lines-and-columns@^1.1.6: 1421 | version "1.2.4" 1422 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" 1423 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1424 | 1425 | lmdb@2.8.5: 1426 | version "2.8.5" 1427 | resolved "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz" 1428 | integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ== 1429 | dependencies: 1430 | msgpackr "^1.9.5" 1431 | node-addon-api "^6.1.0" 1432 | node-gyp-build-optional-packages "5.1.1" 1433 | ordered-binary "^1.4.1" 1434 | weak-lru-cache "^1.2.2" 1435 | optionalDependencies: 1436 | "@lmdb/lmdb-darwin-arm64" "2.8.5" 1437 | "@lmdb/lmdb-darwin-x64" "2.8.5" 1438 | "@lmdb/lmdb-linux-arm" "2.8.5" 1439 | "@lmdb/lmdb-linux-arm64" "2.8.5" 1440 | "@lmdb/lmdb-linux-x64" "2.8.5" 1441 | "@lmdb/lmdb-win32-x64" "2.8.5" 1442 | 1443 | lodash@^4: 1444 | version "4.17.21" 1445 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 1446 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1447 | 1448 | make-error@^1.1.1: 1449 | version "1.3.6" 1450 | resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" 1451 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1452 | 1453 | math-intrinsics@^1.1.0: 1454 | version "1.1.0" 1455 | resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" 1456 | integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== 1457 | 1458 | micromatch@^4.0.5: 1459 | version "4.0.8" 1460 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" 1461 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 1462 | dependencies: 1463 | braces "^3.0.3" 1464 | picomatch "^2.3.1" 1465 | 1466 | msgpackr-extract@^3.0.2: 1467 | version "3.0.3" 1468 | resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz" 1469 | integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA== 1470 | dependencies: 1471 | node-gyp-build-optional-packages "5.2.2" 1472 | optionalDependencies: 1473 | "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3" 1474 | "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3" 1475 | "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3" 1476 | "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3" 1477 | "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3" 1478 | "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3" 1479 | 1480 | msgpackr@^1.9.5, msgpackr@^1.9.9: 1481 | version "1.11.2" 1482 | resolved "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz" 1483 | integrity sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g== 1484 | optionalDependencies: 1485 | msgpackr-extract "^3.0.2" 1486 | 1487 | node-addon-api@^6.1.0: 1488 | version "6.1.0" 1489 | resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz" 1490 | integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== 1491 | 1492 | node-addon-api@^7.0.0: 1493 | version "7.1.1" 1494 | resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" 1495 | integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== 1496 | 1497 | node-gyp-build-optional-packages@5.1.1: 1498 | version "5.1.1" 1499 | resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz" 1500 | integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== 1501 | dependencies: 1502 | detect-libc "^2.0.1" 1503 | 1504 | node-gyp-build-optional-packages@5.2.2: 1505 | version "5.2.2" 1506 | resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz" 1507 | integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw== 1508 | dependencies: 1509 | detect-libc "^2.0.1" 1510 | 1511 | node-releases@^2.0.19: 1512 | version "2.0.19" 1513 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" 1514 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== 1515 | 1516 | nullthrows@^1.1.1: 1517 | version "1.1.1" 1518 | resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" 1519 | integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== 1520 | 1521 | object-keys@^1.1.1: 1522 | version "1.1.1" 1523 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 1524 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1525 | 1526 | ordered-binary@^1.4.1: 1527 | version "1.5.3" 1528 | resolved "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz" 1529 | integrity sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA== 1530 | 1531 | parcel@^2: 1532 | version "2.13.3" 1533 | resolved "https://registry.npmjs.org/parcel/-/parcel-2.13.3.tgz" 1534 | integrity sha512-8GrC8C7J8mwRpAlk7EJ7lwdFTbCN+dcXH2gy5AsEs9pLfzo9wvxOTx6W0fzSlvCOvZOita+8GdfYlGfEt0tRgA== 1535 | dependencies: 1536 | "@parcel/config-default" "2.13.3" 1537 | "@parcel/core" "2.13.3" 1538 | "@parcel/diagnostic" "2.13.3" 1539 | "@parcel/events" "2.13.3" 1540 | "@parcel/feature-flags" "2.13.3" 1541 | "@parcel/fs" "2.13.3" 1542 | "@parcel/logger" "2.13.3" 1543 | "@parcel/package-manager" "2.13.3" 1544 | "@parcel/reporter-cli" "2.13.3" 1545 | "@parcel/reporter-dev-server" "2.13.3" 1546 | "@parcel/reporter-tracer" "2.13.3" 1547 | "@parcel/utils" "2.13.3" 1548 | chalk "^4.1.2" 1549 | commander "^12.1.0" 1550 | get-port "^4.2.0" 1551 | 1552 | parent-module@^1.0.0: 1553 | version "1.0.1" 1554 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 1555 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1556 | dependencies: 1557 | callsites "^3.0.0" 1558 | 1559 | parse-json@^5.2.0: 1560 | version "5.2.0" 1561 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" 1562 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1563 | dependencies: 1564 | "@babel/code-frame" "^7.0.0" 1565 | error-ex "^1.3.1" 1566 | json-parse-even-better-errors "^2.3.0" 1567 | lines-and-columns "^1.1.6" 1568 | 1569 | picocolors@^1.0.0, picocolors@^1.1.1: 1570 | version "1.1.1" 1571 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" 1572 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 1573 | 1574 | picomatch@^2.3.1: 1575 | version "2.3.1" 1576 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 1577 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1578 | 1579 | postcss-value-parser@^4.2.0: 1580 | version "4.2.0" 1581 | resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" 1582 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1583 | 1584 | posthtml-parser@^0.11.0: 1585 | version "0.11.0" 1586 | resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz" 1587 | integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== 1588 | dependencies: 1589 | htmlparser2 "^7.1.1" 1590 | 1591 | posthtml-parser@^0.12.1: 1592 | version "0.12.1" 1593 | resolved "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz" 1594 | integrity sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA== 1595 | dependencies: 1596 | htmlparser2 "^9.0.0" 1597 | 1598 | posthtml-render@^3.0.0: 1599 | version "3.0.0" 1600 | resolved "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz" 1601 | integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== 1602 | dependencies: 1603 | is-json "^2.0.1" 1604 | 1605 | posthtml@^0.16.4, posthtml@^0.16.5: 1606 | version "0.16.6" 1607 | resolved "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz" 1608 | integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== 1609 | dependencies: 1610 | posthtml-parser "^0.11.0" 1611 | posthtml-render "^3.0.0" 1612 | 1613 | react-error-overlay@6.0.9: 1614 | version "6.0.9" 1615 | resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz" 1616 | integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== 1617 | 1618 | "react-refresh@>=0.9 <=0.14": 1619 | version "0.14.2" 1620 | resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" 1621 | integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== 1622 | 1623 | regenerator-runtime@^0.14.1: 1624 | version "0.14.1" 1625 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" 1626 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1627 | 1628 | resolve-from@^4.0.0: 1629 | version "4.0.0" 1630 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 1631 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1632 | 1633 | safe-buffer@^5.0.1: 1634 | version "5.2.1" 1635 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1636 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1637 | 1638 | semver@^6.1.0: 1639 | version "6.3.1" 1640 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" 1641 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1642 | 1643 | semver@^7.5.2: 1644 | version "7.7.1" 1645 | resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" 1646 | integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== 1647 | 1648 | set-function-length@^1.2.2: 1649 | version "1.2.2" 1650 | resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" 1651 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 1652 | dependencies: 1653 | define-data-property "^1.1.4" 1654 | es-errors "^1.3.0" 1655 | function-bind "^1.1.2" 1656 | get-intrinsic "^1.2.4" 1657 | gopd "^1.0.1" 1658 | has-property-descriptors "^1.0.2" 1659 | 1660 | srcset@4: 1661 | version "4.0.0" 1662 | resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" 1663 | integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== 1664 | 1665 | srcset@5.0.1: 1666 | version "5.0.1" 1667 | resolved "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz" 1668 | integrity sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw== 1669 | 1670 | supports-color@^7.1.0: 1671 | version "7.2.0" 1672 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1673 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1674 | dependencies: 1675 | has-flag "^4.0.0" 1676 | 1677 | term-size@^2.2.1: 1678 | version "2.2.1" 1679 | resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" 1680 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== 1681 | 1682 | timsort@^0.3.0: 1683 | version "0.3.0" 1684 | resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" 1685 | integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== 1686 | 1687 | to-regex-range@^5.0.1: 1688 | version "5.0.1" 1689 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 1690 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1691 | dependencies: 1692 | is-number "^7.0.0" 1693 | 1694 | ts-node@^10: 1695 | version "10.9.2" 1696 | resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" 1697 | integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== 1698 | dependencies: 1699 | "@cspotcode/source-map-support" "^0.8.0" 1700 | "@tsconfig/node10" "^1.0.7" 1701 | "@tsconfig/node12" "^1.0.7" 1702 | "@tsconfig/node14" "^1.0.0" 1703 | "@tsconfig/node16" "^1.0.2" 1704 | acorn "^8.4.1" 1705 | acorn-walk "^8.1.1" 1706 | arg "^4.1.0" 1707 | create-require "^1.1.0" 1708 | diff "^4.0.1" 1709 | make-error "^1.1.1" 1710 | v8-compile-cache-lib "^3.0.1" 1711 | yn "3.1.1" 1712 | 1713 | tslib@^2.8.0: 1714 | version "2.8.1" 1715 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" 1716 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== 1717 | 1718 | tunnel@^0.0.6: 1719 | version "0.0.6" 1720 | resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" 1721 | integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== 1722 | 1723 | type-fest@^0.20.2: 1724 | version "0.20.2" 1725 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 1726 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1727 | 1728 | typescript@^5, typescript@>=2.7, typescript@>=4.9.5: 1729 | version "5.7.3" 1730 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz" 1731 | integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== 1732 | 1733 | undici-types@~6.19.2: 1734 | version "6.19.8" 1735 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" 1736 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== 1737 | 1738 | undici@^5.25.4: 1739 | version "5.28.5" 1740 | resolved "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz" 1741 | integrity sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA== 1742 | dependencies: 1743 | "@fastify/busboy" "^2.0.0" 1744 | 1745 | universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: 1746 | version "7.0.2" 1747 | resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz" 1748 | integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q== 1749 | 1750 | update-browserslist-db@^1.1.1: 1751 | version "1.1.2" 1752 | resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz" 1753 | integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== 1754 | dependencies: 1755 | escalade "^3.2.0" 1756 | picocolors "^1.1.1" 1757 | 1758 | utility-types@^3.10.0: 1759 | version "3.11.0" 1760 | resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz" 1761 | integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== 1762 | 1763 | v8-compile-cache-lib@^3.0.1: 1764 | version "3.0.1" 1765 | resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" 1766 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 1767 | 1768 | weak-lru-cache@^1.2.2: 1769 | version "1.2.2" 1770 | resolved "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz" 1771 | integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== 1772 | 1773 | yn@3.1.1: 1774 | version "3.1.1" 1775 | resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" 1776 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1777 | --------------------------------------------------------------------------------