├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug-report.md │ └── feature-request.md └── workflows │ └── build.yml ├── .gitignore ├── .prettierrc ├── .yarnrc.yml ├── LICENSE ├── README.md ├── assets ├── tray-icon.ico └── tray-icon.png ├── entitlements.mac.plist ├── package.json ├── public ├── index.html ├── index.js ├── settings.html ├── settings.js └── styles.css ├── scripts └── notarize.js ├── src ├── defaults.ts ├── ipcHandlers.ts ├── main.ts ├── mainWindow.ts ├── notification.ts ├── preload.ts ├── satellite.ts ├── satelliteFunctions.ts ├── settings.ts ├── tray.ts └── types.d.ts ├── tsconfig.json └── yarn.lock /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: ['josephdadams'] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: ['https://www.paypal.me/adamsfamilyadopts'] 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | 28 | - OS: [e.g. MacOS, Windows] 29 | - Version [e.g. 22] 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: 'Feature Request: ' 5 | labels: enhancement 6 | assignees: josephdadams 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered. 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*.*.*' # Trigger on version tags like v1.0.0 7 | 8 | jobs: 9 | build_desktop: 10 | name: Build Desktop on ${{ matrix.os }} 11 | runs-on: ${{ matrix.os }} 12 | strategy: 13 | matrix: 14 | os: [windows-latest, macos-latest, ubuntu-latest] 15 | steps: 16 | - uses: actions/checkout@v3 17 | - name: Setup Node.js 18 | uses: actions/setup-node@v3 19 | with: 20 | node-version: 20 21 | 22 | - name: Install dependencies 23 | run: yarn install --production 24 | 25 | # macOS-specific steps for code signing and notarization 26 | - name: Import Apple Developer Certificate (macOS only) 27 | if: matrix.os == 'macos-latest' 28 | env: 29 | DEVELOPER_ID_CERT: ${{ secrets.DEVELOPER_ID_CERT }} 30 | DEVELOPER_ID_CERT_PASSWORD: ${{ secrets.DEVELOPER_ID_CERT_PASSWORD }} 31 | run: | 32 | echo "$DEVELOPER_ID_CERT" | base64 --decode > developer_id_certificate.p12 33 | security create-keychain -p "" build.keychain 34 | security default-keychain -s build.keychain 35 | security unlock-keychain -p "" build.keychain 36 | security import developer_id_certificate.p12 -k build.keychain -P "$DEVELOPER_ID_CERT_PASSWORD" -T /usr/bin/codesign 37 | security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "" build.keychain 38 | 39 | - name: List Certificates in Keychain (macOS only) 40 | if: matrix.os == 'macos-latest' 41 | run: | 42 | security find-identity -v -p codesigning 43 | 44 | - name: Build for Desktop 45 | uses: samuelmeuli/action-electron-builder@v1.6.0 46 | with: 47 | github_token: ${{ secrets.GITHUB_TOKEN }} 48 | release: false # Prevent auto-release in electron-builder 49 | env: 50 | DEBUG: electron-notarize* 51 | APPLE_ID: ${{ secrets.APPLE_ID }} 52 | APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} 53 | APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} 54 | 55 | - name: Rename and Upload Artifacts 56 | run: | 57 | VERSION=${{ github.ref_name }} 58 | mkdir release 59 | 60 | if [[ "$RUNNER_OS" == "Linux" ]]; then 61 | mv dist/*.AppImage "release/screendeck-linux-x64-$VERSION.AppImage" 62 | elif [[ "$RUNNER_OS" == "Windows" ]]; then 63 | mv dist/*.exe "release/screendeck-windows-x64-$VERSION.exe" 64 | elif [[ "$RUNNER_OS" == "macOS" ]]; then 65 | mv dist/*-x64.dmg "release/screendeck-mac-intel-$VERSION.dmg" || true 66 | mv dist/*-arm64.dmg "release/screendeck-mac-silicon-$VERSION.dmg" || true 67 | mv dist/*-universal.dmg "release/screendeck-mac-universal-$VERSION.dmg" || true 68 | fi 69 | 70 | - name: Upload Desktop Artifacts 71 | uses: actions/upload-artifact@v3 72 | with: 73 | name: screendeck-desktop-${{ github.ref_name }} 74 | path: release/* 75 | 76 | build_rpi: 77 | name: Build for Raspberry Pi (ARM64) 78 | runs-on: ubuntu-latest 79 | steps: 80 | - uses: actions/checkout@v3 81 | 82 | - name: Set up QEMU 83 | uses: docker/setup-qemu-action@v2 84 | 85 | - name: Set up Node.js 86 | uses: actions/setup-node@v3 87 | with: 88 | node-version: 20 89 | 90 | - name: Install dependencies 91 | run: yarn install --production 92 | 93 | - name: Build Electron App for ARM64 94 | run: | 95 | yarn run electron-builder --linux --arm64 96 | 97 | - name: Rename ARM64 Artifact 98 | run: | 99 | VERSION=${{ github.ref_name }} 100 | mkdir release 101 | mv dist/*.AppImage "release/screendeck-rpi-arm64-$VERSION.AppImage" 102 | 103 | - name: Upload ARM64 Artifact 104 | uses: actions/upload-artifact@v3 105 | with: 106 | name: screendeck-rpi-${{ github.ref_name }} 107 | path: release/* 108 | 109 | release: 110 | name: Create GitHub Release 111 | runs-on: ubuntu-latest 112 | needs: [build_desktop, build_rpi] 113 | steps: 114 | - name: Download All Artifacts 115 | uses: actions/download-artifact@v3 116 | with: 117 | path: release 118 | 119 | - name: Create GitHub Release 120 | uses: softprops/action-gh-release@v1 121 | with: 122 | tag_name: ${{ github.ref_name }} 123 | name: "ScreenDeck v${{ github.ref_name }}" 124 | body: "Official release of ScreenDeck v${{ github.ref_name}}.\n\nDownload the appropriate version for your OS below." 125 | files: release/**/* 126 | draft: true 127 | env: 128 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Node.js dependencies 2 | node_modules/ 3 | package-lock.json 4 | 5 | # MacOS files 6 | .DS_Store 7 | .AppleDouble 8 | .LSOverride 9 | 10 | # Thumbnails 11 | ._* 12 | 13 | # Files that might appear in the root of a volume 14 | .DocumentRevisions-V100 15 | .fseventsd 16 | .Spotlight-V100 17 | .TemporaryItems 18 | .Trashes 19 | .VolumeIcon.icns 20 | .com.apple.timemachine.donotpresent 21 | 22 | # Directories potentially created on remote AFP share 23 | .AppleDB 24 | .AppleDesktop 25 | Network Trash Folder 26 | Temporary Items 27 | .apdisk 28 | 29 | # Logs 30 | logs 31 | *.log 32 | npm-debug.log* 33 | yarn-debug.log* 34 | yarn-error.log* 35 | 36 | # Compiled output 37 | dist/ 38 | build/ 39 | 40 | # Runtime data 41 | pids 42 | *.pid 43 | *.seed 44 | *.pid.lock 45 | 46 | # Coverage directory used by tools like istanbul 47 | coverage/ 48 | 49 | # Compiled TypeScript 50 | *.tsbuildinfo 51 | 52 | # Electron-specific files 53 | *.asar 54 | out/ 55 | 56 | # IDE/Editor settings 57 | .idea/ 58 | .vscode/ 59 | *.sublime-workspace 60 | *.sublime-project 61 | 62 | # Environment variables 63 | .env 64 | .env.local 65 | .env.development.local 66 | .env.test.local 67 | .env.production.local 68 | 69 | # Miscellaneous 70 | *.swp 71 | *.swo 72 | *~ 73 | *.tmp 74 | *.temp 75 | 76 | .yarn/ 77 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 4, 4 | "semi": false, 5 | "singleQuote": true 6 | } 7 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Joseph Adams 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ScreenDeck 2 | 3 | Logo 4 | 5 | ScreenDeck is a virtual on-screen stream deck for Bitfocus Companion, built with Electron and TypeScript. This application allows you to create a customizable keypad interface that can send button presses to Companion, enabling you to control various applications, and perform automated tasks, all from an easily accessible on-screen interface. 6 | 7 | [![Watch the demo on YouTube](https://img.youtube.com/vi/QIi7PxsPd34/0.jpg)](https://youtu.be/QIi7PxsPd34) 8 | 9 | ## Features 10 | 11 | - **Customizable Keypad Layout**: Configure the total number of buttons and number per row. 12 | - **Flexible Connectivity**: Easily set the IP and port for connecting to Bitfocus Companion through the settings menu. 13 | - **Responsive UI**: Designed with a clean, modern interface that adjusts to your screen setup. 14 | 15 | ## How to Use ScreenDeck 16 | 17 | 1. **Download and Install**: Download the latest release here: https://github.com/josephdadams/screendeck/releases 18 | 19 | 1. **Run from Source**: Clone the repository and install dependencies using Yarn: 20 | 21 | ```bash 22 | git clone https://github.com/josephdadams/screendeck 23 | cd screendeck 24 | yarn 25 | yarn start 26 | ``` 27 | 28 | Configure Your Settings: Open the settings window to set up the Companion IP, port, and keypad layout. 29 | Connect to Bitfocus Companion: Once configured, ScreenDeck will connect to your Companion setup and allow you to control your configured buttons. 30 | Assign Commands: Use Bitfocus Companion to map specific commands or actions to each button on the ScreenDeck interface. 31 | 32 | ## Contributing 33 | 34 | Contributions are welcome! To contribute to the development of ScreenDeck: 35 | 36 | 1. Fork the Repository: Create a fork of the main repository to your GitHub account. 37 | 1. Create a Branch: Create a new branch for your feature or bug fix: 38 | 39 | ```bash 40 | git checkout -b feature-name 41 | ``` 42 | 43 | 1. Make Changes: Implement your changes and test them thoroughly. 44 | 1. Submit a Pull Request: Once your changes are ready, submit a pull request to the main repository with a clear description of your changes. 45 | 46 | ## Development 47 | 48 | To develop ScreenDeck, you will need to have Node.js and Yarn installed. Follow these steps to set up your development environment. 49 | 50 | 1. Clone the Repository: 51 | 52 | ```bash 53 | git clone https://github.com/josephdadams/screendeck 54 | cd ScreenDeck 55 | ``` 56 | 57 | 1. Install Dependencies: 58 | 59 | ```bash 60 | yarn 61 | ``` 62 | 63 | 1. Run the Application: 64 | 65 | ```bash 66 | yarn start 67 | ``` 68 | 69 | 1. Build the Application: 70 | 71 | ```bash 72 | yarn build 73 | ``` 74 | 75 | 1. Package the Application using electron-builder: 76 | 77 | ``` 78 | yarn dist 79 | ``` 80 | 81 | ## License 82 | 83 | ScreenDeck is an open-source project licensed under the MIT License. Feel free to use, modify, and distribute this software as per the terms of the license. 84 | Contact 85 | 86 | For any questions or support, feel free to reach out through GitHub Issues. 87 | -------------------------------------------------------------------------------- /assets/tray-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josephdadams/screendeck/9ac228a29463c597087294403ae43ecb3818f425/assets/tray-icon.ico -------------------------------------------------------------------------------- /assets/tray-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josephdadams/screendeck/9ac228a29463c597087294403ae43ecb3818f425/assets/tray-icon.png -------------------------------------------------------------------------------- /entitlements.mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-dyld-environment-variables 6 | 7 | com.apple.security.cs.disable-library-validation 8 | 9 | com.apple.security.cs.allow-jit 10 | 11 | com.apple.security.cs.allow-unsigned-executable-memory 12 | 13 | com.apple.security.cs.debugger 14 | 15 | com.apple.security.network.client 16 | 17 | com.apple.security.network.server 18 | 19 | com.apple.security.files.user-selected.read-only 20 | 21 | com.apple.security.inherit 22 | 23 | com.apple.security.automation.apple-events 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "screendeck", 3 | "version": "1.2.0", 4 | "author": "Joseph Adams ", 5 | "description": "ScreenDeck is a virtual on-screen stream deck for Bitfocus Companion, built with Electron and TypeScript. This application allows you to create a customizable keypad interface that can send button presses to Companion, enabling you to control various applications, and perform automated tasks, all from an easily accessible on-screen interface.", 6 | "main": "dist/main.js", 7 | "scripts": { 8 | "start": "yarn build && electron .", 9 | "build": "tsc", 10 | "dev": "concurrently \"tsc -w\" \"wait-on dist/main.js && electron .\"", 11 | "format": "prettier -w .", 12 | "lint:raw": "eslint --ext .ts --ext .js --ignore-pattern dist --ignore-pattern pkg", 13 | "lint": "yarn lint:raw ." 14 | }, 15 | "build": { 16 | "appId": "com.josephadams.screendeck", 17 | "productName": "screendeck", 18 | "files": [ 19 | "dist/**/*", 20 | "public/**/*", 21 | "assets/**/*" 22 | ], 23 | "mac": { 24 | "target": [ 25 | { 26 | "target": "dmg", 27 | "arch": [ 28 | "x64", 29 | "arm64" 30 | ] 31 | } 32 | ], 33 | "category": "public.app-category.utilities", 34 | "icon": "assets/tray-icon.png", 35 | "identity": "Joseph Adams (R2PY2DC3A4)", 36 | "extendInfo": { 37 | "NSApplicationSupportsSecureRestorableState": true, 38 | "electronTeamId": "R2PY2DC3A4" 39 | }, 40 | "hardenedRuntime": true, 41 | "gatekeeperAssess": true, 42 | "entitlements": "entitlements.mac.plist", 43 | "entitlementsInherit": "entitlements.mac.plist" 44 | }, 45 | "win": { 46 | "target": "nsis", 47 | "icon": "assets/tray-icon.ico" 48 | }, 49 | "linux": { 50 | "target": [ 51 | { 52 | "target": "AppImage", 53 | "arch": ["x64", "arm64"] 54 | }, 55 | { 56 | "target": "deb", 57 | "arch": ["x64", "arm64"] 58 | } 59 | ], 60 | "icon": "assets/tray-icon.png" 61 | }, 62 | "generateUpdatesFilesForAllChannels": false 63 | }, 64 | "dependencies": { 65 | "electron-store": "^8.0.0", 66 | "short-uuid": "^5.2.0" 67 | }, 68 | "devDependencies": { 69 | "@electron/notarize": "^2.5.0", 70 | "@types/node": "^18.0.0", 71 | "concurrently": "^8.0.0", 72 | "electron": "^33.2.1", 73 | "electron-builder": "^25.1.8", 74 | "prettier": "^3.3.3", 75 | "ts-node": "^10.0.0", 76 | "typescript": "^5.0.0", 77 | "wait-on": "^7.0.0" 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | ScreenDeck 13 | 14 | 15 |
16 |
17 | 18 |
19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /public/index.js: -------------------------------------------------------------------------------- 1 | // Access the settings from Electron API 2 | window.electronAPI.getSettings().then((settings) => { 3 | const { keysTotal, keysPerRow } = settings 4 | const keypad = document.getElementById('keypad') 5 | 6 | // Set the number of columns based on keysPerRow 7 | keypad.style.gridTemplateColumns = `repeat(${keysPerRow}, 1fr)` 8 | 9 | // Create the keys 10 | const keyElements = [] 11 | for (let i = 1; i <= keysTotal; i++) { 12 | const key = document.createElement('div') 13 | key.className = 'key' 14 | const textSpan = document.createElement('span') 15 | textSpan.textContent = '' // Set the key text to empty 16 | key.appendChild(textSpan) 17 | 18 | // Handle key down (mouse or touch start) 19 | key.addEventListener('mousedown', () => sendKeyDown(i)) 20 | key.addEventListener('touchstart', () => sendKeyDown(i), { 21 | passive: true, 22 | }) 23 | 24 | // Handle key up (mouse or touch end) 25 | key.addEventListener('mouseup', () => sendKeyUp(i)) 26 | //key.addEventListener('mouseleave', () => sendKeyUp(i)); // Handle case when mouse leaves the key 27 | key.addEventListener('touchend', () => sendKeyUp(i), { passive: true }) 28 | 29 | keypad.appendChild(key) 30 | keyElements.push(key) 31 | } 32 | 33 | // Key queue to handle multiple key updates 34 | let keyQueue = [] 35 | 36 | function addToKeyQueue(keyObj) { 37 | keyQueue.push(keyObj) 38 | //implement a queue so that we can process multiple key updates one at a time 39 | if (keyQueue.length === 1) { 40 | processKeyQueue() 41 | } 42 | } 43 | 44 | function processKeyQueue() { 45 | console.log('Processing key queue. Length:', keyQueue.length) 46 | if (keyQueue.length > 0) { 47 | const keyObj = keyQueue.shift() 48 | processKey(keyObj) 49 | } 50 | } 51 | 52 | function processKey(keyObj) { 53 | const { key, bitmap, color, textColor, text, fontSize } = keyObj 54 | const keyIndex = key 55 | 56 | // Check if the key index is valid 57 | if (keyIndex >= 0 && keyIndex < keysTotal) { 58 | const keyElement = keyElements[keyIndex] 59 | const textSpan = keyElement.querySelector('span') 60 | 61 | // Update the key image (bitmap) 62 | if (bitmap) { 63 | renderBitmap(keyElement, bitmap) 64 | } else { 65 | // Update the key background color 66 | if (color) { 67 | keyElement.style.backgroundColor = color 68 | } 69 | 70 | // Decode base64 text and update the key text 71 | if (text) { 72 | const decodedText = atob(text) // Decode the base64-encoded text 73 | textSpan.textContent = decodedText 74 | } 75 | 76 | // Update the text color 77 | if (textColor) { 78 | textSpan.style.color = textColor 79 | } 80 | 81 | // Update the font size 82 | if (fontSize) { 83 | textSpan.style.fontSize = fontSize 84 | } 85 | } 86 | } 87 | 88 | processKeyQueue() 89 | } 90 | 91 | // Close button event listener 92 | document.getElementById('closeButton').addEventListener('click', () => { 93 | window.electronAPI.invoke('closeKeypad') 94 | }) 95 | 96 | // Function to simulate button press based on the button index 97 | function pressButton(buttonIndex) { 98 | const button = document.querySelector( 99 | `.key[data-index="${buttonIndex}"]` 100 | ) 101 | if (button) { 102 | // Trigger the button action 103 | button.click() 104 | } 105 | } 106 | 107 | // Listen for keyEvent from the main process 108 | window.electronAPI.onKeyEvent((event, keyObj) => { 109 | addToKeyQueue(keyObj) 110 | }) 111 | 112 | // Listen for brightness adjustments 113 | window.electronAPI.onBrightness((event, brightness) => { 114 | adjustBrightness(brightness) 115 | }) 116 | }) 117 | 118 | // Function to adjust the brightness of all keys 119 | function adjustBrightness(brightness) { 120 | // Adjust the opacity of the entire keypad 121 | const keypad = document.getElementById('keypad') 122 | keypad.style.opacity = brightness / 100 123 | } 124 | 125 | // Function to render 8-bit RGB bitmap data on a canvas 126 | function renderBitmap(container, bitmap) { 127 | requestAnimationFrame(() => { 128 | const canvas = 129 | container.querySelector('canvas') || 130 | document.createElement('canvas') 131 | const ctx = canvas.getContext('2d') 132 | 133 | // Decode the base64 bitmap to binary data 134 | const binary = atob(bitmap) 135 | const bytes = new Uint8Array(binary.length) 136 | 137 | for (let i = 0; i < binary.length; i++) { 138 | bytes[i] = binary.charCodeAt(i) 139 | } 140 | 141 | // Assuming the bitmap is a square; adjust if your data has a different width/height 142 | const size = Math.sqrt(bytes.length / 3) // Calculate the size assuming it's a square (3 bytes per pixel) 143 | 144 | canvas.width = size 145 | canvas.height = size 146 | 147 | const imageData = ctx.createImageData(size, size) 148 | 149 | // Fill the ImageData object with the RGB pixel data 150 | for (let i = 0, j = 0; i < bytes.length; i += 3, j += 4) { 151 | imageData.data[j] = bytes[i] // Red 152 | imageData.data[j + 1] = bytes[i + 1] // Green 153 | imageData.data[j + 2] = bytes[i + 2] // Blue 154 | imageData.data[j + 3] = 255 // Alpha (fully opaque) 155 | } 156 | 157 | // Draw the image on the canvas 158 | ctx.putImageData(imageData, 0, 0) 159 | 160 | // Append the canvas to the container (key element) 161 | if (!container.contains(canvas)) { 162 | container.innerHTML = '' // Clear existing content 163 | container.appendChild(canvas) 164 | } 165 | }) 166 | } 167 | 168 | // Function to send keyDown event 169 | function sendKeyDown(key) { 170 | window.electronAPI.invoke('keyDown', { key }) 171 | } 172 | 173 | // Function to send keyUp event 174 | function sendKeyUp(key) { 175 | window.electronAPI.invoke('keyUp', { key }) 176 | } 177 | -------------------------------------------------------------------------------- /public/settings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | ScreenDeck Settings 12 | 39 | 40 | 41 |

ScreenDeck Settings

42 |
43 | 44 | 50 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /public/settings.js: -------------------------------------------------------------------------------- 1 | // Load current settings into the form 2 | window.electronAPI.getSettings().then((settings) => { 3 | document.getElementById('companionIP').value = 4 | settings.companionIP || '127.0.0.1' 5 | document.getElementById('companionPort').value = 6 | settings.companionPort || 16622 7 | document.getElementById('keysTotal').value = settings.keysTotal || 6 8 | document.getElementById('keysPerRow').value = settings.keysPerRow || 1 9 | document.getElementById('bitmapSize').value = settings.bitmapSize || 72 10 | document.getElementById('alwaysOnTop').checked = 11 | settings.alwaysOnTop || false 12 | document.getElementById('movable').checked = settings.movable || false 13 | }) 14 | 15 | // Handle form submission and save the updated settings 16 | document.getElementById('settingsForm').addEventListener('submit', (event) => { 17 | event.preventDefault() 18 | 19 | const newSettings = { 20 | companionIP: document.getElementById('companionIP').value, 21 | companionPort: parseInt( 22 | document.getElementById('companionPort').value, 23 | 10 24 | ), 25 | keysTotal: parseInt(document.getElementById('keysTotal').value, 10), 26 | keysPerRow: parseInt(document.getElementById('keysPerRow').value, 10), 27 | bitmapSize: parseInt(document.getElementById('bitmapSize').value, 10), 28 | alwaysOnTop: document.getElementById('alwaysOnTop').checked, 29 | movable: document.getElementById('movable').checked, 30 | } 31 | 32 | // Save the new settings using Electron API 33 | window.electronAPI.saveSettings(newSettings).then(() => { 34 | // Notify the main process to reload the window with new settings 35 | window.electronAPI.invoke('reloadWindow') 36 | // Close the settings window 37 | window.close() 38 | }) 39 | }) 40 | -------------------------------------------------------------------------------- /public/styles.css: -------------------------------------------------------------------------------- 1 | /* Allow the main body area to be draggable */ 2 | body { 3 | -webkit-app-region: drag; 4 | margin: 0; 5 | padding: 0; 6 | display: flex; 7 | justify-content: flex-end; 8 | align-items: center; 9 | height: 100vh; 10 | background: transparent; 11 | } 12 | 13 | /* Draggable area that encapsulates the keypad */ 14 | .draggable-area { 15 | width: 100%; 16 | height: 100%; 17 | display: flex; 18 | justify-content: flex-end; 19 | align-items: center; 20 | } 21 | 22 | /* Keypad styles */ 23 | .keypad { 24 | display: grid; 25 | gap: 10px; 26 | padding: 20px; 27 | background: rgba(0, 0, 0, 0.5); 28 | border-radius: 8px; 29 | } 30 | 31 | /* Button and interactive elements should not affect drag */ 32 | .key, 33 | .close-button { 34 | -webkit-app-region: no-drag; 35 | position: relative; 36 | background-color: #444; 37 | color: white; 38 | display: flex; 39 | align-items: center; 40 | justify-content: center; 41 | border-radius: 10px; 42 | font-size: 16px; 43 | cursor: pointer; 44 | overflow: hidden; 45 | } 46 | 47 | /* Adjust layout and styling for the close button */ 48 | .close-button { 49 | position: absolute; 50 | top: 5px; 51 | right: 5px; 52 | width: 20px; 53 | height: 20px; 54 | background-color: black; 55 | color: white; 56 | border: none; 57 | border-radius: 50%; 58 | font-size: 14px; 59 | display: flex; 60 | align-items: center; 61 | justify-content: center; 62 | cursor: pointer; 63 | z-index: 10; 64 | } 65 | 66 | .close-button:hover { 67 | background-color: rgb(21, 21, 21); 68 | color: #fff; 69 | } 70 | 71 | /* Disable text selection across the entire window */ 72 | body, 73 | .key, 74 | .close-button { 75 | user-select: none; /* Prevent text selection */ 76 | -webkit-user-select: none; 77 | -moz-user-select: none; 78 | -ms-user-select: none; 79 | } 80 | 81 | /* Disable outline on focus to prevent visual feedback when buttons are clicked */ 82 | .key, 83 | .close-button { 84 | outline: none; 85 | } 86 | -------------------------------------------------------------------------------- /scripts/notarize.js: -------------------------------------------------------------------------------- 1 | const { notarize } = require('electron-notarize') 2 | 3 | exports.default = async function notarizing(context) { 4 | const { electronPlatformName, appOutDir } = context 5 | if (electronPlatformName !== 'darwin') { 6 | return 7 | } 8 | 9 | const appName = context.packager.appInfo.productFilename 10 | 11 | console.log('Starting notarization...') 12 | 13 | return await notarize({ 14 | appBundleId: 'com.josephadams.screendeck', 15 | appPath: `${appOutDir}/${appName}.app`, 16 | appleId: process.env.APPLE_ID, 17 | appleIdPassword: process.env.APPLE_ID_PASSWORD, 18 | }) 19 | } 20 | -------------------------------------------------------------------------------- /src/defaults.ts: -------------------------------------------------------------------------------- 1 | // src/defaults.ts 2 | 3 | export const defaultSettings = { 4 | companionIP: '127.0.0.1', // Default IP address for companion 5 | companionPort: 16622, // Default satellite port for companion 6 | keysTotal: 6, // Default total keys for companion 7 | keysPerRow: 1, // Default keys per row for companion 8 | bitmapSize: 72, // Default bitmap size 9 | alwaysOnTop: true, // Default always on top setting 10 | movable: false, // Default setting for whether the window is movable 11 | disablePress: false, // Default setting for whether button presses are allowed or not 12 | } 13 | 14 | export type SettingsType = typeof defaultSettings 15 | -------------------------------------------------------------------------------- /src/ipcHandlers.ts: -------------------------------------------------------------------------------- 1 | import { ipcMain } from 'electron' 2 | import Store from 'electron-store' 3 | import { defaultSettings } from './defaults' // Import default settings 4 | import { createMainWindow } from './mainWindow' // Import the createMainWindow function 5 | import { createSatellite, closeSatellite } from './satelliteFunctions' 6 | 7 | const store = new Store({ defaults: defaultSettings }) 8 | 9 | // Initialize the IPC handlers 10 | export function initializeIpcHandlers() { 11 | // Handle reloading the main window 12 | ipcMain.handle('reloadWindow', () => { 13 | let keysTotal = store.get('keysTotal', 6) 14 | let keysPerRow = store.get('keysPerRow', 1) 15 | let bitmapSize = store.get('bitmapSize', 72) 16 | 17 | global.mainWindow?.hide() 18 | 19 | createMainWindow() 20 | 21 | let companionIP = store.get('companionIP', '127.0.0.1') 22 | let currentIP = global.satellite?.getIP() 23 | 24 | if (currentIP !== companionIP) { 25 | // If the IP address has changed 26 | closeSatellite() 27 | clearInterval(global.satelliteTimeout) 28 | global.satelliteTimeout = setTimeout(() => { 29 | createSatellite(false) 30 | }, 800) 31 | } else if (!global.satellite?.isConnected) { 32 | // If we are not connected 33 | clearInterval(global.satelliteTimeout) 34 | global.satelliteTimeout = setTimeout(() => { 35 | createSatellite(false) 36 | }, 800) 37 | } else { 38 | //wait 800ms before connecting to the satellite 39 | setTimeout(() => { 40 | global.satellite?.removeDevice() 41 | global.satellite?.changeKeys(keysTotal, keysPerRow, bitmapSize) 42 | }, 800) 43 | } 44 | }) 45 | 46 | // Handle keyDown event from renderer or other sources 47 | ipcMain.handle('keyDown', (_, keyObj) => { 48 | if (satellite && typeof satellite.sendKeyDown === 'function') { 49 | let keyNumber: number = parseInt(keyObj.key) - 1 50 | if (store.get('disablePress', false) == false) { //only send keyDown if button presses are allowed 51 | satellite.sendKeyDown(keyNumber) // Call keyDown method on the Satellite instance 52 | } 53 | } 54 | }) 55 | 56 | // Handle keyUp event from renderer or other sources 57 | ipcMain.handle('keyUp', (_, keyObj) => { 58 | if (satellite && typeof satellite.sendKeyUp === 'function') { 59 | let keyNumber: number = parseInt(keyObj.key) - 1 60 | if (store.get('disablePress', false) == false) { //only send keyUp if button presses are allowed 61 | satellite.sendKeyUp(keyNumber) // Call keyUp method on the Satellite instance 62 | } 63 | } 64 | }) 65 | 66 | // Handle keyRotate event from renderer or other sources 67 | ipcMain.handle('keyRotate', (_, keyObj) => { 68 | if (satellite && typeof satellite.sendKeyRotate === 'function') { 69 | let keyNumber: number = parseInt(keyObj.key) - 1 70 | let direction: number = parseInt(keyObj.direction) 71 | if (store.get('disablePress', false) == false) { //only send keyRotate if button presses are allowed 72 | satellite.sendKeyRotate(keyNumber, direction) // Call keyRotate method on the Satellite instance 73 | } 74 | } 75 | }) 76 | 77 | // Handle setting the brightness 78 | ipcMain.handle('setBrightness', (_, brightness) => { 79 | if (global.mainWindow && global.mainWindow.webContents) { 80 | global.mainWindow.webContents.send('brightness', brightness) 81 | } 82 | }) 83 | 84 | // Handle fetching settings 85 | ipcMain.handle('getSettings', () => { 86 | return store.store 87 | }) 88 | 89 | // Handle saving settings 90 | ipcMain.handle('saveSettings', (_, newSettings) => { 91 | store.set(newSettings) 92 | }) 93 | 94 | // Handle IPC request to close the keypad 95 | ipcMain.handle('closeKeypad', () => { 96 | global.mainWindow?.close() 97 | }) 98 | } 99 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | var mainWindow: BrowserWindow | null 3 | } 4 | 5 | import { app, BrowserWindow, globalShortcut } from 'electron' 6 | import createTray from './tray' 7 | import { createMainWindow } from './mainWindow' // Import the createMainWindow function 8 | import { createSatellite, closeSatellite } from './satelliteFunctions' // Import createSatellite and closeSatellite functions 9 | import { showNotification } from './notification' 10 | import { initializeIpcHandlers } from './ipcHandlers' // Import IPC handlers if needed 11 | 12 | let quitTimeout: NodeJS.Timeout 13 | 14 | app.on('ready', () => { 15 | if (process.platform === 'darwin') { 16 | app.dock.hide() 17 | } 18 | 19 | createMainWindow() 20 | createTray() 21 | 22 | // Initialize IPC handlers after window creation 23 | initializeIpcHandlers() 24 | 25 | //wait 500ms before connecting to the satellite 26 | clearInterval(global.satelliteTimeout) 27 | global.satelliteTimeout = setTimeout(() => { 28 | createSatellite(true) 29 | }, 800) 30 | }) 31 | 32 | app.on('window-all-closed', () => { 33 | if (process.platform !== 'darwin') { 34 | app.quit() 35 | } 36 | }) 37 | 38 | app.on('activate', async () => { 39 | if (BrowserWindow.getAllWindows().length === 0) { 40 | await app.whenReady() 41 | // Create the main window if it doesn't exist 42 | createMainWindow() 43 | } 44 | }) 45 | 46 | app.on('before-quit', (event) => { 47 | //event.preventDefault(); 48 | closeSatellite() // Close the satellite connection when the app is quitting 49 | quitTimeout = setTimeout(() => { 50 | app.exit(0) //makes the app exit after 1 second regardless of the satellite connection 51 | }, 1000) 52 | }) 53 | 54 | app.on('quit', () => clearTimeout(quitTimeout)) // Cleanup timeout on quit -------------------------------------------------------------------------------- /src/mainWindow.ts: -------------------------------------------------------------------------------- 1 | import { app, BrowserWindow, screen, globalShortcut } from 'electron' 2 | import * as path from 'path' 3 | import Store from 'electron-store' 4 | import { defaultSettings } from './defaults' 5 | import createTray, { updateTrayMenu } from './tray' // Ensure tray management works properly with window events 6 | 7 | const store = new Store({ defaults: defaultSettings }) 8 | 9 | declare global { 10 | //var mainWindow: BrowserWindow | null 11 | } 12 | 13 | export function createMainWindow() { 14 | if (!app.isReady()) { 15 | console.error('App is not ready. Cannot create main window.') 16 | return 17 | } 18 | 19 | const alwaysOnTop = store.get('alwaysOnTop', true) 20 | const keysTotal = store.get('keysTotal', 6) 21 | const keysPerRow = store.get('keysPerRow', 1) 22 | const movable = store.get('movable', false) 23 | 24 | const { width, height } = calculateWindowSize(keysTotal, keysPerRow) 25 | const primaryDisplay = screen.getPrimaryDisplay() 26 | const { width: screenWidth } = primaryDisplay.workAreaSize 27 | 28 | if (global.mainWindow) { 29 | global.mainWindow.close() 30 | global.mainWindow = null 31 | } 32 | 33 | global.mainWindow = new BrowserWindow({ 34 | width: width, 35 | height: height, 36 | x: screenWidth - width - 20, 37 | y: 20, 38 | transparent: true, 39 | frame: false, 40 | alwaysOnTop: alwaysOnTop, 41 | resizable: false, 42 | skipTaskbar: true, 43 | movable: movable, 44 | webPreferences: { 45 | preload: path.join(__dirname, 'preload.js'), 46 | contextIsolation: true, // Enable context isolation for security 47 | nodeIntegration: false, // Disable nodeIntegration for security 48 | }, 49 | }) 50 | 51 | global.mainWindow.loadFile(path.join(__dirname, '../public/index.html')) 52 | global.mainWindow.setHasShadow(false) 53 | 54 | //show dev tools 55 | //global.mainWindow.webContents.openDevTools() 56 | 57 | //hide the window until satellite is connected 58 | global.mainWindow?.hide() 59 | 60 | if (global.satellite?.isConnected) { 61 | global.mainWindow?.show() 62 | updateTrayMenu() 63 | } 64 | 65 | global.mainWindow.on('blur', () => { 66 | if (!alwaysOnTop) { 67 | global.mainWindow?.hide() 68 | } 69 | updateTrayMenu() // Update tray menu when the window is hidden 70 | }) 71 | 72 | global.mainWindow.on('focus', () => { 73 | updateTrayMenu() // Update tray menu when the window is focused 74 | }) 75 | 76 | global.mainWindow.on('hide', () => { 77 | updateTrayMenu() // Update tray menu when the window is hidden 78 | }) 79 | 80 | global.mainWindow.on('close', (event) => { 81 | event.preventDefault() 82 | global.mainWindow?.hide() 83 | updateTrayMenu() // Update tray menu when the window is closed 84 | }) 85 | } 86 | 87 | function calculateWindowSize(keysTotal: number, keysPerRow: number) { 88 | const bitmapSize = store.get('bitmapSize', 72) 89 | const KEY_WIDTH = bitmapSize 90 | const KEY_HEIGHT = bitmapSize 91 | const PADDING = 20 92 | const GAP = 10 93 | const rows = Math.ceil(keysTotal / keysPerRow) 94 | const width = keysPerRow * KEY_WIDTH + (keysPerRow - 1) * GAP + PADDING * 2 95 | const height = rows * KEY_HEIGHT + (rows - 1) * GAP + PADDING * 2 96 | return { width, height } 97 | } 98 | -------------------------------------------------------------------------------- /src/notification.ts: -------------------------------------------------------------------------------- 1 | import { Notification } from 'electron' 2 | 3 | /** 4 | * Shows a notification with the given title and body. 5 | * @param title - The title of the notification. 6 | * @param body - The body content of the notification. 7 | */ 8 | export function showNotification(title: string, body: string) { 9 | const notification = new Notification({ 10 | title, 11 | body, 12 | silent: false, // Set to true if you want to suppress notification sounds 13 | }) 14 | 15 | notification.show() 16 | } 17 | -------------------------------------------------------------------------------- /src/preload.ts: -------------------------------------------------------------------------------- 1 | import { contextBridge, ipcRenderer } from 'electron' 2 | 3 | // Expose APIs to the renderer process through contextBridge 4 | contextBridge.exposeInMainWorld('electronAPI', { 5 | // Wrapper for invoking IPC methods from the renderer 6 | invoke: (channel: string, data?: any) => ipcRenderer.invoke(channel, data), 7 | 8 | onBrightness: (callback: (event: any, brightness: number) => void) => { 9 | ipcRenderer.on('brightness', (event, brightness) => 10 | callback(event, brightness) 11 | ) 12 | }, 13 | 14 | // Listener for key events (or other events) 15 | onKeyEvent: (callback: (event: any, keyObj: any) => void) => { 16 | ipcRenderer.on('keyEvent', (event, keyObj) => callback(event, keyObj)) 17 | }, 18 | 19 | // Fetch settings from the main process 20 | getSettings: () => ipcRenderer.invoke('getSettings'), 21 | 22 | // Save settings to the main process 23 | saveSettings: (newSettings: any) => 24 | ipcRenderer.invoke('saveSettings', newSettings), 25 | }) 26 | -------------------------------------------------------------------------------- /src/satellite.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from 'events' 2 | import net, { Socket } from 'net' 3 | 4 | export interface KeyEvent { 5 | deviceId?: string 6 | key?: number 7 | type?: string 8 | bitmap?: string 9 | color?: string 10 | textColor?: string 11 | text?: string 12 | fontSize?: string 13 | } 14 | 15 | export class Satellite extends EventEmitter { 16 | private deviceId: string 17 | private productName: string 18 | private ip: string 19 | private port: number 20 | private keysTotal: number 21 | private keysPerRow: number 22 | private bitmaps: boolean | string | number 23 | private colors: boolean | string 24 | private text: boolean 25 | private textStyle: boolean 26 | private socket: Socket | null 27 | private ping_interval: NodeJS.Timeout | null 28 | 29 | public companionVersion: string | null 30 | public apiVersion: string | null 31 | 32 | constructor( 33 | deviceId = '11111', 34 | productName = 'ScreenDeck', 35 | ip = '127.0.0.1', 36 | port = 16622, 37 | keysTotal = 6, 38 | keysPerRow = 1, 39 | bitmaps: boolean | string | number = true, 40 | colors: boolean | string = true, 41 | text = true, 42 | textStyle = true 43 | ) { 44 | super() 45 | 46 | this.deviceId = deviceId 47 | this.productName = productName 48 | this.ip = ip 49 | this.port = port 50 | this.keysTotal = keysTotal 51 | this.keysPerRow = keysPerRow 52 | this.bitmaps = bitmaps 53 | this.colors = colors 54 | this.text = text 55 | this.textStyle = textStyle 56 | this.socket = null 57 | this.ping_interval = null 58 | 59 | this.companionVersion = '' 60 | this.apiVersion = '' 61 | } 62 | 63 | public isConnected = false 64 | 65 | public getIP() { 66 | return this.ip 67 | } 68 | 69 | public connect() { 70 | this.companionVersion = '' 71 | this.apiVersion = '' 72 | 73 | this.socket = new net.Socket() 74 | 75 | this.socket.connect(this.port, this.ip, () => {}) 76 | 77 | let receiveBuffer = '' 78 | 79 | this.socket.on('data', (chunk) => { 80 | receiveBuffer += chunk.toString() 81 | 82 | let lineEnd 83 | while ((lineEnd = receiveBuffer.indexOf('\n')) !== -1) { 84 | const line = receiveBuffer.slice(0, lineEnd).trim() // Extract and trim the line 85 | receiveBuffer = receiveBuffer.slice(lineEnd + 1) // Update the buffer 86 | try { 87 | this.processData(line) // Process the line 88 | } catch (error) { 89 | console.error(error) 90 | } 91 | } 92 | }) 93 | 94 | this.socket.on('error', (error) => { 95 | this.emit('error', error) 96 | }) 97 | 98 | this.socket.on('close', () => { 99 | this.isConnected = false 100 | 101 | this.companionVersion = '' 102 | this.apiVersion = '' 103 | 104 | this.emit('disconnected') 105 | }) 106 | } 107 | 108 | public disconnect() { 109 | if (this.ping_interval) { 110 | clearInterval(this.ping_interval) 111 | } 112 | 113 | this.removeDevice() 114 | this.sendCommand('QUIT') 115 | 116 | if (this.socket) { 117 | this.socket.destroy() 118 | this.socket = null 119 | } 120 | } 121 | 122 | public changeKeys( 123 | keysTotal: number, 124 | keysPerRow: number, 125 | bitmaps: boolean | string | number 126 | ) { 127 | this.keysTotal = keysTotal 128 | this.keysPerRow = keysPerRow 129 | this.bitmaps = bitmaps 130 | this.addDevice() 131 | } 132 | 133 | public addDevice() { 134 | if (this.apiVersion === null) { 135 | this.apiVersion = '1.0.0' 136 | } 137 | 138 | const [major, minor, patch] = this.apiVersion.split('.').map(Number) 139 | 140 | let addDeviceCmd = `ADD-DEVICE DEVICEID=${this.deviceId} PRODUCT_NAME="${this.productName}"` 141 | 142 | if ( 143 | major >= 1 || 144 | (major === 1 && minor >= 5) || 145 | (major === 1 && minor === 5 && patch >= 1) 146 | ) { 147 | addDeviceCmd += ` KEYS_TOTAL=${this.keysTotal} KEYS_PER_ROW=${this.keysPerRow}` 148 | } 149 | 150 | if (major >= 1 || (major === 1 && minor >= 5)) { 151 | //verify if bitmaps is a number 152 | if (typeof this.bitmaps === 'number') { 153 | addDeviceCmd += ` BITMAPS=${this.bitmaps}` 154 | } else { 155 | if (this.bitmaps !== true && this.bitmaps !== false) { 156 | this.bitmaps = true 157 | } 158 | addDeviceCmd += ` BITMAPS=${this.bitmaps}` 159 | } 160 | } else { 161 | if (this.bitmaps !== true && this.bitmaps !== false) { 162 | this.bitmaps = true 163 | } 164 | addDeviceCmd += ` BITMAPS=${this.bitmaps}` 165 | } 166 | 167 | if (major >= 1 || (major === 1 && minor >= 6)) { 168 | addDeviceCmd += ` COLORS=${this.colors}` 169 | } else { 170 | if (this.colors !== true && this.colors !== false) { 171 | this.colors = true 172 | } 173 | addDeviceCmd += ` COLORS=${this.colors}` 174 | } 175 | 176 | addDeviceCmd += ` TEXT=${this.text}` 177 | 178 | if (major >= 1 || (major === 1 && minor >= 4)) { 179 | addDeviceCmd += ` TEXT_STYLE=${this.textStyle}` 180 | } 181 | 182 | this.sendCommand(addDeviceCmd) 183 | console.log('Device Added:', addDeviceCmd) 184 | } 185 | 186 | public removeDevice() { 187 | this.sendCommand(`REMOVE-DEVICE DEVICEID=${this.deviceId}`) 188 | } 189 | 190 | private startPing() { 191 | this.ping_interval = setInterval(() => { 192 | this.sendCommand('PING') 193 | }, 2000) // 2 seconds, as recommended per the protocol 194 | } 195 | 196 | private sendCommand(cmd: string) { 197 | if (this.socket) { 198 | this.socket.write(`${cmd}\n`) 199 | } 200 | } 201 | 202 | public close() { 203 | this.disconnect() 204 | } 205 | 206 | public sendKeyDown(keyNumber: number) { 207 | //ensure key is a number between 0 and total keys 208 | if (keyNumber < 0 || keyNumber >= this.keysTotal) { 209 | this.emit('error', 'Invalid key number') 210 | } 211 | 212 | this.sendCommand( 213 | `KEY-PRESS DEVICEID=${this.deviceId} KEY=${keyNumber} PRESSED=true` 214 | ) 215 | } 216 | 217 | public sendKeyUp(keyNumber: number) { 218 | //ensure key is a number between 0 and total keys 219 | if (keyNumber < 0 || keyNumber >= this.keysTotal) { 220 | this.emit('error', 'Invalid key number') 221 | } 222 | 223 | this.sendCommand( 224 | `KEY-PRESS DEVICEID=${this.deviceId} KEY=${keyNumber} PRESSED=false` 225 | ) 226 | } 227 | 228 | public sendKeyRotate(keyNumber: number, direction: number) { 229 | //ensure direction is -1 or 1 230 | if (direction !== -1 && direction !== 1) { 231 | direction = 1 232 | } 233 | 234 | this.sendCommand( 235 | `ROTATE DEVICEID=${this.deviceId} KEY=${keyNumber} DIRECTION=${direction}` 236 | ) 237 | } 238 | 239 | private processData(data: string) { 240 | try { 241 | const str_raw = data.trim() 242 | const str_split = str_raw.split('\n') 243 | 244 | for (const str of str_split) { 245 | const params = str.split(' ') 246 | const command = params[0] 247 | 248 | if (command === 'BEGIN') { 249 | this.isConnected = true 250 | this.emit('connected') 251 | 252 | for (let i = 1; i < params.length; i++) { 253 | const [property, value] = params[i].split('=') 254 | 255 | if (property.toUpperCase() === 'COMPANIONVERSION') { 256 | this.companionVersion = value 257 | console.log( 258 | 'Companion Version:', 259 | this.companionVersion 260 | ) 261 | } 262 | 263 | if (property.toUpperCase() === 'APIVERSION') { 264 | this.apiVersion = value 265 | console.log('API Version:', this.apiVersion) 266 | } 267 | } 268 | 269 | if (!this.apiVersion) { 270 | this.apiVersion = '1.0.0' 271 | } 272 | 273 | this.addDevice() 274 | continue 275 | } 276 | 277 | if (command === 'ADD-DEVICE') { 278 | if (params[1] === 'OK') { 279 | this.startPing() 280 | } 281 | continue 282 | } 283 | 284 | if (command === 'KEY-STATE') { 285 | const keyObj: KeyEvent = {} 286 | 287 | for (let i = 1; i < params.length; i++) { 288 | const [property, value] = params[i].split('=') 289 | 290 | switch (property) { 291 | case 'DEVICEID': 292 | keyObj.deviceId = value 293 | break 294 | case 'KEY': 295 | keyObj.key = parseInt(value, 10) 296 | break 297 | case 'TYPE': 298 | keyObj.type = value 299 | break 300 | case 'BITMAP': 301 | keyObj.bitmap = value 302 | break 303 | case 'COLOR': 304 | keyObj.color = value 305 | break 306 | case 'TEXT_COLOR': 307 | keyObj.textColor = value 308 | break 309 | case 'TEXT': 310 | keyObj.text = value 311 | break 312 | case 'FONT_SIZE': 313 | keyObj.fontSize = value 314 | break 315 | } 316 | } 317 | 318 | this.emit('keyEvent', keyObj) 319 | } 320 | 321 | if (command === 'KEYS-CLEAR') { 322 | // Handle KEYS-CLEAR logic 323 | this.emit('clear') 324 | } 325 | 326 | if (command === 'BRIGHTNESS') { 327 | // Handle BRIGHTNESS logic 328 | for (let i = 1; i < params.length; i++) { 329 | const [property, value] = params[i].split('=') // Split the property and value 330 | 331 | if (property === 'VALUE') { 332 | this.emit('brightness', parseInt(value, 10)) // Emit the brightness event 333 | } 334 | } 335 | } 336 | } 337 | } catch (error) { 338 | console.error(error) 339 | } 340 | } 341 | } 342 | -------------------------------------------------------------------------------- /src/satelliteFunctions.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | var satellite: Satellite | null 3 | var satelliteTimeout: NodeJS.Timeout | undefined 4 | } 5 | 6 | import ShortUniqueId from 'short-uuid' 7 | import { KeyEvent, Satellite } from './satellite' 8 | import Store from 'electron-store' 9 | import { defaultSettings } from './defaults' 10 | import { showNotification } from './notification' 11 | import { updateTrayMenu } from './tray' 12 | 13 | const store = new Store({ defaults: defaultSettings }) 14 | 15 | let keyQueue: KeyEvent[] = [] 16 | 17 | export function createSatellite(notificationShow: boolean = true) { 18 | const companionIP: string = store.get('companionIP', '127.0.0.1') 19 | const companionPort: number = store.get('companionPort', 16622) 20 | let deviceId: string = store.get('deviceId') 21 | 22 | if (!deviceId) { 23 | const uuidGenerator = ShortUniqueId() 24 | deviceId = uuidGenerator.new() 25 | store.set('deviceId', deviceId) 26 | } 27 | 28 | const keysTotal = store.get('keysTotal', 6) 29 | const keysPerRow = store.get('keysPerRow', 1) 30 | const bitmapSize = store.get('bitmapSize', 72) 31 | 32 | showNotification( 33 | 'Connecting to Companion', 34 | `Connecting to Companion IP: ${companionIP}` 35 | ) 36 | 37 | global.satellite = new Satellite( 38 | deviceId, 39 | 'ScreenDeck', 40 | companionIP, 41 | companionPort, 42 | keysTotal, 43 | keysPerRow, 44 | bitmapSize 45 | ) 46 | 47 | updateTrayMenu() 48 | 49 | global.satellite.on('connected', () => { 50 | if (notificationShow) { 51 | showNotification( 52 | 'Satellite Connected', 53 | `Connected to Companion: ${companionIP}` 54 | ) 55 | } 56 | global.mainWindow?.show() //show the window when satellite is connected 57 | global.mainWindow?.focus() //focus the window when satellite is connected (bring to top) 58 | //wait 50ms and update tray menu 59 | 60 | setTimeout(() => { 61 | updateTrayMenu() 62 | }, 50) 63 | }) 64 | 65 | global.satellite.on('keyEvent', (keyEvent) => { 66 | addToKeyQueue(keyEvent) 67 | }) 68 | 69 | global.satellite.on('brightness', (brightness) => { 70 | if (global.mainWindow) { 71 | global.mainWindow.webContents.send('brightness', brightness) 72 | } 73 | }) 74 | 75 | global.satellite.on('disconnected', () => { 76 | /*showNotification( 77 | 'Satellite Disconnected', 78 | `Disconnected from Companion IP: ${companionIP}` 79 | )*/ 80 | global.mainWindow?.hide() //hide the main window when satellite is disconnected 81 | 82 | //wait 50ms and update tray menu 83 | setTimeout(() => { 84 | updateTrayMenu() 85 | }, 50) 86 | 87 | //wait 10s before trying to reconnect 88 | clearInterval(global.satelliteTimeout) 89 | global.satelliteTimeout = setTimeout(() => { 90 | createSatellite(false) 91 | }, 10000) 92 | }) 93 | 94 | //on error 95 | global.satellite.on('error', (error) => { 96 | // Check the error code and send a user-friendly message to the renderer 97 | console.log('Satellite Error:', error) 98 | 99 | if (error.code === 'ECONNREFUSED') { 100 | showNotification( 101 | 'Connection Error', 102 | `Unable to connect to ${error.address}:${error.port}. Please check the IP address and try again.` 103 | ) 104 | 105 | //wait 50ms and update tray menu 106 | setTimeout(() => { 107 | updateTrayMenu() 108 | }, 50) 109 | } else if (error.code === 'ECONNRESET') { 110 | showNotification( 111 | 'Companion Satellite Connection Lost', 112 | `Connection to Companion lost. Trying to reconnect in 10 seconds...` 113 | ) 114 | 115 | //wait 50ms and update tray menu 116 | setTimeout(() => { 117 | updateTrayMenu() 118 | }, 50) 119 | } else if (error.code === 'ETIMEDOUT') { 120 | showNotification( 121 | 'Companion Satellite Connection Timed Out', 122 | `Connection to Companion timed out. Trying to reconnect in 10 seconds...` 123 | ) 124 | 125 | //wait 50ms and update tray menu 126 | setTimeout(() => { 127 | updateTrayMenu() 128 | }, 50) 129 | } else { 130 | showNotification( 131 | 'Connection Error', 132 | `An unexpected error occurred: ${error.message}` 133 | ) 134 | } 135 | }) 136 | 137 | global.satellite.connect() 138 | } 139 | 140 | function addToKeyQueue(keyObj: KeyEvent) { 141 | keyQueue.push(keyObj) 142 | //implement a queue so that we can process multiple key updates one at a time 143 | if (keyQueue.length === 1) { 144 | processKeyQueue() 145 | } 146 | } 147 | 148 | function processKeyQueue() { 149 | //console.log('Processing key queue. Length:', keyQueue.length) 150 | if (keyQueue.length > 0) { 151 | const keyObj: KeyEvent = keyQueue.shift() as KeyEvent 152 | processKey(keyObj) 153 | } 154 | } 155 | 156 | function processKey(keyObj: KeyEvent) { 157 | if (global.mainWindow) { 158 | global.mainWindow.webContents.send('keyEvent', keyObj) 159 | } 160 | 161 | //process the next key in the queue 162 | processKeyQueue() 163 | } 164 | 165 | export function closeSatellite() { 166 | global.satellite?.disconnect() 167 | global.satellite = null 168 | } 169 | -------------------------------------------------------------------------------- /src/settings.ts: -------------------------------------------------------------------------------- 1 | import { BrowserWindow } from 'electron' 2 | import * as path from 'path' 3 | 4 | let settingsWindow: BrowserWindow | null = null 5 | 6 | export default function createSettingsWindow() { 7 | if (settingsWindow) { 8 | settingsWindow.focus() 9 | return 10 | } 11 | 12 | settingsWindow = new BrowserWindow({ 13 | width: 400, 14 | height: 600, 15 | resizable: false, 16 | webPreferences: { 17 | preload: path.join(__dirname, 'preload.js'), 18 | }, 19 | }) 20 | 21 | settingsWindow.loadFile(path.join(__dirname, '../public/settings.html')) 22 | 23 | settingsWindow.on('closed', () => { 24 | settingsWindow = null 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /src/tray.ts: -------------------------------------------------------------------------------- 1 | import { Tray, Menu, nativeImage, app } from 'electron' 2 | import * as path from 'path' 3 | import Store from 'electron-store' 4 | import createSettingsWindow from './settings' // Import the createSettingsWindow function 5 | 6 | let tray: Tray | null = null 7 | const store = new Store() 8 | 9 | export default function createTray() { 10 | // Create the tray icon using nativeImage and resize it to the desired size 11 | const image = nativeImage.createFromPath( 12 | path.join(__dirname, '../assets/tray-icon.png') // Adjust this path as needed 13 | ) 14 | tray = new Tray(image.resize({ width: 16, height: 16 })) 15 | 16 | tray.setToolTip('ScreenDeck') 17 | updateTrayMenu() 18 | } 19 | 20 | // Function to update the tray menu based on the window state 21 | function updateTrayMenu() { 22 | // Retrieve stored values 23 | const companionIP = store.get('companionIP', '127.0.0.1') as string 24 | const deviceId = store.get('deviceId', 'Unknown') as string 25 | const version = app.getVersion() 26 | 27 | // Build context menu with version, IP, and Device ID 28 | let contextMenuTemplate = [ 29 | { label: `ScreenDeck Version: ${version || ''}`, enabled: false }, 30 | { label: `Companion IP: ${companionIP || ''}`, enabled: false }, 31 | { 32 | label: `Companion Version: ${global.satellite?.companionVersion || 'Unknown'}`, 33 | enabled: false, 34 | }, 35 | { 36 | label: `Satellite API Version: ${global.satellite?.apiVersion || 'Unknown'}`, 37 | enabled: false, 38 | }, 39 | { label: `Device ID: ${deviceId || ''}`, enabled: false }, 40 | { 41 | label: `Connected: ${global.satellite?.isConnected ? 'Yes' : 'No'}`, 42 | enabled: false, 43 | }, 44 | { type: 'separator' }, 45 | //disable press checkbox 46 | { 47 | label: 'Disable Button Presses', 48 | type: 'checkbox', 49 | checked: store.get('disablePress', false), 50 | click: () => { 51 | store.set('disablePress', !store.get('disablePress', false)) 52 | }, 53 | }, 54 | { 55 | label: 'Settings', 56 | type: 'normal', 57 | click: () => { 58 | // Open settings window 59 | createSettingsWindow() 60 | }, 61 | }, 62 | { 63 | label: 'Quit', 64 | type: 'normal', 65 | click: () => { 66 | app.quit() 67 | }, 68 | }, 69 | ] as Electron.MenuItemConstructorOptions[] 70 | 71 | // Add "Show Keypad" option if alwaysOnTop is false, or if the main window is not visible, but only if we are connected to Companion 72 | if ( 73 | !global.mainWindow?.isVisible() && 74 | global.satellite?.isConnected 75 | ) { 76 | contextMenuTemplate.splice(5, 0, { 77 | label: 'Show Keypad', 78 | type: 'normal', 79 | click: () => { 80 | showMainWindow() 81 | }, 82 | }) 83 | } 84 | 85 | // Add "Stop Trying to Reconnect" option if we are not connected and the satellite is trying to reconnect (global.satelliteTimeout is set) 86 | if (!global.satellite?.isConnected && global.satelliteTimeout) { 87 | contextMenuTemplate.splice(5, 0, { 88 | label: 'Stop Trying to Connect', 89 | type: 'normal', 90 | click: () => { 91 | clearInterval(global.satelliteTimeout) 92 | global.satelliteTimeout = undefined 93 | //remove this option from the menu 94 | updateTrayMenu() 95 | }, 96 | }) 97 | } 98 | 99 | const contextMenu = Menu.buildFromTemplate(contextMenuTemplate) 100 | 101 | tray?.setContextMenu(contextMenu) 102 | } 103 | 104 | // Function to show the main keypad window 105 | function showMainWindow() { 106 | if (global.mainWindow) { 107 | global.mainWindow.show() 108 | global.mainWindow.focus() 109 | updateTrayMenu() 110 | } 111 | } 112 | 113 | export { updateTrayMenu } 114 | -------------------------------------------------------------------------------- /src/types.d.ts: -------------------------------------------------------------------------------- 1 | // src/types.d.ts 2 | 3 | // Define the KeyObj type 4 | export type KeyObj = { 5 | key?: number 6 | type?: string 7 | bitmap?: string 8 | color?: string 9 | textColor?: string 10 | text?: string 11 | fontSize?: string 12 | } 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "CommonJS", 5 | "strict": true, 6 | "esModuleInterop": true, 7 | "skipLibCheck": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "outDir": "dist", 10 | "rootDir": "src" 11 | }, 12 | "include": ["src/**/*.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "7zip-bin@npm:~5.2.0": 9 | version: 5.2.0 10 | resolution: "7zip-bin@npm:5.2.0" 11 | checksum: 10c0/7f6c69b4cb10c4060fb8fda258ae2ab88d30516b5a52941efa0e2cbd9ce362ab7d8d568549cd85e9f125c1c68f95c7bb076cc314c2f3c0cb306d3b638080c2ce 12 | languageName: node 13 | linkType: hard 14 | 15 | "@babel/runtime@npm:^7.21.0": 16 | version: 7.26.0 17 | resolution: "@babel/runtime@npm:7.26.0" 18 | dependencies: 19 | regenerator-runtime: "npm:^0.14.0" 20 | checksum: 10c0/12c01357e0345f89f4f7e8c0e81921f2a3e3e101f06e8eaa18a382b517376520cd2fa8c237726eb094dab25532855df28a7baaf1c26342b52782f6936b07c287 21 | languageName: node 22 | linkType: hard 23 | 24 | "@cspotcode/source-map-support@npm:^0.8.0": 25 | version: 0.8.1 26 | resolution: "@cspotcode/source-map-support@npm:0.8.1" 27 | dependencies: 28 | "@jridgewell/trace-mapping": "npm:0.3.9" 29 | checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 30 | languageName: node 31 | linkType: hard 32 | 33 | "@develar/schema-utils@npm:~2.6.5": 34 | version: 2.6.5 35 | resolution: "@develar/schema-utils@npm:2.6.5" 36 | dependencies: 37 | ajv: "npm:^6.12.0" 38 | ajv-keywords: "npm:^3.4.1" 39 | checksum: 10c0/7c6075ce6742dd5c89b3cebf81351ec1d73dafc7c3409748860e4f8262fb26ffe6d998c5baab4eca579cd436e7c6c12c615fe89819c19484a22d25b3e6825cb5 40 | languageName: node 41 | linkType: hard 42 | 43 | "@electron/asar@npm:^3.2.7": 44 | version: 3.2.17 45 | resolution: "@electron/asar@npm:3.2.17" 46 | dependencies: 47 | commander: "npm:^5.0.0" 48 | glob: "npm:^7.1.6" 49 | minimatch: "npm:^3.0.4" 50 | bin: 51 | asar: bin/asar.js 52 | checksum: 10c0/5dc29c6167951ca92ced43a99cdca15477bf6ee7ce72c5f0c6feb3f43f382ad2940fbde8d07071691e303fea6d1d6fcd5d3873a50375c828c18da54b28403fba 53 | languageName: node 54 | linkType: hard 55 | 56 | "@electron/get@npm:^2.0.0": 57 | version: 2.0.3 58 | resolution: "@electron/get@npm:2.0.3" 59 | dependencies: 60 | debug: "npm:^4.1.1" 61 | env-paths: "npm:^2.2.0" 62 | fs-extra: "npm:^8.1.0" 63 | global-agent: "npm:^3.0.0" 64 | got: "npm:^11.8.5" 65 | progress: "npm:^2.0.3" 66 | semver: "npm:^6.2.0" 67 | sumchecker: "npm:^3.0.1" 68 | dependenciesMeta: 69 | global-agent: 70 | optional: true 71 | checksum: 10c0/148957d531bac50c29541515f2483c3e5c9c6ba9f0269a5d536540d2b8d849188a89588f18901f3a84c2b4fd376d1e0c5ea2159eb2d17bda68558f57df19015e 72 | languageName: node 73 | linkType: hard 74 | 75 | "@electron/notarize@npm:2.5.0, @electron/notarize@npm:^2.5.0": 76 | version: 2.5.0 77 | resolution: "@electron/notarize@npm:2.5.0" 78 | dependencies: 79 | debug: "npm:^4.1.1" 80 | fs-extra: "npm:^9.0.1" 81 | promise-retry: "npm:^2.0.1" 82 | checksum: 10c0/262c6a90db4b18c82abb2a8f5349d1bf19ac34a440fe6c01b8aee302b1c886a79906693e6c3fdba2a4efa23a6519abf2113a882b438f7b6687eb2daed3da2afa 83 | languageName: node 84 | linkType: hard 85 | 86 | "@electron/osx-sign@npm:1.3.1": 87 | version: 1.3.1 88 | resolution: "@electron/osx-sign@npm:1.3.1" 89 | dependencies: 90 | compare-version: "npm:^0.1.2" 91 | debug: "npm:^4.3.4" 92 | fs-extra: "npm:^10.0.0" 93 | isbinaryfile: "npm:^4.0.8" 94 | minimist: "npm:^1.2.6" 95 | plist: "npm:^3.0.5" 96 | bin: 97 | electron-osx-flat: bin/electron-osx-flat.js 98 | electron-osx-sign: bin/electron-osx-sign.js 99 | checksum: 10c0/207be0df4ad4d76b0041de97d12b8d8793f3a5ddaff28e73c34a9b1939c83b3224191c7aae3c95d62eeb4a9146204c1db24577f43f91f6fab26783784856e49b 100 | languageName: node 101 | linkType: hard 102 | 103 | "@electron/rebuild@npm:3.6.1": 104 | version: 3.6.1 105 | resolution: "@electron/rebuild@npm:3.6.1" 106 | dependencies: 107 | "@malept/cross-spawn-promise": "npm:^2.0.0" 108 | chalk: "npm:^4.0.0" 109 | debug: "npm:^4.1.1" 110 | detect-libc: "npm:^2.0.1" 111 | fs-extra: "npm:^10.0.0" 112 | got: "npm:^11.7.0" 113 | node-abi: "npm:^3.45.0" 114 | node-api-version: "npm:^0.2.0" 115 | node-gyp: "npm:^9.0.0" 116 | ora: "npm:^5.1.0" 117 | read-binary-file-arch: "npm:^1.0.6" 118 | semver: "npm:^7.3.5" 119 | tar: "npm:^6.0.5" 120 | yargs: "npm:^17.0.1" 121 | bin: 122 | electron-rebuild: lib/cli.js 123 | checksum: 10c0/7d72ea5a0ab656b356cfe300ccdfdb25c06292a31e1729142243460aebe1a9b4c2a50469c6fb114b756575f8713a0532ec6b128e16eb944e8df446a5786ec581 124 | languageName: node 125 | linkType: hard 126 | 127 | "@electron/universal@npm:2.0.1": 128 | version: 2.0.1 129 | resolution: "@electron/universal@npm:2.0.1" 130 | dependencies: 131 | "@electron/asar": "npm:^3.2.7" 132 | "@malept/cross-spawn-promise": "npm:^2.0.0" 133 | debug: "npm:^4.3.1" 134 | dir-compare: "npm:^4.2.0" 135 | fs-extra: "npm:^11.1.1" 136 | minimatch: "npm:^9.0.3" 137 | plist: "npm:^3.1.0" 138 | checksum: 10c0/d3cd87184ee561e4fa4bddbd8a2f9f8db4b3f7c92fe108bcd3e06eef2dd6bdfc378eaf0758b85e8066b3f88f9dd9775d83b3ac9281b491017747786c5cce50a4 139 | languageName: node 140 | linkType: hard 141 | 142 | "@gar/promisify@npm:^1.1.3": 143 | version: 1.1.3 144 | resolution: "@gar/promisify@npm:1.1.3" 145 | checksum: 10c0/0b3c9958d3cd17f4add3574975e3115ae05dc7f1298a60810414b16f6f558c137b5fb3cd3905df380bacfd955ec13f67c1e6710cbb5c246a7e8d65a8289b2bff 146 | languageName: node 147 | linkType: hard 148 | 149 | "@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": 150 | version: 9.3.0 151 | resolution: "@hapi/hoek@npm:9.3.0" 152 | checksum: 10c0/a096063805051fb8bba4c947e293c664b05a32b47e13bc654c0dd43813a1cec993bdd8f29ceb838020299e1d0f89f68dc0d62a603c13c9cc8541963f0beca055 153 | languageName: node 154 | linkType: hard 155 | 156 | "@hapi/topo@npm:^5.1.0": 157 | version: 5.1.0 158 | resolution: "@hapi/topo@npm:5.1.0" 159 | dependencies: 160 | "@hapi/hoek": "npm:^9.0.0" 161 | checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f 162 | languageName: node 163 | linkType: hard 164 | 165 | "@isaacs/cliui@npm:^8.0.2": 166 | version: 8.0.2 167 | resolution: "@isaacs/cliui@npm:8.0.2" 168 | dependencies: 169 | string-width: "npm:^5.1.2" 170 | string-width-cjs: "npm:string-width@^4.2.0" 171 | strip-ansi: "npm:^7.0.1" 172 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 173 | wrap-ansi: "npm:^8.1.0" 174 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 175 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e 176 | languageName: node 177 | linkType: hard 178 | 179 | "@isaacs/fs-minipass@npm:^4.0.0": 180 | version: 4.0.1 181 | resolution: "@isaacs/fs-minipass@npm:4.0.1" 182 | dependencies: 183 | minipass: "npm:^7.0.4" 184 | checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 185 | languageName: node 186 | linkType: hard 187 | 188 | "@jridgewell/resolve-uri@npm:^3.0.3": 189 | version: 3.1.2 190 | resolution: "@jridgewell/resolve-uri@npm:3.1.2" 191 | checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e 192 | languageName: node 193 | linkType: hard 194 | 195 | "@jridgewell/sourcemap-codec@npm:^1.4.10": 196 | version: 1.5.0 197 | resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" 198 | checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 199 | languageName: node 200 | linkType: hard 201 | 202 | "@jridgewell/trace-mapping@npm:0.3.9": 203 | version: 0.3.9 204 | resolution: "@jridgewell/trace-mapping@npm:0.3.9" 205 | dependencies: 206 | "@jridgewell/resolve-uri": "npm:^3.0.3" 207 | "@jridgewell/sourcemap-codec": "npm:^1.4.10" 208 | checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b 209 | languageName: node 210 | linkType: hard 211 | 212 | "@malept/cross-spawn-promise@npm:^2.0.0": 213 | version: 2.0.0 214 | resolution: "@malept/cross-spawn-promise@npm:2.0.0" 215 | dependencies: 216 | cross-spawn: "npm:^7.0.1" 217 | checksum: 10c0/84d60b8d467f4252114849f0a33c3763f07898335269eec5c94978ccac9d5680e1e268d993dd1a6d25a91476f9e0992759d7e1f385f9f3a090d862f9bb949603 218 | languageName: node 219 | linkType: hard 220 | 221 | "@malept/flatpak-bundler@npm:^0.4.0": 222 | version: 0.4.0 223 | resolution: "@malept/flatpak-bundler@npm:0.4.0" 224 | dependencies: 225 | debug: "npm:^4.1.1" 226 | fs-extra: "npm:^9.0.0" 227 | lodash: "npm:^4.17.15" 228 | tmp-promise: "npm:^3.0.2" 229 | checksum: 10c0/b3c87f6482b1956411af1118c771afb39cd9a0568fbb5e86015547ff6d68d2e73a7f0d74b75a57f0a156391c347c8d0adc1037e75172b92da72b96e0a05a2f4f 230 | languageName: node 231 | linkType: hard 232 | 233 | "@npmcli/agent@npm:^3.0.0": 234 | version: 3.0.0 235 | resolution: "@npmcli/agent@npm:3.0.0" 236 | dependencies: 237 | agent-base: "npm:^7.1.0" 238 | http-proxy-agent: "npm:^7.0.0" 239 | https-proxy-agent: "npm:^7.0.1" 240 | lru-cache: "npm:^10.0.1" 241 | socks-proxy-agent: "npm:^8.0.3" 242 | checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 243 | languageName: node 244 | linkType: hard 245 | 246 | "@npmcli/fs@npm:^2.1.0": 247 | version: 2.1.2 248 | resolution: "@npmcli/fs@npm:2.1.2" 249 | dependencies: 250 | "@gar/promisify": "npm:^1.1.3" 251 | semver: "npm:^7.3.5" 252 | checksum: 10c0/c50d087733d0d8df23be24f700f104b19922a28677aa66fdbe06ff6af6431cc4a5bb1e27683cbc661a5dafa9bafdc603e6a0378121506dfcd394b2b6dd76a187 253 | languageName: node 254 | linkType: hard 255 | 256 | "@npmcli/fs@npm:^4.0.0": 257 | version: 4.0.0 258 | resolution: "@npmcli/fs@npm:4.0.0" 259 | dependencies: 260 | semver: "npm:^7.3.5" 261 | checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 262 | languageName: node 263 | linkType: hard 264 | 265 | "@npmcli/move-file@npm:^2.0.0": 266 | version: 2.0.1 267 | resolution: "@npmcli/move-file@npm:2.0.1" 268 | dependencies: 269 | mkdirp: "npm:^1.0.4" 270 | rimraf: "npm:^3.0.2" 271 | checksum: 10c0/11b2151e6d1de6f6eb23128de5aa8a429fd9097d839a5190cb77aa47a6b627022c42d50fa7c47a00f1c9f8f0c1560092b09b061855d293fa0741a2a94cfb174d 272 | languageName: node 273 | linkType: hard 274 | 275 | "@pkgjs/parseargs@npm:^0.11.0": 276 | version: 0.11.0 277 | resolution: "@pkgjs/parseargs@npm:0.11.0" 278 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd 279 | languageName: node 280 | linkType: hard 281 | 282 | "@sideway/address@npm:^4.1.5": 283 | version: 4.1.5 284 | resolution: "@sideway/address@npm:4.1.5" 285 | dependencies: 286 | "@hapi/hoek": "npm:^9.0.0" 287 | checksum: 10c0/638eb6f7e7dba209053dd6c8da74d7cc995e2b791b97644d0303a7dd3119263bcb7225a4f6804d4db2bc4f96e5a9d262975a014f58eae4d1753c27cbc96ef959 288 | languageName: node 289 | linkType: hard 290 | 291 | "@sideway/formula@npm:^3.0.1": 292 | version: 3.0.1 293 | resolution: "@sideway/formula@npm:3.0.1" 294 | checksum: 10c0/3fe81fa9662efc076bf41612b060eb9b02e846ea4bea5bd114f1662b7f1541e9dedcf98aff0d24400bcb92f113964a50e0290b86e284edbdf6346fa9b7e2bf2c 295 | languageName: node 296 | linkType: hard 297 | 298 | "@sideway/pinpoint@npm:^2.0.0": 299 | version: 2.0.0 300 | resolution: "@sideway/pinpoint@npm:2.0.0" 301 | checksum: 10c0/d2ca75dacaf69b8fc0bb8916a204e01def3105ee44d8be16c355e5f58189eb94039e15ce831f3d544f229889ccfa35562a0ce2516179f3a7ee1bbe0b71e55b36 302 | languageName: node 303 | linkType: hard 304 | 305 | "@sindresorhus/is@npm:^4.0.0": 306 | version: 4.6.0 307 | resolution: "@sindresorhus/is@npm:4.6.0" 308 | checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e 309 | languageName: node 310 | linkType: hard 311 | 312 | "@szmarczak/http-timer@npm:^4.0.5": 313 | version: 4.0.6 314 | resolution: "@szmarczak/http-timer@npm:4.0.6" 315 | dependencies: 316 | defer-to-connect: "npm:^2.0.0" 317 | checksum: 10c0/73946918c025339db68b09abd91fa3001e87fc749c619d2e9c2003a663039d4c3cb89836c98a96598b3d47dec2481284ba85355392644911f5ecd2336536697f 318 | languageName: node 319 | linkType: hard 320 | 321 | "@tootallnate/once@npm:2": 322 | version: 2.0.0 323 | resolution: "@tootallnate/once@npm:2.0.0" 324 | checksum: 10c0/073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858 325 | languageName: node 326 | linkType: hard 327 | 328 | "@tsconfig/node10@npm:^1.0.7": 329 | version: 1.0.11 330 | resolution: "@tsconfig/node10@npm:1.0.11" 331 | checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c 332 | languageName: node 333 | linkType: hard 334 | 335 | "@tsconfig/node12@npm:^1.0.7": 336 | version: 1.0.11 337 | resolution: "@tsconfig/node12@npm:1.0.11" 338 | checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 339 | languageName: node 340 | linkType: hard 341 | 342 | "@tsconfig/node14@npm:^1.0.0": 343 | version: 1.0.3 344 | resolution: "@tsconfig/node14@npm:1.0.3" 345 | checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 346 | languageName: node 347 | linkType: hard 348 | 349 | "@tsconfig/node16@npm:^1.0.2": 350 | version: 1.0.4 351 | resolution: "@tsconfig/node16@npm:1.0.4" 352 | checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb 353 | languageName: node 354 | linkType: hard 355 | 356 | "@types/cacheable-request@npm:^6.0.1": 357 | version: 6.0.3 358 | resolution: "@types/cacheable-request@npm:6.0.3" 359 | dependencies: 360 | "@types/http-cache-semantics": "npm:*" 361 | "@types/keyv": "npm:^3.1.4" 362 | "@types/node": "npm:*" 363 | "@types/responselike": "npm:^1.0.0" 364 | checksum: 10c0/10816a88e4e5b144d43c1d15a81003f86d649776c7f410c9b5e6579d0ad9d4ca71c541962fb403077388b446e41af7ae38d313e46692144985f006ac5e11fa03 365 | languageName: node 366 | linkType: hard 367 | 368 | "@types/debug@npm:^4.1.6": 369 | version: 4.1.12 370 | resolution: "@types/debug@npm:4.1.12" 371 | dependencies: 372 | "@types/ms": "npm:*" 373 | checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f 374 | languageName: node 375 | linkType: hard 376 | 377 | "@types/fs-extra@npm:9.0.13, @types/fs-extra@npm:^9.0.11": 378 | version: 9.0.13 379 | resolution: "@types/fs-extra@npm:9.0.13" 380 | dependencies: 381 | "@types/node": "npm:*" 382 | checksum: 10c0/576d4e9d382393316ed815c593f7f5c157408ec5e184521d077fcb15d514b5a985245f153ef52142b9b976cb9bd8f801850d51238153ebd0dc9e96b7a7548588 383 | languageName: node 384 | linkType: hard 385 | 386 | "@types/http-cache-semantics@npm:*": 387 | version: 4.0.4 388 | resolution: "@types/http-cache-semantics@npm:4.0.4" 389 | checksum: 10c0/51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 390 | languageName: node 391 | linkType: hard 392 | 393 | "@types/keyv@npm:^3.1.4": 394 | version: 3.1.4 395 | resolution: "@types/keyv@npm:3.1.4" 396 | dependencies: 397 | "@types/node": "npm:*" 398 | checksum: 10c0/ff8f54fc49621210291f815fe5b15d809fd7d032941b3180743440bd507ecdf08b9e844625fa346af568c84bf34114eb378dcdc3e921a08ba1e2a08d7e3c809c 399 | languageName: node 400 | linkType: hard 401 | 402 | "@types/ms@npm:*": 403 | version: 0.7.34 404 | resolution: "@types/ms@npm:0.7.34" 405 | checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc 406 | languageName: node 407 | linkType: hard 408 | 409 | "@types/node@npm:*": 410 | version: 22.10.2 411 | resolution: "@types/node@npm:22.10.2" 412 | dependencies: 413 | undici-types: "npm:~6.20.0" 414 | checksum: 10c0/2c7b71a040f1ef5320938eca8ebc946e6905caa9bbf3d5665d9b3774a8d15ea9fab1582b849a6d28c7fc80756a62c5666bc66b69f42f4d5dafd1ccb193cdb4ac 415 | languageName: node 416 | linkType: hard 417 | 418 | "@types/node@npm:^18.0.0": 419 | version: 18.19.68 420 | resolution: "@types/node@npm:18.19.68" 421 | dependencies: 422 | undici-types: "npm:~5.26.4" 423 | checksum: 10c0/8c7f01be218c6e3c1e643173662af27e9a2b568f36c0fe83e4295cf7674fe2a0abb4a1c5d7c7abd3345b9114581387dfd3f14b6d0338daebdce9273cd7ba59ab 424 | languageName: node 425 | linkType: hard 426 | 427 | "@types/node@npm:^20.9.0": 428 | version: 20.17.10 429 | resolution: "@types/node@npm:20.17.10" 430 | dependencies: 431 | undici-types: "npm:~6.19.2" 432 | checksum: 10c0/458ec725319e57d4692cbb56d81f1a90f9074cef9ec185c59e6f6c557a3d2ded57c5e443b1e82eba923d53dda4db18797fb131ee6e46fdb3d7d2f54d54aaebe3 433 | languageName: node 434 | linkType: hard 435 | 436 | "@types/plist@npm:^3.0.1": 437 | version: 3.0.5 438 | resolution: "@types/plist@npm:3.0.5" 439 | dependencies: 440 | "@types/node": "npm:*" 441 | xmlbuilder: "npm:>=11.0.1" 442 | checksum: 10c0/2a929f4482e3bea8c3288a46ae589a2ae2d01df5b7841ead7032d7baa79d79af6c875a5798c90705eea9306c2fb1544d7ed12ab3c905c5626d5dd5dc9f464b94 443 | languageName: node 444 | linkType: hard 445 | 446 | "@types/responselike@npm:^1.0.0": 447 | version: 1.0.3 448 | resolution: "@types/responselike@npm:1.0.3" 449 | dependencies: 450 | "@types/node": "npm:*" 451 | checksum: 10c0/a58ba341cb9e7d74f71810a88862da7b2a6fa42e2a1fc0ce40498f6ea1d44382f0640117057da779f74c47039f7166bf48fad02dc876f94e005c7afa50f5e129 452 | languageName: node 453 | linkType: hard 454 | 455 | "@types/verror@npm:^1.10.3": 456 | version: 1.10.10 457 | resolution: "@types/verror@npm:1.10.10" 458 | checksum: 10c0/413c0c0370ed6a796d630fbcdae20049ab3e26558c62bc5f53327830ddb0965aaadedb92f4933b28ee8fc8089e1293b742a0efbf6b264d15ce3930c6b83b0984 459 | languageName: node 460 | linkType: hard 461 | 462 | "@types/yauzl@npm:^2.9.1": 463 | version: 2.10.3 464 | resolution: "@types/yauzl@npm:2.10.3" 465 | dependencies: 466 | "@types/node": "npm:*" 467 | checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc 468 | languageName: node 469 | linkType: hard 470 | 471 | "@xmldom/xmldom@npm:^0.8.8": 472 | version: 0.8.10 473 | resolution: "@xmldom/xmldom@npm:0.8.10" 474 | checksum: 10c0/c7647c442502720182b0d65b17d45d2d95317c1c8c497626fe524bda79b4fb768a9aa4fae2da919f308e7abcff7d67c058b102a9d641097e9a57f0b80187851f 475 | languageName: node 476 | linkType: hard 477 | 478 | "abbrev@npm:^1.0.0": 479 | version: 1.1.1 480 | resolution: "abbrev@npm:1.1.1" 481 | checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 482 | languageName: node 483 | linkType: hard 484 | 485 | "abbrev@npm:^3.0.0": 486 | version: 3.0.0 487 | resolution: "abbrev@npm:3.0.0" 488 | checksum: 10c0/049704186396f571650eb7b22ed3627b77a5aedf98bb83caf2eac81ca2a3e25e795394b0464cfb2d6076df3db6a5312139eac5b6a126ca296ac53c5008069c28 489 | languageName: node 490 | linkType: hard 491 | 492 | "acorn-walk@npm:^8.1.1": 493 | version: 8.3.4 494 | resolution: "acorn-walk@npm:8.3.4" 495 | dependencies: 496 | acorn: "npm:^8.11.0" 497 | checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 498 | languageName: node 499 | linkType: hard 500 | 501 | "acorn@npm:^8.11.0, acorn@npm:^8.4.1": 502 | version: 8.14.0 503 | resolution: "acorn@npm:8.14.0" 504 | bin: 505 | acorn: bin/acorn 506 | checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 507 | languageName: node 508 | linkType: hard 509 | 510 | "agent-base@npm:6, agent-base@npm:^6.0.2": 511 | version: 6.0.2 512 | resolution: "agent-base@npm:6.0.2" 513 | dependencies: 514 | debug: "npm:4" 515 | checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 516 | languageName: node 517 | linkType: hard 518 | 519 | "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": 520 | version: 7.1.3 521 | resolution: "agent-base@npm:7.1.3" 522 | checksum: 10c0/6192b580c5b1d8fb399b9c62bf8343d76654c2dd62afcb9a52b2cf44a8b6ace1e3b704d3fe3547d91555c857d3df02603341ff2cb961b9cfe2b12f9f3c38ee11 523 | languageName: node 524 | linkType: hard 525 | 526 | "agentkeepalive@npm:^4.2.1": 527 | version: 4.5.0 528 | resolution: "agentkeepalive@npm:4.5.0" 529 | dependencies: 530 | humanize-ms: "npm:^1.2.1" 531 | checksum: 10c0/394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 532 | languageName: node 533 | linkType: hard 534 | 535 | "aggregate-error@npm:^3.0.0": 536 | version: 3.1.0 537 | resolution: "aggregate-error@npm:3.1.0" 538 | dependencies: 539 | clean-stack: "npm:^2.0.0" 540 | indent-string: "npm:^4.0.0" 541 | checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 542 | languageName: node 543 | linkType: hard 544 | 545 | "ajv-formats@npm:^2.1.1": 546 | version: 2.1.1 547 | resolution: "ajv-formats@npm:2.1.1" 548 | dependencies: 549 | ajv: "npm:^8.0.0" 550 | peerDependencies: 551 | ajv: ^8.0.0 552 | peerDependenciesMeta: 553 | ajv: 554 | optional: true 555 | checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 556 | languageName: node 557 | linkType: hard 558 | 559 | "ajv-keywords@npm:^3.4.1": 560 | version: 3.5.2 561 | resolution: "ajv-keywords@npm:3.5.2" 562 | peerDependencies: 563 | ajv: ^6.9.1 564 | checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360 565 | languageName: node 566 | linkType: hard 567 | 568 | "ajv@npm:^6.10.0, ajv@npm:^6.12.0": 569 | version: 6.12.6 570 | resolution: "ajv@npm:6.12.6" 571 | dependencies: 572 | fast-deep-equal: "npm:^3.1.1" 573 | fast-json-stable-stringify: "npm:^2.0.0" 574 | json-schema-traverse: "npm:^0.4.1" 575 | uri-js: "npm:^4.2.2" 576 | checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 577 | languageName: node 578 | linkType: hard 579 | 580 | "ajv@npm:^8.0.0, ajv@npm:^8.6.3": 581 | version: 8.17.1 582 | resolution: "ajv@npm:8.17.1" 583 | dependencies: 584 | fast-deep-equal: "npm:^3.1.3" 585 | fast-uri: "npm:^3.0.1" 586 | json-schema-traverse: "npm:^1.0.0" 587 | require-from-string: "npm:^2.0.2" 588 | checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 589 | languageName: node 590 | linkType: hard 591 | 592 | "ansi-regex@npm:^5.0.1": 593 | version: 5.0.1 594 | resolution: "ansi-regex@npm:5.0.1" 595 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 596 | languageName: node 597 | linkType: hard 598 | 599 | "ansi-regex@npm:^6.0.1": 600 | version: 6.1.0 601 | resolution: "ansi-regex@npm:6.1.0" 602 | checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc 603 | languageName: node 604 | linkType: hard 605 | 606 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": 607 | version: 4.3.0 608 | resolution: "ansi-styles@npm:4.3.0" 609 | dependencies: 610 | color-convert: "npm:^2.0.1" 611 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 612 | languageName: node 613 | linkType: hard 614 | 615 | "ansi-styles@npm:^6.1.0": 616 | version: 6.2.1 617 | resolution: "ansi-styles@npm:6.2.1" 618 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c 619 | languageName: node 620 | linkType: hard 621 | 622 | "any-base@npm:^1.1.0": 623 | version: 1.1.0 624 | resolution: "any-base@npm:1.1.0" 625 | checksum: 10c0/1255cccb2c2ead4aa182eca000fd8aa0c1991d91781ff54e26323c132117ed23eb10eef057c0dcf1d919ab30d78e5b11bd8d88940352fc84586ecb961cc76466 626 | languageName: node 627 | linkType: hard 628 | 629 | "app-builder-bin@npm:5.0.0-alpha.10": 630 | version: 5.0.0-alpha.10 631 | resolution: "app-builder-bin@npm:5.0.0-alpha.10" 632 | checksum: 10c0/1c913f09c78769454f7fffa7f0d5f3644169c3a4d258d0af0d050fc3368a57054490482b190d533c66cecf66c693281895f08f0702bdbe497199de40d235b48f 633 | languageName: node 634 | linkType: hard 635 | 636 | "app-builder-lib@npm:25.1.8": 637 | version: 25.1.8 638 | resolution: "app-builder-lib@npm:25.1.8" 639 | dependencies: 640 | "@develar/schema-utils": "npm:~2.6.5" 641 | "@electron/notarize": "npm:2.5.0" 642 | "@electron/osx-sign": "npm:1.3.1" 643 | "@electron/rebuild": "npm:3.6.1" 644 | "@electron/universal": "npm:2.0.1" 645 | "@malept/flatpak-bundler": "npm:^0.4.0" 646 | "@types/fs-extra": "npm:9.0.13" 647 | async-exit-hook: "npm:^2.0.1" 648 | bluebird-lst: "npm:^1.0.9" 649 | builder-util: "npm:25.1.7" 650 | builder-util-runtime: "npm:9.2.10" 651 | chromium-pickle-js: "npm:^0.2.0" 652 | config-file-ts: "npm:0.2.8-rc1" 653 | debug: "npm:^4.3.4" 654 | dotenv: "npm:^16.4.5" 655 | dotenv-expand: "npm:^11.0.6" 656 | ejs: "npm:^3.1.8" 657 | electron-publish: "npm:25.1.7" 658 | form-data: "npm:^4.0.0" 659 | fs-extra: "npm:^10.1.0" 660 | hosted-git-info: "npm:^4.1.0" 661 | is-ci: "npm:^3.0.0" 662 | isbinaryfile: "npm:^5.0.0" 663 | js-yaml: "npm:^4.1.0" 664 | json5: "npm:^2.2.3" 665 | lazy-val: "npm:^1.0.5" 666 | minimatch: "npm:^10.0.0" 667 | resedit: "npm:^1.7.0" 668 | sanitize-filename: "npm:^1.6.3" 669 | semver: "npm:^7.3.8" 670 | tar: "npm:^6.1.12" 671 | temp-file: "npm:^3.4.0" 672 | peerDependencies: 673 | dmg-builder: 25.1.8 674 | electron-builder-squirrel-windows: 25.1.8 675 | checksum: 10c0/e646d4b45872b51ae562788df87024cf0b0c09db66538712837043561712976dbd511ecc56c1172114f676b14518c23b78c412db22173a91cc42f23e88c556d0 676 | languageName: node 677 | linkType: hard 678 | 679 | "aproba@npm:^1.0.3 || ^2.0.0": 680 | version: 2.0.0 681 | resolution: "aproba@npm:2.0.0" 682 | checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 683 | languageName: node 684 | linkType: hard 685 | 686 | "are-we-there-yet@npm:^3.0.0": 687 | version: 3.0.1 688 | resolution: "are-we-there-yet@npm:3.0.1" 689 | dependencies: 690 | delegates: "npm:^1.0.0" 691 | readable-stream: "npm:^3.6.0" 692 | checksum: 10c0/8373f289ba42e4b5ec713bb585acdac14b5702c75f2a458dc985b9e4fa5762bc5b46b40a21b72418a3ed0cfb5e35bdc317ef1ae132f3035f633d581dd03168c3 693 | languageName: node 694 | linkType: hard 695 | 696 | "arg@npm:^4.1.0": 697 | version: 4.1.3 698 | resolution: "arg@npm:4.1.3" 699 | checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a 700 | languageName: node 701 | linkType: hard 702 | 703 | "argparse@npm:^2.0.1": 704 | version: 2.0.1 705 | resolution: "argparse@npm:2.0.1" 706 | checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e 707 | languageName: node 708 | linkType: hard 709 | 710 | "assert-plus@npm:^1.0.0": 711 | version: 1.0.0 712 | resolution: "assert-plus@npm:1.0.0" 713 | checksum: 10c0/b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 714 | languageName: node 715 | linkType: hard 716 | 717 | "astral-regex@npm:^2.0.0": 718 | version: 2.0.0 719 | resolution: "astral-regex@npm:2.0.0" 720 | checksum: 10c0/f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 721 | languageName: node 722 | linkType: hard 723 | 724 | "async-exit-hook@npm:^2.0.1": 725 | version: 2.0.1 726 | resolution: "async-exit-hook@npm:2.0.1" 727 | checksum: 10c0/81407a440ef0aab328df2369f1a9d957ee53e9a5a43e3b3dcb2be05151a68de0e4ff5e927f4718c88abf85800731f5b3f69a47a6642ce135f5e7d43ca0fce41d 728 | languageName: node 729 | linkType: hard 730 | 731 | "async@npm:^3.2.3": 732 | version: 3.2.6 733 | resolution: "async@npm:3.2.6" 734 | checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 735 | languageName: node 736 | linkType: hard 737 | 738 | "asynckit@npm:^0.4.0": 739 | version: 0.4.0 740 | resolution: "asynckit@npm:0.4.0" 741 | checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d 742 | languageName: node 743 | linkType: hard 744 | 745 | "at-least-node@npm:^1.0.0": 746 | version: 1.0.0 747 | resolution: "at-least-node@npm:1.0.0" 748 | checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef 749 | languageName: node 750 | linkType: hard 751 | 752 | "atomically@npm:^1.7.0": 753 | version: 1.7.0 754 | resolution: "atomically@npm:1.7.0" 755 | checksum: 10c0/31f5efd5d69474681268557af4024f9e10223bb6b39fdedb5f2e19405186c4b76284fac9f6c43c9af75013cad6437e93b7168268f5ddb7aaf1cfc5fdb415f227 756 | languageName: node 757 | linkType: hard 758 | 759 | "axios@npm:^1.6.1": 760 | version: 1.7.9 761 | resolution: "axios@npm:1.7.9" 762 | dependencies: 763 | follow-redirects: "npm:^1.15.6" 764 | form-data: "npm:^4.0.0" 765 | proxy-from-env: "npm:^1.1.0" 766 | checksum: 10c0/b7a41e24b59fee5f0f26c1fc844b45b17442832eb3a0fb42dd4f1430eb4abc571fe168e67913e8a1d91c993232bd1d1ab03e20e4d1fee8c6147649b576fc1b0b 767 | languageName: node 768 | linkType: hard 769 | 770 | "balanced-match@npm:^1.0.0": 771 | version: 1.0.2 772 | resolution: "balanced-match@npm:1.0.2" 773 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee 774 | languageName: node 775 | linkType: hard 776 | 777 | "base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": 778 | version: 1.5.1 779 | resolution: "base64-js@npm:1.5.1" 780 | checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf 781 | languageName: node 782 | linkType: hard 783 | 784 | "bl@npm:^4.1.0": 785 | version: 4.1.0 786 | resolution: "bl@npm:4.1.0" 787 | dependencies: 788 | buffer: "npm:^5.5.0" 789 | inherits: "npm:^2.0.4" 790 | readable-stream: "npm:^3.4.0" 791 | checksum: 10c0/02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f 792 | languageName: node 793 | linkType: hard 794 | 795 | "bluebird-lst@npm:^1.0.9": 796 | version: 1.0.9 797 | resolution: "bluebird-lst@npm:1.0.9" 798 | dependencies: 799 | bluebird: "npm:^3.5.5" 800 | checksum: 10c0/701eef18f37a53277adeacb21281a70fc4536e521fe0deb665a284f4d8480056c6932988c3dfa6a0c46b4d55f4599f716a15873f30ed5fc2470928093438f87e 801 | languageName: node 802 | linkType: hard 803 | 804 | "bluebird@npm:^3.5.5": 805 | version: 3.7.2 806 | resolution: "bluebird@npm:3.7.2" 807 | checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 808 | languageName: node 809 | linkType: hard 810 | 811 | "boolean@npm:^3.0.1": 812 | version: 3.2.0 813 | resolution: "boolean@npm:3.2.0" 814 | checksum: 10c0/6a0dc9668f6f3dda42a53c181fcbdad223169c8d87b6c4011b87a8b14a21770efb2934a778f063d7ece17280f8c06d313c87f7b834bb1dd526a867ffcd00febf 815 | languageName: node 816 | linkType: hard 817 | 818 | "brace-expansion@npm:^1.1.7": 819 | version: 1.1.11 820 | resolution: "brace-expansion@npm:1.1.11" 821 | dependencies: 822 | balanced-match: "npm:^1.0.0" 823 | concat-map: "npm:0.0.1" 824 | checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 825 | languageName: node 826 | linkType: hard 827 | 828 | "brace-expansion@npm:^2.0.1": 829 | version: 2.0.1 830 | resolution: "brace-expansion@npm:2.0.1" 831 | dependencies: 832 | balanced-match: "npm:^1.0.0" 833 | checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f 834 | languageName: node 835 | linkType: hard 836 | 837 | "buffer-crc32@npm:~0.2.3": 838 | version: 0.2.13 839 | resolution: "buffer-crc32@npm:0.2.13" 840 | checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 841 | languageName: node 842 | linkType: hard 843 | 844 | "buffer-from@npm:^1.0.0": 845 | version: 1.1.2 846 | resolution: "buffer-from@npm:1.1.2" 847 | checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 848 | languageName: node 849 | linkType: hard 850 | 851 | "buffer@npm:^5.1.0, buffer@npm:^5.5.0": 852 | version: 5.7.1 853 | resolution: "buffer@npm:5.7.1" 854 | dependencies: 855 | base64-js: "npm:^1.3.1" 856 | ieee754: "npm:^1.1.13" 857 | checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e 858 | languageName: node 859 | linkType: hard 860 | 861 | "builder-util-runtime@npm:9.2.10": 862 | version: 9.2.10 863 | resolution: "builder-util-runtime@npm:9.2.10" 864 | dependencies: 865 | debug: "npm:^4.3.4" 866 | sax: "npm:^1.2.4" 867 | checksum: 10c0/28681b8037ad0fb6a33c79532656f7eeddcf7c1d3c922253630d8794929c20a78adc6e4028111708643a1d10e25812c65ac1241886570ff12d6aa6308abe9015 868 | languageName: node 869 | linkType: hard 870 | 871 | "builder-util@npm:25.1.7": 872 | version: 25.1.7 873 | resolution: "builder-util@npm:25.1.7" 874 | dependencies: 875 | 7zip-bin: "npm:~5.2.0" 876 | "@types/debug": "npm:^4.1.6" 877 | app-builder-bin: "npm:5.0.0-alpha.10" 878 | bluebird-lst: "npm:^1.0.9" 879 | builder-util-runtime: "npm:9.2.10" 880 | chalk: "npm:^4.1.2" 881 | cross-spawn: "npm:^7.0.3" 882 | debug: "npm:^4.3.4" 883 | fs-extra: "npm:^10.1.0" 884 | http-proxy-agent: "npm:^7.0.0" 885 | https-proxy-agent: "npm:^7.0.0" 886 | is-ci: "npm:^3.0.0" 887 | js-yaml: "npm:^4.1.0" 888 | source-map-support: "npm:^0.5.19" 889 | stat-mode: "npm:^1.0.0" 890 | temp-file: "npm:^3.4.0" 891 | checksum: 10c0/30766b5fc6cacf90f20086bc2cff6a4a1b3e149a2c1072ce50de2e28c4608211aa3687a60208fd462a6ab4a3f6723a236e311aa5b6524102d75528e4a8a2b482 892 | languageName: node 893 | linkType: hard 894 | 895 | "cacache@npm:^16.1.0": 896 | version: 16.1.3 897 | resolution: "cacache@npm:16.1.3" 898 | dependencies: 899 | "@npmcli/fs": "npm:^2.1.0" 900 | "@npmcli/move-file": "npm:^2.0.0" 901 | chownr: "npm:^2.0.0" 902 | fs-minipass: "npm:^2.1.0" 903 | glob: "npm:^8.0.1" 904 | infer-owner: "npm:^1.0.4" 905 | lru-cache: "npm:^7.7.1" 906 | minipass: "npm:^3.1.6" 907 | minipass-collect: "npm:^1.0.2" 908 | minipass-flush: "npm:^1.0.5" 909 | minipass-pipeline: "npm:^1.2.4" 910 | mkdirp: "npm:^1.0.4" 911 | p-map: "npm:^4.0.0" 912 | promise-inflight: "npm:^1.0.1" 913 | rimraf: "npm:^3.0.2" 914 | ssri: "npm:^9.0.0" 915 | tar: "npm:^6.1.11" 916 | unique-filename: "npm:^2.0.0" 917 | checksum: 10c0/cdf6836e1c457d2a5616abcaf5d8240c0346b1f5bd6fdb8866b9d84b6dff0b54e973226dc11e0d099f35394213d24860d1989c8358d2a41b39eb912b3000e749 918 | languageName: node 919 | linkType: hard 920 | 921 | "cacache@npm:^19.0.1": 922 | version: 19.0.1 923 | resolution: "cacache@npm:19.0.1" 924 | dependencies: 925 | "@npmcli/fs": "npm:^4.0.0" 926 | fs-minipass: "npm:^3.0.0" 927 | glob: "npm:^10.2.2" 928 | lru-cache: "npm:^10.0.1" 929 | minipass: "npm:^7.0.3" 930 | minipass-collect: "npm:^2.0.1" 931 | minipass-flush: "npm:^1.0.5" 932 | minipass-pipeline: "npm:^1.2.4" 933 | p-map: "npm:^7.0.2" 934 | ssri: "npm:^12.0.0" 935 | tar: "npm:^7.4.3" 936 | unique-filename: "npm:^4.0.0" 937 | checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c 938 | languageName: node 939 | linkType: hard 940 | 941 | "cacheable-lookup@npm:^5.0.3": 942 | version: 5.0.4 943 | resolution: "cacheable-lookup@npm:5.0.4" 944 | checksum: 10c0/a6547fb4954b318aa831cbdd2f7b376824bc784fb1fa67610e4147099e3074726072d9af89f12efb69121415a0e1f2918a8ddd4aafcbcf4e91fbeef4a59cd42c 945 | languageName: node 946 | linkType: hard 947 | 948 | "cacheable-request@npm:^7.0.2": 949 | version: 7.0.4 950 | resolution: "cacheable-request@npm:7.0.4" 951 | dependencies: 952 | clone-response: "npm:^1.0.2" 953 | get-stream: "npm:^5.1.0" 954 | http-cache-semantics: "npm:^4.0.0" 955 | keyv: "npm:^4.0.0" 956 | lowercase-keys: "npm:^2.0.0" 957 | normalize-url: "npm:^6.0.1" 958 | responselike: "npm:^2.0.0" 959 | checksum: 10c0/0834a7d17ae71a177bc34eab06de112a43f9b5ad05ebe929bec983d890a7d9f2bc5f1aa8bb67ea2b65e07a3bc74bea35fa62dd36dbac52876afe36fdcf83da41 960 | languageName: node 961 | linkType: hard 962 | 963 | "chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": 964 | version: 4.1.2 965 | resolution: "chalk@npm:4.1.2" 966 | dependencies: 967 | ansi-styles: "npm:^4.1.0" 968 | supports-color: "npm:^7.1.0" 969 | checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 970 | languageName: node 971 | linkType: hard 972 | 973 | "chownr@npm:^2.0.0": 974 | version: 2.0.0 975 | resolution: "chownr@npm:2.0.0" 976 | checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 977 | languageName: node 978 | linkType: hard 979 | 980 | "chownr@npm:^3.0.0": 981 | version: 3.0.0 982 | resolution: "chownr@npm:3.0.0" 983 | checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 984 | languageName: node 985 | linkType: hard 986 | 987 | "chromium-pickle-js@npm:^0.2.0": 988 | version: 0.2.0 989 | resolution: "chromium-pickle-js@npm:0.2.0" 990 | checksum: 10c0/0a95bd280acdf05b0e08fa1a0e1db58c815dd24e92d639add8f494d23a8a49c26e4829721224d68f2f0e57a69047714db29bcff6deb5d029332321223416cb29 991 | languageName: node 992 | linkType: hard 993 | 994 | "ci-info@npm:^3.2.0": 995 | version: 3.9.0 996 | resolution: "ci-info@npm:3.9.0" 997 | checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a 998 | languageName: node 999 | linkType: hard 1000 | 1001 | "clean-stack@npm:^2.0.0": 1002 | version: 2.2.0 1003 | resolution: "clean-stack@npm:2.2.0" 1004 | checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 1005 | languageName: node 1006 | linkType: hard 1007 | 1008 | "cli-cursor@npm:^3.1.0": 1009 | version: 3.1.0 1010 | resolution: "cli-cursor@npm:3.1.0" 1011 | dependencies: 1012 | restore-cursor: "npm:^3.1.0" 1013 | checksum: 10c0/92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 1014 | languageName: node 1015 | linkType: hard 1016 | 1017 | "cli-spinners@npm:^2.5.0": 1018 | version: 2.9.2 1019 | resolution: "cli-spinners@npm:2.9.2" 1020 | checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 1021 | languageName: node 1022 | linkType: hard 1023 | 1024 | "cli-truncate@npm:^2.1.0": 1025 | version: 2.1.0 1026 | resolution: "cli-truncate@npm:2.1.0" 1027 | dependencies: 1028 | slice-ansi: "npm:^3.0.0" 1029 | string-width: "npm:^4.2.0" 1030 | checksum: 10c0/dfaa3df675bcef7a3254773de768712b590250420345a4c7ac151f041a4bacb4c25864b1377bee54a39b5925a030c00eabf014e312e3a4ac130952ed3b3879e9 1031 | languageName: node 1032 | linkType: hard 1033 | 1034 | "cliui@npm:^8.0.1": 1035 | version: 8.0.1 1036 | resolution: "cliui@npm:8.0.1" 1037 | dependencies: 1038 | string-width: "npm:^4.2.0" 1039 | strip-ansi: "npm:^6.0.1" 1040 | wrap-ansi: "npm:^7.0.0" 1041 | checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 1042 | languageName: node 1043 | linkType: hard 1044 | 1045 | "clone-response@npm:^1.0.2": 1046 | version: 1.0.3 1047 | resolution: "clone-response@npm:1.0.3" 1048 | dependencies: 1049 | mimic-response: "npm:^1.0.0" 1050 | checksum: 10c0/06a2b611824efb128810708baee3bd169ec9a1bf5976a5258cd7eb3f7db25f00166c6eee5961f075c7e38e194f373d4fdf86b8166ad5b9c7e82bbd2e333a6087 1051 | languageName: node 1052 | linkType: hard 1053 | 1054 | "clone@npm:^1.0.2": 1055 | version: 1.0.4 1056 | resolution: "clone@npm:1.0.4" 1057 | checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b 1058 | languageName: node 1059 | linkType: hard 1060 | 1061 | "color-convert@npm:^2.0.1": 1062 | version: 2.0.1 1063 | resolution: "color-convert@npm:2.0.1" 1064 | dependencies: 1065 | color-name: "npm:~1.1.4" 1066 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 1067 | languageName: node 1068 | linkType: hard 1069 | 1070 | "color-name@npm:~1.1.4": 1071 | version: 1.1.4 1072 | resolution: "color-name@npm:1.1.4" 1073 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 1074 | languageName: node 1075 | linkType: hard 1076 | 1077 | "color-support@npm:^1.1.3": 1078 | version: 1.1.3 1079 | resolution: "color-support@npm:1.1.3" 1080 | bin: 1081 | color-support: bin.js 1082 | checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 1083 | languageName: node 1084 | linkType: hard 1085 | 1086 | "combined-stream@npm:^1.0.8": 1087 | version: 1.0.8 1088 | resolution: "combined-stream@npm:1.0.8" 1089 | dependencies: 1090 | delayed-stream: "npm:~1.0.0" 1091 | checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 1092 | languageName: node 1093 | linkType: hard 1094 | 1095 | "commander@npm:^5.0.0": 1096 | version: 5.1.0 1097 | resolution: "commander@npm:5.1.0" 1098 | checksum: 10c0/da9d71dbe4ce039faf1fe9eac3771dca8c11d66963341f62602f7b66e36d2a3f8883407af4f9a37b1db1a55c59c0c1325f186425764c2e963dc1d67aec2a4b6d 1099 | languageName: node 1100 | linkType: hard 1101 | 1102 | "compare-version@npm:^0.1.2": 1103 | version: 0.1.2 1104 | resolution: "compare-version@npm:0.1.2" 1105 | checksum: 10c0/f38b853cf0d244c0af5f444409abde3d2198cd97312efa1dbc4ab41b520009327c2a63db59bbaf2d69288eff6167ef22be9788dc5476157d073ecdff1a8eeb2d 1106 | languageName: node 1107 | linkType: hard 1108 | 1109 | "concat-map@npm:0.0.1": 1110 | version: 0.0.1 1111 | resolution: "concat-map@npm:0.0.1" 1112 | checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f 1113 | languageName: node 1114 | linkType: hard 1115 | 1116 | "concurrently@npm:^8.0.0": 1117 | version: 8.2.2 1118 | resolution: "concurrently@npm:8.2.2" 1119 | dependencies: 1120 | chalk: "npm:^4.1.2" 1121 | date-fns: "npm:^2.30.0" 1122 | lodash: "npm:^4.17.21" 1123 | rxjs: "npm:^7.8.1" 1124 | shell-quote: "npm:^1.8.1" 1125 | spawn-command: "npm:0.0.2" 1126 | supports-color: "npm:^8.1.1" 1127 | tree-kill: "npm:^1.2.2" 1128 | yargs: "npm:^17.7.2" 1129 | bin: 1130 | conc: dist/bin/concurrently.js 1131 | concurrently: dist/bin/concurrently.js 1132 | checksum: 10c0/0e9683196fe9c071d944345d21d8f34aa6c0cc50c0dd897e95619f2f1c9eb4871dca851b2569da17888235b7335b4c821ca19deed35bebcd9a131ee5d247f34c 1133 | languageName: node 1134 | linkType: hard 1135 | 1136 | "conf@npm:^10.2.0": 1137 | version: 10.2.0 1138 | resolution: "conf@npm:10.2.0" 1139 | dependencies: 1140 | ajv: "npm:^8.6.3" 1141 | ajv-formats: "npm:^2.1.1" 1142 | atomically: "npm:^1.7.0" 1143 | debounce-fn: "npm:^4.0.0" 1144 | dot-prop: "npm:^6.0.1" 1145 | env-paths: "npm:^2.2.1" 1146 | json-schema-typed: "npm:^7.0.3" 1147 | onetime: "npm:^5.1.2" 1148 | pkg-up: "npm:^3.1.0" 1149 | semver: "npm:^7.3.5" 1150 | checksum: 10c0/d608d8c54ba7fad368eac640e77f2ce0334ec27cfd62ac39f44e361af8af9915eaa6c2ada81fbc25c3219273d972b4868bc752e8e2116cb6e12d35df72dc25a4 1151 | languageName: node 1152 | linkType: hard 1153 | 1154 | "config-file-ts@npm:0.2.8-rc1": 1155 | version: 0.2.8-rc1 1156 | resolution: "config-file-ts@npm:0.2.8-rc1" 1157 | dependencies: 1158 | glob: "npm:^10.3.12" 1159 | typescript: "npm:^5.4.3" 1160 | checksum: 10c0/9839a8e33111156665c45c4e5dd6bfa81ee80596f9dc0a078465769b951e28c0fa4bd75bb9bc56f747da285b993fb7998c4c07c0f368ab6bdb019d203764cdc8 1161 | languageName: node 1162 | linkType: hard 1163 | 1164 | "console-control-strings@npm:^1.1.0": 1165 | version: 1.1.0 1166 | resolution: "console-control-strings@npm:1.1.0" 1167 | checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 1168 | languageName: node 1169 | linkType: hard 1170 | 1171 | "core-util-is@npm:1.0.2": 1172 | version: 1.0.2 1173 | resolution: "core-util-is@npm:1.0.2" 1174 | checksum: 10c0/980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 1175 | languageName: node 1176 | linkType: hard 1177 | 1178 | "crc@npm:^3.8.0": 1179 | version: 3.8.0 1180 | resolution: "crc@npm:3.8.0" 1181 | dependencies: 1182 | buffer: "npm:^5.1.0" 1183 | checksum: 10c0/1a0da36e5f95b19cd2a7b2eab5306a08f1c47bdd22da6f761ab764e2222e8e90a877398907cea94108bd5e41a6d311ea84d7914eaca67da2baa4050bd6384b3d 1184 | languageName: node 1185 | linkType: hard 1186 | 1187 | "create-require@npm:^1.1.0": 1188 | version: 1.1.1 1189 | resolution: "create-require@npm:1.1.1" 1190 | checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 1191 | languageName: node 1192 | linkType: hard 1193 | 1194 | "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3": 1195 | version: 7.0.6 1196 | resolution: "cross-spawn@npm:7.0.6" 1197 | dependencies: 1198 | path-key: "npm:^3.1.0" 1199 | shebang-command: "npm:^2.0.0" 1200 | which: "npm:^2.0.1" 1201 | checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 1202 | languageName: node 1203 | linkType: hard 1204 | 1205 | "date-fns@npm:^2.30.0": 1206 | version: 2.30.0 1207 | resolution: "date-fns@npm:2.30.0" 1208 | dependencies: 1209 | "@babel/runtime": "npm:^7.21.0" 1210 | checksum: 10c0/e4b521fbf22bc8c3db332bbfb7b094fd3e7627de0259a9d17c7551e2d2702608a7307a449206065916538e384f37b181565447ce2637ae09828427aed9cb5581 1211 | languageName: node 1212 | linkType: hard 1213 | 1214 | "debounce-fn@npm:^4.0.0": 1215 | version: 4.0.0 1216 | resolution: "debounce-fn@npm:4.0.0" 1217 | dependencies: 1218 | mimic-fn: "npm:^3.0.0" 1219 | checksum: 10c0/bcbd8eb253bdb6ee2f32759c95973c62bc479e74efbe1a44e17acfb0ea7d4bcbe615bf7e34aab80247ac08669c1ab72f7da0f384ceb7f15c18333d31d9030384 1220 | languageName: node 1221 | linkType: hard 1222 | 1223 | "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4": 1224 | version: 4.4.0 1225 | resolution: "debug@npm:4.4.0" 1226 | dependencies: 1227 | ms: "npm:^2.1.3" 1228 | peerDependenciesMeta: 1229 | supports-color: 1230 | optional: true 1231 | checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de 1232 | languageName: node 1233 | linkType: hard 1234 | 1235 | "decompress-response@npm:^6.0.0": 1236 | version: 6.0.0 1237 | resolution: "decompress-response@npm:6.0.0" 1238 | dependencies: 1239 | mimic-response: "npm:^3.1.0" 1240 | checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e 1241 | languageName: node 1242 | linkType: hard 1243 | 1244 | "defaults@npm:^1.0.3": 1245 | version: 1.0.4 1246 | resolution: "defaults@npm:1.0.4" 1247 | dependencies: 1248 | clone: "npm:^1.0.2" 1249 | checksum: 10c0/9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a 1250 | languageName: node 1251 | linkType: hard 1252 | 1253 | "defer-to-connect@npm:^2.0.0": 1254 | version: 2.0.1 1255 | resolution: "defer-to-connect@npm:2.0.1" 1256 | checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782 1257 | languageName: node 1258 | linkType: hard 1259 | 1260 | "define-data-property@npm:^1.0.1": 1261 | version: 1.1.4 1262 | resolution: "define-data-property@npm:1.1.4" 1263 | dependencies: 1264 | es-define-property: "npm:^1.0.0" 1265 | es-errors: "npm:^1.3.0" 1266 | gopd: "npm:^1.0.1" 1267 | checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 1268 | languageName: node 1269 | linkType: hard 1270 | 1271 | "define-properties@npm:^1.2.1": 1272 | version: 1.2.1 1273 | resolution: "define-properties@npm:1.2.1" 1274 | dependencies: 1275 | define-data-property: "npm:^1.0.1" 1276 | has-property-descriptors: "npm:^1.0.0" 1277 | object-keys: "npm:^1.1.1" 1278 | checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 1279 | languageName: node 1280 | linkType: hard 1281 | 1282 | "delayed-stream@npm:~1.0.0": 1283 | version: 1.0.0 1284 | resolution: "delayed-stream@npm:1.0.0" 1285 | checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 1286 | languageName: node 1287 | linkType: hard 1288 | 1289 | "delegates@npm:^1.0.0": 1290 | version: 1.0.0 1291 | resolution: "delegates@npm:1.0.0" 1292 | checksum: 10c0/ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 1293 | languageName: node 1294 | linkType: hard 1295 | 1296 | "detect-libc@npm:^2.0.1": 1297 | version: 2.0.3 1298 | resolution: "detect-libc@npm:2.0.3" 1299 | checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7 1300 | languageName: node 1301 | linkType: hard 1302 | 1303 | "detect-node@npm:^2.0.4": 1304 | version: 2.1.0 1305 | resolution: "detect-node@npm:2.1.0" 1306 | checksum: 10c0/f039f601790f2e9d4654e499913259a798b1f5246ae24f86ab5e8bd4aaf3bce50484234c494f11fb00aecb0c6e2733aa7b1cf3f530865640b65fbbd65b2c4e09 1307 | languageName: node 1308 | linkType: hard 1309 | 1310 | "diff@npm:^4.0.1": 1311 | version: 4.0.2 1312 | resolution: "diff@npm:4.0.2" 1313 | checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 1314 | languageName: node 1315 | linkType: hard 1316 | 1317 | "dir-compare@npm:^4.2.0": 1318 | version: 4.2.0 1319 | resolution: "dir-compare@npm:4.2.0" 1320 | dependencies: 1321 | minimatch: "npm:^3.0.5" 1322 | p-limit: "npm:^3.1.0 " 1323 | checksum: 10c0/615c6f6804095f912d98d49f9b56798ceebbc83612d660b7faa6bdb4894d978c02cfa1a30853a7319a269141e4f2a2034d4988a1985b58382614a3942f94e5b2 1324 | languageName: node 1325 | linkType: hard 1326 | 1327 | "dmg-builder@npm:25.1.8": 1328 | version: 25.1.8 1329 | resolution: "dmg-builder@npm:25.1.8" 1330 | dependencies: 1331 | app-builder-lib: "npm:25.1.8" 1332 | builder-util: "npm:25.1.7" 1333 | builder-util-runtime: "npm:9.2.10" 1334 | dmg-license: "npm:^1.0.11" 1335 | fs-extra: "npm:^10.1.0" 1336 | iconv-lite: "npm:^0.6.2" 1337 | js-yaml: "npm:^4.1.0" 1338 | dependenciesMeta: 1339 | dmg-license: 1340 | optional: true 1341 | checksum: 10c0/a472aba3398664259713f4baf6557509ce0a3832ff49fae2f580e97168a33dcee8f99be2f990a15d795cd28b5477b10fbb8a17bed4f8d410c8181b4b9e2d0063 1342 | languageName: node 1343 | linkType: hard 1344 | 1345 | "dmg-license@npm:^1.0.11": 1346 | version: 1.0.11 1347 | resolution: "dmg-license@npm:1.0.11" 1348 | dependencies: 1349 | "@types/plist": "npm:^3.0.1" 1350 | "@types/verror": "npm:^1.10.3" 1351 | ajv: "npm:^6.10.0" 1352 | crc: "npm:^3.8.0" 1353 | iconv-corefoundation: "npm:^1.1.7" 1354 | plist: "npm:^3.0.4" 1355 | smart-buffer: "npm:^4.0.2" 1356 | verror: "npm:^1.10.0" 1357 | bin: 1358 | dmg-license: bin/dmg-license.js 1359 | conditions: os=darwin 1360 | languageName: node 1361 | linkType: hard 1362 | 1363 | "dot-prop@npm:^6.0.1": 1364 | version: 6.0.1 1365 | resolution: "dot-prop@npm:6.0.1" 1366 | dependencies: 1367 | is-obj: "npm:^2.0.0" 1368 | checksum: 10c0/30e51ec6408978a6951b21e7bc4938aad01a86f2fdf779efe52330205c6bb8a8ea12f35925c2029d6dc9d1df22f916f32f828ce1e9b259b1371c580541c22b5a 1369 | languageName: node 1370 | linkType: hard 1371 | 1372 | "dotenv-expand@npm:^11.0.6": 1373 | version: 11.0.7 1374 | resolution: "dotenv-expand@npm:11.0.7" 1375 | dependencies: 1376 | dotenv: "npm:^16.4.5" 1377 | checksum: 10c0/d80b8a7be085edf351270b96ac0e794bc3ddd7f36157912939577cb4d33ba6492ebee349d59798b71b90e36f498d24a2a564fb4aa00073b2ef4c2a3a49c467b1 1378 | languageName: node 1379 | linkType: hard 1380 | 1381 | "dotenv@npm:^16.4.5": 1382 | version: 16.4.7 1383 | resolution: "dotenv@npm:16.4.7" 1384 | checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462 1385 | languageName: node 1386 | linkType: hard 1387 | 1388 | "eastasianwidth@npm:^0.2.0": 1389 | version: 0.2.0 1390 | resolution: "eastasianwidth@npm:0.2.0" 1391 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 1392 | languageName: node 1393 | linkType: hard 1394 | 1395 | "ejs@npm:^3.1.8": 1396 | version: 3.1.10 1397 | resolution: "ejs@npm:3.1.10" 1398 | dependencies: 1399 | jake: "npm:^10.8.5" 1400 | bin: 1401 | ejs: bin/cli.js 1402 | checksum: 10c0/52eade9e68416ed04f7f92c492183340582a36482836b11eab97b159fcdcfdedc62233a1bf0bf5e5e1851c501f2dca0e2e9afd111db2599e4e7f53ee29429ae1 1403 | languageName: node 1404 | linkType: hard 1405 | 1406 | "electron-builder@npm:^25.1.8": 1407 | version: 25.1.8 1408 | resolution: "electron-builder@npm:25.1.8" 1409 | dependencies: 1410 | app-builder-lib: "npm:25.1.8" 1411 | builder-util: "npm:25.1.7" 1412 | builder-util-runtime: "npm:9.2.10" 1413 | chalk: "npm:^4.1.2" 1414 | dmg-builder: "npm:25.1.8" 1415 | fs-extra: "npm:^10.1.0" 1416 | is-ci: "npm:^3.0.0" 1417 | lazy-val: "npm:^1.0.5" 1418 | simple-update-notifier: "npm:2.0.0" 1419 | yargs: "npm:^17.6.2" 1420 | bin: 1421 | electron-builder: cli.js 1422 | install-app-deps: install-app-deps.js 1423 | checksum: 10c0/9602a19f8c647fb75b07e44dc856012d2b1fe1afcb257ffd24cf17e07d7ae3b51405cf31da10403965ddcc7b194d60aca6bc5d7890e367b1be2ec95219edcbe8 1424 | languageName: node 1425 | linkType: hard 1426 | 1427 | "electron-publish@npm:25.1.7": 1428 | version: 25.1.7 1429 | resolution: "electron-publish@npm:25.1.7" 1430 | dependencies: 1431 | "@types/fs-extra": "npm:^9.0.11" 1432 | builder-util: "npm:25.1.7" 1433 | builder-util-runtime: "npm:9.2.10" 1434 | chalk: "npm:^4.1.2" 1435 | fs-extra: "npm:^10.1.0" 1436 | lazy-val: "npm:^1.0.5" 1437 | mime: "npm:^2.5.2" 1438 | checksum: 10c0/cdb58049c24b38ba7879514224cfd2245fd364e125391ed6e12eeed2a96d95ede192a1ad961ff1287f344ca7b3b62e1096ce4a4c41be40fd402d0688fcf5c505 1439 | languageName: node 1440 | linkType: hard 1441 | 1442 | "electron-store@npm:^8.0.0": 1443 | version: 8.2.0 1444 | resolution: "electron-store@npm:8.2.0" 1445 | dependencies: 1446 | conf: "npm:^10.2.0" 1447 | type-fest: "npm:^2.17.0" 1448 | checksum: 10c0/a4d19827e96ab67bf6c2a375910f51b147b23f4a0468da5cfeeb069acdfdbcd3a9f5650248a62a05aa0967149e4d1c47f2d0ba7582205e5eb38952c93b6882e1 1449 | languageName: node 1450 | linkType: hard 1451 | 1452 | "electron@npm:^33.2.1": 1453 | version: 33.2.1 1454 | resolution: "electron@npm:33.2.1" 1455 | dependencies: 1456 | "@electron/get": "npm:^2.0.0" 1457 | "@types/node": "npm:^20.9.0" 1458 | extract-zip: "npm:^2.0.1" 1459 | bin: 1460 | electron: cli.js 1461 | checksum: 10c0/25111ab9b48bf95a24b916292c8d4f4d05309b12823d5e942636f377a8033c9c47d466f686895bfe4619b80d222470a439d9b0227516740c8e19fa14991b880b 1462 | languageName: node 1463 | linkType: hard 1464 | 1465 | "emoji-regex@npm:^8.0.0": 1466 | version: 8.0.0 1467 | resolution: "emoji-regex@npm:8.0.0" 1468 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 1469 | languageName: node 1470 | linkType: hard 1471 | 1472 | "emoji-regex@npm:^9.2.2": 1473 | version: 9.2.2 1474 | resolution: "emoji-regex@npm:9.2.2" 1475 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 1476 | languageName: node 1477 | linkType: hard 1478 | 1479 | "encoding@npm:^0.1.13": 1480 | version: 0.1.13 1481 | resolution: "encoding@npm:0.1.13" 1482 | dependencies: 1483 | iconv-lite: "npm:^0.6.2" 1484 | checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 1485 | languageName: node 1486 | linkType: hard 1487 | 1488 | "end-of-stream@npm:^1.1.0": 1489 | version: 1.4.4 1490 | resolution: "end-of-stream@npm:1.4.4" 1491 | dependencies: 1492 | once: "npm:^1.4.0" 1493 | checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 1494 | languageName: node 1495 | linkType: hard 1496 | 1497 | "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": 1498 | version: 2.2.1 1499 | resolution: "env-paths@npm:2.2.1" 1500 | checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 1501 | languageName: node 1502 | linkType: hard 1503 | 1504 | "err-code@npm:^2.0.2": 1505 | version: 2.0.3 1506 | resolution: "err-code@npm:2.0.3" 1507 | checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 1508 | languageName: node 1509 | linkType: hard 1510 | 1511 | "es-define-property@npm:^1.0.0": 1512 | version: 1.0.1 1513 | resolution: "es-define-property@npm:1.0.1" 1514 | checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c 1515 | languageName: node 1516 | linkType: hard 1517 | 1518 | "es-errors@npm:^1.3.0": 1519 | version: 1.3.0 1520 | resolution: "es-errors@npm:1.3.0" 1521 | checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 1522 | languageName: node 1523 | linkType: hard 1524 | 1525 | "es6-error@npm:^4.1.1": 1526 | version: 4.1.1 1527 | resolution: "es6-error@npm:4.1.1" 1528 | checksum: 10c0/357663fb1e845c047d548c3d30f86e005db71e122678f4184ced0693f634688c3f3ef2d7de7d4af732f734de01f528b05954e270f06aa7d133679fb9fe6600ef 1529 | languageName: node 1530 | linkType: hard 1531 | 1532 | "escalade@npm:^3.1.1": 1533 | version: 3.2.0 1534 | resolution: "escalade@npm:3.2.0" 1535 | checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 1536 | languageName: node 1537 | linkType: hard 1538 | 1539 | "escape-string-regexp@npm:^4.0.0": 1540 | version: 4.0.0 1541 | resolution: "escape-string-regexp@npm:4.0.0" 1542 | checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 1543 | languageName: node 1544 | linkType: hard 1545 | 1546 | "exponential-backoff@npm:^3.1.1": 1547 | version: 3.1.1 1548 | resolution: "exponential-backoff@npm:3.1.1" 1549 | checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 1550 | languageName: node 1551 | linkType: hard 1552 | 1553 | "extract-zip@npm:^2.0.1": 1554 | version: 2.0.1 1555 | resolution: "extract-zip@npm:2.0.1" 1556 | dependencies: 1557 | "@types/yauzl": "npm:^2.9.1" 1558 | debug: "npm:^4.1.1" 1559 | get-stream: "npm:^5.1.0" 1560 | yauzl: "npm:^2.10.0" 1561 | dependenciesMeta: 1562 | "@types/yauzl": 1563 | optional: true 1564 | bin: 1565 | extract-zip: cli.js 1566 | checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee 1567 | languageName: node 1568 | linkType: hard 1569 | 1570 | "extsprintf@npm:^1.2.0": 1571 | version: 1.4.1 1572 | resolution: "extsprintf@npm:1.4.1" 1573 | checksum: 10c0/e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 1574 | languageName: node 1575 | linkType: hard 1576 | 1577 | "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": 1578 | version: 3.1.3 1579 | resolution: "fast-deep-equal@npm:3.1.3" 1580 | checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 1581 | languageName: node 1582 | linkType: hard 1583 | 1584 | "fast-json-stable-stringify@npm:^2.0.0": 1585 | version: 2.1.0 1586 | resolution: "fast-json-stable-stringify@npm:2.1.0" 1587 | checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b 1588 | languageName: node 1589 | linkType: hard 1590 | 1591 | "fast-uri@npm:^3.0.1": 1592 | version: 3.0.3 1593 | resolution: "fast-uri@npm:3.0.3" 1594 | checksum: 10c0/4b2c5ce681a062425eae4f15cdc8fc151fd310b2f69b1f96680677820a8b49c3cd6e80661a406e19d50f0c40a3f8bffdd458791baf66f4a879d80be28e10a320 1595 | languageName: node 1596 | linkType: hard 1597 | 1598 | "fd-slicer@npm:~1.1.0": 1599 | version: 1.1.0 1600 | resolution: "fd-slicer@npm:1.1.0" 1601 | dependencies: 1602 | pend: "npm:~1.2.0" 1603 | checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e 1604 | languageName: node 1605 | linkType: hard 1606 | 1607 | "filelist@npm:^1.0.4": 1608 | version: 1.0.4 1609 | resolution: "filelist@npm:1.0.4" 1610 | dependencies: 1611 | minimatch: "npm:^5.0.1" 1612 | checksum: 10c0/426b1de3944a3d153b053f1c0ebfd02dccd0308a4f9e832ad220707a6d1f1b3c9784d6cadf6b2f68f09a57565f63ebc7bcdc913ccf8012d834f472c46e596f41 1613 | languageName: node 1614 | linkType: hard 1615 | 1616 | "find-up@npm:^3.0.0": 1617 | version: 3.0.0 1618 | resolution: "find-up@npm:3.0.0" 1619 | dependencies: 1620 | locate-path: "npm:^3.0.0" 1621 | checksum: 10c0/2c2e7d0a26db858e2f624f39038c74739e38306dee42b45f404f770db357947be9d0d587f1cac72d20c114deb38aa57316e879eb0a78b17b46da7dab0a3bd6e3 1622 | languageName: node 1623 | linkType: hard 1624 | 1625 | "follow-redirects@npm:^1.15.6": 1626 | version: 1.15.9 1627 | resolution: "follow-redirects@npm:1.15.9" 1628 | peerDependenciesMeta: 1629 | debug: 1630 | optional: true 1631 | checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f 1632 | languageName: node 1633 | linkType: hard 1634 | 1635 | "foreground-child@npm:^3.1.0": 1636 | version: 3.3.0 1637 | resolution: "foreground-child@npm:3.3.0" 1638 | dependencies: 1639 | cross-spawn: "npm:^7.0.0" 1640 | signal-exit: "npm:^4.0.1" 1641 | checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 1642 | languageName: node 1643 | linkType: hard 1644 | 1645 | "form-data@npm:^4.0.0": 1646 | version: 4.0.1 1647 | resolution: "form-data@npm:4.0.1" 1648 | dependencies: 1649 | asynckit: "npm:^0.4.0" 1650 | combined-stream: "npm:^1.0.8" 1651 | mime-types: "npm:^2.1.12" 1652 | checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 1653 | languageName: node 1654 | linkType: hard 1655 | 1656 | "fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": 1657 | version: 10.1.0 1658 | resolution: "fs-extra@npm:10.1.0" 1659 | dependencies: 1660 | graceful-fs: "npm:^4.2.0" 1661 | jsonfile: "npm:^6.0.1" 1662 | universalify: "npm:^2.0.0" 1663 | checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e 1664 | languageName: node 1665 | linkType: hard 1666 | 1667 | "fs-extra@npm:^11.1.1": 1668 | version: 11.2.0 1669 | resolution: "fs-extra@npm:11.2.0" 1670 | dependencies: 1671 | graceful-fs: "npm:^4.2.0" 1672 | jsonfile: "npm:^6.0.1" 1673 | universalify: "npm:^2.0.0" 1674 | checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 1675 | languageName: node 1676 | linkType: hard 1677 | 1678 | "fs-extra@npm:^8.1.0": 1679 | version: 8.1.0 1680 | resolution: "fs-extra@npm:8.1.0" 1681 | dependencies: 1682 | graceful-fs: "npm:^4.2.0" 1683 | jsonfile: "npm:^4.0.0" 1684 | universalify: "npm:^0.1.0" 1685 | checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 1686 | languageName: node 1687 | linkType: hard 1688 | 1689 | "fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1": 1690 | version: 9.1.0 1691 | resolution: "fs-extra@npm:9.1.0" 1692 | dependencies: 1693 | at-least-node: "npm:^1.0.0" 1694 | graceful-fs: "npm:^4.2.0" 1695 | jsonfile: "npm:^6.0.1" 1696 | universalify: "npm:^2.0.0" 1697 | checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 1698 | languageName: node 1699 | linkType: hard 1700 | 1701 | "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": 1702 | version: 2.1.0 1703 | resolution: "fs-minipass@npm:2.1.0" 1704 | dependencies: 1705 | minipass: "npm:^3.0.0" 1706 | checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 1707 | languageName: node 1708 | linkType: hard 1709 | 1710 | "fs-minipass@npm:^3.0.0": 1711 | version: 3.0.3 1712 | resolution: "fs-minipass@npm:3.0.3" 1713 | dependencies: 1714 | minipass: "npm:^7.0.3" 1715 | checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 1716 | languageName: node 1717 | linkType: hard 1718 | 1719 | "fs.realpath@npm:^1.0.0": 1720 | version: 1.0.0 1721 | resolution: "fs.realpath@npm:1.0.0" 1722 | checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 1723 | languageName: node 1724 | linkType: hard 1725 | 1726 | "gauge@npm:^4.0.3": 1727 | version: 4.0.4 1728 | resolution: "gauge@npm:4.0.4" 1729 | dependencies: 1730 | aproba: "npm:^1.0.3 || ^2.0.0" 1731 | color-support: "npm:^1.1.3" 1732 | console-control-strings: "npm:^1.1.0" 1733 | has-unicode: "npm:^2.0.1" 1734 | signal-exit: "npm:^3.0.7" 1735 | string-width: "npm:^4.2.3" 1736 | strip-ansi: "npm:^6.0.1" 1737 | wide-align: "npm:^1.1.5" 1738 | checksum: 10c0/ef10d7981113d69225135f994c9f8c4369d945e64a8fc721d655a3a38421b738c9fe899951721d1b47b73c41fdb5404ac87cc8903b2ecbed95d2800363e7e58c 1739 | languageName: node 1740 | linkType: hard 1741 | 1742 | "get-caller-file@npm:^2.0.5": 1743 | version: 2.0.5 1744 | resolution: "get-caller-file@npm:2.0.5" 1745 | checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde 1746 | languageName: node 1747 | linkType: hard 1748 | 1749 | "get-stream@npm:^5.1.0": 1750 | version: 5.2.0 1751 | resolution: "get-stream@npm:5.2.0" 1752 | dependencies: 1753 | pump: "npm:^3.0.0" 1754 | checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 1755 | languageName: node 1756 | linkType: hard 1757 | 1758 | "glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.12, glob@npm:^10.3.7": 1759 | version: 10.4.5 1760 | resolution: "glob@npm:10.4.5" 1761 | dependencies: 1762 | foreground-child: "npm:^3.1.0" 1763 | jackspeak: "npm:^3.1.2" 1764 | minimatch: "npm:^9.0.4" 1765 | minipass: "npm:^7.1.2" 1766 | package-json-from-dist: "npm:^1.0.0" 1767 | path-scurry: "npm:^1.11.1" 1768 | bin: 1769 | glob: dist/esm/bin.mjs 1770 | checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e 1771 | languageName: node 1772 | linkType: hard 1773 | 1774 | "glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": 1775 | version: 7.2.3 1776 | resolution: "glob@npm:7.2.3" 1777 | dependencies: 1778 | fs.realpath: "npm:^1.0.0" 1779 | inflight: "npm:^1.0.4" 1780 | inherits: "npm:2" 1781 | minimatch: "npm:^3.1.1" 1782 | once: "npm:^1.3.0" 1783 | path-is-absolute: "npm:^1.0.0" 1784 | checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe 1785 | languageName: node 1786 | linkType: hard 1787 | 1788 | "glob@npm:^8.0.1": 1789 | version: 8.1.0 1790 | resolution: "glob@npm:8.1.0" 1791 | dependencies: 1792 | fs.realpath: "npm:^1.0.0" 1793 | inflight: "npm:^1.0.4" 1794 | inherits: "npm:2" 1795 | minimatch: "npm:^5.0.1" 1796 | once: "npm:^1.3.0" 1797 | checksum: 10c0/cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f 1798 | languageName: node 1799 | linkType: hard 1800 | 1801 | "global-agent@npm:^3.0.0": 1802 | version: 3.0.0 1803 | resolution: "global-agent@npm:3.0.0" 1804 | dependencies: 1805 | boolean: "npm:^3.0.1" 1806 | es6-error: "npm:^4.1.1" 1807 | matcher: "npm:^3.0.0" 1808 | roarr: "npm:^2.15.3" 1809 | semver: "npm:^7.3.2" 1810 | serialize-error: "npm:^7.0.1" 1811 | checksum: 10c0/bb8750d026b25da437072762fd739098bad92ff72f66483c3929db4579e072f5523960f7e7fd70ee0d75db48898067b5dc1c9c1d17888128cff008fcc34d1bd3 1812 | languageName: node 1813 | linkType: hard 1814 | 1815 | "globalthis@npm:^1.0.1": 1816 | version: 1.0.4 1817 | resolution: "globalthis@npm:1.0.4" 1818 | dependencies: 1819 | define-properties: "npm:^1.2.1" 1820 | gopd: "npm:^1.0.1" 1821 | checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846 1822 | languageName: node 1823 | linkType: hard 1824 | 1825 | "gopd@npm:^1.0.1": 1826 | version: 1.2.0 1827 | resolution: "gopd@npm:1.2.0" 1828 | checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead 1829 | languageName: node 1830 | linkType: hard 1831 | 1832 | "got@npm:^11.7.0, got@npm:^11.8.5": 1833 | version: 11.8.6 1834 | resolution: "got@npm:11.8.6" 1835 | dependencies: 1836 | "@sindresorhus/is": "npm:^4.0.0" 1837 | "@szmarczak/http-timer": "npm:^4.0.5" 1838 | "@types/cacheable-request": "npm:^6.0.1" 1839 | "@types/responselike": "npm:^1.0.0" 1840 | cacheable-lookup: "npm:^5.0.3" 1841 | cacheable-request: "npm:^7.0.2" 1842 | decompress-response: "npm:^6.0.0" 1843 | http2-wrapper: "npm:^1.0.0-beta.5.2" 1844 | lowercase-keys: "npm:^2.0.0" 1845 | p-cancelable: "npm:^2.0.0" 1846 | responselike: "npm:^2.0.0" 1847 | checksum: 10c0/754dd44877e5cf6183f1e989ff01c648d9a4719e357457bd4c78943911168881f1cfb7b2cb15d885e2105b3ad313adb8f017a67265dd7ade771afdb261ee8cb1 1848 | languageName: node 1849 | linkType: hard 1850 | 1851 | "graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": 1852 | version: 4.2.11 1853 | resolution: "graceful-fs@npm:4.2.11" 1854 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 1855 | languageName: node 1856 | linkType: hard 1857 | 1858 | "has-flag@npm:^4.0.0": 1859 | version: 4.0.0 1860 | resolution: "has-flag@npm:4.0.0" 1861 | checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 1862 | languageName: node 1863 | linkType: hard 1864 | 1865 | "has-property-descriptors@npm:^1.0.0": 1866 | version: 1.0.2 1867 | resolution: "has-property-descriptors@npm:1.0.2" 1868 | dependencies: 1869 | es-define-property: "npm:^1.0.0" 1870 | checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 1871 | languageName: node 1872 | linkType: hard 1873 | 1874 | "has-unicode@npm:^2.0.1": 1875 | version: 2.0.1 1876 | resolution: "has-unicode@npm:2.0.1" 1877 | checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c 1878 | languageName: node 1879 | linkType: hard 1880 | 1881 | "hosted-git-info@npm:^4.1.0": 1882 | version: 4.1.0 1883 | resolution: "hosted-git-info@npm:4.1.0" 1884 | dependencies: 1885 | lru-cache: "npm:^6.0.0" 1886 | checksum: 10c0/150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07 1887 | languageName: node 1888 | linkType: hard 1889 | 1890 | "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": 1891 | version: 4.1.1 1892 | resolution: "http-cache-semantics@npm:4.1.1" 1893 | checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc 1894 | languageName: node 1895 | linkType: hard 1896 | 1897 | "http-proxy-agent@npm:^5.0.0": 1898 | version: 5.0.0 1899 | resolution: "http-proxy-agent@npm:5.0.0" 1900 | dependencies: 1901 | "@tootallnate/once": "npm:2" 1902 | agent-base: "npm:6" 1903 | debug: "npm:4" 1904 | checksum: 10c0/32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32 1905 | languageName: node 1906 | linkType: hard 1907 | 1908 | "http-proxy-agent@npm:^7.0.0": 1909 | version: 7.0.2 1910 | resolution: "http-proxy-agent@npm:7.0.2" 1911 | dependencies: 1912 | agent-base: "npm:^7.1.0" 1913 | debug: "npm:^4.3.4" 1914 | checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 1915 | languageName: node 1916 | linkType: hard 1917 | 1918 | "http2-wrapper@npm:^1.0.0-beta.5.2": 1919 | version: 1.0.3 1920 | resolution: "http2-wrapper@npm:1.0.3" 1921 | dependencies: 1922 | quick-lru: "npm:^5.1.1" 1923 | resolve-alpn: "npm:^1.0.0" 1924 | checksum: 10c0/6a9b72a033e9812e1476b9d776ce2f387bc94bc46c88aea0d5dab6bd47d0a539b8178830e77054dd26d1142c866d515a28a4dc7c3ff4232c88ff2ebe4f5d12d1 1925 | languageName: node 1926 | linkType: hard 1927 | 1928 | "https-proxy-agent@npm:^5.0.0": 1929 | version: 5.0.1 1930 | resolution: "https-proxy-agent@npm:5.0.1" 1931 | dependencies: 1932 | agent-base: "npm:6" 1933 | debug: "npm:4" 1934 | checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 1935 | languageName: node 1936 | linkType: hard 1937 | 1938 | "https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1": 1939 | version: 7.0.6 1940 | resolution: "https-proxy-agent@npm:7.0.6" 1941 | dependencies: 1942 | agent-base: "npm:^7.1.2" 1943 | debug: "npm:4" 1944 | checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac 1945 | languageName: node 1946 | linkType: hard 1947 | 1948 | "humanize-ms@npm:^1.2.1": 1949 | version: 1.2.1 1950 | resolution: "humanize-ms@npm:1.2.1" 1951 | dependencies: 1952 | ms: "npm:^2.0.0" 1953 | checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a 1954 | languageName: node 1955 | linkType: hard 1956 | 1957 | "iconv-corefoundation@npm:^1.1.7": 1958 | version: 1.1.7 1959 | resolution: "iconv-corefoundation@npm:1.1.7" 1960 | dependencies: 1961 | cli-truncate: "npm:^2.1.0" 1962 | node-addon-api: "npm:^1.6.3" 1963 | conditions: os=darwin 1964 | languageName: node 1965 | linkType: hard 1966 | 1967 | "iconv-lite@npm:^0.6.2": 1968 | version: 0.6.3 1969 | resolution: "iconv-lite@npm:0.6.3" 1970 | dependencies: 1971 | safer-buffer: "npm:>= 2.1.2 < 3.0.0" 1972 | checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 1973 | languageName: node 1974 | linkType: hard 1975 | 1976 | "ieee754@npm:^1.1.13": 1977 | version: 1.2.1 1978 | resolution: "ieee754@npm:1.2.1" 1979 | checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb 1980 | languageName: node 1981 | linkType: hard 1982 | 1983 | "imurmurhash@npm:^0.1.4": 1984 | version: 0.1.4 1985 | resolution: "imurmurhash@npm:0.1.4" 1986 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 1987 | languageName: node 1988 | linkType: hard 1989 | 1990 | "indent-string@npm:^4.0.0": 1991 | version: 4.0.0 1992 | resolution: "indent-string@npm:4.0.0" 1993 | checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f 1994 | languageName: node 1995 | linkType: hard 1996 | 1997 | "infer-owner@npm:^1.0.4": 1998 | version: 1.0.4 1999 | resolution: "infer-owner@npm:1.0.4" 2000 | checksum: 10c0/a7b241e3149c26e37474e3435779487f42f36883711f198c45794703c7556bc38af224088bd4d1a221a45b8208ae2c2bcf86200383621434d0c099304481c5b9 2001 | languageName: node 2002 | linkType: hard 2003 | 2004 | "inflight@npm:^1.0.4": 2005 | version: 1.0.6 2006 | resolution: "inflight@npm:1.0.6" 2007 | dependencies: 2008 | once: "npm:^1.3.0" 2009 | wrappy: "npm:1" 2010 | checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 2011 | languageName: node 2012 | linkType: hard 2013 | 2014 | "inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": 2015 | version: 2.0.4 2016 | resolution: "inherits@npm:2.0.4" 2017 | checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 2018 | languageName: node 2019 | linkType: hard 2020 | 2021 | "ip-address@npm:^9.0.5": 2022 | version: 9.0.5 2023 | resolution: "ip-address@npm:9.0.5" 2024 | dependencies: 2025 | jsbn: "npm:1.1.0" 2026 | sprintf-js: "npm:^1.1.3" 2027 | checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc 2028 | languageName: node 2029 | linkType: hard 2030 | 2031 | "is-ci@npm:^3.0.0": 2032 | version: 3.0.1 2033 | resolution: "is-ci@npm:3.0.1" 2034 | dependencies: 2035 | ci-info: "npm:^3.2.0" 2036 | bin: 2037 | is-ci: bin.js 2038 | checksum: 10c0/0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051 2039 | languageName: node 2040 | linkType: hard 2041 | 2042 | "is-fullwidth-code-point@npm:^3.0.0": 2043 | version: 3.0.0 2044 | resolution: "is-fullwidth-code-point@npm:3.0.0" 2045 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc 2046 | languageName: node 2047 | linkType: hard 2048 | 2049 | "is-interactive@npm:^1.0.0": 2050 | version: 1.0.0 2051 | resolution: "is-interactive@npm:1.0.0" 2052 | checksum: 10c0/dd47904dbf286cd20aa58c5192161be1a67138485b9836d5a70433b21a45442e9611b8498b8ab1f839fc962c7620667a50535fdfb4a6bc7989b8858645c06b4d 2053 | languageName: node 2054 | linkType: hard 2055 | 2056 | "is-lambda@npm:^1.0.1": 2057 | version: 1.0.1 2058 | resolution: "is-lambda@npm:1.0.1" 2059 | checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d 2060 | languageName: node 2061 | linkType: hard 2062 | 2063 | "is-obj@npm:^2.0.0": 2064 | version: 2.0.0 2065 | resolution: "is-obj@npm:2.0.0" 2066 | checksum: 10c0/85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e 2067 | languageName: node 2068 | linkType: hard 2069 | 2070 | "is-unicode-supported@npm:^0.1.0": 2071 | version: 0.1.0 2072 | resolution: "is-unicode-supported@npm:0.1.0" 2073 | checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 2074 | languageName: node 2075 | linkType: hard 2076 | 2077 | "isbinaryfile@npm:^4.0.8": 2078 | version: 4.0.10 2079 | resolution: "isbinaryfile@npm:4.0.10" 2080 | checksum: 10c0/0703d8cfeb69ed79e6d173120f327450011a066755150a6bbf97ffecec1069a5f2092777868315b21359098c84b54984871cad1abce877ad9141fb2caf3dcabf 2081 | languageName: node 2082 | linkType: hard 2083 | 2084 | "isbinaryfile@npm:^5.0.0": 2085 | version: 5.0.4 2086 | resolution: "isbinaryfile@npm:5.0.4" 2087 | checksum: 10c0/fea255bfae67ff4827e8dd2238d6700d4803d02b4d892b72eeac4541487284e901251a3427966af5018d4eb29fa155b036dcb75dd217634146a072991afbc2c2 2088 | languageName: node 2089 | linkType: hard 2090 | 2091 | "isexe@npm:^2.0.0": 2092 | version: 2.0.0 2093 | resolution: "isexe@npm:2.0.0" 2094 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d 2095 | languageName: node 2096 | linkType: hard 2097 | 2098 | "isexe@npm:^3.1.1": 2099 | version: 3.1.1 2100 | resolution: "isexe@npm:3.1.1" 2101 | checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 2102 | languageName: node 2103 | linkType: hard 2104 | 2105 | "jackspeak@npm:^3.1.2": 2106 | version: 3.4.3 2107 | resolution: "jackspeak@npm:3.4.3" 2108 | dependencies: 2109 | "@isaacs/cliui": "npm:^8.0.2" 2110 | "@pkgjs/parseargs": "npm:^0.11.0" 2111 | dependenciesMeta: 2112 | "@pkgjs/parseargs": 2113 | optional: true 2114 | checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 2115 | languageName: node 2116 | linkType: hard 2117 | 2118 | "jake@npm:^10.8.5": 2119 | version: 10.9.2 2120 | resolution: "jake@npm:10.9.2" 2121 | dependencies: 2122 | async: "npm:^3.2.3" 2123 | chalk: "npm:^4.0.2" 2124 | filelist: "npm:^1.0.4" 2125 | minimatch: "npm:^3.1.2" 2126 | bin: 2127 | jake: bin/cli.js 2128 | checksum: 10c0/c4597b5ed9b6a908252feab296485a4f87cba9e26d6c20e0ca144fb69e0c40203d34a2efddb33b3d297b8bd59605e6c1f44f6221ca1e10e69175ecbf3ff5fe31 2129 | languageName: node 2130 | linkType: hard 2131 | 2132 | "joi@npm:^17.11.0": 2133 | version: 17.13.3 2134 | resolution: "joi@npm:17.13.3" 2135 | dependencies: 2136 | "@hapi/hoek": "npm:^9.3.0" 2137 | "@hapi/topo": "npm:^5.1.0" 2138 | "@sideway/address": "npm:^4.1.5" 2139 | "@sideway/formula": "npm:^3.0.1" 2140 | "@sideway/pinpoint": "npm:^2.0.0" 2141 | checksum: 10c0/9262aef1da3f1bec5b03caf50c46368899fe03b8ff26cbe3d53af4584dd1049079fc97230bbf1500b6149db7cc765b9ee45f0deb24bb6fc3fa06229d7148c17f 2142 | languageName: node 2143 | linkType: hard 2144 | 2145 | "js-yaml@npm:^4.1.0": 2146 | version: 4.1.0 2147 | resolution: "js-yaml@npm:4.1.0" 2148 | dependencies: 2149 | argparse: "npm:^2.0.1" 2150 | bin: 2151 | js-yaml: bin/js-yaml.js 2152 | checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f 2153 | languageName: node 2154 | linkType: hard 2155 | 2156 | "jsbn@npm:1.1.0": 2157 | version: 1.1.0 2158 | resolution: "jsbn@npm:1.1.0" 2159 | checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 2160 | languageName: node 2161 | linkType: hard 2162 | 2163 | "json-buffer@npm:3.0.1": 2164 | version: 3.0.1 2165 | resolution: "json-buffer@npm:3.0.1" 2166 | checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 2167 | languageName: node 2168 | linkType: hard 2169 | 2170 | "json-schema-traverse@npm:^0.4.1": 2171 | version: 0.4.1 2172 | resolution: "json-schema-traverse@npm:0.4.1" 2173 | checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce 2174 | languageName: node 2175 | linkType: hard 2176 | 2177 | "json-schema-traverse@npm:^1.0.0": 2178 | version: 1.0.0 2179 | resolution: "json-schema-traverse@npm:1.0.0" 2180 | checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 2181 | languageName: node 2182 | linkType: hard 2183 | 2184 | "json-schema-typed@npm:^7.0.3": 2185 | version: 7.0.3 2186 | resolution: "json-schema-typed@npm:7.0.3" 2187 | checksum: 10c0/b4a6d984dd91f9aba72df8768c5ced99e789b8e17b55ee24afb3a687ce55b70a7b3f4360cac67939e1ff98e136ca26f3aa530635c13ef371ae5edc48b69a65f6 2188 | languageName: node 2189 | linkType: hard 2190 | 2191 | "json-stringify-safe@npm:^5.0.1": 2192 | version: 5.0.1 2193 | resolution: "json-stringify-safe@npm:5.0.1" 2194 | checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 2195 | languageName: node 2196 | linkType: hard 2197 | 2198 | "json5@npm:^2.2.3": 2199 | version: 2.2.3 2200 | resolution: "json5@npm:2.2.3" 2201 | bin: 2202 | json5: lib/cli.js 2203 | checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c 2204 | languageName: node 2205 | linkType: hard 2206 | 2207 | "jsonfile@npm:^4.0.0": 2208 | version: 4.0.0 2209 | resolution: "jsonfile@npm:4.0.0" 2210 | dependencies: 2211 | graceful-fs: "npm:^4.1.6" 2212 | dependenciesMeta: 2213 | graceful-fs: 2214 | optional: true 2215 | checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 2216 | languageName: node 2217 | linkType: hard 2218 | 2219 | "jsonfile@npm:^6.0.1": 2220 | version: 6.1.0 2221 | resolution: "jsonfile@npm:6.1.0" 2222 | dependencies: 2223 | graceful-fs: "npm:^4.1.6" 2224 | universalify: "npm:^2.0.0" 2225 | dependenciesMeta: 2226 | graceful-fs: 2227 | optional: true 2228 | checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 2229 | languageName: node 2230 | linkType: hard 2231 | 2232 | "keyv@npm:^4.0.0": 2233 | version: 4.5.4 2234 | resolution: "keyv@npm:4.5.4" 2235 | dependencies: 2236 | json-buffer: "npm:3.0.1" 2237 | checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e 2238 | languageName: node 2239 | linkType: hard 2240 | 2241 | "lazy-val@npm:^1.0.5": 2242 | version: 1.0.5 2243 | resolution: "lazy-val@npm:1.0.5" 2244 | checksum: 10c0/28ba7a0e704895a444eed47d110274090f485b991f2ea6fff2ab0878c529c53f60f2eb2d944cbbd68b91408e7455eabc62861c48289d4757fa9c818b97454f24 2245 | languageName: node 2246 | linkType: hard 2247 | 2248 | "locate-path@npm:^3.0.0": 2249 | version: 3.0.0 2250 | resolution: "locate-path@npm:3.0.0" 2251 | dependencies: 2252 | p-locate: "npm:^3.0.0" 2253 | path-exists: "npm:^3.0.0" 2254 | checksum: 10c0/3db394b7829a7fe2f4fbdd25d3c4689b85f003c318c5da4052c7e56eed697da8f1bce5294f685c69ff76e32cba7a33629d94396976f6d05fb7f4c755c5e2ae8b 2255 | languageName: node 2256 | linkType: hard 2257 | 2258 | "lodash@npm:^4.17.15, lodash@npm:^4.17.21": 2259 | version: 4.17.21 2260 | resolution: "lodash@npm:4.17.21" 2261 | checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c 2262 | languageName: node 2263 | linkType: hard 2264 | 2265 | "log-symbols@npm:^4.1.0": 2266 | version: 4.1.0 2267 | resolution: "log-symbols@npm:4.1.0" 2268 | dependencies: 2269 | chalk: "npm:^4.1.0" 2270 | is-unicode-supported: "npm:^0.1.0" 2271 | checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 2272 | languageName: node 2273 | linkType: hard 2274 | 2275 | "lowercase-keys@npm:^2.0.0": 2276 | version: 2.0.0 2277 | resolution: "lowercase-keys@npm:2.0.0" 2278 | checksum: 10c0/f82a2b3568910509da4b7906362efa40f5b54ea14c2584778ddb313226f9cbf21020a5db35f9b9a0e95847a9b781d548601f31793d736b22a2b8ae8eb9ab1082 2279 | languageName: node 2280 | linkType: hard 2281 | 2282 | "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": 2283 | version: 10.4.3 2284 | resolution: "lru-cache@npm:10.4.3" 2285 | checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb 2286 | languageName: node 2287 | linkType: hard 2288 | 2289 | "lru-cache@npm:^6.0.0": 2290 | version: 6.0.0 2291 | resolution: "lru-cache@npm:6.0.0" 2292 | dependencies: 2293 | yallist: "npm:^4.0.0" 2294 | checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 2295 | languageName: node 2296 | linkType: hard 2297 | 2298 | "lru-cache@npm:^7.7.1": 2299 | version: 7.18.3 2300 | resolution: "lru-cache@npm:7.18.3" 2301 | checksum: 10c0/b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed 2302 | languageName: node 2303 | linkType: hard 2304 | 2305 | "make-error@npm:^1.1.1": 2306 | version: 1.3.6 2307 | resolution: "make-error@npm:1.3.6" 2308 | checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f 2309 | languageName: node 2310 | linkType: hard 2311 | 2312 | "make-fetch-happen@npm:^10.0.3": 2313 | version: 10.2.1 2314 | resolution: "make-fetch-happen@npm:10.2.1" 2315 | dependencies: 2316 | agentkeepalive: "npm:^4.2.1" 2317 | cacache: "npm:^16.1.0" 2318 | http-cache-semantics: "npm:^4.1.0" 2319 | http-proxy-agent: "npm:^5.0.0" 2320 | https-proxy-agent: "npm:^5.0.0" 2321 | is-lambda: "npm:^1.0.1" 2322 | lru-cache: "npm:^7.7.1" 2323 | minipass: "npm:^3.1.6" 2324 | minipass-collect: "npm:^1.0.2" 2325 | minipass-fetch: "npm:^2.0.3" 2326 | minipass-flush: "npm:^1.0.5" 2327 | minipass-pipeline: "npm:^1.2.4" 2328 | negotiator: "npm:^0.6.3" 2329 | promise-retry: "npm:^2.0.1" 2330 | socks-proxy-agent: "npm:^7.0.0" 2331 | ssri: "npm:^9.0.0" 2332 | checksum: 10c0/28ec392f63ab93511f400839dcee83107eeecfaad737d1e8487ea08b4332cd89a8f3319584222edd9f6f1d0833cf516691469496d46491863f9e88c658013949 2333 | languageName: node 2334 | linkType: hard 2335 | 2336 | "make-fetch-happen@npm:^14.0.3": 2337 | version: 14.0.3 2338 | resolution: "make-fetch-happen@npm:14.0.3" 2339 | dependencies: 2340 | "@npmcli/agent": "npm:^3.0.0" 2341 | cacache: "npm:^19.0.1" 2342 | http-cache-semantics: "npm:^4.1.1" 2343 | minipass: "npm:^7.0.2" 2344 | minipass-fetch: "npm:^4.0.0" 2345 | minipass-flush: "npm:^1.0.5" 2346 | minipass-pipeline: "npm:^1.2.4" 2347 | negotiator: "npm:^1.0.0" 2348 | proc-log: "npm:^5.0.0" 2349 | promise-retry: "npm:^2.0.1" 2350 | ssri: "npm:^12.0.0" 2351 | checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 2352 | languageName: node 2353 | linkType: hard 2354 | 2355 | "matcher@npm:^3.0.0": 2356 | version: 3.0.0 2357 | resolution: "matcher@npm:3.0.0" 2358 | dependencies: 2359 | escape-string-regexp: "npm:^4.0.0" 2360 | checksum: 10c0/2edf24194a2879690bcdb29985fc6bc0d003df44e04df21ebcac721fa6ce2f6201c579866bb92f9380bffe946f11ecd8cd31f34117fb67ebf8aca604918e127e 2361 | languageName: node 2362 | linkType: hard 2363 | 2364 | "mime-db@npm:1.52.0": 2365 | version: 1.52.0 2366 | resolution: "mime-db@npm:1.52.0" 2367 | checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa 2368 | languageName: node 2369 | linkType: hard 2370 | 2371 | "mime-types@npm:^2.1.12": 2372 | version: 2.1.35 2373 | resolution: "mime-types@npm:2.1.35" 2374 | dependencies: 2375 | mime-db: "npm:1.52.0" 2376 | checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 2377 | languageName: node 2378 | linkType: hard 2379 | 2380 | "mime@npm:^2.5.2": 2381 | version: 2.6.0 2382 | resolution: "mime@npm:2.6.0" 2383 | bin: 2384 | mime: cli.js 2385 | checksum: 10c0/a7f2589900d9c16e3bdf7672d16a6274df903da958c1643c9c45771f0478f3846dcb1097f31eb9178452570271361e2149310931ec705c037210fc69639c8e6c 2386 | languageName: node 2387 | linkType: hard 2388 | 2389 | "mimic-fn@npm:^2.1.0": 2390 | version: 2.1.0 2391 | resolution: "mimic-fn@npm:2.1.0" 2392 | checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 2393 | languageName: node 2394 | linkType: hard 2395 | 2396 | "mimic-fn@npm:^3.0.0": 2397 | version: 3.1.0 2398 | resolution: "mimic-fn@npm:3.1.0" 2399 | checksum: 10c0/a07cdd8ed6490c2dff5b11f889b245d9556b80f5a653a552a651d17cff5a2d156e632d235106c2369f00cccef4071704589574cf3601bc1b1400a1f620dff067 2400 | languageName: node 2401 | linkType: hard 2402 | 2403 | "mimic-response@npm:^1.0.0": 2404 | version: 1.0.1 2405 | resolution: "mimic-response@npm:1.0.1" 2406 | checksum: 10c0/c5381a5eae997f1c3b5e90ca7f209ed58c3615caeee850e85329c598f0c000ae7bec40196580eef1781c60c709f47258131dab237cad8786f8f56750594f27fa 2407 | languageName: node 2408 | linkType: hard 2409 | 2410 | "mimic-response@npm:^3.1.0": 2411 | version: 3.1.0 2412 | resolution: "mimic-response@npm:3.1.0" 2413 | checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 2414 | languageName: node 2415 | linkType: hard 2416 | 2417 | "minimatch@npm:^10.0.0": 2418 | version: 10.0.1 2419 | resolution: "minimatch@npm:10.0.1" 2420 | dependencies: 2421 | brace-expansion: "npm:^2.0.1" 2422 | checksum: 10c0/e6c29a81fe83e1877ad51348306be2e8aeca18c88fdee7a99df44322314279e15799e41d7cb274e4e8bb0b451a3bc622d6182e157dfa1717d6cda75e9cd8cd5d 2423 | languageName: node 2424 | linkType: hard 2425 | 2426 | "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": 2427 | version: 3.1.2 2428 | resolution: "minimatch@npm:3.1.2" 2429 | dependencies: 2430 | brace-expansion: "npm:^1.1.7" 2431 | checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 2432 | languageName: node 2433 | linkType: hard 2434 | 2435 | "minimatch@npm:^5.0.1": 2436 | version: 5.1.6 2437 | resolution: "minimatch@npm:5.1.6" 2438 | dependencies: 2439 | brace-expansion: "npm:^2.0.1" 2440 | checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 2441 | languageName: node 2442 | linkType: hard 2443 | 2444 | "minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": 2445 | version: 9.0.5 2446 | resolution: "minimatch@npm:9.0.5" 2447 | dependencies: 2448 | brace-expansion: "npm:^2.0.1" 2449 | checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed 2450 | languageName: node 2451 | linkType: hard 2452 | 2453 | "minimist@npm:^1.2.6, minimist@npm:^1.2.8": 2454 | version: 1.2.8 2455 | resolution: "minimist@npm:1.2.8" 2456 | checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 2457 | languageName: node 2458 | linkType: hard 2459 | 2460 | "minipass-collect@npm:^1.0.2": 2461 | version: 1.0.2 2462 | resolution: "minipass-collect@npm:1.0.2" 2463 | dependencies: 2464 | minipass: "npm:^3.0.0" 2465 | checksum: 10c0/8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 2466 | languageName: node 2467 | linkType: hard 2468 | 2469 | "minipass-collect@npm:^2.0.1": 2470 | version: 2.0.1 2471 | resolution: "minipass-collect@npm:2.0.1" 2472 | dependencies: 2473 | minipass: "npm:^7.0.3" 2474 | checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e 2475 | languageName: node 2476 | linkType: hard 2477 | 2478 | "minipass-fetch@npm:^2.0.3": 2479 | version: 2.1.2 2480 | resolution: "minipass-fetch@npm:2.1.2" 2481 | dependencies: 2482 | encoding: "npm:^0.1.13" 2483 | minipass: "npm:^3.1.6" 2484 | minipass-sized: "npm:^1.0.3" 2485 | minizlib: "npm:^2.1.2" 2486 | dependenciesMeta: 2487 | encoding: 2488 | optional: true 2489 | checksum: 10c0/33ab2c5bdb3d91b9cb8bc6ae42d7418f4f00f7f7beae14b3bb21ea18f9224e792f560a6e17b6f1be12bbeb70dbe99a269f4204c60e5d99130a0777b153505c43 2490 | languageName: node 2491 | linkType: hard 2492 | 2493 | "minipass-fetch@npm:^4.0.0": 2494 | version: 4.0.0 2495 | resolution: "minipass-fetch@npm:4.0.0" 2496 | dependencies: 2497 | encoding: "npm:^0.1.13" 2498 | minipass: "npm:^7.0.3" 2499 | minipass-sized: "npm:^1.0.3" 2500 | minizlib: "npm:^3.0.1" 2501 | dependenciesMeta: 2502 | encoding: 2503 | optional: true 2504 | checksum: 10c0/7fa30ce7c373fb6f94c086b374fff1589fd7e78451855d2d06c2e2d9df936d131e73e952163063016592ed3081444bd8d1ea608533313b0149156ce23311da4b 2505 | languageName: node 2506 | linkType: hard 2507 | 2508 | "minipass-flush@npm:^1.0.5": 2509 | version: 1.0.5 2510 | resolution: "minipass-flush@npm:1.0.5" 2511 | dependencies: 2512 | minipass: "npm:^3.0.0" 2513 | checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd 2514 | languageName: node 2515 | linkType: hard 2516 | 2517 | "minipass-pipeline@npm:^1.2.4": 2518 | version: 1.2.4 2519 | resolution: "minipass-pipeline@npm:1.2.4" 2520 | dependencies: 2521 | minipass: "npm:^3.0.0" 2522 | checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 2523 | languageName: node 2524 | linkType: hard 2525 | 2526 | "minipass-sized@npm:^1.0.3": 2527 | version: 1.0.3 2528 | resolution: "minipass-sized@npm:1.0.3" 2529 | dependencies: 2530 | minipass: "npm:^3.0.0" 2531 | checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb 2532 | languageName: node 2533 | linkType: hard 2534 | 2535 | "minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": 2536 | version: 3.3.6 2537 | resolution: "minipass@npm:3.3.6" 2538 | dependencies: 2539 | yallist: "npm:^4.0.0" 2540 | checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c 2541 | languageName: node 2542 | linkType: hard 2543 | 2544 | "minipass@npm:^5.0.0": 2545 | version: 5.0.0 2546 | resolution: "minipass@npm:5.0.0" 2547 | checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 2548 | languageName: node 2549 | linkType: hard 2550 | 2551 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": 2552 | version: 7.1.2 2553 | resolution: "minipass@npm:7.1.2" 2554 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 2555 | languageName: node 2556 | linkType: hard 2557 | 2558 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": 2559 | version: 2.1.2 2560 | resolution: "minizlib@npm:2.1.2" 2561 | dependencies: 2562 | minipass: "npm:^3.0.0" 2563 | yallist: "npm:^4.0.0" 2564 | checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 2565 | languageName: node 2566 | linkType: hard 2567 | 2568 | "minizlib@npm:^3.0.1": 2569 | version: 3.0.1 2570 | resolution: "minizlib@npm:3.0.1" 2571 | dependencies: 2572 | minipass: "npm:^7.0.4" 2573 | rimraf: "npm:^5.0.5" 2574 | checksum: 10c0/82f8bf70da8af656909a8ee299d7ed3b3372636749d29e105f97f20e88971be31f5ed7642f2e898f00283b68b701cc01307401cdc209b0efc5dd3818220e5093 2575 | languageName: node 2576 | linkType: hard 2577 | 2578 | "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": 2579 | version: 1.0.4 2580 | resolution: "mkdirp@npm:1.0.4" 2581 | bin: 2582 | mkdirp: bin/cmd.js 2583 | checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf 2584 | languageName: node 2585 | linkType: hard 2586 | 2587 | "mkdirp@npm:^3.0.1": 2588 | version: 3.0.1 2589 | resolution: "mkdirp@npm:3.0.1" 2590 | bin: 2591 | mkdirp: dist/cjs/src/bin.js 2592 | checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d 2593 | languageName: node 2594 | linkType: hard 2595 | 2596 | "ms@npm:^2.0.0, ms@npm:^2.1.3": 2597 | version: 2.1.3 2598 | resolution: "ms@npm:2.1.3" 2599 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 2600 | languageName: node 2601 | linkType: hard 2602 | 2603 | "negotiator@npm:^0.6.3": 2604 | version: 0.6.4 2605 | resolution: "negotiator@npm:0.6.4" 2606 | checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea 2607 | languageName: node 2608 | linkType: hard 2609 | 2610 | "negotiator@npm:^1.0.0": 2611 | version: 1.0.0 2612 | resolution: "negotiator@npm:1.0.0" 2613 | checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b 2614 | languageName: node 2615 | linkType: hard 2616 | 2617 | "node-abi@npm:^3.45.0": 2618 | version: 3.71.0 2619 | resolution: "node-abi@npm:3.71.0" 2620 | dependencies: 2621 | semver: "npm:^7.3.5" 2622 | checksum: 10c0/dbd0792ea729329cd9d099f28a5681ff9e8a6db48cf64e1437bf6a7fd669009d1e758a784619a1c4cc8bfd1ed17162f042c787654edf19a1f64b5018457c9c1f 2623 | languageName: node 2624 | linkType: hard 2625 | 2626 | "node-addon-api@npm:^1.6.3": 2627 | version: 1.7.2 2628 | resolution: "node-addon-api@npm:1.7.2" 2629 | dependencies: 2630 | node-gyp: "npm:latest" 2631 | checksum: 10c0/bcf526f2ce788182730d3c3df5206585873d1e837a6e1378ff84abccf2f19cf3f93a8274f9c1245af0de63a0dbd1bb95ca2f767ecf5c678d6930326aaf396c4e 2632 | languageName: node 2633 | linkType: hard 2634 | 2635 | "node-api-version@npm:^0.2.0": 2636 | version: 0.2.0 2637 | resolution: "node-api-version@npm:0.2.0" 2638 | dependencies: 2639 | semver: "npm:^7.3.5" 2640 | checksum: 10c0/a5bdc7559237d2acebadc9ac0f29dd1279726e4226a8b3256ea605f6ad4a5c48528a2b6684d09237d33f0b714a95573d7f14a2a628642d31e05c79395e2c7873 2641 | languageName: node 2642 | linkType: hard 2643 | 2644 | "node-gyp@npm:^9.0.0": 2645 | version: 9.4.1 2646 | resolution: "node-gyp@npm:9.4.1" 2647 | dependencies: 2648 | env-paths: "npm:^2.2.0" 2649 | exponential-backoff: "npm:^3.1.1" 2650 | glob: "npm:^7.1.4" 2651 | graceful-fs: "npm:^4.2.6" 2652 | make-fetch-happen: "npm:^10.0.3" 2653 | nopt: "npm:^6.0.0" 2654 | npmlog: "npm:^6.0.0" 2655 | rimraf: "npm:^3.0.2" 2656 | semver: "npm:^7.3.5" 2657 | tar: "npm:^6.1.2" 2658 | which: "npm:^2.0.2" 2659 | bin: 2660 | node-gyp: bin/node-gyp.js 2661 | checksum: 10c0/f7d676cfa79f27d35edf17fe9c80064123670362352d19729e5dc9393d7e99f1397491c3107eddc0c0e8941442a6244a7ba6c860cfbe4b433b4cae248a55fe10 2662 | languageName: node 2663 | linkType: hard 2664 | 2665 | "node-gyp@npm:latest": 2666 | version: 11.1.0 2667 | resolution: "node-gyp@npm:11.1.0" 2668 | dependencies: 2669 | env-paths: "npm:^2.2.0" 2670 | exponential-backoff: "npm:^3.1.1" 2671 | glob: "npm:^10.3.10" 2672 | graceful-fs: "npm:^4.2.6" 2673 | make-fetch-happen: "npm:^14.0.3" 2674 | nopt: "npm:^8.0.0" 2675 | proc-log: "npm:^5.0.0" 2676 | semver: "npm:^7.3.5" 2677 | tar: "npm:^7.4.3" 2678 | which: "npm:^5.0.0" 2679 | bin: 2680 | node-gyp: bin/node-gyp.js 2681 | checksum: 10c0/c38977ce502f1ea41ba2b8721bd5b49bc3d5b3f813eabfac8414082faf0620ccb5211e15c4daecc23ed9f5e3e9cc4da00e575a0bcfc2a95a069294f2afa1e0cd 2682 | languageName: node 2683 | linkType: hard 2684 | 2685 | "nopt@npm:^6.0.0": 2686 | version: 6.0.0 2687 | resolution: "nopt@npm:6.0.0" 2688 | dependencies: 2689 | abbrev: "npm:^1.0.0" 2690 | bin: 2691 | nopt: bin/nopt.js 2692 | checksum: 10c0/837b52c330df16fcaad816b1f54fec6b2854ab1aa771d935c1603fbcf9b023bb073f1466b1b67f48ea4dce127ae675b85b9d9355700e9b109de39db490919786 2693 | languageName: node 2694 | linkType: hard 2695 | 2696 | "nopt@npm:^8.0.0": 2697 | version: 8.1.0 2698 | resolution: "nopt@npm:8.1.0" 2699 | dependencies: 2700 | abbrev: "npm:^3.0.0" 2701 | bin: 2702 | nopt: bin/nopt.js 2703 | checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef 2704 | languageName: node 2705 | linkType: hard 2706 | 2707 | "normalize-url@npm:^6.0.1": 2708 | version: 6.1.0 2709 | resolution: "normalize-url@npm:6.1.0" 2710 | checksum: 10c0/95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23 2711 | languageName: node 2712 | linkType: hard 2713 | 2714 | "npmlog@npm:^6.0.0": 2715 | version: 6.0.2 2716 | resolution: "npmlog@npm:6.0.2" 2717 | dependencies: 2718 | are-we-there-yet: "npm:^3.0.0" 2719 | console-control-strings: "npm:^1.1.0" 2720 | gauge: "npm:^4.0.3" 2721 | set-blocking: "npm:^2.0.0" 2722 | checksum: 10c0/0cacedfbc2f6139c746d9cd4a85f62718435ad0ca4a2d6459cd331dd33ae58206e91a0742c1558634efcde3f33f8e8e7fd3adf1bfe7978310cf00bd55cccf890 2723 | languageName: node 2724 | linkType: hard 2725 | 2726 | "object-keys@npm:^1.1.1": 2727 | version: 1.1.1 2728 | resolution: "object-keys@npm:1.1.1" 2729 | checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d 2730 | languageName: node 2731 | linkType: hard 2732 | 2733 | "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": 2734 | version: 1.4.0 2735 | resolution: "once@npm:1.4.0" 2736 | dependencies: 2737 | wrappy: "npm:1" 2738 | checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 2739 | languageName: node 2740 | linkType: hard 2741 | 2742 | "onetime@npm:^5.1.0, onetime@npm:^5.1.2": 2743 | version: 5.1.2 2744 | resolution: "onetime@npm:5.1.2" 2745 | dependencies: 2746 | mimic-fn: "npm:^2.1.0" 2747 | checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f 2748 | languageName: node 2749 | linkType: hard 2750 | 2751 | "ora@npm:^5.1.0": 2752 | version: 5.4.1 2753 | resolution: "ora@npm:5.4.1" 2754 | dependencies: 2755 | bl: "npm:^4.1.0" 2756 | chalk: "npm:^4.1.0" 2757 | cli-cursor: "npm:^3.1.0" 2758 | cli-spinners: "npm:^2.5.0" 2759 | is-interactive: "npm:^1.0.0" 2760 | is-unicode-supported: "npm:^0.1.0" 2761 | log-symbols: "npm:^4.1.0" 2762 | strip-ansi: "npm:^6.0.0" 2763 | wcwidth: "npm:^1.0.1" 2764 | checksum: 10c0/10ff14aace236d0e2f044193362b22edce4784add08b779eccc8f8ef97195cae1248db8ec1ec5f5ff076f91acbe573f5f42a98c19b78dba8c54eefff983cae85 2765 | languageName: node 2766 | linkType: hard 2767 | 2768 | "p-cancelable@npm:^2.0.0": 2769 | version: 2.1.1 2770 | resolution: "p-cancelable@npm:2.1.1" 2771 | checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 2772 | languageName: node 2773 | linkType: hard 2774 | 2775 | "p-limit@npm:^2.0.0": 2776 | version: 2.3.0 2777 | resolution: "p-limit@npm:2.3.0" 2778 | dependencies: 2779 | p-try: "npm:^2.0.0" 2780 | checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 2781 | languageName: node 2782 | linkType: hard 2783 | 2784 | "p-limit@npm:^3.1.0 ": 2785 | version: 3.1.0 2786 | resolution: "p-limit@npm:3.1.0" 2787 | dependencies: 2788 | yocto-queue: "npm:^0.1.0" 2789 | checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a 2790 | languageName: node 2791 | linkType: hard 2792 | 2793 | "p-locate@npm:^3.0.0": 2794 | version: 3.0.0 2795 | resolution: "p-locate@npm:3.0.0" 2796 | dependencies: 2797 | p-limit: "npm:^2.0.0" 2798 | checksum: 10c0/7b7f06f718f19e989ce6280ed4396fb3c34dabdee0df948376483032f9d5ec22fdf7077ec942143a75827bb85b11da72016497fc10dac1106c837ed593969ee8 2799 | languageName: node 2800 | linkType: hard 2801 | 2802 | "p-map@npm:^4.0.0": 2803 | version: 4.0.0 2804 | resolution: "p-map@npm:4.0.0" 2805 | dependencies: 2806 | aggregate-error: "npm:^3.0.0" 2807 | checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 2808 | languageName: node 2809 | linkType: hard 2810 | 2811 | "p-map@npm:^7.0.2": 2812 | version: 7.0.3 2813 | resolution: "p-map@npm:7.0.3" 2814 | checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c 2815 | languageName: node 2816 | linkType: hard 2817 | 2818 | "p-try@npm:^2.0.0": 2819 | version: 2.2.0 2820 | resolution: "p-try@npm:2.2.0" 2821 | checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f 2822 | languageName: node 2823 | linkType: hard 2824 | 2825 | "package-json-from-dist@npm:^1.0.0": 2826 | version: 1.0.1 2827 | resolution: "package-json-from-dist@npm:1.0.1" 2828 | checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b 2829 | languageName: node 2830 | linkType: hard 2831 | 2832 | "path-exists@npm:^3.0.0": 2833 | version: 3.0.0 2834 | resolution: "path-exists@npm:3.0.0" 2835 | checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 2836 | languageName: node 2837 | linkType: hard 2838 | 2839 | "path-is-absolute@npm:^1.0.0": 2840 | version: 1.0.1 2841 | resolution: "path-is-absolute@npm:1.0.1" 2842 | checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 2843 | languageName: node 2844 | linkType: hard 2845 | 2846 | "path-key@npm:^3.1.0": 2847 | version: 3.1.1 2848 | resolution: "path-key@npm:3.1.1" 2849 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 2850 | languageName: node 2851 | linkType: hard 2852 | 2853 | "path-scurry@npm:^1.11.1": 2854 | version: 1.11.1 2855 | resolution: "path-scurry@npm:1.11.1" 2856 | dependencies: 2857 | lru-cache: "npm:^10.2.0" 2858 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 2859 | checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d 2860 | languageName: node 2861 | linkType: hard 2862 | 2863 | "pe-library@npm:^0.4.1": 2864 | version: 0.4.1 2865 | resolution: "pe-library@npm:0.4.1" 2866 | checksum: 10c0/75c772e74c75d9710a2bf6b7e88fb57e4c26788422abd3b38c8100c796e311c72102ef71159b9e0b56f05f616a968e11b8ec218bcd625c896df067235af8da77 2867 | languageName: node 2868 | linkType: hard 2869 | 2870 | "pend@npm:~1.2.0": 2871 | version: 1.2.0 2872 | resolution: "pend@npm:1.2.0" 2873 | checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 2874 | languageName: node 2875 | linkType: hard 2876 | 2877 | "pkg-up@npm:^3.1.0": 2878 | version: 3.1.0 2879 | resolution: "pkg-up@npm:3.1.0" 2880 | dependencies: 2881 | find-up: "npm:^3.0.0" 2882 | checksum: 10c0/ecb60e1f8e1f611c0bdf1a0b6a474d6dfb51185567dc6f29cdef37c8d480ecba5362e006606bb290519bbb6f49526c403fabea93c3090c20368d98bb90c999ab 2883 | languageName: node 2884 | linkType: hard 2885 | 2886 | "plist@npm:^3.0.4, plist@npm:^3.0.5, plist@npm:^3.1.0": 2887 | version: 3.1.0 2888 | resolution: "plist@npm:3.1.0" 2889 | dependencies: 2890 | "@xmldom/xmldom": "npm:^0.8.8" 2891 | base64-js: "npm:^1.5.1" 2892 | xmlbuilder: "npm:^15.1.1" 2893 | checksum: 10c0/db19ba50faafc4103df8e79bcd6b08004a56db2a9dd30b3e5c8b0ef30398ef44344a674e594d012c8fc39e539a2b72cb58c60a76b4b4401cbbc7c8f6b028d93d 2894 | languageName: node 2895 | linkType: hard 2896 | 2897 | "prettier@npm:^3.3.3": 2898 | version: 3.4.2 2899 | resolution: "prettier@npm:3.4.2" 2900 | bin: 2901 | prettier: bin/prettier.cjs 2902 | checksum: 10c0/99e076a26ed0aba4ebc043880d0f08bbb8c59a4c6641cdee6cdadf2205bdd87aa1d7823f50c3aea41e015e99878d37c58d7b5f0e663bba0ef047f94e36b96446 2903 | languageName: node 2904 | linkType: hard 2905 | 2906 | "proc-log@npm:^5.0.0": 2907 | version: 5.0.0 2908 | resolution: "proc-log@npm:5.0.0" 2909 | checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 2910 | languageName: node 2911 | linkType: hard 2912 | 2913 | "progress@npm:^2.0.3": 2914 | version: 2.0.3 2915 | resolution: "progress@npm:2.0.3" 2916 | checksum: 10c0/1697e07cb1068055dbe9fe858d242368ff5d2073639e652b75a7eb1f2a1a8d4afd404d719de23c7b48481a6aa0040686310e2dac2f53d776daa2176d3f96369c 2917 | languageName: node 2918 | linkType: hard 2919 | 2920 | "promise-inflight@npm:^1.0.1": 2921 | version: 1.0.1 2922 | resolution: "promise-inflight@npm:1.0.1" 2923 | checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc 2924 | languageName: node 2925 | linkType: hard 2926 | 2927 | "promise-retry@npm:^2.0.1": 2928 | version: 2.0.1 2929 | resolution: "promise-retry@npm:2.0.1" 2930 | dependencies: 2931 | err-code: "npm:^2.0.2" 2932 | retry: "npm:^0.12.0" 2933 | checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 2934 | languageName: node 2935 | linkType: hard 2936 | 2937 | "proxy-from-env@npm:^1.1.0": 2938 | version: 1.1.0 2939 | resolution: "proxy-from-env@npm:1.1.0" 2940 | checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b 2941 | languageName: node 2942 | linkType: hard 2943 | 2944 | "pump@npm:^3.0.0": 2945 | version: 3.0.2 2946 | resolution: "pump@npm:3.0.2" 2947 | dependencies: 2948 | end-of-stream: "npm:^1.1.0" 2949 | once: "npm:^1.3.1" 2950 | checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f 2951 | languageName: node 2952 | linkType: hard 2953 | 2954 | "punycode@npm:^2.1.0": 2955 | version: 2.3.1 2956 | resolution: "punycode@npm:2.3.1" 2957 | checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 2958 | languageName: node 2959 | linkType: hard 2960 | 2961 | "quick-lru@npm:^5.1.1": 2962 | version: 5.1.1 2963 | resolution: "quick-lru@npm:5.1.1" 2964 | checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da 2965 | languageName: node 2966 | linkType: hard 2967 | 2968 | "read-binary-file-arch@npm:^1.0.6": 2969 | version: 1.0.6 2970 | resolution: "read-binary-file-arch@npm:1.0.6" 2971 | dependencies: 2972 | debug: "npm:^4.3.4" 2973 | bin: 2974 | read-binary-file-arch: cli.js 2975 | checksum: 10c0/7665cb4ec61da1f4da7ba6c0fb64f53f6e739373d427dd0e1c4d19f240b3ebff0f596377c01e290a6370f611899b82df09edafa758200bf31216d855e3230058 2976 | languageName: node 2977 | linkType: hard 2978 | 2979 | "readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": 2980 | version: 3.6.2 2981 | resolution: "readable-stream@npm:3.6.2" 2982 | dependencies: 2983 | inherits: "npm:^2.0.3" 2984 | string_decoder: "npm:^1.1.1" 2985 | util-deprecate: "npm:^1.0.1" 2986 | checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 2987 | languageName: node 2988 | linkType: hard 2989 | 2990 | "regenerator-runtime@npm:^0.14.0": 2991 | version: 0.14.1 2992 | resolution: "regenerator-runtime@npm:0.14.1" 2993 | checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 2994 | languageName: node 2995 | linkType: hard 2996 | 2997 | "require-directory@npm:^2.1.1": 2998 | version: 2.1.1 2999 | resolution: "require-directory@npm:2.1.1" 3000 | checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 3001 | languageName: node 3002 | linkType: hard 3003 | 3004 | "require-from-string@npm:^2.0.2": 3005 | version: 2.0.2 3006 | resolution: "require-from-string@npm:2.0.2" 3007 | checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 3008 | languageName: node 3009 | linkType: hard 3010 | 3011 | "resedit@npm:^1.7.0": 3012 | version: 1.7.2 3013 | resolution: "resedit@npm:1.7.2" 3014 | dependencies: 3015 | pe-library: "npm:^0.4.1" 3016 | checksum: 10c0/1d21438d22ca9010611b8db3d0b122122b9d3588fa6e608eaadca38ab86d5d1c0348f7656a9c2e7f2609c30db62d1f62ddc9184e7e11920d47d2c238b1587847 3017 | languageName: node 3018 | linkType: hard 3019 | 3020 | "resolve-alpn@npm:^1.0.0": 3021 | version: 1.2.1 3022 | resolution: "resolve-alpn@npm:1.2.1" 3023 | checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 3024 | languageName: node 3025 | linkType: hard 3026 | 3027 | "responselike@npm:^2.0.0": 3028 | version: 2.0.1 3029 | resolution: "responselike@npm:2.0.1" 3030 | dependencies: 3031 | lowercase-keys: "npm:^2.0.0" 3032 | checksum: 10c0/360b6deb5f101a9f8a4174f7837c523c3ec78b7ca8a7c1d45a1062b303659308a23757e318b1e91ed8684ad1205721142dd664d94771cd63499353fd4ee732b5 3033 | languageName: node 3034 | linkType: hard 3035 | 3036 | "restore-cursor@npm:^3.1.0": 3037 | version: 3.1.0 3038 | resolution: "restore-cursor@npm:3.1.0" 3039 | dependencies: 3040 | onetime: "npm:^5.1.0" 3041 | signal-exit: "npm:^3.0.2" 3042 | checksum: 10c0/8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f 3043 | languageName: node 3044 | linkType: hard 3045 | 3046 | "retry@npm:^0.12.0": 3047 | version: 0.12.0 3048 | resolution: "retry@npm:0.12.0" 3049 | checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe 3050 | languageName: node 3051 | linkType: hard 3052 | 3053 | "rimraf@npm:^3.0.2": 3054 | version: 3.0.2 3055 | resolution: "rimraf@npm:3.0.2" 3056 | dependencies: 3057 | glob: "npm:^7.1.3" 3058 | bin: 3059 | rimraf: bin.js 3060 | checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 3061 | languageName: node 3062 | linkType: hard 3063 | 3064 | "rimraf@npm:^5.0.5": 3065 | version: 5.0.10 3066 | resolution: "rimraf@npm:5.0.10" 3067 | dependencies: 3068 | glob: "npm:^10.3.7" 3069 | bin: 3070 | rimraf: dist/esm/bin.mjs 3071 | checksum: 10c0/7da4fd0e15118ee05b918359462cfa1e7fe4b1228c7765195a45b55576e8c15b95db513b8466ec89129666f4af45ad978a3057a02139afba1a63512a2d9644cc 3072 | languageName: node 3073 | linkType: hard 3074 | 3075 | "roarr@npm:^2.15.3": 3076 | version: 2.15.4 3077 | resolution: "roarr@npm:2.15.4" 3078 | dependencies: 3079 | boolean: "npm:^3.0.1" 3080 | detect-node: "npm:^2.0.4" 3081 | globalthis: "npm:^1.0.1" 3082 | json-stringify-safe: "npm:^5.0.1" 3083 | semver-compare: "npm:^1.0.0" 3084 | sprintf-js: "npm:^1.1.2" 3085 | checksum: 10c0/7d01d4c14513c461778dd673a8f9e53255221f8d04173aafeb8e11b23d8b659bb83f1c90cfe81af7f9c213b8084b404b918108fd792bda76678f555340cc64ec 3086 | languageName: node 3087 | linkType: hard 3088 | 3089 | "rxjs@npm:^7.8.1": 3090 | version: 7.8.1 3091 | resolution: "rxjs@npm:7.8.1" 3092 | dependencies: 3093 | tslib: "npm:^2.1.0" 3094 | checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 3095 | languageName: node 3096 | linkType: hard 3097 | 3098 | "safe-buffer@npm:~5.2.0": 3099 | version: 5.2.1 3100 | resolution: "safe-buffer@npm:5.2.1" 3101 | checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 3102 | languageName: node 3103 | linkType: hard 3104 | 3105 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 3106 | version: 2.1.2 3107 | resolution: "safer-buffer@npm:2.1.2" 3108 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 3109 | languageName: node 3110 | linkType: hard 3111 | 3112 | "sanitize-filename@npm:^1.6.3": 3113 | version: 1.6.3 3114 | resolution: "sanitize-filename@npm:1.6.3" 3115 | dependencies: 3116 | truncate-utf8-bytes: "npm:^1.0.0" 3117 | checksum: 10c0/16ff47556a6e54e228c28db096bedd303da67b030d4bea4925fd71324932d6b02c7b0446f00ad33987b25b6414f24ae968e01a1a1679ce599542e82c4b07eb1f 3118 | languageName: node 3119 | linkType: hard 3120 | 3121 | "sax@npm:^1.2.4": 3122 | version: 1.4.1 3123 | resolution: "sax@npm:1.4.1" 3124 | checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c 3125 | languageName: node 3126 | linkType: hard 3127 | 3128 | "screendeck@workspace:.": 3129 | version: 0.0.0-use.local 3130 | resolution: "screendeck@workspace:." 3131 | dependencies: 3132 | "@electron/notarize": "npm:^2.5.0" 3133 | "@types/node": "npm:^18.0.0" 3134 | concurrently: "npm:^8.0.0" 3135 | electron: "npm:^33.2.1" 3136 | electron-builder: "npm:^25.1.8" 3137 | electron-store: "npm:^8.0.0" 3138 | prettier: "npm:^3.3.3" 3139 | short-uuid: "npm:^5.2.0" 3140 | ts-node: "npm:^10.0.0" 3141 | typescript: "npm:^5.0.0" 3142 | wait-on: "npm:^7.0.0" 3143 | languageName: unknown 3144 | linkType: soft 3145 | 3146 | "semver-compare@npm:^1.0.0": 3147 | version: 1.0.0 3148 | resolution: "semver-compare@npm:1.0.0" 3149 | checksum: 10c0/9ef4d8b81847556f0865f46ddc4d276bace118c7cb46811867af82e837b7fc473911981d5a0abc561fa2db487065572217e5b06e18701c4281bcdd2a1affaff1 3150 | languageName: node 3151 | linkType: hard 3152 | 3153 | "semver@npm:^6.2.0": 3154 | version: 6.3.1 3155 | resolution: "semver@npm:6.3.1" 3156 | bin: 3157 | semver: bin/semver.js 3158 | checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d 3159 | languageName: node 3160 | linkType: hard 3161 | 3162 | "semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.3": 3163 | version: 7.6.3 3164 | resolution: "semver@npm:7.6.3" 3165 | bin: 3166 | semver: bin/semver.js 3167 | checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf 3168 | languageName: node 3169 | linkType: hard 3170 | 3171 | "serialize-error@npm:^7.0.1": 3172 | version: 7.0.1 3173 | resolution: "serialize-error@npm:7.0.1" 3174 | dependencies: 3175 | type-fest: "npm:^0.13.1" 3176 | checksum: 10c0/7982937d578cd901276c8ab3e2c6ed8a4c174137730f1fb0402d005af209a0e84d04acc874e317c936724c7b5b26c7a96ff7e4b8d11a469f4924a4b0ea814c05 3177 | languageName: node 3178 | linkType: hard 3179 | 3180 | "set-blocking@npm:^2.0.0": 3181 | version: 2.0.0 3182 | resolution: "set-blocking@npm:2.0.0" 3183 | checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 3184 | languageName: node 3185 | linkType: hard 3186 | 3187 | "shebang-command@npm:^2.0.0": 3188 | version: 2.0.0 3189 | resolution: "shebang-command@npm:2.0.0" 3190 | dependencies: 3191 | shebang-regex: "npm:^3.0.0" 3192 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e 3193 | languageName: node 3194 | linkType: hard 3195 | 3196 | "shebang-regex@npm:^3.0.0": 3197 | version: 3.0.0 3198 | resolution: "shebang-regex@npm:3.0.0" 3199 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 3200 | languageName: node 3201 | linkType: hard 3202 | 3203 | "shell-quote@npm:^1.8.1": 3204 | version: 1.8.2 3205 | resolution: "shell-quote@npm:1.8.2" 3206 | checksum: 10c0/85fdd44f2ad76e723d34eb72c753f04d847ab64e9f1f10677e3f518d0e5b0752a176fd805297b30bb8c3a1556ebe6e77d2288dbd7b7b0110c7e941e9e9c20ce1 3207 | languageName: node 3208 | linkType: hard 3209 | 3210 | "short-uuid@npm:^5.2.0": 3211 | version: 5.2.0 3212 | resolution: "short-uuid@npm:5.2.0" 3213 | dependencies: 3214 | any-base: "npm:^1.1.0" 3215 | uuid: "npm:^9.0.1" 3216 | checksum: 10c0/24f9c34b9c0bb9daf2ed2167a78ff5e3467859ac52d5a783f2881c4c0d09b1224bbbd009f480fbc1c18a3fe8b7e73110275d8d2befa5d585a86997b14099ee93 3217 | languageName: node 3218 | linkType: hard 3219 | 3220 | "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": 3221 | version: 3.0.7 3222 | resolution: "signal-exit@npm:3.0.7" 3223 | checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 3224 | languageName: node 3225 | linkType: hard 3226 | 3227 | "signal-exit@npm:^4.0.1": 3228 | version: 4.1.0 3229 | resolution: "signal-exit@npm:4.1.0" 3230 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 3231 | languageName: node 3232 | linkType: hard 3233 | 3234 | "simple-update-notifier@npm:2.0.0": 3235 | version: 2.0.0 3236 | resolution: "simple-update-notifier@npm:2.0.0" 3237 | dependencies: 3238 | semver: "npm:^7.5.3" 3239 | checksum: 10c0/2a00bd03bfbcbf8a737c47ab230d7920f8bfb92d1159d421bdd194479f6d01ebc995d13fbe13d45dace23066a78a3dc6642999b4e3b38b847e6664191575b20c 3240 | languageName: node 3241 | linkType: hard 3242 | 3243 | "slice-ansi@npm:^3.0.0": 3244 | version: 3.0.0 3245 | resolution: "slice-ansi@npm:3.0.0" 3246 | dependencies: 3247 | ansi-styles: "npm:^4.0.0" 3248 | astral-regex: "npm:^2.0.0" 3249 | is-fullwidth-code-point: "npm:^3.0.0" 3250 | checksum: 10c0/88083c9d0ca67d09f8b4c78f68833d69cabbb7236b74df5d741ad572bbf022deaf243fa54009cd434350622a1174ab267710fcc80a214ecc7689797fe00cb27c 3251 | languageName: node 3252 | linkType: hard 3253 | 3254 | "smart-buffer@npm:^4.0.2, smart-buffer@npm:^4.2.0": 3255 | version: 4.2.0 3256 | resolution: "smart-buffer@npm:4.2.0" 3257 | checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 3258 | languageName: node 3259 | linkType: hard 3260 | 3261 | "socks-proxy-agent@npm:^7.0.0": 3262 | version: 7.0.0 3263 | resolution: "socks-proxy-agent@npm:7.0.0" 3264 | dependencies: 3265 | agent-base: "npm:^6.0.2" 3266 | debug: "npm:^4.3.3" 3267 | socks: "npm:^2.6.2" 3268 | checksum: 10c0/b859f7eb8e96ec2c4186beea233ae59c02404094f3eb009946836af27d6e5c1627d1975a69b4d2e20611729ed543b6db3ae8481eb38603433c50d0345c987600 3269 | languageName: node 3270 | linkType: hard 3271 | 3272 | "socks-proxy-agent@npm:^8.0.3": 3273 | version: 8.0.5 3274 | resolution: "socks-proxy-agent@npm:8.0.5" 3275 | dependencies: 3276 | agent-base: "npm:^7.1.2" 3277 | debug: "npm:^4.3.4" 3278 | socks: "npm:^2.8.3" 3279 | checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 3280 | languageName: node 3281 | linkType: hard 3282 | 3283 | "socks@npm:^2.6.2": 3284 | version: 2.8.3 3285 | resolution: "socks@npm:2.8.3" 3286 | dependencies: 3287 | ip-address: "npm:^9.0.5" 3288 | smart-buffer: "npm:^4.2.0" 3289 | checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 3290 | languageName: node 3291 | linkType: hard 3292 | 3293 | "socks@npm:^2.8.3": 3294 | version: 2.8.4 3295 | resolution: "socks@npm:2.8.4" 3296 | dependencies: 3297 | ip-address: "npm:^9.0.5" 3298 | smart-buffer: "npm:^4.2.0" 3299 | checksum: 10c0/00c3271e233ccf1fb83a3dd2060b94cc37817e0f797a93c560b9a7a86c4a0ec2961fb31263bdd24a3c28945e24868b5f063cd98744171d9e942c513454b50ae5 3300 | languageName: node 3301 | linkType: hard 3302 | 3303 | "source-map-support@npm:^0.5.19": 3304 | version: 0.5.21 3305 | resolution: "source-map-support@npm:0.5.21" 3306 | dependencies: 3307 | buffer-from: "npm:^1.0.0" 3308 | source-map: "npm:^0.6.0" 3309 | checksum: 10c0/9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d 3310 | languageName: node 3311 | linkType: hard 3312 | 3313 | "source-map@npm:^0.6.0": 3314 | version: 0.6.1 3315 | resolution: "source-map@npm:0.6.1" 3316 | checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 3317 | languageName: node 3318 | linkType: hard 3319 | 3320 | "spawn-command@npm:0.0.2": 3321 | version: 0.0.2 3322 | resolution: "spawn-command@npm:0.0.2" 3323 | checksum: 10c0/b22f2d71239e6e628a400831861ba747750bbb40c0a53323754cf7b84330b73d81e40ff1f9055e6d1971818679510208a9302e13d9ff3b32feb67e74d7a1b3ef 3324 | languageName: node 3325 | linkType: hard 3326 | 3327 | "sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": 3328 | version: 1.1.3 3329 | resolution: "sprintf-js@npm:1.1.3" 3330 | checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec 3331 | languageName: node 3332 | linkType: hard 3333 | 3334 | "ssri@npm:^12.0.0": 3335 | version: 12.0.0 3336 | resolution: "ssri@npm:12.0.0" 3337 | dependencies: 3338 | minipass: "npm:^7.0.3" 3339 | checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d 3340 | languageName: node 3341 | linkType: hard 3342 | 3343 | "ssri@npm:^9.0.0": 3344 | version: 9.0.1 3345 | resolution: "ssri@npm:9.0.1" 3346 | dependencies: 3347 | minipass: "npm:^3.1.1" 3348 | checksum: 10c0/c5d153ce03b5980d683ecaa4d805f6a03d8dc545736213803e168a1907650c46c08a4e5ce6d670a0205482b35c35713d9d286d9133bdd79853a406e22ad81f04 3349 | languageName: node 3350 | linkType: hard 3351 | 3352 | "stat-mode@npm:^1.0.0": 3353 | version: 1.0.0 3354 | resolution: "stat-mode@npm:1.0.0" 3355 | checksum: 10c0/89b66a538dbfd45038fefdaf5b2104dc6e911605af1c201793e9629592ed9fdc7bdd1bca42806d0d4167c6d9cacac1f3fda41ddfe334a5c1f898113da38fae74 3356 | languageName: node 3357 | linkType: hard 3358 | 3359 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": 3360 | version: 4.2.3 3361 | resolution: "string-width@npm:4.2.3" 3362 | dependencies: 3363 | emoji-regex: "npm:^8.0.0" 3364 | is-fullwidth-code-point: "npm:^3.0.0" 3365 | strip-ansi: "npm:^6.0.1" 3366 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b 3367 | languageName: node 3368 | linkType: hard 3369 | 3370 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2": 3371 | version: 5.1.2 3372 | resolution: "string-width@npm:5.1.2" 3373 | dependencies: 3374 | eastasianwidth: "npm:^0.2.0" 3375 | emoji-regex: "npm:^9.2.2" 3376 | strip-ansi: "npm:^7.0.1" 3377 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca 3378 | languageName: node 3379 | linkType: hard 3380 | 3381 | "string_decoder@npm:^1.1.1": 3382 | version: 1.3.0 3383 | resolution: "string_decoder@npm:1.3.0" 3384 | dependencies: 3385 | safe-buffer: "npm:~5.2.0" 3386 | checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d 3387 | languageName: node 3388 | linkType: hard 3389 | 3390 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 3391 | version: 6.0.1 3392 | resolution: "strip-ansi@npm:6.0.1" 3393 | dependencies: 3394 | ansi-regex: "npm:^5.0.1" 3395 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 3396 | languageName: node 3397 | linkType: hard 3398 | 3399 | "strip-ansi@npm:^7.0.1": 3400 | version: 7.1.0 3401 | resolution: "strip-ansi@npm:7.1.0" 3402 | dependencies: 3403 | ansi-regex: "npm:^6.0.1" 3404 | checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 3405 | languageName: node 3406 | linkType: hard 3407 | 3408 | "sumchecker@npm:^3.0.1": 3409 | version: 3.0.1 3410 | resolution: "sumchecker@npm:3.0.1" 3411 | dependencies: 3412 | debug: "npm:^4.1.0" 3413 | checksum: 10c0/43c387be9dfe22dbeaf39dfa4ffb279847aeb37a42a8988c0b066f548bbd209aa8c65e03da29f2b29be1a66b577801bf89fff0007df4183db2f286263a9569e5 3414 | languageName: node 3415 | linkType: hard 3416 | 3417 | "supports-color@npm:^7.1.0": 3418 | version: 7.2.0 3419 | resolution: "supports-color@npm:7.2.0" 3420 | dependencies: 3421 | has-flag: "npm:^4.0.0" 3422 | checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 3423 | languageName: node 3424 | linkType: hard 3425 | 3426 | "supports-color@npm:^8.1.1": 3427 | version: 8.1.1 3428 | resolution: "supports-color@npm:8.1.1" 3429 | dependencies: 3430 | has-flag: "npm:^4.0.0" 3431 | checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 3432 | languageName: node 3433 | linkType: hard 3434 | 3435 | "tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.1.2": 3436 | version: 6.2.1 3437 | resolution: "tar@npm:6.2.1" 3438 | dependencies: 3439 | chownr: "npm:^2.0.0" 3440 | fs-minipass: "npm:^2.0.0" 3441 | minipass: "npm:^5.0.0" 3442 | minizlib: "npm:^2.1.1" 3443 | mkdirp: "npm:^1.0.3" 3444 | yallist: "npm:^4.0.0" 3445 | checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 3446 | languageName: node 3447 | linkType: hard 3448 | 3449 | "tar@npm:^7.4.3": 3450 | version: 7.4.3 3451 | resolution: "tar@npm:7.4.3" 3452 | dependencies: 3453 | "@isaacs/fs-minipass": "npm:^4.0.0" 3454 | chownr: "npm:^3.0.0" 3455 | minipass: "npm:^7.1.2" 3456 | minizlib: "npm:^3.0.1" 3457 | mkdirp: "npm:^3.0.1" 3458 | yallist: "npm:^5.0.0" 3459 | checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d 3460 | languageName: node 3461 | linkType: hard 3462 | 3463 | "temp-file@npm:^3.4.0": 3464 | version: 3.4.0 3465 | resolution: "temp-file@npm:3.4.0" 3466 | dependencies: 3467 | async-exit-hook: "npm:^2.0.1" 3468 | fs-extra: "npm:^10.0.0" 3469 | checksum: 10c0/70e441909097346a930ae02278df9b0133cd02dddf0b49e5ddaade735fef1410a50a448a2a812106f97c045294c99cc19f26943eb88f1d728d41fbc445a40298 3470 | languageName: node 3471 | linkType: hard 3472 | 3473 | "tmp-promise@npm:^3.0.2": 3474 | version: 3.0.3 3475 | resolution: "tmp-promise@npm:3.0.3" 3476 | dependencies: 3477 | tmp: "npm:^0.2.0" 3478 | checksum: 10c0/23b47dcb2e82b14bbd8f61ed7a9d9353cdb6a6f09d7716616cfd27d0087040cd40152965a518e598d7aabe1489b9569bf1eebde0c5fadeaf3ec8098adcebea4e 3479 | languageName: node 3480 | linkType: hard 3481 | 3482 | "tmp@npm:^0.2.0": 3483 | version: 0.2.3 3484 | resolution: "tmp@npm:0.2.3" 3485 | checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 3486 | languageName: node 3487 | linkType: hard 3488 | 3489 | "tree-kill@npm:^1.2.2": 3490 | version: 1.2.2 3491 | resolution: "tree-kill@npm:1.2.2" 3492 | bin: 3493 | tree-kill: cli.js 3494 | checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 3495 | languageName: node 3496 | linkType: hard 3497 | 3498 | "truncate-utf8-bytes@npm:^1.0.0": 3499 | version: 1.0.2 3500 | resolution: "truncate-utf8-bytes@npm:1.0.2" 3501 | dependencies: 3502 | utf8-byte-length: "npm:^1.0.1" 3503 | checksum: 10c0/af2b431fc4314f119b551e5fccfad49d4c0ef82e13ba9ca61be6567801195b08e732ce9643542e8ad1b3df44f3df2d7345b3dd34f723954b6bb43a14584d6b3c 3504 | languageName: node 3505 | linkType: hard 3506 | 3507 | "ts-node@npm:^10.0.0": 3508 | version: 10.9.2 3509 | resolution: "ts-node@npm:10.9.2" 3510 | dependencies: 3511 | "@cspotcode/source-map-support": "npm:^0.8.0" 3512 | "@tsconfig/node10": "npm:^1.0.7" 3513 | "@tsconfig/node12": "npm:^1.0.7" 3514 | "@tsconfig/node14": "npm:^1.0.0" 3515 | "@tsconfig/node16": "npm:^1.0.2" 3516 | acorn: "npm:^8.4.1" 3517 | acorn-walk: "npm:^8.1.1" 3518 | arg: "npm:^4.1.0" 3519 | create-require: "npm:^1.1.0" 3520 | diff: "npm:^4.0.1" 3521 | make-error: "npm:^1.1.1" 3522 | v8-compile-cache-lib: "npm:^3.0.1" 3523 | yn: "npm:3.1.1" 3524 | peerDependencies: 3525 | "@swc/core": ">=1.2.50" 3526 | "@swc/wasm": ">=1.2.50" 3527 | "@types/node": "*" 3528 | typescript: ">=2.7" 3529 | peerDependenciesMeta: 3530 | "@swc/core": 3531 | optional: true 3532 | "@swc/wasm": 3533 | optional: true 3534 | bin: 3535 | ts-node: dist/bin.js 3536 | ts-node-cwd: dist/bin-cwd.js 3537 | ts-node-esm: dist/bin-esm.js 3538 | ts-node-script: dist/bin-script.js 3539 | ts-node-transpile-only: dist/bin-transpile.js 3540 | ts-script: dist/bin-script-deprecated.js 3541 | checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 3542 | languageName: node 3543 | linkType: hard 3544 | 3545 | "tslib@npm:^2.1.0": 3546 | version: 2.8.1 3547 | resolution: "tslib@npm:2.8.1" 3548 | checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 3549 | languageName: node 3550 | linkType: hard 3551 | 3552 | "type-fest@npm:^0.13.1": 3553 | version: 0.13.1 3554 | resolution: "type-fest@npm:0.13.1" 3555 | checksum: 10c0/0c0fa07ae53d4e776cf4dac30d25ad799443e9eef9226f9fddbb69242db86b08584084a99885cfa5a9dfe4c063ebdc9aa7b69da348e735baede8d43f1aeae93b 3556 | languageName: node 3557 | linkType: hard 3558 | 3559 | "type-fest@npm:^2.17.0": 3560 | version: 2.19.0 3561 | resolution: "type-fest@npm:2.19.0" 3562 | checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb 3563 | languageName: node 3564 | linkType: hard 3565 | 3566 | "typescript@npm:^5.0.0, typescript@npm:^5.4.3": 3567 | version: 5.7.2 3568 | resolution: "typescript@npm:5.7.2" 3569 | bin: 3570 | tsc: bin/tsc 3571 | tsserver: bin/tsserver 3572 | checksum: 10c0/a873118b5201b2ef332127ef5c63fb9d9c155e6fdbe211cbd9d8e65877283797cca76546bad742eea36ed7efbe3424a30376818f79c7318512064e8625d61622 3573 | languageName: node 3574 | linkType: hard 3575 | 3576 | "typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.4.3#optional!builtin": 3577 | version: 5.7.2 3578 | resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5" 3579 | bin: 3580 | tsc: bin/tsc 3581 | tsserver: bin/tsserver 3582 | checksum: 10c0/f3b8082c9d1d1629a215245c9087df56cb784f9fb6f27b5d55577a20e68afe2a889c040aacff6d27e35be165ecf9dca66e694c42eb9a50b3b2c451b36b5675cb 3583 | languageName: node 3584 | linkType: hard 3585 | 3586 | "undici-types@npm:~5.26.4": 3587 | version: 5.26.5 3588 | resolution: "undici-types@npm:5.26.5" 3589 | checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 3590 | languageName: node 3591 | linkType: hard 3592 | 3593 | "undici-types@npm:~6.19.2": 3594 | version: 6.19.8 3595 | resolution: "undici-types@npm:6.19.8" 3596 | checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 3597 | languageName: node 3598 | linkType: hard 3599 | 3600 | "undici-types@npm:~6.20.0": 3601 | version: 6.20.0 3602 | resolution: "undici-types@npm:6.20.0" 3603 | checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf 3604 | languageName: node 3605 | linkType: hard 3606 | 3607 | "unique-filename@npm:^2.0.0": 3608 | version: 2.0.1 3609 | resolution: "unique-filename@npm:2.0.1" 3610 | dependencies: 3611 | unique-slug: "npm:^3.0.0" 3612 | checksum: 10c0/55d95cd670c4a86117ebc34d394936d712d43b56db6bc511f9ca00f666373818bf9f075fb0ab76bcbfaf134592ef26bb75aad20786c1ff1ceba4457eaba90fb8 3613 | languageName: node 3614 | linkType: hard 3615 | 3616 | "unique-filename@npm:^4.0.0": 3617 | version: 4.0.0 3618 | resolution: "unique-filename@npm:4.0.0" 3619 | dependencies: 3620 | unique-slug: "npm:^5.0.0" 3621 | checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc 3622 | languageName: node 3623 | linkType: hard 3624 | 3625 | "unique-slug@npm:^3.0.0": 3626 | version: 3.0.0 3627 | resolution: "unique-slug@npm:3.0.0" 3628 | dependencies: 3629 | imurmurhash: "npm:^0.1.4" 3630 | checksum: 10c0/617240eb921af803b47d322d75a71a363dacf2e56c29ae5d1404fad85f64f4ec81ef10ee4fd79215d0202cbe1e5a653edb0558d59c9c81d3bd538c2d58e4c026 3631 | languageName: node 3632 | linkType: hard 3633 | 3634 | "unique-slug@npm:^5.0.0": 3635 | version: 5.0.0 3636 | resolution: "unique-slug@npm:5.0.0" 3637 | dependencies: 3638 | imurmurhash: "npm:^0.1.4" 3639 | checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 3640 | languageName: node 3641 | linkType: hard 3642 | 3643 | "universalify@npm:^0.1.0": 3644 | version: 0.1.2 3645 | resolution: "universalify@npm:0.1.2" 3646 | checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 3647 | languageName: node 3648 | linkType: hard 3649 | 3650 | "universalify@npm:^2.0.0": 3651 | version: 2.0.1 3652 | resolution: "universalify@npm:2.0.1" 3653 | checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a 3654 | languageName: node 3655 | linkType: hard 3656 | 3657 | "uri-js@npm:^4.2.2": 3658 | version: 4.4.1 3659 | resolution: "uri-js@npm:4.4.1" 3660 | dependencies: 3661 | punycode: "npm:^2.1.0" 3662 | checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c 3663 | languageName: node 3664 | linkType: hard 3665 | 3666 | "utf8-byte-length@npm:^1.0.1": 3667 | version: 1.0.5 3668 | resolution: "utf8-byte-length@npm:1.0.5" 3669 | checksum: 10c0/e69bda3299608f4cc75976da9fb74ac94801a58b9ca29fdad03a20ec952e7477d7f226c12716b5f36bd4cff8151d1d152d02ee1df3752f017d4b2c725ce3e47a 3670 | languageName: node 3671 | linkType: hard 3672 | 3673 | "util-deprecate@npm:^1.0.1": 3674 | version: 1.0.2 3675 | resolution: "util-deprecate@npm:1.0.2" 3676 | checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 3677 | languageName: node 3678 | linkType: hard 3679 | 3680 | "uuid@npm:^9.0.1": 3681 | version: 9.0.1 3682 | resolution: "uuid@npm:9.0.1" 3683 | bin: 3684 | uuid: dist/bin/uuid 3685 | checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b 3686 | languageName: node 3687 | linkType: hard 3688 | 3689 | "v8-compile-cache-lib@npm:^3.0.1": 3690 | version: 3.0.1 3691 | resolution: "v8-compile-cache-lib@npm:3.0.1" 3692 | checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 3693 | languageName: node 3694 | linkType: hard 3695 | 3696 | "verror@npm:^1.10.0": 3697 | version: 1.10.1 3698 | resolution: "verror@npm:1.10.1" 3699 | dependencies: 3700 | assert-plus: "npm:^1.0.0" 3701 | core-util-is: "npm:1.0.2" 3702 | extsprintf: "npm:^1.2.0" 3703 | checksum: 10c0/293fb060a4c9b07965569a0c3e45efa954127818707995a8a4311f691b5d6687be99f972c759838ba6eecae717f9af28e3c49d2afc7bbdf5f0b675238f1426e8 3704 | languageName: node 3705 | linkType: hard 3706 | 3707 | "wait-on@npm:^7.0.0": 3708 | version: 7.2.0 3709 | resolution: "wait-on@npm:7.2.0" 3710 | dependencies: 3711 | axios: "npm:^1.6.1" 3712 | joi: "npm:^17.11.0" 3713 | lodash: "npm:^4.17.21" 3714 | minimist: "npm:^1.2.8" 3715 | rxjs: "npm:^7.8.1" 3716 | bin: 3717 | wait-on: bin/wait-on 3718 | checksum: 10c0/1eff2189b3e4b0975889f3e480c75ca2a0d4275072779a6329e7cae8b729620594aa044509ddd89967de6ab2162169501b67b8d9562c16cac517837ffce17337 3719 | languageName: node 3720 | linkType: hard 3721 | 3722 | "wcwidth@npm:^1.0.1": 3723 | version: 1.0.1 3724 | resolution: "wcwidth@npm:1.0.1" 3725 | dependencies: 3726 | defaults: "npm:^1.0.3" 3727 | checksum: 10c0/5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4 3728 | languageName: node 3729 | linkType: hard 3730 | 3731 | "which@npm:^2.0.1, which@npm:^2.0.2": 3732 | version: 2.0.2 3733 | resolution: "which@npm:2.0.2" 3734 | dependencies: 3735 | isexe: "npm:^2.0.0" 3736 | bin: 3737 | node-which: ./bin/node-which 3738 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f 3739 | languageName: node 3740 | linkType: hard 3741 | 3742 | "which@npm:^5.0.0": 3743 | version: 5.0.0 3744 | resolution: "which@npm:5.0.0" 3745 | dependencies: 3746 | isexe: "npm:^3.1.1" 3747 | bin: 3748 | node-which: bin/which.js 3749 | checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b 3750 | languageName: node 3751 | linkType: hard 3752 | 3753 | "wide-align@npm:^1.1.5": 3754 | version: 1.1.5 3755 | resolution: "wide-align@npm:1.1.5" 3756 | dependencies: 3757 | string-width: "npm:^1.0.2 || 2 || 3 || 4" 3758 | checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 3759 | languageName: node 3760 | linkType: hard 3761 | 3762 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": 3763 | version: 7.0.0 3764 | resolution: "wrap-ansi@npm:7.0.0" 3765 | dependencies: 3766 | ansi-styles: "npm:^4.0.0" 3767 | string-width: "npm:^4.1.0" 3768 | strip-ansi: "npm:^6.0.0" 3769 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da 3770 | languageName: node 3771 | linkType: hard 3772 | 3773 | "wrap-ansi@npm:^8.1.0": 3774 | version: 8.1.0 3775 | resolution: "wrap-ansi@npm:8.1.0" 3776 | dependencies: 3777 | ansi-styles: "npm:^6.1.0" 3778 | string-width: "npm:^5.0.1" 3779 | strip-ansi: "npm:^7.0.1" 3780 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 3781 | languageName: node 3782 | linkType: hard 3783 | 3784 | "wrappy@npm:1": 3785 | version: 1.0.2 3786 | resolution: "wrappy@npm:1.0.2" 3787 | checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 3788 | languageName: node 3789 | linkType: hard 3790 | 3791 | "xmlbuilder@npm:>=11.0.1, xmlbuilder@npm:^15.1.1": 3792 | version: 15.1.1 3793 | resolution: "xmlbuilder@npm:15.1.1" 3794 | checksum: 10c0/665266a8916498ff8d82b3d46d3993913477a254b98149ff7cff060d9b7cc0db7cf5a3dae99aed92355254a808c0e2e3ec74ad1b04aa1061bdb8dfbea26c18b8 3795 | languageName: node 3796 | linkType: hard 3797 | 3798 | "y18n@npm:^5.0.5": 3799 | version: 5.0.8 3800 | resolution: "y18n@npm:5.0.8" 3801 | checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 3802 | languageName: node 3803 | linkType: hard 3804 | 3805 | "yallist@npm:^4.0.0": 3806 | version: 4.0.0 3807 | resolution: "yallist@npm:4.0.0" 3808 | checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a 3809 | languageName: node 3810 | linkType: hard 3811 | 3812 | "yallist@npm:^5.0.0": 3813 | version: 5.0.0 3814 | resolution: "yallist@npm:5.0.0" 3815 | checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 3816 | languageName: node 3817 | linkType: hard 3818 | 3819 | "yargs-parser@npm:^21.1.1": 3820 | version: 21.1.1 3821 | resolution: "yargs-parser@npm:21.1.1" 3822 | checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 3823 | languageName: node 3824 | linkType: hard 3825 | 3826 | "yargs@npm:^17.0.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": 3827 | version: 17.7.2 3828 | resolution: "yargs@npm:17.7.2" 3829 | dependencies: 3830 | cliui: "npm:^8.0.1" 3831 | escalade: "npm:^3.1.1" 3832 | get-caller-file: "npm:^2.0.5" 3833 | require-directory: "npm:^2.1.1" 3834 | string-width: "npm:^4.2.3" 3835 | y18n: "npm:^5.0.5" 3836 | yargs-parser: "npm:^21.1.1" 3837 | checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 3838 | languageName: node 3839 | linkType: hard 3840 | 3841 | "yauzl@npm:^2.10.0": 3842 | version: 2.10.0 3843 | resolution: "yauzl@npm:2.10.0" 3844 | dependencies: 3845 | buffer-crc32: "npm:~0.2.3" 3846 | fd-slicer: "npm:~1.1.0" 3847 | checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 3848 | languageName: node 3849 | linkType: hard 3850 | 3851 | "yn@npm:3.1.1": 3852 | version: 3.1.1 3853 | resolution: "yn@npm:3.1.1" 3854 | checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 3855 | languageName: node 3856 | linkType: hard 3857 | 3858 | "yocto-queue@npm:^0.1.0": 3859 | version: 0.1.0 3860 | resolution: "yocto-queue@npm:0.1.0" 3861 | checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f 3862 | languageName: node 3863 | linkType: hard 3864 | --------------------------------------------------------------------------------