├── .github └── FUNDING.yml ├── .gitignore ├── CameraAccessory.js ├── CameraServer.js ├── CameraSource.js ├── LICENSE ├── README.md ├── ScreenshotHelper.js ├── config.example.json ├── config.schema.json ├── docs ├── _config.yml └── sample.png ├── index.js ├── package-lock.json └── package.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: werthdavid 2 | custom: ["https://paypal.me/dwerth89"] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.iml 3 | .idea/ -------------------------------------------------------------------------------- /CameraAccessory.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const packageJSON = require("./package.json"); 3 | const CameraSource = require("./CameraSource"); 4 | const CameraServer = require("./CameraServer"); 5 | const ScreenshotHelper = require("./ScreenshotHelper"); 6 | 7 | module.exports = (hap, Accessory, log) => class CameraAccessory extends Accessory { 8 | constructor(conf) { 9 | conf = conf || {}; 10 | var name = conf.name || "Website to Camera"; 11 | var id = conf.id || ""; 12 | // Generate id from name 13 | if (id === "") { 14 | for (let i = 0; i < name.length; i++) { 15 | id += name.charCodeAt(i).toString(10); 16 | } 17 | } 18 | if (id.length > 12) { 19 | id = id.substr(0, 12); 20 | } 21 | var uuid = hap.uuid.generate("homebridge-website-to-camera:" + id); 22 | if (conf.live === "true") { 23 | super(name, uuid, hap.Categories.OTHER); 24 | this.getService(hap.Service.AccessoryInformation) 25 | .setCharacteristic(hap.Characteristic.Manufacturer, "David") 26 | .setCharacteristic(hap.Characteristic.Model, "Website") 27 | .setCharacteristic(hap.Characteristic.SerialNumber, id) 28 | .setCharacteristic(hap.Characteristic.FirmwareRevision, packageJSON.version); 29 | this.on("identify", function (paired, callback) { 30 | log("identify"); 31 | if (!!callback) { 32 | callback(); 33 | } 34 | }); 35 | this.screenshotHelper = new ScreenshotHelper(log, conf.url, conf.chromiumPath, conf.ignoreHTTPSErrors, conf.jsFile); 36 | new CameraServer(hap, conf, log); 37 | } else { 38 | super(name, uuid, hap.Categories.CAMERA); 39 | this.getService(hap.Service.AccessoryInformation) 40 | .setCharacteristic(hap.Characteristic.Manufacturer, "David") 41 | .setCharacteristic(hap.Characteristic.Model, "Website") 42 | .setCharacteristic(hap.Characteristic.SerialNumber, id) 43 | .setCharacteristic(hap.Characteristic.FirmwareRevision, packageJSON.version); 44 | this.on("identify", function (paired, callback) { 45 | log("identify"); 46 | if (!!callback) { 47 | callback(); 48 | } 49 | }); 50 | const cameraSource = new CameraSource(hap, conf, log); 51 | this.configureCameraSource(cameraSource); 52 | } 53 | } 54 | }; 55 | -------------------------------------------------------------------------------- /CameraServer.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | let ScreenshotHelper = require("./ScreenshotHelper"); 4 | let http = require("http"); 5 | let mjpegServer = require("mjpeg-server"); 6 | 7 | module.exports = CameraServer; 8 | 9 | function CameraServer(hap, conf, log) { 10 | this.hap = hap; 11 | this.log = log; 12 | this.conf = conf; 13 | this.screenshotHelper = new ScreenshotHelper(log, this.conf.url, this.conf.chromiumPath, this.conf.ignoreHTTPSErrors, this.conf.jsFile); 14 | 15 | let networkTimeout = this.conf.timeout || 10000; 16 | let renderTimeout = this.conf.renderTimeout || 1; 17 | this.screenshotHelper.getPage(1920, 1080, networkTimeout, renderTimeout).then(page => { 18 | this.page = page; 19 | }); 20 | 21 | this.openRequests = []; 22 | http.createServer((req, res) => { 23 | if (req.url.endsWith("still")) { 24 | this.log.debug("Still image request for " + this.conf.url); 25 | this.screenshotHelper.getScreenshot(1920, 1080, networkTimeout, renderTimeout).then(img => { 26 | const openRequest = mjpegServer.createReqHandler(req, res); 27 | openRequest.write(img); 28 | }); 29 | } else { 30 | const pos = this.openRequests.length; 31 | this.log.debug("Image Stream opened for client " + pos + " for " + this.conf.url); 32 | this.openRequests[pos] = mjpegServer.createReqHandler(req, res); 33 | res.on("close", ()=>{ 34 | this.log.debug("Image Stream closed for client " + pos + " for " + this.conf.url); 35 | this.openRequests.splice(pos, 1); 36 | }) 37 | } 38 | 39 | }).listen(this.conf.livePort || 8554); 40 | 41 | setInterval(() => { 42 | if (this.openRequests.length > 0 && !!this.page) { 43 | this.screenshotHelper.makeScreenshot(this.page, false).then(img => { 44 | for (let i = 0; i < this.openRequests.length; i++) { 45 | const openRequest = this.openRequests[i]; 46 | openRequest.write(img); 47 | } 48 | }); 49 | } 50 | }, (this.conf.liveSnapshotInterval || 1000)); 51 | 52 | this.log(this.conf.liveRefreshInterval) 53 | if (this.conf.liveRefreshInterval > 0) { 54 | setInterval(() => { 55 | if (this.openRequests.length > 0 && !!this.page) { 56 | this.log.debug("Refreshing page"); 57 | let networkTimeout = this.conf.timeout || 10000; 58 | this.screenshotHelper.refresh(this.page, networkTimeout); 59 | } 60 | }, (this.conf.liveRefreshInterval)); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /CameraSource.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | let ip = require("ip"); 4 | let crypto = require("crypto"); 5 | let ScreenshotHelper = require("./ScreenshotHelper"); 6 | 7 | module.exports = Camera; 8 | 9 | function Camera(hap, conf, log) { 10 | this.hap = hap; 11 | this.log = log; 12 | this.conf = conf; 13 | this.services = []; 14 | this.streamControllers = []; 15 | this.screenshotHelper = new ScreenshotHelper(log, conf.url, conf.chromiumPath, conf.ignoreHTTPSErrors, conf.jsFile); 16 | 17 | this.pendingSessions = {}; 18 | this.ongoingSessions = {}; 19 | this.cachedImage = undefined; 20 | this.lastSnapshotTime = undefined; 21 | 22 | let options = { 23 | proxy: false, // Requires RTP/RTCP MUX Proxy 24 | disable_audio_proxy: false, // If proxy = true, you can opt out audio proxy via this 25 | srtp: true, // Supports SRTP AES_CM_128_HMAC_SHA1_80 encryption 26 | video: { 27 | resolutions: [ 28 | [1920, 1080, 30], // Width, Height, framerate 29 | [320, 240, 15], // Apple Watch requires this configuration 30 | [1280, 960, 30], 31 | [1280, 720, 30], 32 | [1024, 768, 30], 33 | [640, 480, 30], 34 | [640, 360, 30], 35 | [480, 360, 30], 36 | [480, 270, 30], 37 | [320, 240, 30], 38 | [320, 180, 30] 39 | ], 40 | codec: { 41 | profiles: [0, 1, 2], // Enum, please refer StreamController.VideoCodecParamProfileIDTypes 42 | levels: [0, 1, 2] // Enum, please refer StreamController.VideoCodecParamLevelTypes 43 | } 44 | }, 45 | audio: { 46 | comfort_noise: false, 47 | codecs: [ 48 | { 49 | type: "OPUS", // Audio Codec 50 | samplerate: 24 // 8, 16, 24 KHz 51 | }, 52 | { 53 | type: "AAC-eld", 54 | samplerate: 16 55 | } 56 | ] 57 | } 58 | }; 59 | this.createCameraControlService(); 60 | this._createStreamControllers(2, options) 61 | } 62 | 63 | Camera.prototype.handleSnapshotRequest = function (request, callback) { 64 | let width = this.conf.width || (request.width * (this.conf.scale || 1.5)); 65 | let height = this.conf.height || (request.height * (this.conf.scale || 1.5)); 66 | let networkTimeout = this.conf.timeout || 10000; 67 | let renderTimeout = this.conf.renderTimeout || 1; 68 | 69 | if (this.conf.cacheTime > 0 & !!this.cachedImage && (new Date().getTime() - this.lastSnapshotTime) < (this.conf.cacheTime * 1000)) { 70 | this.log("Returning cached image"); 71 | this.log.debug("Cached Time:", this.conf.cacheTime); 72 | this.log.debug("lastSnapshotTime:", this.lastSnapshotTime); 73 | callback(null, this.cachedImage); 74 | return; 75 | } 76 | 77 | this.screenshotHelper.getScreenshot(width, height, networkTimeout, renderTimeout) 78 | .then( 79 | img => { 80 | this.log("Got screenshot"); 81 | this.lastSnapshotTime = new Date().getTime(); 82 | if (this.conf.cacheTime > 0) { 83 | this.cachedImage = img; 84 | } 85 | callback(null, img); 86 | }, 87 | reason => { 88 | this.log(reason); 89 | callback(reason); 90 | }) 91 | }; 92 | 93 | Camera.prototype.handleCloseConnection = function (connectionID) { 94 | this.streamControllers.forEach(function (controller) { 95 | controller.handleCloseConnection(connectionID); 96 | }) 97 | }; 98 | 99 | Camera.prototype.prepareStream = function (request, callback) { 100 | // Invoked when iOS device requires stream 101 | let sessionInfo = {}; 102 | 103 | let sessionID = request.sessionID; 104 | sessionInfo.address = request.targetAddress; 105 | 106 | let response = {}; 107 | 108 | let videoInfo = request.video; 109 | if (videoInfo) { 110 | let targetPort = videoInfo.port; 111 | let srtpKey = videoInfo.srtp_key; 112 | let srtpSalt = videoInfo.srtp_salt; 113 | 114 | // SSRC is a 32 bit integer that is unique per stream 115 | let ssrcSource = crypto.randomBytes(4); 116 | ssrcSource[0] = 0; 117 | let ssrc = ssrcSource.readInt32BE(0, true); 118 | 119 | response.video = { 120 | port: targetPort, 121 | ssrc: ssrc, 122 | srtp_key: srtpKey, 123 | srtp_salt: srtpSalt 124 | }; 125 | 126 | sessionInfo.video_port = targetPort; 127 | sessionInfo.video_srtp = Buffer.concat([srtpKey, srtpSalt]); 128 | sessionInfo.video_ssrc = ssrc; 129 | } 130 | 131 | let audioInfo = request.audio; 132 | if (audioInfo) { 133 | let targetPort = audioInfo.port; 134 | let srtpKey = audioInfo.srtp_key; 135 | let srtpSalt = audioInfo.srtp_salt; 136 | 137 | // SSRC is a 32 bit integer that is unique per stream 138 | let ssrcSource = crypto.randomBytes(4); 139 | ssrcSource[0] = 0; 140 | let ssrc = ssrcSource.readInt32BE(0, true); 141 | 142 | response.audio = { 143 | port: targetPort, 144 | ssrc: ssrc, 145 | srtp_key: srtpKey, 146 | srtp_salt: srtpSalt 147 | }; 148 | 149 | sessionInfo.audio_port = targetPort; 150 | sessionInfo.audio_srtp = Buffer.concat([srtpKey, srtpSalt]); 151 | sessionInfo.audio_ssrc = ssrc; 152 | } 153 | 154 | let currentAddress = ip.address(); 155 | let addressResp = { 156 | address: currentAddress 157 | }; 158 | 159 | if (ip.isV4Format(currentAddress)) { 160 | addressResp.type = "v4"; 161 | } else { 162 | addressResp.type = "v6"; 163 | } 164 | 165 | response.address = addressResp; 166 | this.pendingSessions[this.hap.uuid.unparse(sessionID)] = sessionInfo; 167 | 168 | callback(response); 169 | this.handleSnapshotRequest({ 170 | width: 800, 171 | height: 600 172 | }, () => {}); 173 | }; 174 | 175 | Camera.prototype.handleStreamRequest = function (request) { 176 | let sessionID = request.sessionID; 177 | let requestType = request.type; 178 | if (!sessionID) { 179 | return; 180 | } 181 | let sessionIdentifier = this.hap.uuid.unparse(sessionID); 182 | 183 | if (requestType === "start" && this.pendingSessions[sessionIdentifier]) { 184 | 185 | // TODO Implement "live" update mechanism 186 | this.ongoingSessions[sessionIdentifier] = undefined; 187 | 188 | delete this.pendingSessions[sessionIdentifier]; 189 | } 190 | if (requestType === "stop" && this.ongoingSessions[sessionIdentifier]) { 191 | delete this.ongoingSessions[sessionIdentifier]; 192 | } 193 | }; 194 | 195 | Camera.prototype.createCameraControlService = function () { 196 | let controlService = new this.hap.Service.CameraControl(); 197 | this.services.push(controlService); 198 | }; 199 | 200 | Camera.prototype._createStreamControllers = function (maxStreams, options) { 201 | let self = this; 202 | for (let i = 0; i < maxStreams; i += 1) { 203 | let streamController = new this.hap.StreamController(i, options, self); 204 | self.services.push(streamController.service); 205 | self.streamControllers.push(streamController); 206 | } 207 | }; 208 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 David Werth 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 | # homebridge-website-to-camera 2 | 3 | **Homebridge plugin for displaying a Website (intended for Google Maps-->Traffic) as Camera** 4 | 5 | [![NPM version](https://badge.fury.io/js/homebridge-website-to-camera.svg)](https://npmjs.org/package/homebridge-website-to-camera) 6 | [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) 7 | [![Downloads](https://img.shields.io/npm/dm/homebridge-website-to-camera.svg)](https://npmjs.org/package/homebridge-website-to-camera) 8 | 9 | 10 | 11 | 12 | 13 | 14 | If you find my work useful you can buy me a coffee, I am very thankful for your support. 15 | 16 | Buy Me A Coffee 17 | 18 | # Installation 19 | 20 | Make sure you have Homebridge installed. 21 | 22 | 1. Download the latest Chromium `sudo apt-get install chromium-browser` 23 | 2. Verify the Chromium installation by running `chromium-browser`, output should be similar to `(chromium-browser:30533): Gtk-WARNING **: cannot open display` 24 | 3. Install this plugin using: `sudo npm install -g homebridge-website-to-camera` 25 | 4. Update your Homebridge `config.json` using the sample below (append in the block 'platforms' not 'accessories') 26 | 27 | 28 | # Configuration 29 | 30 | Update your config similar to this: 31 | ```json 32 | "platforms": [ 33 | { 34 | "platform": "website-camera", 35 | "cameras": [ 36 | { 37 | "name": "Website 1", 38 | "url": "https://github.com", 39 | "chromiumPath": "/usr/bin/chromium-browser" 40 | } 41 | ] 42 | } 43 | ] 44 | ``` 45 | 46 | **You can add multiple cameras!** 47 | 48 | ## Config file 49 | 50 | 51 | Take a look at the example config.json 52 | 53 | 54 | Fields: 55 | 56 | * `name` name of the camera (required) 57 | * `id` unique(!) identifier for that specific camera (optional) 58 | * `url` the URL of the website that is to be captured (required) 59 | * `scale` HomeApp requests a (device dependent) size for the preview-image. 60 | With e.g. `scale` set to `2` (default) the virtual browser window is set to this size. Best is to skip this field. 61 | * OR `width` / `height` the width/height of the virtual browser window. This is optional and overrides `scale`. 62 | * `chromiumPath` path to chromium-executable (defaults to "/usr/bin/chromium-browser") 63 | * `timeout` timeout in ms for waiting until the page has no more pending requests. resembles to puppeteer.goto() (defaults to 10000 --> 10s) 64 | * `renderTimeout` timeout in ms for waiting AFTER the page has loaded before taking the screenshot. userful for PWAs. (defaults to 1ms) 65 | * `ignoreHTTPSErrors` ignore HTTPS errors, useful for self-signed certificates (defaults to `false`) 66 | * `cacheTime` will cache the image for the given time (in seconds) and a new screenshot will be created only if the time since the last screenshot is bigger than the given time 67 | * `jsFile` specify the full path of a custom JS-file that will be injected to the page (e.g. if you want to hide cookie-banners) 68 | * `live` enabled live mode to use with ffmpeg plugin (defaults to `false`). See below! 69 | * `liveSnapshotInterval` takes a screenshot of the website in the specified interval (in milliseconds). 1000 is a good value to start with. 70 | * `liveRefreshInterval` how often the page should be reloaded in live-mode (in milliseconds). If live mode is not enabled the page will be opened every time a screenshot is taken so refreshing is not needed. 71 | * `livePort` when `live` is set to true, this will be the port where the live server is running (defaults to 8554). make sure you use a free port especially if you have multiple cameras. 72 | 73 | # Usage 74 | 75 | In some cases, the camera is not visible in Home-App: 76 | * Press + on top right corner in Home-App 77 | * Press `Add device` 78 | * Press `Code missing` 79 | * Select Camera 80 | * Provide the code from Homebridge startup output (as stated in your config.json) 81 | 82 | # AppleTV / Live-Stream :tada: 83 | 84 | In Homebridge a Camera-Accessory provides two functionalities: 85 | - deliver a "still image" that serves as a preview for the camera 86 | - deliver a live-stream if the camera is "clicked" 87 | 88 | In previous versions of the plugin, only the still image was supported. 89 | This is a problem for AppleTV as this device does not show the still image, instead it directly shows the live-stream. 90 | Implementing the live-stream is not that easy with Node.js (Homekit needs the Camera to connect to the client via SRTP 91 | and send the video e.g. with x264). Instead of implementing this directly this plugin implements a helper, that lets 92 | you enable live-streaming via the [homebridge-camera-ffmpeg](https://github.com/Sunoo/homebridge-camera-ffmpeg) plugin. 93 | 94 | ## Enable Live-Stream 95 | 96 | :exclamation: You need to install [homebridge-camera-ffmpeg](https://github.com/Sunoo/homebridge-camera-ffmpeg) as well! 97 | 98 | ```json 99 | "platforms": [ 100 | { 101 | "platform": "website-camera", 102 | "cameras": [ 103 | { 104 | "name": "Website 1", 105 | "url": "https://github.com", 106 | "live": "true", 107 | "liveSnapshotInterval": 1000, 108 | "liveRefreshInterval": 5000, 109 | "livePort": 8554 110 | } 111 | ] 112 | }, 113 | { 114 | "platform": "Camera-ffmpeg", 115 | "cameras": [ 116 | { 117 | "name": "Website Camera", 118 | "videoConfig": { 119 | "source": "-i http://localhost:8554", 120 | "stillImageSource": "-i http://localhost:8554/still" 121 | } 122 | } 123 | ] 124 | } 125 | ] 126 | ``` 127 | 128 | :grey_exclamation: if `live` is enabled, the website-to-camera plugin will not expose a camera on its own! 129 | There will only be a server listening on the given port that offers a MJPEG live-stream. 130 | 131 | ## Live-mode FPS 132 | 133 | If you set `liveRefreshInterval` to 33, the stream will be served with about 30fps. This will consume CPU accordingly. 134 | It does work but I recommend setting it to a value >= 1000 (so one picture per second) as this plugin is not optimized 135 | for fast live videos. 136 | 137 | # Background 138 | 139 | The plugin uses Puppeteer/Chrome headless to capture the screenshots. The Browser instance stays open all the time for better performance and less CPU/Mem consumption. 140 | -------------------------------------------------------------------------------- /ScreenshotHelper.js: -------------------------------------------------------------------------------- 1 | const puppeteer = require("puppeteer-core"); 2 | const username = require("username"); 3 | const fs = require("fs"); 4 | 5 | module.exports = ScreenshotHelper; 6 | 7 | function ScreenshotHelper(log, url, chromiumPath = "/usr/bin/chromium-browser", ignoreHTTPSErrors = false, jsFile = undefined) { 8 | this.log = log; 9 | this.url = url; 10 | this.chromiumPath = chromiumPath; 11 | this.ignoreHTTPSErrors = ignoreHTTPSErrors; 12 | this.log("Initialized ScreenshotHelper"); 13 | this.jsFile = jsFile; 14 | } 15 | 16 | ScreenshotHelper.prototype.sleep = function timeout(ms) { 17 | return new Promise(resolve => setTimeout(resolve, ms)); 18 | }; 19 | 20 | ScreenshotHelper.prototype.getScreenshot = async function (width, height, networkTimeout, renderTimeout) { 21 | const page = await this.getPage(width, height, networkTimeout, renderTimeout); 22 | const screenshot = await this.makeScreenshot(page) 23 | page.close(); 24 | return screenshot; 25 | }; 26 | 27 | ScreenshotHelper.prototype.getPage = async function (width, height, networkTimeout, renderTimeout) { 28 | if (!this.browser) { 29 | this.log("Starting new instance of Chromium: " + this.chromiumPath); 30 | const isRoot = username.sync() === "root"; 31 | this.browser = await puppeteer.launch( 32 | { 33 | executablePath: this.chromiumPath, 34 | headless: true, 35 | ignoreHTTPSErrors: this.ignoreHTTPSErrors, 36 | args: isRoot ? ["--no-sandbox"] : [] 37 | } 38 | ); 39 | this.log("Chromium started"); 40 | } 41 | this.log("Opening new page"); 42 | const page = await this.browser.newPage(); 43 | this.log("Setting Viewport to " + width + "x" + height); 44 | await page.setViewport({width: width, height: height}); 45 | this.log("Going to page: " + this.url); 46 | await page.goto(this.url, {waitUntil: "networkidle2", timeout: networkTimeout}); 47 | this.log("Loading finished, waiting " + renderTimeout + "ms before taking screenshot"); 48 | await this.sleep(renderTimeout); 49 | if (!!this.jsFile) { 50 | await this.addJs(page, this.jsFile); 51 | } 52 | return page; 53 | }; 54 | 55 | ScreenshotHelper.prototype.makeScreenshot = async function (page, doLog = true) { 56 | const screenshot = await page.screenshot({type: "jpeg"}); 57 | if (doLog) { 58 | this.log("Created screenshot"); 59 | } 60 | return screenshot; 61 | }; 62 | 63 | ScreenshotHelper.prototype.refresh = async function (page, networkTimeout) { 64 | await page.reload({waitUntil: "networkidle2", timeout: networkTimeout}); 65 | }; 66 | 67 | ScreenshotHelper.prototype.addJs = async function (page, jsFile) { 68 | const file = fs.readFileSync(jsFile, "utf8"); 69 | await page.addScriptTag({ content: file }); 70 | }; -------------------------------------------------------------------------------- /config.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "bridge": { 3 | "name": "Homebirdge", 4 | "username": "CC:22:3D:E3:CE:33", 5 | "port": 51826, 6 | "pin": "012-34-567" 7 | }, 8 | "description": "Homebridge Example", 9 | "accessories": [ 10 | ], 11 | "platforms": [ 12 | { 13 | "platform": "website-camera", 14 | "cameras": [ 15 | { 16 | "name": "Google Maps Traffic", 17 | "url": "http://google.com", 18 | "height": 1334, 19 | "width": 750, 20 | "timeout": 10000 21 | }, 22 | { 23 | "name": "Google Maps Traffic #2", 24 | "url": "http://google.com", 25 | "scale": 1 26 | } 27 | ] 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /config.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "pluginAlias":"website-camera", 3 | "pluginType":"platform", 4 | "singular":true, 5 | "headerDisplay":"Homebridge plugin for displaying a Website as Camera.", 6 | "footerDisplay":"Visit the [Project Page](https://github.com/werthdavid/homebridge-website-to-camera) if you have more questions.", 7 | "schema":{ 8 | "type":"object", 9 | "additionalProperties":true, 10 | "properties":{ 11 | "platform":{ 12 | "type":"string" 13 | }, 14 | "cameras":{ 15 | "type":"array", 16 | "additionalItems":true, 17 | "items":{ 18 | "type":"object", 19 | "additionalProperties":true, 20 | "properties":{ 21 | "name":{ 22 | "title":"Name of the Camera", 23 | "type":"string", 24 | "required": true 25 | }, 26 | "url":{ 27 | "title":"URL of the Website to display", 28 | "type":"string", 29 | "required": true 30 | }, 31 | "height":{ 32 | "title":"Height of the Browser-window (leave empty to use device width)", 33 | "type":"integer" 34 | }, 35 | "width":{ 36 | "title":"Width of the Browser-window (leave empty to use device height)", 37 | "type":"integer" 38 | }, 39 | "scale":{ 40 | "title":"Scale (if height/width is used)", 41 | "type":"integer" 42 | }, 43 | "timeout":{ 44 | "title":"Timeout of the page before loading is cancelled (ms)", 45 | "type":"integer", 46 | "default": "10000" 47 | }, 48 | "renderTimeout":{ 49 | "titel":"Render Timeout (time in ms after page is loaded and before screenshot is taken) (ms)", 50 | "type":"integer", 51 | "default": "1" 52 | }, 53 | "cacheTime":{ 54 | "title":"Cache Time (enable this if you want to cache the image for the given time)", 55 | "type":"integer" 56 | }, 57 | "chromiumPath":{ 58 | "title":"Chromium Path", 59 | "type":"string", 60 | "default": "/usr/bin/chromium-browser" 61 | }, 62 | "jsFile":{ 63 | "title":"Path to custom JS file", 64 | "type":"string" 65 | }, 66 | "live":{ 67 | "title":"Live mode", 68 | "type":"string", 69 | "default": "false", 70 | "oneOf": [ 71 | { 72 | "title": "active", 73 | "enum": [ 74 | "true" 75 | ] 76 | }, 77 | { 78 | "title": "inactive (only screenshot)", 79 | "enum": [ 80 | "false" 81 | ] 82 | } 83 | ], 84 | "required": true 85 | }, 86 | "liveSnapshotInterval":{ 87 | "title":"Snapshot interval (Live mode)", 88 | "type":"integer", 89 | "default": "1000" 90 | }, 91 | "liveRefreshInterval":{ 92 | "title":"Page refresh interval (Live mode)", 93 | "type":"integer" 94 | }, 95 | "livePort":{ 96 | "title":"Port for Live-Stream", 97 | "type":"integer", 98 | "default": "8554" 99 | } 100 | } 101 | } 102 | } 103 | } 104 | } 105 | } -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /docs/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/werthdavid/homebridge-website-to-camera/0cb5694f707d53395e0e1e755c5d08ed4cfcde8d/docs/sample.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var Accessory, hap; 3 | 4 | module.exports = function (homebridge) { 5 | Accessory = homebridge.platformAccessory; 6 | hap = homebridge.hap; 7 | homebridge.registerPlatform("homebridge-website-to-camera", "website-camera", Platform, true); 8 | }; 9 | 10 | function Platform(log, config, api) { 11 | this.CameraAccessory = require("./CameraAccessory")(hap, Accessory, log); 12 | this.config = config || {}; 13 | this.api = api; 14 | if (!api || api.version < 2.1) { 15 | throw new Error("Unexpected API version."); 16 | } 17 | api.on("didFinishLaunching", this.didFinishLaunching.bind(this)); 18 | } 19 | 20 | Platform.prototype.configureAccessory = function (accessory) { 21 | }; 22 | 23 | Platform.prototype.didFinishLaunching = function () { 24 | if (!this.config.cameras) { 25 | return 26 | } 27 | const configuredAccessories = this.config.cameras.map(conf => new this.CameraAccessory(conf)); 28 | this.api.publishCameraAccessories("homebridge-website-to-camera", configuredAccessories); 29 | }; 30 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homebridge-website-to-camera", 3 | "version": "2.0.4", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "homebridge-website-to-camera", 9 | "version": "2.0.4", 10 | "license": "MIT", 11 | "dependencies": { 12 | "ip": "2.0.1", 13 | "mjpeg-server": "^0.3.1", 14 | "puppeteer-core": "^23.2.2", 15 | "username": "^5.1.0" 16 | }, 17 | "devDependencies": { 18 | "homebridge": "^1.3.4" 19 | }, 20 | "engines": { 21 | "homebridge": ">=0.2.0", 22 | "node": ">=4.2.0" 23 | } 24 | }, 25 | "node_modules/@homebridge/ciao": { 26 | "version": "1.3.1", 27 | "resolved": "https://registry.npmjs.org/@homebridge/ciao/-/ciao-1.3.1.tgz", 28 | "integrity": "sha512-87tQCBNNnTymlbg8pKlQjRsk7a5uuqhWBpCbUriVYUebz3voJkLbbTmp0TQg7Sa6Jnpk/Uo6LA8zAOy2sbK9bw==", 29 | "dev": true, 30 | "license": "MIT", 31 | "dependencies": { 32 | "debug": "^4.3.6", 33 | "fast-deep-equal": "^3.1.3", 34 | "source-map-support": "^0.5.21", 35 | "tslib": "^2.6.3" 36 | }, 37 | "bin": { 38 | "ciao-bcs": "lib/bonjour-conformance-testing.js" 39 | }, 40 | "engines": { 41 | "node": "^18 || ^20 || ^22" 42 | } 43 | }, 44 | "node_modules/@homebridge/dbus-native": { 45 | "version": "0.5.1", 46 | "resolved": "https://registry.npmjs.org/@homebridge/dbus-native/-/dbus-native-0.5.1.tgz", 47 | "integrity": "sha512-7xXz3R1W/kcbfQOGp32y4K7etqtowICR1vpx8j85KwPYXbNQrgiZ3zcwDYgDGBWq3FD9xzsW7h4YWJ4vTR2seQ==", 48 | "dev": true, 49 | "license": "MIT", 50 | "dependencies": { 51 | "@homebridge/long": "^5.2.1", 52 | "@homebridge/put": "~0.0.8", 53 | "event-stream": "^4.0.0", 54 | "hexy": "^0.2.10", 55 | "minimist": "^1.2.6", 56 | "safe-buffer": "^5.1.1", 57 | "xml2js": "^0.5.0" 58 | }, 59 | "bin": { 60 | "dbus2js": "bin/dbus2js.js" 61 | } 62 | }, 63 | "node_modules/@homebridge/long": { 64 | "version": "5.2.1", 65 | "resolved": "https://registry.npmjs.org/@homebridge/long/-/long-5.2.1.tgz", 66 | "integrity": "sha512-i5Df8R63XNPCn+Nj1OgAoRdw9e+jHUQb3CNUbvJneI2iu3j4+OtzQj+5PA1Ce+747NR1SPqZSvyvD483dOT3AA==", 67 | "dev": true, 68 | "license": "Apache-2.0" 69 | }, 70 | "node_modules/@homebridge/put": { 71 | "version": "0.0.8", 72 | "resolved": "https://registry.npmjs.org/@homebridge/put/-/put-0.0.8.tgz", 73 | "integrity": "sha512-mwxLHHqKebOmOSU0tsPEWQSBHGApPhuaqtNpCe7U+AMdsduweANiu64E9SXXUtdpyTjsOpgSMLhD1+kbLHD2gA==", 74 | "dev": true, 75 | "license": "MIT/X11", 76 | "engines": { 77 | "node": ">=0.3.0" 78 | } 79 | }, 80 | "node_modules/@leichtgewicht/ip-codec": { 81 | "version": "2.0.5", 82 | "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", 83 | "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", 84 | "dev": true, 85 | "license": "MIT" 86 | }, 87 | "node_modules/@puppeteer/browsers": { 88 | "version": "2.3.1", 89 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.1.tgz", 90 | "integrity": "sha512-uK7o3hHkK+naEobMSJ+2ySYyXtQkBxIH8Gn4MK9ciePjNV+Pf+PgY/W7iPzn2MTjl3stcYB5AlcTmPYw7AXDwA==", 91 | "license": "Apache-2.0", 92 | "dependencies": { 93 | "debug": "^4.3.6", 94 | "extract-zip": "^2.0.1", 95 | "progress": "^2.0.3", 96 | "proxy-agent": "^6.4.0", 97 | "semver": "^7.6.3", 98 | "tar-fs": "^3.0.6", 99 | "unbzip2-stream": "^1.4.3", 100 | "yargs": "^17.7.2" 101 | }, 102 | "bin": { 103 | "browsers": "lib/cjs/main-cli.js" 104 | }, 105 | "engines": { 106 | "node": ">=18" 107 | } 108 | }, 109 | "node_modules/@puppeteer/browsers/node_modules/semver": { 110 | "version": "7.6.3", 111 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 112 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 113 | "license": "ISC", 114 | "bin": { 115 | "semver": "bin/semver.js" 116 | }, 117 | "engines": { 118 | "node": ">=10" 119 | } 120 | }, 121 | "node_modules/@tootallnate/quickjs-emscripten": { 122 | "version": "0.23.0", 123 | "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", 124 | "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", 125 | "license": "MIT" 126 | }, 127 | "node_modules/@types/node": { 128 | "version": "22.5.2", 129 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", 130 | "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==", 131 | "license": "MIT", 132 | "optional": true, 133 | "dependencies": { 134 | "undici-types": "~6.19.2" 135 | } 136 | }, 137 | "node_modules/@types/yauzl": { 138 | "version": "2.10.3", 139 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", 140 | "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 141 | "license": "MIT", 142 | "optional": true, 143 | "dependencies": { 144 | "@types/node": "*" 145 | } 146 | }, 147 | "node_modules/agent-base": { 148 | "version": "7.1.1", 149 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", 150 | "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", 151 | "license": "MIT", 152 | "dependencies": { 153 | "debug": "^4.3.4" 154 | }, 155 | "engines": { 156 | "node": ">= 14" 157 | } 158 | }, 159 | "node_modules/ansi-regex": { 160 | "version": "5.0.1", 161 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 162 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 163 | "license": "MIT", 164 | "engines": { 165 | "node": ">=8" 166 | } 167 | }, 168 | "node_modules/ansi-styles": { 169 | "version": "4.3.0", 170 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 171 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 172 | "dependencies": { 173 | "color-convert": "^2.0.1" 174 | }, 175 | "engines": { 176 | "node": ">=8" 177 | }, 178 | "funding": { 179 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 180 | } 181 | }, 182 | "node_modules/array-buffer-byte-length": { 183 | "version": "1.0.1", 184 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", 185 | "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", 186 | "dev": true, 187 | "license": "MIT", 188 | "dependencies": { 189 | "call-bind": "^1.0.5", 190 | "is-array-buffer": "^3.0.4" 191 | }, 192 | "engines": { 193 | "node": ">= 0.4" 194 | }, 195 | "funding": { 196 | "url": "https://github.com/sponsors/ljharb" 197 | } 198 | }, 199 | "node_modules/array-flatten": { 200 | "version": "2.1.2", 201 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", 202 | "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", 203 | "dev": true, 204 | "license": "MIT" 205 | }, 206 | "node_modules/ast-types": { 207 | "version": "0.13.4", 208 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", 209 | "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", 210 | "license": "MIT", 211 | "dependencies": { 212 | "tslib": "^2.0.1" 213 | }, 214 | "engines": { 215 | "node": ">=4" 216 | } 217 | }, 218 | "node_modules/available-typed-arrays": { 219 | "version": "1.0.7", 220 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 221 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 222 | "dev": true, 223 | "license": "MIT", 224 | "dependencies": { 225 | "possible-typed-array-names": "^1.0.0" 226 | }, 227 | "engines": { 228 | "node": ">= 0.4" 229 | }, 230 | "funding": { 231 | "url": "https://github.com/sponsors/ljharb" 232 | } 233 | }, 234 | "node_modules/b4a": { 235 | "version": "1.6.6", 236 | "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", 237 | "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", 238 | "license": "Apache-2.0" 239 | }, 240 | "node_modules/bare-events": { 241 | "version": "2.4.2", 242 | "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", 243 | "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", 244 | "license": "Apache-2.0", 245 | "optional": true 246 | }, 247 | "node_modules/bare-fs": { 248 | "version": "2.3.3", 249 | "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.3.tgz", 250 | "integrity": "sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==", 251 | "license": "Apache-2.0", 252 | "optional": true, 253 | "dependencies": { 254 | "bare-events": "^2.0.0", 255 | "bare-path": "^2.0.0", 256 | "bare-stream": "^2.0.0" 257 | } 258 | }, 259 | "node_modules/bare-os": { 260 | "version": "2.4.2", 261 | "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz", 262 | "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==", 263 | "license": "Apache-2.0", 264 | "optional": true 265 | }, 266 | "node_modules/bare-path": { 267 | "version": "2.1.3", 268 | "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", 269 | "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", 270 | "license": "Apache-2.0", 271 | "optional": true, 272 | "dependencies": { 273 | "bare-os": "^2.1.0" 274 | } 275 | }, 276 | "node_modules/bare-stream": { 277 | "version": "2.2.0", 278 | "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.0.tgz", 279 | "integrity": "sha512-+o9MG5bPRRBlkVSpfFlMag3n7wMaIZb4YZasU2+/96f+3HTQ4F9DKQeu3K/Sjz1W0umu6xvVq1ON0ipWdMlr3A==", 280 | "license": "Apache-2.0", 281 | "optional": true, 282 | "dependencies": { 283 | "streamx": "^2.18.0" 284 | } 285 | }, 286 | "node_modules/base64-js": { 287 | "version": "1.5.1", 288 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 289 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 290 | "funding": [ 291 | { 292 | "type": "github", 293 | "url": "https://github.com/sponsors/feross" 294 | }, 295 | { 296 | "type": "patreon", 297 | "url": "https://www.patreon.com/feross" 298 | }, 299 | { 300 | "type": "consulting", 301 | "url": "https://feross.org/support" 302 | } 303 | ], 304 | "license": "MIT" 305 | }, 306 | "node_modules/basic-ftp": { 307 | "version": "5.0.5", 308 | "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", 309 | "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", 310 | "license": "MIT", 311 | "engines": { 312 | "node": ">=10.0.0" 313 | } 314 | }, 315 | "node_modules/bonjour-hap": { 316 | "version": "3.6.5", 317 | "resolved": "https://registry.npmjs.org/bonjour-hap/-/bonjour-hap-3.6.5.tgz", 318 | "integrity": "sha512-WsAbvzqveQHukBR4OPTgcZYG0+MxiksihmpMlKHOIOEBw3+iKDeqVPI/LutImZ4DAXBigYYD/JKJEXtZa9ZtLA==", 319 | "dev": true, 320 | "license": "MIT", 321 | "dependencies": { 322 | "array-flatten": "^2.1.2", 323 | "deep-equal": "^2.2.3", 324 | "multicast-dns": "^7.2.5", 325 | "multicast-dns-service-types": "^1.1.0" 326 | } 327 | }, 328 | "node_modules/buffer": { 329 | "version": "5.7.1", 330 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 331 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 332 | "funding": [ 333 | { 334 | "type": "github", 335 | "url": "https://github.com/sponsors/feross" 336 | }, 337 | { 338 | "type": "patreon", 339 | "url": "https://www.patreon.com/feross" 340 | }, 341 | { 342 | "type": "consulting", 343 | "url": "https://feross.org/support" 344 | } 345 | ], 346 | "license": "MIT", 347 | "dependencies": { 348 | "base64-js": "^1.3.1", 349 | "ieee754": "^1.1.13" 350 | } 351 | }, 352 | "node_modules/buffer-crc32": { 353 | "version": "0.2.13", 354 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 355 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 356 | "license": "MIT", 357 | "engines": { 358 | "node": "*" 359 | } 360 | }, 361 | "node_modules/buffer-from": { 362 | "version": "1.1.2", 363 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 364 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 365 | "dev": true, 366 | "license": "MIT" 367 | }, 368 | "node_modules/call-bind": { 369 | "version": "1.0.7", 370 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 371 | "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 372 | "dev": true, 373 | "license": "MIT", 374 | "dependencies": { 375 | "es-define-property": "^1.0.0", 376 | "es-errors": "^1.3.0", 377 | "function-bind": "^1.1.2", 378 | "get-intrinsic": "^1.2.4", 379 | "set-function-length": "^1.2.1" 380 | }, 381 | "engines": { 382 | "node": ">= 0.4" 383 | }, 384 | "funding": { 385 | "url": "https://github.com/sponsors/ljharb" 386 | } 387 | }, 388 | "node_modules/chalk": { 389 | "version": "4.1.2", 390 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 391 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 392 | "dev": true, 393 | "dependencies": { 394 | "ansi-styles": "^4.1.0", 395 | "supports-color": "^7.1.0" 396 | }, 397 | "engines": { 398 | "node": ">=10" 399 | }, 400 | "funding": { 401 | "url": "https://github.com/chalk/chalk?sponsor=1" 402 | } 403 | }, 404 | "node_modules/chromium-bidi": { 405 | "version": "0.6.5", 406 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.5.tgz", 407 | "integrity": "sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA==", 408 | "license": "Apache-2.0", 409 | "dependencies": { 410 | "mitt": "3.0.1", 411 | "urlpattern-polyfill": "10.0.0", 412 | "zod": "3.23.8" 413 | }, 414 | "peerDependencies": { 415 | "devtools-protocol": "*" 416 | } 417 | }, 418 | "node_modules/cliui": { 419 | "version": "8.0.1", 420 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 421 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 422 | "license": "ISC", 423 | "dependencies": { 424 | "string-width": "^4.2.0", 425 | "strip-ansi": "^6.0.1", 426 | "wrap-ansi": "^7.0.0" 427 | }, 428 | "engines": { 429 | "node": ">=12" 430 | } 431 | }, 432 | "node_modules/color-convert": { 433 | "version": "2.0.1", 434 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 435 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 436 | "dependencies": { 437 | "color-name": "~1.1.4" 438 | }, 439 | "engines": { 440 | "node": ">=7.0.0" 441 | } 442 | }, 443 | "node_modules/color-name": { 444 | "version": "1.1.4", 445 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 446 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 447 | }, 448 | "node_modules/commander": { 449 | "version": "5.1.0", 450 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", 451 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", 452 | "dev": true, 453 | "engines": { 454 | "node": ">= 6" 455 | } 456 | }, 457 | "node_modules/cross-spawn": { 458 | "version": "6.0.5", 459 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 460 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 461 | "dependencies": { 462 | "nice-try": "^1.0.4", 463 | "path-key": "^2.0.1", 464 | "semver": "^5.5.0", 465 | "shebang-command": "^1.2.0", 466 | "which": "^1.2.9" 467 | }, 468 | "engines": { 469 | "node": ">=4.8" 470 | } 471 | }, 472 | "node_modules/data-uri-to-buffer": { 473 | "version": "6.0.2", 474 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", 475 | "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", 476 | "license": "MIT", 477 | "engines": { 478 | "node": ">= 14" 479 | } 480 | }, 481 | "node_modules/debug": { 482 | "version": "4.3.6", 483 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", 484 | "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", 485 | "license": "MIT", 486 | "dependencies": { 487 | "ms": "2.1.2" 488 | }, 489 | "engines": { 490 | "node": ">=6.0" 491 | }, 492 | "peerDependenciesMeta": { 493 | "supports-color": { 494 | "optional": true 495 | } 496 | } 497 | }, 498 | "node_modules/deep-equal": { 499 | "version": "2.2.3", 500 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", 501 | "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", 502 | "dev": true, 503 | "license": "MIT", 504 | "dependencies": { 505 | "array-buffer-byte-length": "^1.0.0", 506 | "call-bind": "^1.0.5", 507 | "es-get-iterator": "^1.1.3", 508 | "get-intrinsic": "^1.2.2", 509 | "is-arguments": "^1.1.1", 510 | "is-array-buffer": "^3.0.2", 511 | "is-date-object": "^1.0.5", 512 | "is-regex": "^1.1.4", 513 | "is-shared-array-buffer": "^1.0.2", 514 | "isarray": "^2.0.5", 515 | "object-is": "^1.1.5", 516 | "object-keys": "^1.1.1", 517 | "object.assign": "^4.1.4", 518 | "regexp.prototype.flags": "^1.5.1", 519 | "side-channel": "^1.0.4", 520 | "which-boxed-primitive": "^1.0.2", 521 | "which-collection": "^1.0.1", 522 | "which-typed-array": "^1.1.13" 523 | }, 524 | "engines": { 525 | "node": ">= 0.4" 526 | }, 527 | "funding": { 528 | "url": "https://github.com/sponsors/ljharb" 529 | } 530 | }, 531 | "node_modules/define-data-property": { 532 | "version": "1.1.4", 533 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 534 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 535 | "dev": true, 536 | "license": "MIT", 537 | "dependencies": { 538 | "es-define-property": "^1.0.0", 539 | "es-errors": "^1.3.0", 540 | "gopd": "^1.0.1" 541 | }, 542 | "engines": { 543 | "node": ">= 0.4" 544 | }, 545 | "funding": { 546 | "url": "https://github.com/sponsors/ljharb" 547 | } 548 | }, 549 | "node_modules/define-properties": { 550 | "version": "1.2.1", 551 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 552 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 553 | "dev": true, 554 | "license": "MIT", 555 | "dependencies": { 556 | "define-data-property": "^1.0.1", 557 | "has-property-descriptors": "^1.0.0", 558 | "object-keys": "^1.1.1" 559 | }, 560 | "engines": { 561 | "node": ">= 0.4" 562 | }, 563 | "funding": { 564 | "url": "https://github.com/sponsors/ljharb" 565 | } 566 | }, 567 | "node_modules/degenerator": { 568 | "version": "5.0.1", 569 | "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", 570 | "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", 571 | "license": "MIT", 572 | "dependencies": { 573 | "ast-types": "^0.13.4", 574 | "escodegen": "^2.1.0", 575 | "esprima": "^4.0.1" 576 | }, 577 | "engines": { 578 | "node": ">= 14" 579 | } 580 | }, 581 | "node_modules/devtools-protocol": { 582 | "version": "0.0.1330662", 583 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz", 584 | "integrity": "sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==", 585 | "license": "BSD-3-Clause" 586 | }, 587 | "node_modules/dns-packet": { 588 | "version": "5.6.1", 589 | "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", 590 | "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", 591 | "dev": true, 592 | "license": "MIT", 593 | "dependencies": { 594 | "@leichtgewicht/ip-codec": "^2.0.1" 595 | }, 596 | "engines": { 597 | "node": ">=6" 598 | } 599 | }, 600 | "node_modules/duplexer": { 601 | "version": "0.1.2", 602 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", 603 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", 604 | "dev": true, 605 | "license": "MIT" 606 | }, 607 | "node_modules/emoji-regex": { 608 | "version": "8.0.0", 609 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 610 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 611 | "license": "MIT" 612 | }, 613 | "node_modules/end-of-stream": { 614 | "version": "1.4.4", 615 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 616 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 617 | "dependencies": { 618 | "once": "^1.4.0" 619 | } 620 | }, 621 | "node_modules/es-define-property": { 622 | "version": "1.0.0", 623 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 624 | "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 625 | "dev": true, 626 | "license": "MIT", 627 | "dependencies": { 628 | "get-intrinsic": "^1.2.4" 629 | }, 630 | "engines": { 631 | "node": ">= 0.4" 632 | } 633 | }, 634 | "node_modules/es-errors": { 635 | "version": "1.3.0", 636 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 637 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 638 | "dev": true, 639 | "license": "MIT", 640 | "engines": { 641 | "node": ">= 0.4" 642 | } 643 | }, 644 | "node_modules/es-get-iterator": { 645 | "version": "1.1.3", 646 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", 647 | "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", 648 | "dev": true, 649 | "license": "MIT", 650 | "dependencies": { 651 | "call-bind": "^1.0.2", 652 | "get-intrinsic": "^1.1.3", 653 | "has-symbols": "^1.0.3", 654 | "is-arguments": "^1.1.1", 655 | "is-map": "^2.0.2", 656 | "is-set": "^2.0.2", 657 | "is-string": "^1.0.7", 658 | "isarray": "^2.0.5", 659 | "stop-iteration-iterator": "^1.0.0" 660 | }, 661 | "funding": { 662 | "url": "https://github.com/sponsors/ljharb" 663 | } 664 | }, 665 | "node_modules/escalade": { 666 | "version": "3.2.0", 667 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 668 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 669 | "license": "MIT", 670 | "engines": { 671 | "node": ">=6" 672 | } 673 | }, 674 | "node_modules/escodegen": { 675 | "version": "2.1.0", 676 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", 677 | "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", 678 | "license": "BSD-2-Clause", 679 | "dependencies": { 680 | "esprima": "^4.0.1", 681 | "estraverse": "^5.2.0", 682 | "esutils": "^2.0.2" 683 | }, 684 | "bin": { 685 | "escodegen": "bin/escodegen.js", 686 | "esgenerate": "bin/esgenerate.js" 687 | }, 688 | "engines": { 689 | "node": ">=6.0" 690 | }, 691 | "optionalDependencies": { 692 | "source-map": "~0.6.1" 693 | } 694 | }, 695 | "node_modules/esprima": { 696 | "version": "4.0.1", 697 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 698 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 699 | "license": "BSD-2-Clause", 700 | "bin": { 701 | "esparse": "bin/esparse.js", 702 | "esvalidate": "bin/esvalidate.js" 703 | }, 704 | "engines": { 705 | "node": ">=4" 706 | } 707 | }, 708 | "node_modules/estraverse": { 709 | "version": "5.3.0", 710 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 711 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 712 | "license": "BSD-2-Clause", 713 | "engines": { 714 | "node": ">=4.0" 715 | } 716 | }, 717 | "node_modules/esutils": { 718 | "version": "2.0.3", 719 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 720 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 721 | "license": "BSD-2-Clause", 722 | "engines": { 723 | "node": ">=0.10.0" 724 | } 725 | }, 726 | "node_modules/event-stream": { 727 | "version": "4.0.1", 728 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", 729 | "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", 730 | "dev": true, 731 | "license": "MIT", 732 | "dependencies": { 733 | "duplexer": "^0.1.1", 734 | "from": "^0.1.7", 735 | "map-stream": "0.0.7", 736 | "pause-stream": "^0.0.11", 737 | "split": "^1.0.1", 738 | "stream-combiner": "^0.2.2", 739 | "through": "^2.3.8" 740 | } 741 | }, 742 | "node_modules/execa": { 743 | "version": "1.0.0", 744 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 745 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 746 | "dependencies": { 747 | "cross-spawn": "^6.0.0", 748 | "get-stream": "^4.0.0", 749 | "is-stream": "^1.1.0", 750 | "npm-run-path": "^2.0.0", 751 | "p-finally": "^1.0.0", 752 | "signal-exit": "^3.0.0", 753 | "strip-eof": "^1.0.0" 754 | }, 755 | "engines": { 756 | "node": ">=6" 757 | } 758 | }, 759 | "node_modules/execa/node_modules/get-stream": { 760 | "version": "4.1.0", 761 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 762 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 763 | "dependencies": { 764 | "pump": "^3.0.0" 765 | }, 766 | "engines": { 767 | "node": ">=6" 768 | } 769 | }, 770 | "node_modules/extract-zip": { 771 | "version": "2.0.1", 772 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 773 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 774 | "license": "BSD-2-Clause", 775 | "dependencies": { 776 | "debug": "^4.1.1", 777 | "get-stream": "^5.1.0", 778 | "yauzl": "^2.10.0" 779 | }, 780 | "bin": { 781 | "extract-zip": "cli.js" 782 | }, 783 | "engines": { 784 | "node": ">= 10.17.0" 785 | }, 786 | "optionalDependencies": { 787 | "@types/yauzl": "^2.9.1" 788 | } 789 | }, 790 | "node_modules/fast-deep-equal": { 791 | "version": "3.1.3", 792 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 793 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 794 | "dev": true, 795 | "license": "MIT" 796 | }, 797 | "node_modules/fast-fifo": { 798 | "version": "1.3.2", 799 | "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", 800 | "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", 801 | "license": "MIT" 802 | }, 803 | "node_modules/fast-srp-hap": { 804 | "version": "2.0.4", 805 | "resolved": "https://registry.npmjs.org/fast-srp-hap/-/fast-srp-hap-2.0.4.tgz", 806 | "integrity": "sha512-lHRYYaaIbMrhZtsdGTwPN82UbqD9Bv8QfOlKs+Dz6YRnByZifOh93EYmf2iEWFtkOEIqR2IK8cFD0UN5wLIWBQ==", 807 | "dev": true, 808 | "license": "MIT", 809 | "engines": { 810 | "node": ">=10.17.0" 811 | } 812 | }, 813 | "node_modules/fd-slicer": { 814 | "version": "1.1.0", 815 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 816 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 817 | "license": "MIT", 818 | "dependencies": { 819 | "pend": "~1.2.0" 820 | } 821 | }, 822 | "node_modules/for-each": { 823 | "version": "0.3.3", 824 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 825 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 826 | "dev": true, 827 | "license": "MIT", 828 | "dependencies": { 829 | "is-callable": "^1.1.3" 830 | } 831 | }, 832 | "node_modules/from": { 833 | "version": "0.1.7", 834 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 835 | "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", 836 | "dev": true, 837 | "license": "MIT" 838 | }, 839 | "node_modules/fs-extra": { 840 | "version": "10.1.0", 841 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 842 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 843 | "dev": true, 844 | "license": "MIT", 845 | "dependencies": { 846 | "graceful-fs": "^4.2.0", 847 | "jsonfile": "^6.0.1", 848 | "universalify": "^2.0.0" 849 | }, 850 | "engines": { 851 | "node": ">=12" 852 | } 853 | }, 854 | "node_modules/function-bind": { 855 | "version": "1.1.2", 856 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 857 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 858 | "dev": true, 859 | "license": "MIT", 860 | "funding": { 861 | "url": "https://github.com/sponsors/ljharb" 862 | } 863 | }, 864 | "node_modules/functions-have-names": { 865 | "version": "1.2.3", 866 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 867 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 868 | "dev": true, 869 | "license": "MIT", 870 | "funding": { 871 | "url": "https://github.com/sponsors/ljharb" 872 | } 873 | }, 874 | "node_modules/futoin-hkdf": { 875 | "version": "1.4.3", 876 | "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.4.3.tgz", 877 | "integrity": "sha512-K4MIe2xSVRMYxsA4w0ap5fp1C2hA9StA2Ad1JZHX57VMCdHIRB5BSrd1FhuadTQG9MkjggaTCrw7v5XXFyY3/w==", 878 | "dev": true, 879 | "license": "Apache-2.0", 880 | "engines": { 881 | "node": ">=8" 882 | } 883 | }, 884 | "node_modules/get-caller-file": { 885 | "version": "2.0.5", 886 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 887 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 888 | "license": "ISC", 889 | "engines": { 890 | "node": "6.* || 8.* || >= 10.*" 891 | } 892 | }, 893 | "node_modules/get-intrinsic": { 894 | "version": "1.2.4", 895 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 896 | "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 897 | "dev": true, 898 | "license": "MIT", 899 | "dependencies": { 900 | "es-errors": "^1.3.0", 901 | "function-bind": "^1.1.2", 902 | "has-proto": "^1.0.1", 903 | "has-symbols": "^1.0.3", 904 | "hasown": "^2.0.0" 905 | }, 906 | "engines": { 907 | "node": ">= 0.4" 908 | }, 909 | "funding": { 910 | "url": "https://github.com/sponsors/ljharb" 911 | } 912 | }, 913 | "node_modules/get-stream": { 914 | "version": "5.2.0", 915 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 916 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 917 | "license": "MIT", 918 | "dependencies": { 919 | "pump": "^3.0.0" 920 | }, 921 | "engines": { 922 | "node": ">=8" 923 | }, 924 | "funding": { 925 | "url": "https://github.com/sponsors/sindresorhus" 926 | } 927 | }, 928 | "node_modules/get-uri": { 929 | "version": "6.0.3", 930 | "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", 931 | "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", 932 | "license": "MIT", 933 | "dependencies": { 934 | "basic-ftp": "^5.0.2", 935 | "data-uri-to-buffer": "^6.0.2", 936 | "debug": "^4.3.4", 937 | "fs-extra": "^11.2.0" 938 | }, 939 | "engines": { 940 | "node": ">= 14" 941 | } 942 | }, 943 | "node_modules/get-uri/node_modules/fs-extra": { 944 | "version": "11.2.0", 945 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", 946 | "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", 947 | "license": "MIT", 948 | "dependencies": { 949 | "graceful-fs": "^4.2.0", 950 | "jsonfile": "^6.0.1", 951 | "universalify": "^2.0.0" 952 | }, 953 | "engines": { 954 | "node": ">=14.14" 955 | } 956 | }, 957 | "node_modules/gopd": { 958 | "version": "1.0.1", 959 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 960 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 961 | "dev": true, 962 | "license": "MIT", 963 | "dependencies": { 964 | "get-intrinsic": "^1.1.3" 965 | }, 966 | "funding": { 967 | "url": "https://github.com/sponsors/ljharb" 968 | } 969 | }, 970 | "node_modules/graceful-fs": { 971 | "version": "4.2.8", 972 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 973 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" 974 | }, 975 | "node_modules/hap-nodejs": { 976 | "version": "0.11.2", 977 | "resolved": "https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.11.2.tgz", 978 | "integrity": "sha512-Adapr973wOctCQwyj0hycnID34BkPyt5cc0fATQamuRN8TKBPipR5I/u8rE+G53UA9vtMhsTGJjWfJvzBAMs9w==", 979 | "dev": true, 980 | "license": "Apache-2.0", 981 | "dependencies": { 982 | "@homebridge/ciao": "^1.1.5", 983 | "@homebridge/dbus-native": "^0.5.1", 984 | "bonjour-hap": "~3.6.4", 985 | "debug": "^4.3.4", 986 | "fast-srp-hap": "~2.0.4", 987 | "futoin-hkdf": "~1.4.3", 988 | "node-persist": "^0.0.11", 989 | "source-map-support": "^0.5.21", 990 | "tslib": "^2.4.0", 991 | "tweetnacl": "^1.0.3" 992 | }, 993 | "engines": { 994 | "node": ">=10.17.0" 995 | } 996 | }, 997 | "node_modules/has-bigints": { 998 | "version": "1.0.2", 999 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 1000 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 1001 | "dev": true, 1002 | "license": "MIT", 1003 | "funding": { 1004 | "url": "https://github.com/sponsors/ljharb" 1005 | } 1006 | }, 1007 | "node_modules/has-flag": { 1008 | "version": "4.0.0", 1009 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1010 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1011 | "dev": true, 1012 | "engines": { 1013 | "node": ">=8" 1014 | } 1015 | }, 1016 | "node_modules/has-property-descriptors": { 1017 | "version": "1.0.2", 1018 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 1019 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 1020 | "dev": true, 1021 | "license": "MIT", 1022 | "dependencies": { 1023 | "es-define-property": "^1.0.0" 1024 | }, 1025 | "funding": { 1026 | "url": "https://github.com/sponsors/ljharb" 1027 | } 1028 | }, 1029 | "node_modules/has-proto": { 1030 | "version": "1.0.3", 1031 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 1032 | "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 1033 | "dev": true, 1034 | "license": "MIT", 1035 | "engines": { 1036 | "node": ">= 0.4" 1037 | }, 1038 | "funding": { 1039 | "url": "https://github.com/sponsors/ljharb" 1040 | } 1041 | }, 1042 | "node_modules/has-symbols": { 1043 | "version": "1.0.3", 1044 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1045 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1046 | "dev": true, 1047 | "license": "MIT", 1048 | "engines": { 1049 | "node": ">= 0.4" 1050 | }, 1051 | "funding": { 1052 | "url": "https://github.com/sponsors/ljharb" 1053 | } 1054 | }, 1055 | "node_modules/has-tostringtag": { 1056 | "version": "1.0.2", 1057 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 1058 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 1059 | "dev": true, 1060 | "license": "MIT", 1061 | "dependencies": { 1062 | "has-symbols": "^1.0.3" 1063 | }, 1064 | "engines": { 1065 | "node": ">= 0.4" 1066 | }, 1067 | "funding": { 1068 | "url": "https://github.com/sponsors/ljharb" 1069 | } 1070 | }, 1071 | "node_modules/hasown": { 1072 | "version": "2.0.2", 1073 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 1074 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 1075 | "dev": true, 1076 | "license": "MIT", 1077 | "dependencies": { 1078 | "function-bind": "^1.1.2" 1079 | }, 1080 | "engines": { 1081 | "node": ">= 0.4" 1082 | } 1083 | }, 1084 | "node_modules/hexy": { 1085 | "version": "0.2.11", 1086 | "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", 1087 | "integrity": "sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==", 1088 | "dev": true, 1089 | "license": "MIT", 1090 | "bin": { 1091 | "hexy": "bin/hexy_cmd.js" 1092 | } 1093 | }, 1094 | "node_modules/homebridge": { 1095 | "version": "1.6.1", 1096 | "resolved": "https://registry.npmjs.org/homebridge/-/homebridge-1.6.1.tgz", 1097 | "integrity": "sha512-hDhSaBDHFbB8wQQuZKbistYj1gjTIcNWmusqgEUb0Umk76Hs+G6VKRTkOEEVuxRaQWoK5hRM5rJTsCGAMCj5cA==", 1098 | "dev": true, 1099 | "license": "Apache-2.0", 1100 | "dependencies": { 1101 | "chalk": "^4.1.2", 1102 | "commander": "5.1.0", 1103 | "fs-extra": "^10.1.0", 1104 | "hap-nodejs": "~0.11.1", 1105 | "qrcode-terminal": "^0.12.0", 1106 | "semver": "^7.3.7", 1107 | "source-map-support": "^0.5.21" 1108 | }, 1109 | "bin": { 1110 | "homebridge": "bin/homebridge" 1111 | }, 1112 | "engines": { 1113 | "node": ">=10.17.0" 1114 | } 1115 | }, 1116 | "node_modules/homebridge/node_modules/semver": { 1117 | "version": "7.6.3", 1118 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 1119 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 1120 | "dev": true, 1121 | "license": "ISC", 1122 | "bin": { 1123 | "semver": "bin/semver.js" 1124 | }, 1125 | "engines": { 1126 | "node": ">=10" 1127 | } 1128 | }, 1129 | "node_modules/http-proxy-agent": { 1130 | "version": "7.0.2", 1131 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", 1132 | "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", 1133 | "license": "MIT", 1134 | "dependencies": { 1135 | "agent-base": "^7.1.0", 1136 | "debug": "^4.3.4" 1137 | }, 1138 | "engines": { 1139 | "node": ">= 14" 1140 | } 1141 | }, 1142 | "node_modules/https-proxy-agent": { 1143 | "version": "7.0.5", 1144 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", 1145 | "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", 1146 | "license": "MIT", 1147 | "dependencies": { 1148 | "agent-base": "^7.0.2", 1149 | "debug": "4" 1150 | }, 1151 | "engines": { 1152 | "node": ">= 14" 1153 | } 1154 | }, 1155 | "node_modules/ieee754": { 1156 | "version": "1.2.1", 1157 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1158 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1159 | "funding": [ 1160 | { 1161 | "type": "github", 1162 | "url": "https://github.com/sponsors/feross" 1163 | }, 1164 | { 1165 | "type": "patreon", 1166 | "url": "https://www.patreon.com/feross" 1167 | }, 1168 | { 1169 | "type": "consulting", 1170 | "url": "https://feross.org/support" 1171 | } 1172 | ], 1173 | "license": "BSD-3-Clause" 1174 | }, 1175 | "node_modules/internal-slot": { 1176 | "version": "1.0.7", 1177 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", 1178 | "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", 1179 | "dev": true, 1180 | "license": "MIT", 1181 | "dependencies": { 1182 | "es-errors": "^1.3.0", 1183 | "hasown": "^2.0.0", 1184 | "side-channel": "^1.0.4" 1185 | }, 1186 | "engines": { 1187 | "node": ">= 0.4" 1188 | } 1189 | }, 1190 | "node_modules/ip": { 1191 | "version": "2.0.1", 1192 | "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", 1193 | "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", 1194 | "license": "MIT" 1195 | }, 1196 | "node_modules/ip-address": { 1197 | "version": "9.0.5", 1198 | "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", 1199 | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", 1200 | "license": "MIT", 1201 | "dependencies": { 1202 | "jsbn": "1.1.0", 1203 | "sprintf-js": "^1.1.3" 1204 | }, 1205 | "engines": { 1206 | "node": ">= 12" 1207 | } 1208 | }, 1209 | "node_modules/is-arguments": { 1210 | "version": "1.1.1", 1211 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 1212 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 1213 | "dev": true, 1214 | "license": "MIT", 1215 | "dependencies": { 1216 | "call-bind": "^1.0.2", 1217 | "has-tostringtag": "^1.0.0" 1218 | }, 1219 | "engines": { 1220 | "node": ">= 0.4" 1221 | }, 1222 | "funding": { 1223 | "url": "https://github.com/sponsors/ljharb" 1224 | } 1225 | }, 1226 | "node_modules/is-array-buffer": { 1227 | "version": "3.0.4", 1228 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", 1229 | "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", 1230 | "dev": true, 1231 | "license": "MIT", 1232 | "dependencies": { 1233 | "call-bind": "^1.0.2", 1234 | "get-intrinsic": "^1.2.1" 1235 | }, 1236 | "engines": { 1237 | "node": ">= 0.4" 1238 | }, 1239 | "funding": { 1240 | "url": "https://github.com/sponsors/ljharb" 1241 | } 1242 | }, 1243 | "node_modules/is-bigint": { 1244 | "version": "1.0.4", 1245 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 1246 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 1247 | "dev": true, 1248 | "license": "MIT", 1249 | "dependencies": { 1250 | "has-bigints": "^1.0.1" 1251 | }, 1252 | "funding": { 1253 | "url": "https://github.com/sponsors/ljharb" 1254 | } 1255 | }, 1256 | "node_modules/is-boolean-object": { 1257 | "version": "1.1.2", 1258 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 1259 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 1260 | "dev": true, 1261 | "license": "MIT", 1262 | "dependencies": { 1263 | "call-bind": "^1.0.2", 1264 | "has-tostringtag": "^1.0.0" 1265 | }, 1266 | "engines": { 1267 | "node": ">= 0.4" 1268 | }, 1269 | "funding": { 1270 | "url": "https://github.com/sponsors/ljharb" 1271 | } 1272 | }, 1273 | "node_modules/is-callable": { 1274 | "version": "1.2.7", 1275 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 1276 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 1277 | "dev": true, 1278 | "license": "MIT", 1279 | "engines": { 1280 | "node": ">= 0.4" 1281 | }, 1282 | "funding": { 1283 | "url": "https://github.com/sponsors/ljharb" 1284 | } 1285 | }, 1286 | "node_modules/is-date-object": { 1287 | "version": "1.0.5", 1288 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 1289 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 1290 | "dev": true, 1291 | "license": "MIT", 1292 | "dependencies": { 1293 | "has-tostringtag": "^1.0.0" 1294 | }, 1295 | "engines": { 1296 | "node": ">= 0.4" 1297 | }, 1298 | "funding": { 1299 | "url": "https://github.com/sponsors/ljharb" 1300 | } 1301 | }, 1302 | "node_modules/is-fullwidth-code-point": { 1303 | "version": "3.0.0", 1304 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1305 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1306 | "license": "MIT", 1307 | "engines": { 1308 | "node": ">=8" 1309 | } 1310 | }, 1311 | "node_modules/is-map": { 1312 | "version": "2.0.3", 1313 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 1314 | "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 1315 | "dev": true, 1316 | "license": "MIT", 1317 | "engines": { 1318 | "node": ">= 0.4" 1319 | }, 1320 | "funding": { 1321 | "url": "https://github.com/sponsors/ljharb" 1322 | } 1323 | }, 1324 | "node_modules/is-number-object": { 1325 | "version": "1.0.7", 1326 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 1327 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1328 | "dev": true, 1329 | "license": "MIT", 1330 | "dependencies": { 1331 | "has-tostringtag": "^1.0.0" 1332 | }, 1333 | "engines": { 1334 | "node": ">= 0.4" 1335 | }, 1336 | "funding": { 1337 | "url": "https://github.com/sponsors/ljharb" 1338 | } 1339 | }, 1340 | "node_modules/is-regex": { 1341 | "version": "1.1.4", 1342 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 1343 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1344 | "dev": true, 1345 | "license": "MIT", 1346 | "dependencies": { 1347 | "call-bind": "^1.0.2", 1348 | "has-tostringtag": "^1.0.0" 1349 | }, 1350 | "engines": { 1351 | "node": ">= 0.4" 1352 | }, 1353 | "funding": { 1354 | "url": "https://github.com/sponsors/ljharb" 1355 | } 1356 | }, 1357 | "node_modules/is-set": { 1358 | "version": "2.0.3", 1359 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 1360 | "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 1361 | "dev": true, 1362 | "license": "MIT", 1363 | "engines": { 1364 | "node": ">= 0.4" 1365 | }, 1366 | "funding": { 1367 | "url": "https://github.com/sponsors/ljharb" 1368 | } 1369 | }, 1370 | "node_modules/is-shared-array-buffer": { 1371 | "version": "1.0.3", 1372 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", 1373 | "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", 1374 | "dev": true, 1375 | "license": "MIT", 1376 | "dependencies": { 1377 | "call-bind": "^1.0.7" 1378 | }, 1379 | "engines": { 1380 | "node": ">= 0.4" 1381 | }, 1382 | "funding": { 1383 | "url": "https://github.com/sponsors/ljharb" 1384 | } 1385 | }, 1386 | "node_modules/is-stream": { 1387 | "version": "1.1.0", 1388 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1389 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 1390 | "engines": { 1391 | "node": ">=0.10.0" 1392 | } 1393 | }, 1394 | "node_modules/is-string": { 1395 | "version": "1.0.7", 1396 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 1397 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1398 | "dev": true, 1399 | "license": "MIT", 1400 | "dependencies": { 1401 | "has-tostringtag": "^1.0.0" 1402 | }, 1403 | "engines": { 1404 | "node": ">= 0.4" 1405 | }, 1406 | "funding": { 1407 | "url": "https://github.com/sponsors/ljharb" 1408 | } 1409 | }, 1410 | "node_modules/is-symbol": { 1411 | "version": "1.0.4", 1412 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 1413 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1414 | "dev": true, 1415 | "license": "MIT", 1416 | "dependencies": { 1417 | "has-symbols": "^1.0.2" 1418 | }, 1419 | "engines": { 1420 | "node": ">= 0.4" 1421 | }, 1422 | "funding": { 1423 | "url": "https://github.com/sponsors/ljharb" 1424 | } 1425 | }, 1426 | "node_modules/is-weakmap": { 1427 | "version": "2.0.2", 1428 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 1429 | "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 1430 | "dev": true, 1431 | "license": "MIT", 1432 | "engines": { 1433 | "node": ">= 0.4" 1434 | }, 1435 | "funding": { 1436 | "url": "https://github.com/sponsors/ljharb" 1437 | } 1438 | }, 1439 | "node_modules/is-weakset": { 1440 | "version": "2.0.3", 1441 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", 1442 | "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", 1443 | "dev": true, 1444 | "license": "MIT", 1445 | "dependencies": { 1446 | "call-bind": "^1.0.7", 1447 | "get-intrinsic": "^1.2.4" 1448 | }, 1449 | "engines": { 1450 | "node": ">= 0.4" 1451 | }, 1452 | "funding": { 1453 | "url": "https://github.com/sponsors/ljharb" 1454 | } 1455 | }, 1456 | "node_modules/isarray": { 1457 | "version": "2.0.5", 1458 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 1459 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 1460 | "dev": true, 1461 | "license": "MIT" 1462 | }, 1463 | "node_modules/isexe": { 1464 | "version": "2.0.0", 1465 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1466 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 1467 | }, 1468 | "node_modules/jsbn": { 1469 | "version": "1.1.0", 1470 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", 1471 | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", 1472 | "license": "MIT" 1473 | }, 1474 | "node_modules/jsonfile": { 1475 | "version": "6.1.0", 1476 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 1477 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 1478 | "dependencies": { 1479 | "universalify": "^2.0.0" 1480 | }, 1481 | "optionalDependencies": { 1482 | "graceful-fs": "^4.1.6" 1483 | } 1484 | }, 1485 | "node_modules/map-age-cleaner": { 1486 | "version": "0.1.3", 1487 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 1488 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 1489 | "dependencies": { 1490 | "p-defer": "^1.0.0" 1491 | }, 1492 | "engines": { 1493 | "node": ">=6" 1494 | } 1495 | }, 1496 | "node_modules/map-stream": { 1497 | "version": "0.0.7", 1498 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", 1499 | "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", 1500 | "dev": true, 1501 | "license": "MIT" 1502 | }, 1503 | "node_modules/mem": { 1504 | "version": "4.3.0", 1505 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 1506 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 1507 | "dependencies": { 1508 | "map-age-cleaner": "^0.1.1", 1509 | "mimic-fn": "^2.0.0", 1510 | "p-is-promise": "^2.0.0" 1511 | }, 1512 | "engines": { 1513 | "node": ">=6" 1514 | } 1515 | }, 1516 | "node_modules/mimic-fn": { 1517 | "version": "2.1.0", 1518 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1519 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1520 | "engines": { 1521 | "node": ">=6" 1522 | } 1523 | }, 1524 | "node_modules/minimist": { 1525 | "version": "1.2.8", 1526 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1527 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1528 | "dev": true, 1529 | "license": "MIT", 1530 | "funding": { 1531 | "url": "https://github.com/sponsors/ljharb" 1532 | } 1533 | }, 1534 | "node_modules/mitt": { 1535 | "version": "3.0.1", 1536 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", 1537 | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", 1538 | "license": "MIT" 1539 | }, 1540 | "node_modules/mjpeg-server": { 1541 | "version": "0.3.1", 1542 | "resolved": "https://registry.npmjs.org/mjpeg-server/-/mjpeg-server-0.3.1.tgz", 1543 | "integrity": "sha512-zegOmZzr5Z4l3vDks3P9x02ecdMOCFDbvmZRzFb3EMu/7bVLFHCeZZeOxf2vWmUgTlQdpoQvnxmwfs9xS2NDQQ==", 1544 | "engines": { 1545 | "node": ">=0.10" 1546 | } 1547 | }, 1548 | "node_modules/mkdirp": { 1549 | "version": "0.5.6", 1550 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 1551 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 1552 | "dev": true, 1553 | "license": "MIT", 1554 | "dependencies": { 1555 | "minimist": "^1.2.6" 1556 | }, 1557 | "bin": { 1558 | "mkdirp": "bin/cmd.js" 1559 | } 1560 | }, 1561 | "node_modules/ms": { 1562 | "version": "2.1.2", 1563 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1564 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1565 | }, 1566 | "node_modules/multicast-dns": { 1567 | "version": "7.2.5", 1568 | "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", 1569 | "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", 1570 | "dev": true, 1571 | "license": "MIT", 1572 | "dependencies": { 1573 | "dns-packet": "^5.2.2", 1574 | "thunky": "^1.0.2" 1575 | }, 1576 | "bin": { 1577 | "multicast-dns": "cli.js" 1578 | } 1579 | }, 1580 | "node_modules/multicast-dns-service-types": { 1581 | "version": "1.1.0", 1582 | "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", 1583 | "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", 1584 | "dev": true, 1585 | "license": "MIT" 1586 | }, 1587 | "node_modules/netmask": { 1588 | "version": "2.0.2", 1589 | "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", 1590 | "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", 1591 | "license": "MIT", 1592 | "engines": { 1593 | "node": ">= 0.4.0" 1594 | } 1595 | }, 1596 | "node_modules/nice-try": { 1597 | "version": "1.0.5", 1598 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1599 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 1600 | }, 1601 | "node_modules/node-persist": { 1602 | "version": "0.0.11", 1603 | "resolved": "https://registry.npmjs.org/node-persist/-/node-persist-0.0.11.tgz", 1604 | "integrity": "sha512-J3EPzQDgPxPBID7TqHSd5KkpTULFqJUvYDoISfOWg9EihpeVCH3b6YQeDeubzVuc4e6+aiVmkz2sdkWI4K+ghA==", 1605 | "dev": true, 1606 | "license": "MIT", 1607 | "dependencies": { 1608 | "mkdirp": "~0.5.1", 1609 | "q": "~1.1.1" 1610 | } 1611 | }, 1612 | "node_modules/npm-run-path": { 1613 | "version": "2.0.2", 1614 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1615 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 1616 | "dependencies": { 1617 | "path-key": "^2.0.0" 1618 | }, 1619 | "engines": { 1620 | "node": ">=4" 1621 | } 1622 | }, 1623 | "node_modules/object-inspect": { 1624 | "version": "1.13.2", 1625 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", 1626 | "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", 1627 | "dev": true, 1628 | "license": "MIT", 1629 | "engines": { 1630 | "node": ">= 0.4" 1631 | }, 1632 | "funding": { 1633 | "url": "https://github.com/sponsors/ljharb" 1634 | } 1635 | }, 1636 | "node_modules/object-is": { 1637 | "version": "1.1.6", 1638 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", 1639 | "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", 1640 | "dev": true, 1641 | "license": "MIT", 1642 | "dependencies": { 1643 | "call-bind": "^1.0.7", 1644 | "define-properties": "^1.2.1" 1645 | }, 1646 | "engines": { 1647 | "node": ">= 0.4" 1648 | }, 1649 | "funding": { 1650 | "url": "https://github.com/sponsors/ljharb" 1651 | } 1652 | }, 1653 | "node_modules/object-keys": { 1654 | "version": "1.1.1", 1655 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1656 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1657 | "dev": true, 1658 | "license": "MIT", 1659 | "engines": { 1660 | "node": ">= 0.4" 1661 | } 1662 | }, 1663 | "node_modules/object.assign": { 1664 | "version": "4.1.5", 1665 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 1666 | "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 1667 | "dev": true, 1668 | "license": "MIT", 1669 | "dependencies": { 1670 | "call-bind": "^1.0.5", 1671 | "define-properties": "^1.2.1", 1672 | "has-symbols": "^1.0.3", 1673 | "object-keys": "^1.1.1" 1674 | }, 1675 | "engines": { 1676 | "node": ">= 0.4" 1677 | }, 1678 | "funding": { 1679 | "url": "https://github.com/sponsors/ljharb" 1680 | } 1681 | }, 1682 | "node_modules/once": { 1683 | "version": "1.4.0", 1684 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1685 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1686 | "dependencies": { 1687 | "wrappy": "1" 1688 | } 1689 | }, 1690 | "node_modules/p-defer": { 1691 | "version": "1.0.0", 1692 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 1693 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", 1694 | "engines": { 1695 | "node": ">=4" 1696 | } 1697 | }, 1698 | "node_modules/p-finally": { 1699 | "version": "1.0.0", 1700 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1701 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 1702 | "engines": { 1703 | "node": ">=4" 1704 | } 1705 | }, 1706 | "node_modules/p-is-promise": { 1707 | "version": "2.1.0", 1708 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 1709 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", 1710 | "engines": { 1711 | "node": ">=6" 1712 | } 1713 | }, 1714 | "node_modules/pac-proxy-agent": { 1715 | "version": "7.0.2", 1716 | "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", 1717 | "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", 1718 | "license": "MIT", 1719 | "dependencies": { 1720 | "@tootallnate/quickjs-emscripten": "^0.23.0", 1721 | "agent-base": "^7.0.2", 1722 | "debug": "^4.3.4", 1723 | "get-uri": "^6.0.1", 1724 | "http-proxy-agent": "^7.0.0", 1725 | "https-proxy-agent": "^7.0.5", 1726 | "pac-resolver": "^7.0.1", 1727 | "socks-proxy-agent": "^8.0.4" 1728 | }, 1729 | "engines": { 1730 | "node": ">= 14" 1731 | } 1732 | }, 1733 | "node_modules/pac-resolver": { 1734 | "version": "7.0.1", 1735 | "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", 1736 | "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", 1737 | "license": "MIT", 1738 | "dependencies": { 1739 | "degenerator": "^5.0.0", 1740 | "netmask": "^2.0.2" 1741 | }, 1742 | "engines": { 1743 | "node": ">= 14" 1744 | } 1745 | }, 1746 | "node_modules/path-key": { 1747 | "version": "2.0.1", 1748 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1749 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1750 | "engines": { 1751 | "node": ">=4" 1752 | } 1753 | }, 1754 | "node_modules/pause-stream": { 1755 | "version": "0.0.11", 1756 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 1757 | "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", 1758 | "dev": true, 1759 | "license": [ 1760 | "MIT", 1761 | "Apache2" 1762 | ], 1763 | "dependencies": { 1764 | "through": "~2.3" 1765 | } 1766 | }, 1767 | "node_modules/pend": { 1768 | "version": "1.2.0", 1769 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 1770 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", 1771 | "license": "MIT" 1772 | }, 1773 | "node_modules/possible-typed-array-names": { 1774 | "version": "1.0.0", 1775 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 1776 | "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 1777 | "dev": true, 1778 | "license": "MIT", 1779 | "engines": { 1780 | "node": ">= 0.4" 1781 | } 1782 | }, 1783 | "node_modules/progress": { 1784 | "version": "2.0.3", 1785 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1786 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1787 | "license": "MIT", 1788 | "engines": { 1789 | "node": ">=0.4.0" 1790 | } 1791 | }, 1792 | "node_modules/proxy-agent": { 1793 | "version": "6.4.0", 1794 | "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", 1795 | "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", 1796 | "license": "MIT", 1797 | "dependencies": { 1798 | "agent-base": "^7.0.2", 1799 | "debug": "^4.3.4", 1800 | "http-proxy-agent": "^7.0.1", 1801 | "https-proxy-agent": "^7.0.3", 1802 | "lru-cache": "^7.14.1", 1803 | "pac-proxy-agent": "^7.0.1", 1804 | "proxy-from-env": "^1.1.0", 1805 | "socks-proxy-agent": "^8.0.2" 1806 | }, 1807 | "engines": { 1808 | "node": ">= 14" 1809 | } 1810 | }, 1811 | "node_modules/proxy-agent/node_modules/lru-cache": { 1812 | "version": "7.18.3", 1813 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", 1814 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", 1815 | "license": "ISC", 1816 | "engines": { 1817 | "node": ">=12" 1818 | } 1819 | }, 1820 | "node_modules/proxy-from-env": { 1821 | "version": "1.1.0", 1822 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1823 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", 1824 | "license": "MIT" 1825 | }, 1826 | "node_modules/pump": { 1827 | "version": "3.0.0", 1828 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1829 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1830 | "dependencies": { 1831 | "end-of-stream": "^1.1.0", 1832 | "once": "^1.3.1" 1833 | } 1834 | }, 1835 | "node_modules/puppeteer-core": { 1836 | "version": "23.2.2", 1837 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.2.2.tgz", 1838 | "integrity": "sha512-MK2Kbdmro+nX9/pfGKm8TiU5G3CuS6BbcNfkcz42GWnHp7KYsJHrP6lPDepiyvwjti5Bt/4a8U3w+DoFpIcBHQ==", 1839 | "license": "Apache-2.0", 1840 | "dependencies": { 1841 | "@puppeteer/browsers": "2.3.1", 1842 | "chromium-bidi": "0.6.5", 1843 | "debug": "^4.3.6", 1844 | "devtools-protocol": "0.0.1330662", 1845 | "typed-query-selector": "^2.12.0", 1846 | "ws": "^8.18.0" 1847 | }, 1848 | "engines": { 1849 | "node": ">=18" 1850 | } 1851 | }, 1852 | "node_modules/q": { 1853 | "version": "1.1.2", 1854 | "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", 1855 | "integrity": "sha512-ROtylwux7Vkc4C07oKE/ReigUmb33kVoLtcR4SJ1QVqwaZkBEDL3vX4/kwFzIERQ5PfCl0XafbU8u2YUhyGgVA==", 1856 | "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", 1857 | "dev": true, 1858 | "license": "MIT", 1859 | "engines": { 1860 | "node": ">=0.6.0", 1861 | "teleport": ">=0.2.0" 1862 | } 1863 | }, 1864 | "node_modules/qrcode-terminal": { 1865 | "version": "0.12.0", 1866 | "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", 1867 | "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", 1868 | "dev": true, 1869 | "bin": { 1870 | "qrcode-terminal": "bin/qrcode-terminal.js" 1871 | } 1872 | }, 1873 | "node_modules/queue-tick": { 1874 | "version": "1.0.1", 1875 | "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", 1876 | "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", 1877 | "license": "MIT" 1878 | }, 1879 | "node_modules/regexp.prototype.flags": { 1880 | "version": "1.5.2", 1881 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", 1882 | "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", 1883 | "dev": true, 1884 | "license": "MIT", 1885 | "dependencies": { 1886 | "call-bind": "^1.0.6", 1887 | "define-properties": "^1.2.1", 1888 | "es-errors": "^1.3.0", 1889 | "set-function-name": "^2.0.1" 1890 | }, 1891 | "engines": { 1892 | "node": ">= 0.4" 1893 | }, 1894 | "funding": { 1895 | "url": "https://github.com/sponsors/ljharb" 1896 | } 1897 | }, 1898 | "node_modules/require-directory": { 1899 | "version": "2.1.1", 1900 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1901 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 1902 | "license": "MIT", 1903 | "engines": { 1904 | "node": ">=0.10.0" 1905 | } 1906 | }, 1907 | "node_modules/safe-buffer": { 1908 | "version": "5.2.1", 1909 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1910 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1911 | "dev": true, 1912 | "funding": [ 1913 | { 1914 | "type": "github", 1915 | "url": "https://github.com/sponsors/feross" 1916 | }, 1917 | { 1918 | "type": "patreon", 1919 | "url": "https://www.patreon.com/feross" 1920 | }, 1921 | { 1922 | "type": "consulting", 1923 | "url": "https://feross.org/support" 1924 | } 1925 | ], 1926 | "license": "MIT" 1927 | }, 1928 | "node_modules/sax": { 1929 | "version": "1.4.1", 1930 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", 1931 | "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", 1932 | "dev": true, 1933 | "license": "ISC" 1934 | }, 1935 | "node_modules/semver": { 1936 | "version": "5.7.1", 1937 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1938 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1939 | "bin": { 1940 | "semver": "bin/semver" 1941 | } 1942 | }, 1943 | "node_modules/set-function-length": { 1944 | "version": "1.2.2", 1945 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 1946 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 1947 | "dev": true, 1948 | "license": "MIT", 1949 | "dependencies": { 1950 | "define-data-property": "^1.1.4", 1951 | "es-errors": "^1.3.0", 1952 | "function-bind": "^1.1.2", 1953 | "get-intrinsic": "^1.2.4", 1954 | "gopd": "^1.0.1", 1955 | "has-property-descriptors": "^1.0.2" 1956 | }, 1957 | "engines": { 1958 | "node": ">= 0.4" 1959 | } 1960 | }, 1961 | "node_modules/set-function-name": { 1962 | "version": "2.0.2", 1963 | "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 1964 | "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 1965 | "dev": true, 1966 | "license": "MIT", 1967 | "dependencies": { 1968 | "define-data-property": "^1.1.4", 1969 | "es-errors": "^1.3.0", 1970 | "functions-have-names": "^1.2.3", 1971 | "has-property-descriptors": "^1.0.2" 1972 | }, 1973 | "engines": { 1974 | "node": ">= 0.4" 1975 | } 1976 | }, 1977 | "node_modules/shebang-command": { 1978 | "version": "1.2.0", 1979 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1980 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1981 | "dependencies": { 1982 | "shebang-regex": "^1.0.0" 1983 | }, 1984 | "engines": { 1985 | "node": ">=0.10.0" 1986 | } 1987 | }, 1988 | "node_modules/shebang-regex": { 1989 | "version": "1.0.0", 1990 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1991 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1992 | "engines": { 1993 | "node": ">=0.10.0" 1994 | } 1995 | }, 1996 | "node_modules/side-channel": { 1997 | "version": "1.0.6", 1998 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 1999 | "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 2000 | "dev": true, 2001 | "license": "MIT", 2002 | "dependencies": { 2003 | "call-bind": "^1.0.7", 2004 | "es-errors": "^1.3.0", 2005 | "get-intrinsic": "^1.2.4", 2006 | "object-inspect": "^1.13.1" 2007 | }, 2008 | "engines": { 2009 | "node": ">= 0.4" 2010 | }, 2011 | "funding": { 2012 | "url": "https://github.com/sponsors/ljharb" 2013 | } 2014 | }, 2015 | "node_modules/signal-exit": { 2016 | "version": "3.0.3", 2017 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2018 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 2019 | }, 2020 | "node_modules/smart-buffer": { 2021 | "version": "4.2.0", 2022 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 2023 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", 2024 | "license": "MIT", 2025 | "engines": { 2026 | "node": ">= 6.0.0", 2027 | "npm": ">= 3.0.0" 2028 | } 2029 | }, 2030 | "node_modules/socks": { 2031 | "version": "2.8.3", 2032 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", 2033 | "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", 2034 | "license": "MIT", 2035 | "dependencies": { 2036 | "ip-address": "^9.0.5", 2037 | "smart-buffer": "^4.2.0" 2038 | }, 2039 | "engines": { 2040 | "node": ">= 10.0.0", 2041 | "npm": ">= 3.0.0" 2042 | } 2043 | }, 2044 | "node_modules/socks-proxy-agent": { 2045 | "version": "8.0.4", 2046 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", 2047 | "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", 2048 | "license": "MIT", 2049 | "dependencies": { 2050 | "agent-base": "^7.1.1", 2051 | "debug": "^4.3.4", 2052 | "socks": "^2.8.3" 2053 | }, 2054 | "engines": { 2055 | "node": ">= 14" 2056 | } 2057 | }, 2058 | "node_modules/source-map": { 2059 | "version": "0.6.1", 2060 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2061 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2062 | "devOptional": true, 2063 | "engines": { 2064 | "node": ">=0.10.0" 2065 | } 2066 | }, 2067 | "node_modules/source-map-support": { 2068 | "version": "0.5.21", 2069 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 2070 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 2071 | "dev": true, 2072 | "license": "MIT", 2073 | "dependencies": { 2074 | "buffer-from": "^1.0.0", 2075 | "source-map": "^0.6.0" 2076 | } 2077 | }, 2078 | "node_modules/split": { 2079 | "version": "1.0.1", 2080 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 2081 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 2082 | "dev": true, 2083 | "license": "MIT", 2084 | "dependencies": { 2085 | "through": "2" 2086 | }, 2087 | "engines": { 2088 | "node": "*" 2089 | } 2090 | }, 2091 | "node_modules/sprintf-js": { 2092 | "version": "1.1.3", 2093 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 2094 | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", 2095 | "license": "BSD-3-Clause" 2096 | }, 2097 | "node_modules/stop-iteration-iterator": { 2098 | "version": "1.0.0", 2099 | "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", 2100 | "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", 2101 | "dev": true, 2102 | "license": "MIT", 2103 | "dependencies": { 2104 | "internal-slot": "^1.0.4" 2105 | }, 2106 | "engines": { 2107 | "node": ">= 0.4" 2108 | } 2109 | }, 2110 | "node_modules/stream-combiner": { 2111 | "version": "0.2.2", 2112 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", 2113 | "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", 2114 | "dev": true, 2115 | "license": "MIT", 2116 | "dependencies": { 2117 | "duplexer": "~0.1.1", 2118 | "through": "~2.3.4" 2119 | } 2120 | }, 2121 | "node_modules/streamx": { 2122 | "version": "2.20.0", 2123 | "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz", 2124 | "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==", 2125 | "license": "MIT", 2126 | "dependencies": { 2127 | "fast-fifo": "^1.3.2", 2128 | "queue-tick": "^1.0.1", 2129 | "text-decoder": "^1.1.0" 2130 | }, 2131 | "optionalDependencies": { 2132 | "bare-events": "^2.2.0" 2133 | } 2134 | }, 2135 | "node_modules/string-width": { 2136 | "version": "4.2.3", 2137 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2138 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2139 | "license": "MIT", 2140 | "dependencies": { 2141 | "emoji-regex": "^8.0.0", 2142 | "is-fullwidth-code-point": "^3.0.0", 2143 | "strip-ansi": "^6.0.1" 2144 | }, 2145 | "engines": { 2146 | "node": ">=8" 2147 | } 2148 | }, 2149 | "node_modules/strip-ansi": { 2150 | "version": "6.0.1", 2151 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2152 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2153 | "license": "MIT", 2154 | "dependencies": { 2155 | "ansi-regex": "^5.0.1" 2156 | }, 2157 | "engines": { 2158 | "node": ">=8" 2159 | } 2160 | }, 2161 | "node_modules/strip-eof": { 2162 | "version": "1.0.0", 2163 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 2164 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 2165 | "engines": { 2166 | "node": ">=0.10.0" 2167 | } 2168 | }, 2169 | "node_modules/supports-color": { 2170 | "version": "7.2.0", 2171 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2172 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2173 | "dev": true, 2174 | "dependencies": { 2175 | "has-flag": "^4.0.0" 2176 | }, 2177 | "engines": { 2178 | "node": ">=8" 2179 | } 2180 | }, 2181 | "node_modules/tar-fs": { 2182 | "version": "3.0.6", 2183 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", 2184 | "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", 2185 | "license": "MIT", 2186 | "dependencies": { 2187 | "pump": "^3.0.0", 2188 | "tar-stream": "^3.1.5" 2189 | }, 2190 | "optionalDependencies": { 2191 | "bare-fs": "^2.1.1", 2192 | "bare-path": "^2.1.0" 2193 | } 2194 | }, 2195 | "node_modules/tar-stream": { 2196 | "version": "3.1.7", 2197 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", 2198 | "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", 2199 | "license": "MIT", 2200 | "dependencies": { 2201 | "b4a": "^1.6.4", 2202 | "fast-fifo": "^1.2.0", 2203 | "streamx": "^2.15.0" 2204 | } 2205 | }, 2206 | "node_modules/text-decoder": { 2207 | "version": "1.1.1", 2208 | "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", 2209 | "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", 2210 | "license": "Apache-2.0", 2211 | "dependencies": { 2212 | "b4a": "^1.6.4" 2213 | } 2214 | }, 2215 | "node_modules/through": { 2216 | "version": "2.3.8", 2217 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2218 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", 2219 | "license": "MIT" 2220 | }, 2221 | "node_modules/thunky": { 2222 | "version": "1.1.0", 2223 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", 2224 | "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", 2225 | "dev": true, 2226 | "license": "MIT" 2227 | }, 2228 | "node_modules/tslib": { 2229 | "version": "2.7.0", 2230 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", 2231 | "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", 2232 | "license": "0BSD" 2233 | }, 2234 | "node_modules/tweetnacl": { 2235 | "version": "1.0.3", 2236 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 2237 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", 2238 | "dev": true, 2239 | "license": "Unlicense" 2240 | }, 2241 | "node_modules/typed-query-selector": { 2242 | "version": "2.12.0", 2243 | "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", 2244 | "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", 2245 | "license": "MIT" 2246 | }, 2247 | "node_modules/unbzip2-stream": { 2248 | "version": "1.4.3", 2249 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 2250 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 2251 | "license": "MIT", 2252 | "dependencies": { 2253 | "buffer": "^5.2.1", 2254 | "through": "^2.3.8" 2255 | } 2256 | }, 2257 | "node_modules/undici-types": { 2258 | "version": "6.19.8", 2259 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", 2260 | "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", 2261 | "license": "MIT", 2262 | "optional": true 2263 | }, 2264 | "node_modules/universalify": { 2265 | "version": "2.0.0", 2266 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 2267 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 2268 | "engines": { 2269 | "node": ">= 10.0.0" 2270 | } 2271 | }, 2272 | "node_modules/urlpattern-polyfill": { 2273 | "version": "10.0.0", 2274 | "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", 2275 | "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", 2276 | "license": "MIT" 2277 | }, 2278 | "node_modules/username": { 2279 | "version": "5.1.0", 2280 | "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", 2281 | "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==", 2282 | "dependencies": { 2283 | "execa": "^1.0.0", 2284 | "mem": "^4.3.0" 2285 | }, 2286 | "engines": { 2287 | "node": ">=8" 2288 | } 2289 | }, 2290 | "node_modules/which": { 2291 | "version": "1.3.1", 2292 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2293 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2294 | "dependencies": { 2295 | "isexe": "^2.0.0" 2296 | }, 2297 | "bin": { 2298 | "which": "bin/which" 2299 | } 2300 | }, 2301 | "node_modules/which-boxed-primitive": { 2302 | "version": "1.0.2", 2303 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 2304 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 2305 | "dev": true, 2306 | "license": "MIT", 2307 | "dependencies": { 2308 | "is-bigint": "^1.0.1", 2309 | "is-boolean-object": "^1.1.0", 2310 | "is-number-object": "^1.0.4", 2311 | "is-string": "^1.0.5", 2312 | "is-symbol": "^1.0.3" 2313 | }, 2314 | "funding": { 2315 | "url": "https://github.com/sponsors/ljharb" 2316 | } 2317 | }, 2318 | "node_modules/which-collection": { 2319 | "version": "1.0.2", 2320 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 2321 | "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 2322 | "dev": true, 2323 | "license": "MIT", 2324 | "dependencies": { 2325 | "is-map": "^2.0.3", 2326 | "is-set": "^2.0.3", 2327 | "is-weakmap": "^2.0.2", 2328 | "is-weakset": "^2.0.3" 2329 | }, 2330 | "engines": { 2331 | "node": ">= 0.4" 2332 | }, 2333 | "funding": { 2334 | "url": "https://github.com/sponsors/ljharb" 2335 | } 2336 | }, 2337 | "node_modules/which-typed-array": { 2338 | "version": "1.1.15", 2339 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 2340 | "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 2341 | "dev": true, 2342 | "license": "MIT", 2343 | "dependencies": { 2344 | "available-typed-arrays": "^1.0.7", 2345 | "call-bind": "^1.0.7", 2346 | "for-each": "^0.3.3", 2347 | "gopd": "^1.0.1", 2348 | "has-tostringtag": "^1.0.2" 2349 | }, 2350 | "engines": { 2351 | "node": ">= 0.4" 2352 | }, 2353 | "funding": { 2354 | "url": "https://github.com/sponsors/ljharb" 2355 | } 2356 | }, 2357 | "node_modules/wrap-ansi": { 2358 | "version": "7.0.0", 2359 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2360 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2361 | "license": "MIT", 2362 | "dependencies": { 2363 | "ansi-styles": "^4.0.0", 2364 | "string-width": "^4.1.0", 2365 | "strip-ansi": "^6.0.0" 2366 | }, 2367 | "engines": { 2368 | "node": ">=10" 2369 | }, 2370 | "funding": { 2371 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2372 | } 2373 | }, 2374 | "node_modules/wrappy": { 2375 | "version": "1.0.2", 2376 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2377 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2378 | }, 2379 | "node_modules/ws": { 2380 | "version": "8.18.0", 2381 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 2382 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 2383 | "license": "MIT", 2384 | "engines": { 2385 | "node": ">=10.0.0" 2386 | }, 2387 | "peerDependencies": { 2388 | "bufferutil": "^4.0.1", 2389 | "utf-8-validate": ">=5.0.2" 2390 | }, 2391 | "peerDependenciesMeta": { 2392 | "bufferutil": { 2393 | "optional": true 2394 | }, 2395 | "utf-8-validate": { 2396 | "optional": true 2397 | } 2398 | } 2399 | }, 2400 | "node_modules/xml2js": { 2401 | "version": "0.5.0", 2402 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", 2403 | "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", 2404 | "dev": true, 2405 | "license": "MIT", 2406 | "dependencies": { 2407 | "sax": ">=0.6.0", 2408 | "xmlbuilder": "~11.0.0" 2409 | }, 2410 | "engines": { 2411 | "node": ">=4.0.0" 2412 | } 2413 | }, 2414 | "node_modules/xmlbuilder": { 2415 | "version": "11.0.1", 2416 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 2417 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 2418 | "dev": true, 2419 | "license": "MIT", 2420 | "engines": { 2421 | "node": ">=4.0" 2422 | } 2423 | }, 2424 | "node_modules/y18n": { 2425 | "version": "5.0.8", 2426 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 2427 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 2428 | "license": "ISC", 2429 | "engines": { 2430 | "node": ">=10" 2431 | } 2432 | }, 2433 | "node_modules/yargs": { 2434 | "version": "17.7.2", 2435 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 2436 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 2437 | "license": "MIT", 2438 | "dependencies": { 2439 | "cliui": "^8.0.1", 2440 | "escalade": "^3.1.1", 2441 | "get-caller-file": "^2.0.5", 2442 | "require-directory": "^2.1.1", 2443 | "string-width": "^4.2.3", 2444 | "y18n": "^5.0.5", 2445 | "yargs-parser": "^21.1.1" 2446 | }, 2447 | "engines": { 2448 | "node": ">=12" 2449 | } 2450 | }, 2451 | "node_modules/yargs-parser": { 2452 | "version": "21.1.1", 2453 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 2454 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 2455 | "license": "ISC", 2456 | "engines": { 2457 | "node": ">=12" 2458 | } 2459 | }, 2460 | "node_modules/yauzl": { 2461 | "version": "2.10.0", 2462 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 2463 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 2464 | "license": "MIT", 2465 | "dependencies": { 2466 | "buffer-crc32": "~0.2.3", 2467 | "fd-slicer": "~1.1.0" 2468 | } 2469 | }, 2470 | "node_modules/zod": { 2471 | "version": "3.23.8", 2472 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", 2473 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", 2474 | "license": "MIT", 2475 | "funding": { 2476 | "url": "https://github.com/sponsors/colinhacks" 2477 | } 2478 | } 2479 | }, 2480 | "dependencies": { 2481 | "@homebridge/ciao": { 2482 | "version": "1.3.1", 2483 | "resolved": "https://registry.npmjs.org/@homebridge/ciao/-/ciao-1.3.1.tgz", 2484 | "integrity": "sha512-87tQCBNNnTymlbg8pKlQjRsk7a5uuqhWBpCbUriVYUebz3voJkLbbTmp0TQg7Sa6Jnpk/Uo6LA8zAOy2sbK9bw==", 2485 | "dev": true, 2486 | "requires": { 2487 | "debug": "^4.3.6", 2488 | "fast-deep-equal": "^3.1.3", 2489 | "source-map-support": "^0.5.21", 2490 | "tslib": "^2.6.3" 2491 | } 2492 | }, 2493 | "@homebridge/dbus-native": { 2494 | "version": "0.5.1", 2495 | "resolved": "https://registry.npmjs.org/@homebridge/dbus-native/-/dbus-native-0.5.1.tgz", 2496 | "integrity": "sha512-7xXz3R1W/kcbfQOGp32y4K7etqtowICR1vpx8j85KwPYXbNQrgiZ3zcwDYgDGBWq3FD9xzsW7h4YWJ4vTR2seQ==", 2497 | "dev": true, 2498 | "requires": { 2499 | "@homebridge/long": "^5.2.1", 2500 | "@homebridge/put": "~0.0.8", 2501 | "event-stream": "^4.0.0", 2502 | "hexy": "^0.2.10", 2503 | "minimist": "^1.2.6", 2504 | "safe-buffer": "^5.1.1", 2505 | "xml2js": "^0.5.0" 2506 | } 2507 | }, 2508 | "@homebridge/long": { 2509 | "version": "5.2.1", 2510 | "resolved": "https://registry.npmjs.org/@homebridge/long/-/long-5.2.1.tgz", 2511 | "integrity": "sha512-i5Df8R63XNPCn+Nj1OgAoRdw9e+jHUQb3CNUbvJneI2iu3j4+OtzQj+5PA1Ce+747NR1SPqZSvyvD483dOT3AA==", 2512 | "dev": true 2513 | }, 2514 | "@homebridge/put": { 2515 | "version": "0.0.8", 2516 | "resolved": "https://registry.npmjs.org/@homebridge/put/-/put-0.0.8.tgz", 2517 | "integrity": "sha512-mwxLHHqKebOmOSU0tsPEWQSBHGApPhuaqtNpCe7U+AMdsduweANiu64E9SXXUtdpyTjsOpgSMLhD1+kbLHD2gA==", 2518 | "dev": true 2519 | }, 2520 | "@leichtgewicht/ip-codec": { 2521 | "version": "2.0.5", 2522 | "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", 2523 | "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", 2524 | "dev": true 2525 | }, 2526 | "@puppeteer/browsers": { 2527 | "version": "2.3.1", 2528 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.1.tgz", 2529 | "integrity": "sha512-uK7o3hHkK+naEobMSJ+2ySYyXtQkBxIH8Gn4MK9ciePjNV+Pf+PgY/W7iPzn2MTjl3stcYB5AlcTmPYw7AXDwA==", 2530 | "requires": { 2531 | "debug": "^4.3.6", 2532 | "extract-zip": "^2.0.1", 2533 | "progress": "^2.0.3", 2534 | "proxy-agent": "^6.4.0", 2535 | "semver": "^7.6.3", 2536 | "tar-fs": "^3.0.6", 2537 | "unbzip2-stream": "^1.4.3", 2538 | "yargs": "^17.7.2" 2539 | }, 2540 | "dependencies": { 2541 | "semver": { 2542 | "version": "7.6.3", 2543 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 2544 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" 2545 | } 2546 | } 2547 | }, 2548 | "@tootallnate/quickjs-emscripten": { 2549 | "version": "0.23.0", 2550 | "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", 2551 | "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" 2552 | }, 2553 | "@types/node": { 2554 | "version": "22.5.2", 2555 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz", 2556 | "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==", 2557 | "optional": true, 2558 | "requires": { 2559 | "undici-types": "~6.19.2" 2560 | } 2561 | }, 2562 | "@types/yauzl": { 2563 | "version": "2.10.3", 2564 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", 2565 | "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 2566 | "optional": true, 2567 | "requires": { 2568 | "@types/node": "*" 2569 | } 2570 | }, 2571 | "agent-base": { 2572 | "version": "7.1.1", 2573 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", 2574 | "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", 2575 | "requires": { 2576 | "debug": "^4.3.4" 2577 | } 2578 | }, 2579 | "ansi-regex": { 2580 | "version": "5.0.1", 2581 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2582 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 2583 | }, 2584 | "ansi-styles": { 2585 | "version": "4.3.0", 2586 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2587 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2588 | "requires": { 2589 | "color-convert": "^2.0.1" 2590 | } 2591 | }, 2592 | "array-buffer-byte-length": { 2593 | "version": "1.0.1", 2594 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", 2595 | "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", 2596 | "dev": true, 2597 | "requires": { 2598 | "call-bind": "^1.0.5", 2599 | "is-array-buffer": "^3.0.4" 2600 | } 2601 | }, 2602 | "array-flatten": { 2603 | "version": "2.1.2", 2604 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", 2605 | "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", 2606 | "dev": true 2607 | }, 2608 | "ast-types": { 2609 | "version": "0.13.4", 2610 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", 2611 | "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", 2612 | "requires": { 2613 | "tslib": "^2.0.1" 2614 | } 2615 | }, 2616 | "available-typed-arrays": { 2617 | "version": "1.0.7", 2618 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 2619 | "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 2620 | "dev": true, 2621 | "requires": { 2622 | "possible-typed-array-names": "^1.0.0" 2623 | } 2624 | }, 2625 | "b4a": { 2626 | "version": "1.6.6", 2627 | "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", 2628 | "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" 2629 | }, 2630 | "bare-events": { 2631 | "version": "2.4.2", 2632 | "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", 2633 | "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", 2634 | "optional": true 2635 | }, 2636 | "bare-fs": { 2637 | "version": "2.3.3", 2638 | "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.3.tgz", 2639 | "integrity": "sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==", 2640 | "optional": true, 2641 | "requires": { 2642 | "bare-events": "^2.0.0", 2643 | "bare-path": "^2.0.0", 2644 | "bare-stream": "^2.0.0" 2645 | } 2646 | }, 2647 | "bare-os": { 2648 | "version": "2.4.2", 2649 | "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz", 2650 | "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==", 2651 | "optional": true 2652 | }, 2653 | "bare-path": { 2654 | "version": "2.1.3", 2655 | "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", 2656 | "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", 2657 | "optional": true, 2658 | "requires": { 2659 | "bare-os": "^2.1.0" 2660 | } 2661 | }, 2662 | "bare-stream": { 2663 | "version": "2.2.0", 2664 | "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.0.tgz", 2665 | "integrity": "sha512-+o9MG5bPRRBlkVSpfFlMag3n7wMaIZb4YZasU2+/96f+3HTQ4F9DKQeu3K/Sjz1W0umu6xvVq1ON0ipWdMlr3A==", 2666 | "optional": true, 2667 | "requires": { 2668 | "streamx": "^2.18.0" 2669 | } 2670 | }, 2671 | "base64-js": { 2672 | "version": "1.5.1", 2673 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2674 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 2675 | }, 2676 | "basic-ftp": { 2677 | "version": "5.0.5", 2678 | "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", 2679 | "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==" 2680 | }, 2681 | "bonjour-hap": { 2682 | "version": "3.6.5", 2683 | "resolved": "https://registry.npmjs.org/bonjour-hap/-/bonjour-hap-3.6.5.tgz", 2684 | "integrity": "sha512-WsAbvzqveQHukBR4OPTgcZYG0+MxiksihmpMlKHOIOEBw3+iKDeqVPI/LutImZ4DAXBigYYD/JKJEXtZa9ZtLA==", 2685 | "dev": true, 2686 | "requires": { 2687 | "array-flatten": "^2.1.2", 2688 | "deep-equal": "^2.2.3", 2689 | "multicast-dns": "^7.2.5", 2690 | "multicast-dns-service-types": "^1.1.0" 2691 | } 2692 | }, 2693 | "buffer": { 2694 | "version": "5.7.1", 2695 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 2696 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 2697 | "requires": { 2698 | "base64-js": "^1.3.1", 2699 | "ieee754": "^1.1.13" 2700 | } 2701 | }, 2702 | "buffer-crc32": { 2703 | "version": "0.2.13", 2704 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 2705 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 2706 | }, 2707 | "buffer-from": { 2708 | "version": "1.1.2", 2709 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 2710 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 2711 | "dev": true 2712 | }, 2713 | "call-bind": { 2714 | "version": "1.0.7", 2715 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 2716 | "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 2717 | "dev": true, 2718 | "requires": { 2719 | "es-define-property": "^1.0.0", 2720 | "es-errors": "^1.3.0", 2721 | "function-bind": "^1.1.2", 2722 | "get-intrinsic": "^1.2.4", 2723 | "set-function-length": "^1.2.1" 2724 | } 2725 | }, 2726 | "chalk": { 2727 | "version": "4.1.2", 2728 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2729 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2730 | "dev": true, 2731 | "requires": { 2732 | "ansi-styles": "^4.1.0", 2733 | "supports-color": "^7.1.0" 2734 | } 2735 | }, 2736 | "chromium-bidi": { 2737 | "version": "0.6.5", 2738 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.5.tgz", 2739 | "integrity": "sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA==", 2740 | "requires": { 2741 | "mitt": "3.0.1", 2742 | "urlpattern-polyfill": "10.0.0", 2743 | "zod": "3.23.8" 2744 | } 2745 | }, 2746 | "cliui": { 2747 | "version": "8.0.1", 2748 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 2749 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 2750 | "requires": { 2751 | "string-width": "^4.2.0", 2752 | "strip-ansi": "^6.0.1", 2753 | "wrap-ansi": "^7.0.0" 2754 | } 2755 | }, 2756 | "color-convert": { 2757 | "version": "2.0.1", 2758 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2759 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2760 | "requires": { 2761 | "color-name": "~1.1.4" 2762 | } 2763 | }, 2764 | "color-name": { 2765 | "version": "1.1.4", 2766 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2767 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 2768 | }, 2769 | "commander": { 2770 | "version": "5.1.0", 2771 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", 2772 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", 2773 | "dev": true 2774 | }, 2775 | "cross-spawn": { 2776 | "version": "6.0.5", 2777 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 2778 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 2779 | "requires": { 2780 | "nice-try": "^1.0.4", 2781 | "path-key": "^2.0.1", 2782 | "semver": "^5.5.0", 2783 | "shebang-command": "^1.2.0", 2784 | "which": "^1.2.9" 2785 | } 2786 | }, 2787 | "data-uri-to-buffer": { 2788 | "version": "6.0.2", 2789 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", 2790 | "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==" 2791 | }, 2792 | "debug": { 2793 | "version": "4.3.6", 2794 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", 2795 | "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", 2796 | "requires": { 2797 | "ms": "2.1.2" 2798 | } 2799 | }, 2800 | "deep-equal": { 2801 | "version": "2.2.3", 2802 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", 2803 | "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", 2804 | "dev": true, 2805 | "requires": { 2806 | "array-buffer-byte-length": "^1.0.0", 2807 | "call-bind": "^1.0.5", 2808 | "es-get-iterator": "^1.1.3", 2809 | "get-intrinsic": "^1.2.2", 2810 | "is-arguments": "^1.1.1", 2811 | "is-array-buffer": "^3.0.2", 2812 | "is-date-object": "^1.0.5", 2813 | "is-regex": "^1.1.4", 2814 | "is-shared-array-buffer": "^1.0.2", 2815 | "isarray": "^2.0.5", 2816 | "object-is": "^1.1.5", 2817 | "object-keys": "^1.1.1", 2818 | "object.assign": "^4.1.4", 2819 | "regexp.prototype.flags": "^1.5.1", 2820 | "side-channel": "^1.0.4", 2821 | "which-boxed-primitive": "^1.0.2", 2822 | "which-collection": "^1.0.1", 2823 | "which-typed-array": "^1.1.13" 2824 | } 2825 | }, 2826 | "define-data-property": { 2827 | "version": "1.1.4", 2828 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 2829 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 2830 | "dev": true, 2831 | "requires": { 2832 | "es-define-property": "^1.0.0", 2833 | "es-errors": "^1.3.0", 2834 | "gopd": "^1.0.1" 2835 | } 2836 | }, 2837 | "define-properties": { 2838 | "version": "1.2.1", 2839 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 2840 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 2841 | "dev": true, 2842 | "requires": { 2843 | "define-data-property": "^1.0.1", 2844 | "has-property-descriptors": "^1.0.0", 2845 | "object-keys": "^1.1.1" 2846 | } 2847 | }, 2848 | "degenerator": { 2849 | "version": "5.0.1", 2850 | "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", 2851 | "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", 2852 | "requires": { 2853 | "ast-types": "^0.13.4", 2854 | "escodegen": "^2.1.0", 2855 | "esprima": "^4.0.1" 2856 | } 2857 | }, 2858 | "devtools-protocol": { 2859 | "version": "0.0.1330662", 2860 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz", 2861 | "integrity": "sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==" 2862 | }, 2863 | "dns-packet": { 2864 | "version": "5.6.1", 2865 | "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", 2866 | "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", 2867 | "dev": true, 2868 | "requires": { 2869 | "@leichtgewicht/ip-codec": "^2.0.1" 2870 | } 2871 | }, 2872 | "duplexer": { 2873 | "version": "0.1.2", 2874 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", 2875 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", 2876 | "dev": true 2877 | }, 2878 | "emoji-regex": { 2879 | "version": "8.0.0", 2880 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2881 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 2882 | }, 2883 | "end-of-stream": { 2884 | "version": "1.4.4", 2885 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 2886 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 2887 | "requires": { 2888 | "once": "^1.4.0" 2889 | } 2890 | }, 2891 | "es-define-property": { 2892 | "version": "1.0.0", 2893 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 2894 | "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 2895 | "dev": true, 2896 | "requires": { 2897 | "get-intrinsic": "^1.2.4" 2898 | } 2899 | }, 2900 | "es-errors": { 2901 | "version": "1.3.0", 2902 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 2903 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 2904 | "dev": true 2905 | }, 2906 | "es-get-iterator": { 2907 | "version": "1.1.3", 2908 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", 2909 | "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", 2910 | "dev": true, 2911 | "requires": { 2912 | "call-bind": "^1.0.2", 2913 | "get-intrinsic": "^1.1.3", 2914 | "has-symbols": "^1.0.3", 2915 | "is-arguments": "^1.1.1", 2916 | "is-map": "^2.0.2", 2917 | "is-set": "^2.0.2", 2918 | "is-string": "^1.0.7", 2919 | "isarray": "^2.0.5", 2920 | "stop-iteration-iterator": "^1.0.0" 2921 | } 2922 | }, 2923 | "escalade": { 2924 | "version": "3.2.0", 2925 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 2926 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" 2927 | }, 2928 | "escodegen": { 2929 | "version": "2.1.0", 2930 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", 2931 | "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", 2932 | "requires": { 2933 | "esprima": "^4.0.1", 2934 | "estraverse": "^5.2.0", 2935 | "esutils": "^2.0.2", 2936 | "source-map": "~0.6.1" 2937 | } 2938 | }, 2939 | "esprima": { 2940 | "version": "4.0.1", 2941 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 2942 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 2943 | }, 2944 | "estraverse": { 2945 | "version": "5.3.0", 2946 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2947 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" 2948 | }, 2949 | "esutils": { 2950 | "version": "2.0.3", 2951 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2952 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" 2953 | }, 2954 | "event-stream": { 2955 | "version": "4.0.1", 2956 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", 2957 | "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", 2958 | "dev": true, 2959 | "requires": { 2960 | "duplexer": "^0.1.1", 2961 | "from": "^0.1.7", 2962 | "map-stream": "0.0.7", 2963 | "pause-stream": "^0.0.11", 2964 | "split": "^1.0.1", 2965 | "stream-combiner": "^0.2.2", 2966 | "through": "^2.3.8" 2967 | } 2968 | }, 2969 | "execa": { 2970 | "version": "1.0.0", 2971 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 2972 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 2973 | "requires": { 2974 | "cross-spawn": "^6.0.0", 2975 | "get-stream": "^4.0.0", 2976 | "is-stream": "^1.1.0", 2977 | "npm-run-path": "^2.0.0", 2978 | "p-finally": "^1.0.0", 2979 | "signal-exit": "^3.0.0", 2980 | "strip-eof": "^1.0.0" 2981 | }, 2982 | "dependencies": { 2983 | "get-stream": { 2984 | "version": "4.1.0", 2985 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 2986 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 2987 | "requires": { 2988 | "pump": "^3.0.0" 2989 | } 2990 | } 2991 | } 2992 | }, 2993 | "extract-zip": { 2994 | "version": "2.0.1", 2995 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 2996 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 2997 | "requires": { 2998 | "@types/yauzl": "^2.9.1", 2999 | "debug": "^4.1.1", 3000 | "get-stream": "^5.1.0", 3001 | "yauzl": "^2.10.0" 3002 | } 3003 | }, 3004 | "fast-deep-equal": { 3005 | "version": "3.1.3", 3006 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3007 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 3008 | "dev": true 3009 | }, 3010 | "fast-fifo": { 3011 | "version": "1.3.2", 3012 | "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", 3013 | "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" 3014 | }, 3015 | "fast-srp-hap": { 3016 | "version": "2.0.4", 3017 | "resolved": "https://registry.npmjs.org/fast-srp-hap/-/fast-srp-hap-2.0.4.tgz", 3018 | "integrity": "sha512-lHRYYaaIbMrhZtsdGTwPN82UbqD9Bv8QfOlKs+Dz6YRnByZifOh93EYmf2iEWFtkOEIqR2IK8cFD0UN5wLIWBQ==", 3019 | "dev": true 3020 | }, 3021 | "fd-slicer": { 3022 | "version": "1.1.0", 3023 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 3024 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 3025 | "requires": { 3026 | "pend": "~1.2.0" 3027 | } 3028 | }, 3029 | "for-each": { 3030 | "version": "0.3.3", 3031 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 3032 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 3033 | "dev": true, 3034 | "requires": { 3035 | "is-callable": "^1.1.3" 3036 | } 3037 | }, 3038 | "from": { 3039 | "version": "0.1.7", 3040 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 3041 | "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", 3042 | "dev": true 3043 | }, 3044 | "fs-extra": { 3045 | "version": "10.1.0", 3046 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 3047 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 3048 | "dev": true, 3049 | "requires": { 3050 | "graceful-fs": "^4.2.0", 3051 | "jsonfile": "^6.0.1", 3052 | "universalify": "^2.0.0" 3053 | } 3054 | }, 3055 | "function-bind": { 3056 | "version": "1.1.2", 3057 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 3058 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 3059 | "dev": true 3060 | }, 3061 | "functions-have-names": { 3062 | "version": "1.2.3", 3063 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 3064 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 3065 | "dev": true 3066 | }, 3067 | "futoin-hkdf": { 3068 | "version": "1.4.3", 3069 | "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.4.3.tgz", 3070 | "integrity": "sha512-K4MIe2xSVRMYxsA4w0ap5fp1C2hA9StA2Ad1JZHX57VMCdHIRB5BSrd1FhuadTQG9MkjggaTCrw7v5XXFyY3/w==", 3071 | "dev": true 3072 | }, 3073 | "get-caller-file": { 3074 | "version": "2.0.5", 3075 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 3076 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 3077 | }, 3078 | "get-intrinsic": { 3079 | "version": "1.2.4", 3080 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 3081 | "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 3082 | "dev": true, 3083 | "requires": { 3084 | "es-errors": "^1.3.0", 3085 | "function-bind": "^1.1.2", 3086 | "has-proto": "^1.0.1", 3087 | "has-symbols": "^1.0.3", 3088 | "hasown": "^2.0.0" 3089 | } 3090 | }, 3091 | "get-stream": { 3092 | "version": "5.2.0", 3093 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 3094 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 3095 | "requires": { 3096 | "pump": "^3.0.0" 3097 | } 3098 | }, 3099 | "get-uri": { 3100 | "version": "6.0.3", 3101 | "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", 3102 | "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", 3103 | "requires": { 3104 | "basic-ftp": "^5.0.2", 3105 | "data-uri-to-buffer": "^6.0.2", 3106 | "debug": "^4.3.4", 3107 | "fs-extra": "^11.2.0" 3108 | }, 3109 | "dependencies": { 3110 | "fs-extra": { 3111 | "version": "11.2.0", 3112 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", 3113 | "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", 3114 | "requires": { 3115 | "graceful-fs": "^4.2.0", 3116 | "jsonfile": "^6.0.1", 3117 | "universalify": "^2.0.0" 3118 | } 3119 | } 3120 | } 3121 | }, 3122 | "gopd": { 3123 | "version": "1.0.1", 3124 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 3125 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 3126 | "dev": true, 3127 | "requires": { 3128 | "get-intrinsic": "^1.1.3" 3129 | } 3130 | }, 3131 | "graceful-fs": { 3132 | "version": "4.2.8", 3133 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 3134 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" 3135 | }, 3136 | "hap-nodejs": { 3137 | "version": "0.11.2", 3138 | "resolved": "https://registry.npmjs.org/hap-nodejs/-/hap-nodejs-0.11.2.tgz", 3139 | "integrity": "sha512-Adapr973wOctCQwyj0hycnID34BkPyt5cc0fATQamuRN8TKBPipR5I/u8rE+G53UA9vtMhsTGJjWfJvzBAMs9w==", 3140 | "dev": true, 3141 | "requires": { 3142 | "@homebridge/ciao": "^1.1.5", 3143 | "@homebridge/dbus-native": "^0.5.1", 3144 | "bonjour-hap": "~3.6.4", 3145 | "debug": "^4.3.4", 3146 | "fast-srp-hap": "~2.0.4", 3147 | "futoin-hkdf": "~1.4.3", 3148 | "node-persist": "^0.0.11", 3149 | "source-map-support": "^0.5.21", 3150 | "tslib": "^2.4.0", 3151 | "tweetnacl": "^1.0.3" 3152 | } 3153 | }, 3154 | "has-bigints": { 3155 | "version": "1.0.2", 3156 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 3157 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 3158 | "dev": true 3159 | }, 3160 | "has-flag": { 3161 | "version": "4.0.0", 3162 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3163 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3164 | "dev": true 3165 | }, 3166 | "has-property-descriptors": { 3167 | "version": "1.0.2", 3168 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 3169 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 3170 | "dev": true, 3171 | "requires": { 3172 | "es-define-property": "^1.0.0" 3173 | } 3174 | }, 3175 | "has-proto": { 3176 | "version": "1.0.3", 3177 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 3178 | "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 3179 | "dev": true 3180 | }, 3181 | "has-symbols": { 3182 | "version": "1.0.3", 3183 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 3184 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 3185 | "dev": true 3186 | }, 3187 | "has-tostringtag": { 3188 | "version": "1.0.2", 3189 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 3190 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 3191 | "dev": true, 3192 | "requires": { 3193 | "has-symbols": "^1.0.3" 3194 | } 3195 | }, 3196 | "hasown": { 3197 | "version": "2.0.2", 3198 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 3199 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 3200 | "dev": true, 3201 | "requires": { 3202 | "function-bind": "^1.1.2" 3203 | } 3204 | }, 3205 | "hexy": { 3206 | "version": "0.2.11", 3207 | "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.2.11.tgz", 3208 | "integrity": "sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==", 3209 | "dev": true 3210 | }, 3211 | "homebridge": { 3212 | "version": "1.6.1", 3213 | "resolved": "https://registry.npmjs.org/homebridge/-/homebridge-1.6.1.tgz", 3214 | "integrity": "sha512-hDhSaBDHFbB8wQQuZKbistYj1gjTIcNWmusqgEUb0Umk76Hs+G6VKRTkOEEVuxRaQWoK5hRM5rJTsCGAMCj5cA==", 3215 | "dev": true, 3216 | "requires": { 3217 | "chalk": "^4.1.2", 3218 | "commander": "5.1.0", 3219 | "fs-extra": "^10.1.0", 3220 | "hap-nodejs": "~0.11.1", 3221 | "qrcode-terminal": "^0.12.0", 3222 | "semver": "^7.3.7", 3223 | "source-map-support": "^0.5.21" 3224 | }, 3225 | "dependencies": { 3226 | "semver": { 3227 | "version": "7.6.3", 3228 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 3229 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 3230 | "dev": true 3231 | } 3232 | } 3233 | }, 3234 | "http-proxy-agent": { 3235 | "version": "7.0.2", 3236 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", 3237 | "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", 3238 | "requires": { 3239 | "agent-base": "^7.1.0", 3240 | "debug": "^4.3.4" 3241 | } 3242 | }, 3243 | "https-proxy-agent": { 3244 | "version": "7.0.5", 3245 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", 3246 | "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", 3247 | "requires": { 3248 | "agent-base": "^7.0.2", 3249 | "debug": "4" 3250 | } 3251 | }, 3252 | "ieee754": { 3253 | "version": "1.2.1", 3254 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 3255 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 3256 | }, 3257 | "internal-slot": { 3258 | "version": "1.0.7", 3259 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", 3260 | "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", 3261 | "dev": true, 3262 | "requires": { 3263 | "es-errors": "^1.3.0", 3264 | "hasown": "^2.0.0", 3265 | "side-channel": "^1.0.4" 3266 | } 3267 | }, 3268 | "ip": { 3269 | "version": "2.0.1", 3270 | "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", 3271 | "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" 3272 | }, 3273 | "ip-address": { 3274 | "version": "9.0.5", 3275 | "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", 3276 | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", 3277 | "requires": { 3278 | "jsbn": "1.1.0", 3279 | "sprintf-js": "^1.1.3" 3280 | } 3281 | }, 3282 | "is-arguments": { 3283 | "version": "1.1.1", 3284 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", 3285 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", 3286 | "dev": true, 3287 | "requires": { 3288 | "call-bind": "^1.0.2", 3289 | "has-tostringtag": "^1.0.0" 3290 | } 3291 | }, 3292 | "is-array-buffer": { 3293 | "version": "3.0.4", 3294 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", 3295 | "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", 3296 | "dev": true, 3297 | "requires": { 3298 | "call-bind": "^1.0.2", 3299 | "get-intrinsic": "^1.2.1" 3300 | } 3301 | }, 3302 | "is-bigint": { 3303 | "version": "1.0.4", 3304 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 3305 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 3306 | "dev": true, 3307 | "requires": { 3308 | "has-bigints": "^1.0.1" 3309 | } 3310 | }, 3311 | "is-boolean-object": { 3312 | "version": "1.1.2", 3313 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 3314 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 3315 | "dev": true, 3316 | "requires": { 3317 | "call-bind": "^1.0.2", 3318 | "has-tostringtag": "^1.0.0" 3319 | } 3320 | }, 3321 | "is-callable": { 3322 | "version": "1.2.7", 3323 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 3324 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 3325 | "dev": true 3326 | }, 3327 | "is-date-object": { 3328 | "version": "1.0.5", 3329 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 3330 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 3331 | "dev": true, 3332 | "requires": { 3333 | "has-tostringtag": "^1.0.0" 3334 | } 3335 | }, 3336 | "is-fullwidth-code-point": { 3337 | "version": "3.0.0", 3338 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3339 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 3340 | }, 3341 | "is-map": { 3342 | "version": "2.0.3", 3343 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 3344 | "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 3345 | "dev": true 3346 | }, 3347 | "is-number-object": { 3348 | "version": "1.0.7", 3349 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 3350 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 3351 | "dev": true, 3352 | "requires": { 3353 | "has-tostringtag": "^1.0.0" 3354 | } 3355 | }, 3356 | "is-regex": { 3357 | "version": "1.1.4", 3358 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 3359 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 3360 | "dev": true, 3361 | "requires": { 3362 | "call-bind": "^1.0.2", 3363 | "has-tostringtag": "^1.0.0" 3364 | } 3365 | }, 3366 | "is-set": { 3367 | "version": "2.0.3", 3368 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 3369 | "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 3370 | "dev": true 3371 | }, 3372 | "is-shared-array-buffer": { 3373 | "version": "1.0.3", 3374 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", 3375 | "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", 3376 | "dev": true, 3377 | "requires": { 3378 | "call-bind": "^1.0.7" 3379 | } 3380 | }, 3381 | "is-stream": { 3382 | "version": "1.1.0", 3383 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 3384 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 3385 | }, 3386 | "is-string": { 3387 | "version": "1.0.7", 3388 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 3389 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 3390 | "dev": true, 3391 | "requires": { 3392 | "has-tostringtag": "^1.0.0" 3393 | } 3394 | }, 3395 | "is-symbol": { 3396 | "version": "1.0.4", 3397 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 3398 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 3399 | "dev": true, 3400 | "requires": { 3401 | "has-symbols": "^1.0.2" 3402 | } 3403 | }, 3404 | "is-weakmap": { 3405 | "version": "2.0.2", 3406 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 3407 | "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 3408 | "dev": true 3409 | }, 3410 | "is-weakset": { 3411 | "version": "2.0.3", 3412 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", 3413 | "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", 3414 | "dev": true, 3415 | "requires": { 3416 | "call-bind": "^1.0.7", 3417 | "get-intrinsic": "^1.2.4" 3418 | } 3419 | }, 3420 | "isarray": { 3421 | "version": "2.0.5", 3422 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 3423 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 3424 | "dev": true 3425 | }, 3426 | "isexe": { 3427 | "version": "2.0.0", 3428 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3429 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 3430 | }, 3431 | "jsbn": { 3432 | "version": "1.1.0", 3433 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", 3434 | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" 3435 | }, 3436 | "jsonfile": { 3437 | "version": "6.1.0", 3438 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 3439 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 3440 | "requires": { 3441 | "graceful-fs": "^4.1.6", 3442 | "universalify": "^2.0.0" 3443 | } 3444 | }, 3445 | "map-age-cleaner": { 3446 | "version": "0.1.3", 3447 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 3448 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 3449 | "requires": { 3450 | "p-defer": "^1.0.0" 3451 | } 3452 | }, 3453 | "map-stream": { 3454 | "version": "0.0.7", 3455 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", 3456 | "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", 3457 | "dev": true 3458 | }, 3459 | "mem": { 3460 | "version": "4.3.0", 3461 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 3462 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 3463 | "requires": { 3464 | "map-age-cleaner": "^0.1.1", 3465 | "mimic-fn": "^2.0.0", 3466 | "p-is-promise": "^2.0.0" 3467 | } 3468 | }, 3469 | "mimic-fn": { 3470 | "version": "2.1.0", 3471 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 3472 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 3473 | }, 3474 | "minimist": { 3475 | "version": "1.2.8", 3476 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 3477 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 3478 | "dev": true 3479 | }, 3480 | "mitt": { 3481 | "version": "3.0.1", 3482 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", 3483 | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" 3484 | }, 3485 | "mjpeg-server": { 3486 | "version": "0.3.1", 3487 | "resolved": "https://registry.npmjs.org/mjpeg-server/-/mjpeg-server-0.3.1.tgz", 3488 | "integrity": "sha512-zegOmZzr5Z4l3vDks3P9x02ecdMOCFDbvmZRzFb3EMu/7bVLFHCeZZeOxf2vWmUgTlQdpoQvnxmwfs9xS2NDQQ==" 3489 | }, 3490 | "mkdirp": { 3491 | "version": "0.5.6", 3492 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 3493 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 3494 | "dev": true, 3495 | "requires": { 3496 | "minimist": "^1.2.6" 3497 | } 3498 | }, 3499 | "ms": { 3500 | "version": "2.1.2", 3501 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3502 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 3503 | }, 3504 | "multicast-dns": { 3505 | "version": "7.2.5", 3506 | "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", 3507 | "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", 3508 | "dev": true, 3509 | "requires": { 3510 | "dns-packet": "^5.2.2", 3511 | "thunky": "^1.0.2" 3512 | } 3513 | }, 3514 | "multicast-dns-service-types": { 3515 | "version": "1.1.0", 3516 | "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", 3517 | "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", 3518 | "dev": true 3519 | }, 3520 | "netmask": { 3521 | "version": "2.0.2", 3522 | "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", 3523 | "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" 3524 | }, 3525 | "nice-try": { 3526 | "version": "1.0.5", 3527 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 3528 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 3529 | }, 3530 | "node-persist": { 3531 | "version": "0.0.11", 3532 | "resolved": "https://registry.npmjs.org/node-persist/-/node-persist-0.0.11.tgz", 3533 | "integrity": "sha512-J3EPzQDgPxPBID7TqHSd5KkpTULFqJUvYDoISfOWg9EihpeVCH3b6YQeDeubzVuc4e6+aiVmkz2sdkWI4K+ghA==", 3534 | "dev": true, 3535 | "requires": { 3536 | "mkdirp": "~0.5.1", 3537 | "q": "~1.1.1" 3538 | } 3539 | }, 3540 | "npm-run-path": { 3541 | "version": "2.0.2", 3542 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3543 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3544 | "requires": { 3545 | "path-key": "^2.0.0" 3546 | } 3547 | }, 3548 | "object-inspect": { 3549 | "version": "1.13.2", 3550 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", 3551 | "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", 3552 | "dev": true 3553 | }, 3554 | "object-is": { 3555 | "version": "1.1.6", 3556 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", 3557 | "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", 3558 | "dev": true, 3559 | "requires": { 3560 | "call-bind": "^1.0.7", 3561 | "define-properties": "^1.2.1" 3562 | } 3563 | }, 3564 | "object-keys": { 3565 | "version": "1.1.1", 3566 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3567 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3568 | "dev": true 3569 | }, 3570 | "object.assign": { 3571 | "version": "4.1.5", 3572 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 3573 | "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 3574 | "dev": true, 3575 | "requires": { 3576 | "call-bind": "^1.0.5", 3577 | "define-properties": "^1.2.1", 3578 | "has-symbols": "^1.0.3", 3579 | "object-keys": "^1.1.1" 3580 | } 3581 | }, 3582 | "once": { 3583 | "version": "1.4.0", 3584 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3585 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3586 | "requires": { 3587 | "wrappy": "1" 3588 | } 3589 | }, 3590 | "p-defer": { 3591 | "version": "1.0.0", 3592 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 3593 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" 3594 | }, 3595 | "p-finally": { 3596 | "version": "1.0.0", 3597 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3598 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 3599 | }, 3600 | "p-is-promise": { 3601 | "version": "2.1.0", 3602 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 3603 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" 3604 | }, 3605 | "pac-proxy-agent": { 3606 | "version": "7.0.2", 3607 | "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", 3608 | "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", 3609 | "requires": { 3610 | "@tootallnate/quickjs-emscripten": "^0.23.0", 3611 | "agent-base": "^7.0.2", 3612 | "debug": "^4.3.4", 3613 | "get-uri": "^6.0.1", 3614 | "http-proxy-agent": "^7.0.0", 3615 | "https-proxy-agent": "^7.0.5", 3616 | "pac-resolver": "^7.0.1", 3617 | "socks-proxy-agent": "^8.0.4" 3618 | } 3619 | }, 3620 | "pac-resolver": { 3621 | "version": "7.0.1", 3622 | "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", 3623 | "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", 3624 | "requires": { 3625 | "degenerator": "^5.0.0", 3626 | "netmask": "^2.0.2" 3627 | } 3628 | }, 3629 | "path-key": { 3630 | "version": "2.0.1", 3631 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3632 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 3633 | }, 3634 | "pause-stream": { 3635 | "version": "0.0.11", 3636 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 3637 | "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", 3638 | "dev": true, 3639 | "requires": { 3640 | "through": "~2.3" 3641 | } 3642 | }, 3643 | "pend": { 3644 | "version": "1.2.0", 3645 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 3646 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 3647 | }, 3648 | "possible-typed-array-names": { 3649 | "version": "1.0.0", 3650 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", 3651 | "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", 3652 | "dev": true 3653 | }, 3654 | "progress": { 3655 | "version": "2.0.3", 3656 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 3657 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 3658 | }, 3659 | "proxy-agent": { 3660 | "version": "6.4.0", 3661 | "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", 3662 | "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", 3663 | "requires": { 3664 | "agent-base": "^7.0.2", 3665 | "debug": "^4.3.4", 3666 | "http-proxy-agent": "^7.0.1", 3667 | "https-proxy-agent": "^7.0.3", 3668 | "lru-cache": "^7.14.1", 3669 | "pac-proxy-agent": "^7.0.1", 3670 | "proxy-from-env": "^1.1.0", 3671 | "socks-proxy-agent": "^8.0.2" 3672 | }, 3673 | "dependencies": { 3674 | "lru-cache": { 3675 | "version": "7.18.3", 3676 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", 3677 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" 3678 | } 3679 | } 3680 | }, 3681 | "proxy-from-env": { 3682 | "version": "1.1.0", 3683 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 3684 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 3685 | }, 3686 | "pump": { 3687 | "version": "3.0.0", 3688 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 3689 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 3690 | "requires": { 3691 | "end-of-stream": "^1.1.0", 3692 | "once": "^1.3.1" 3693 | } 3694 | }, 3695 | "puppeteer-core": { 3696 | "version": "23.2.2", 3697 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.2.2.tgz", 3698 | "integrity": "sha512-MK2Kbdmro+nX9/pfGKm8TiU5G3CuS6BbcNfkcz42GWnHp7KYsJHrP6lPDepiyvwjti5Bt/4a8U3w+DoFpIcBHQ==", 3699 | "requires": { 3700 | "@puppeteer/browsers": "2.3.1", 3701 | "chromium-bidi": "0.6.5", 3702 | "debug": "^4.3.6", 3703 | "devtools-protocol": "0.0.1330662", 3704 | "typed-query-selector": "^2.12.0", 3705 | "ws": "^8.18.0" 3706 | } 3707 | }, 3708 | "q": { 3709 | "version": "1.1.2", 3710 | "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", 3711 | "integrity": "sha512-ROtylwux7Vkc4C07oKE/ReigUmb33kVoLtcR4SJ1QVqwaZkBEDL3vX4/kwFzIERQ5PfCl0XafbU8u2YUhyGgVA==", 3712 | "dev": true 3713 | }, 3714 | "qrcode-terminal": { 3715 | "version": "0.12.0", 3716 | "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", 3717 | "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", 3718 | "dev": true 3719 | }, 3720 | "queue-tick": { 3721 | "version": "1.0.1", 3722 | "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", 3723 | "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" 3724 | }, 3725 | "regexp.prototype.flags": { 3726 | "version": "1.5.2", 3727 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", 3728 | "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", 3729 | "dev": true, 3730 | "requires": { 3731 | "call-bind": "^1.0.6", 3732 | "define-properties": "^1.2.1", 3733 | "es-errors": "^1.3.0", 3734 | "set-function-name": "^2.0.1" 3735 | } 3736 | }, 3737 | "require-directory": { 3738 | "version": "2.1.1", 3739 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3740 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" 3741 | }, 3742 | "safe-buffer": { 3743 | "version": "5.2.1", 3744 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3745 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 3746 | "dev": true 3747 | }, 3748 | "sax": { 3749 | "version": "1.4.1", 3750 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", 3751 | "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", 3752 | "dev": true 3753 | }, 3754 | "semver": { 3755 | "version": "5.7.1", 3756 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 3757 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 3758 | }, 3759 | "set-function-length": { 3760 | "version": "1.2.2", 3761 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 3762 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 3763 | "dev": true, 3764 | "requires": { 3765 | "define-data-property": "^1.1.4", 3766 | "es-errors": "^1.3.0", 3767 | "function-bind": "^1.1.2", 3768 | "get-intrinsic": "^1.2.4", 3769 | "gopd": "^1.0.1", 3770 | "has-property-descriptors": "^1.0.2" 3771 | } 3772 | }, 3773 | "set-function-name": { 3774 | "version": "2.0.2", 3775 | "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 3776 | "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 3777 | "dev": true, 3778 | "requires": { 3779 | "define-data-property": "^1.1.4", 3780 | "es-errors": "^1.3.0", 3781 | "functions-have-names": "^1.2.3", 3782 | "has-property-descriptors": "^1.0.2" 3783 | } 3784 | }, 3785 | "shebang-command": { 3786 | "version": "1.2.0", 3787 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3788 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3789 | "requires": { 3790 | "shebang-regex": "^1.0.0" 3791 | } 3792 | }, 3793 | "shebang-regex": { 3794 | "version": "1.0.0", 3795 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3796 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 3797 | }, 3798 | "side-channel": { 3799 | "version": "1.0.6", 3800 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 3801 | "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 3802 | "dev": true, 3803 | "requires": { 3804 | "call-bind": "^1.0.7", 3805 | "es-errors": "^1.3.0", 3806 | "get-intrinsic": "^1.2.4", 3807 | "object-inspect": "^1.13.1" 3808 | } 3809 | }, 3810 | "signal-exit": { 3811 | "version": "3.0.3", 3812 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 3813 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 3814 | }, 3815 | "smart-buffer": { 3816 | "version": "4.2.0", 3817 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 3818 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" 3819 | }, 3820 | "socks": { 3821 | "version": "2.8.3", 3822 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", 3823 | "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", 3824 | "requires": { 3825 | "ip-address": "^9.0.5", 3826 | "smart-buffer": "^4.2.0" 3827 | } 3828 | }, 3829 | "socks-proxy-agent": { 3830 | "version": "8.0.4", 3831 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", 3832 | "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", 3833 | "requires": { 3834 | "agent-base": "^7.1.1", 3835 | "debug": "^4.3.4", 3836 | "socks": "^2.8.3" 3837 | } 3838 | }, 3839 | "source-map": { 3840 | "version": "0.6.1", 3841 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3842 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3843 | "devOptional": true 3844 | }, 3845 | "source-map-support": { 3846 | "version": "0.5.21", 3847 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 3848 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 3849 | "dev": true, 3850 | "requires": { 3851 | "buffer-from": "^1.0.0", 3852 | "source-map": "^0.6.0" 3853 | } 3854 | }, 3855 | "split": { 3856 | "version": "1.0.1", 3857 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 3858 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 3859 | "dev": true, 3860 | "requires": { 3861 | "through": "2" 3862 | } 3863 | }, 3864 | "sprintf-js": { 3865 | "version": "1.1.3", 3866 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 3867 | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" 3868 | }, 3869 | "stop-iteration-iterator": { 3870 | "version": "1.0.0", 3871 | "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", 3872 | "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", 3873 | "dev": true, 3874 | "requires": { 3875 | "internal-slot": "^1.0.4" 3876 | } 3877 | }, 3878 | "stream-combiner": { 3879 | "version": "0.2.2", 3880 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", 3881 | "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", 3882 | "dev": true, 3883 | "requires": { 3884 | "duplexer": "~0.1.1", 3885 | "through": "~2.3.4" 3886 | } 3887 | }, 3888 | "streamx": { 3889 | "version": "2.20.0", 3890 | "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz", 3891 | "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==", 3892 | "requires": { 3893 | "bare-events": "^2.2.0", 3894 | "fast-fifo": "^1.3.2", 3895 | "queue-tick": "^1.0.1", 3896 | "text-decoder": "^1.1.0" 3897 | } 3898 | }, 3899 | "string-width": { 3900 | "version": "4.2.3", 3901 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3902 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3903 | "requires": { 3904 | "emoji-regex": "^8.0.0", 3905 | "is-fullwidth-code-point": "^3.0.0", 3906 | "strip-ansi": "^6.0.1" 3907 | } 3908 | }, 3909 | "strip-ansi": { 3910 | "version": "6.0.1", 3911 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3912 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3913 | "requires": { 3914 | "ansi-regex": "^5.0.1" 3915 | } 3916 | }, 3917 | "strip-eof": { 3918 | "version": "1.0.0", 3919 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3920 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 3921 | }, 3922 | "supports-color": { 3923 | "version": "7.2.0", 3924 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3925 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3926 | "dev": true, 3927 | "requires": { 3928 | "has-flag": "^4.0.0" 3929 | } 3930 | }, 3931 | "tar-fs": { 3932 | "version": "3.0.6", 3933 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", 3934 | "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", 3935 | "requires": { 3936 | "bare-fs": "^2.1.1", 3937 | "bare-path": "^2.1.0", 3938 | "pump": "^3.0.0", 3939 | "tar-stream": "^3.1.5" 3940 | } 3941 | }, 3942 | "tar-stream": { 3943 | "version": "3.1.7", 3944 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", 3945 | "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", 3946 | "requires": { 3947 | "b4a": "^1.6.4", 3948 | "fast-fifo": "^1.2.0", 3949 | "streamx": "^2.15.0" 3950 | } 3951 | }, 3952 | "text-decoder": { 3953 | "version": "1.1.1", 3954 | "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", 3955 | "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", 3956 | "requires": { 3957 | "b4a": "^1.6.4" 3958 | } 3959 | }, 3960 | "through": { 3961 | "version": "2.3.8", 3962 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3963 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 3964 | }, 3965 | "thunky": { 3966 | "version": "1.1.0", 3967 | "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", 3968 | "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", 3969 | "dev": true 3970 | }, 3971 | "tslib": { 3972 | "version": "2.7.0", 3973 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", 3974 | "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" 3975 | }, 3976 | "tweetnacl": { 3977 | "version": "1.0.3", 3978 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 3979 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", 3980 | "dev": true 3981 | }, 3982 | "typed-query-selector": { 3983 | "version": "2.12.0", 3984 | "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", 3985 | "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==" 3986 | }, 3987 | "unbzip2-stream": { 3988 | "version": "1.4.3", 3989 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 3990 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 3991 | "requires": { 3992 | "buffer": "^5.2.1", 3993 | "through": "^2.3.8" 3994 | } 3995 | }, 3996 | "undici-types": { 3997 | "version": "6.19.8", 3998 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", 3999 | "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", 4000 | "optional": true 4001 | }, 4002 | "universalify": { 4003 | "version": "2.0.0", 4004 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 4005 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" 4006 | }, 4007 | "urlpattern-polyfill": { 4008 | "version": "10.0.0", 4009 | "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", 4010 | "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==" 4011 | }, 4012 | "username": { 4013 | "version": "5.1.0", 4014 | "resolved": "https://registry.npmjs.org/username/-/username-5.1.0.tgz", 4015 | "integrity": "sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==", 4016 | "requires": { 4017 | "execa": "^1.0.0", 4018 | "mem": "^4.3.0" 4019 | } 4020 | }, 4021 | "which": { 4022 | "version": "1.3.1", 4023 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4024 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4025 | "requires": { 4026 | "isexe": "^2.0.0" 4027 | } 4028 | }, 4029 | "which-boxed-primitive": { 4030 | "version": "1.0.2", 4031 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 4032 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 4033 | "dev": true, 4034 | "requires": { 4035 | "is-bigint": "^1.0.1", 4036 | "is-boolean-object": "^1.1.0", 4037 | "is-number-object": "^1.0.4", 4038 | "is-string": "^1.0.5", 4039 | "is-symbol": "^1.0.3" 4040 | } 4041 | }, 4042 | "which-collection": { 4043 | "version": "1.0.2", 4044 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 4045 | "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 4046 | "dev": true, 4047 | "requires": { 4048 | "is-map": "^2.0.3", 4049 | "is-set": "^2.0.3", 4050 | "is-weakmap": "^2.0.2", 4051 | "is-weakset": "^2.0.3" 4052 | } 4053 | }, 4054 | "which-typed-array": { 4055 | "version": "1.1.15", 4056 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", 4057 | "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", 4058 | "dev": true, 4059 | "requires": { 4060 | "available-typed-arrays": "^1.0.7", 4061 | "call-bind": "^1.0.7", 4062 | "for-each": "^0.3.3", 4063 | "gopd": "^1.0.1", 4064 | "has-tostringtag": "^1.0.2" 4065 | } 4066 | }, 4067 | "wrap-ansi": { 4068 | "version": "7.0.0", 4069 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 4070 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 4071 | "requires": { 4072 | "ansi-styles": "^4.0.0", 4073 | "string-width": "^4.1.0", 4074 | "strip-ansi": "^6.0.0" 4075 | } 4076 | }, 4077 | "wrappy": { 4078 | "version": "1.0.2", 4079 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4080 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 4081 | }, 4082 | "ws": { 4083 | "version": "8.18.0", 4084 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 4085 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 4086 | "requires": {} 4087 | }, 4088 | "xml2js": { 4089 | "version": "0.5.0", 4090 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", 4091 | "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", 4092 | "dev": true, 4093 | "requires": { 4094 | "sax": ">=0.6.0", 4095 | "xmlbuilder": "~11.0.0" 4096 | } 4097 | }, 4098 | "xmlbuilder": { 4099 | "version": "11.0.1", 4100 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 4101 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 4102 | "dev": true 4103 | }, 4104 | "y18n": { 4105 | "version": "5.0.8", 4106 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 4107 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" 4108 | }, 4109 | "yargs": { 4110 | "version": "17.7.2", 4111 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 4112 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 4113 | "requires": { 4114 | "cliui": "^8.0.1", 4115 | "escalade": "^3.1.1", 4116 | "get-caller-file": "^2.0.5", 4117 | "require-directory": "^2.1.1", 4118 | "string-width": "^4.2.3", 4119 | "y18n": "^5.0.5", 4120 | "yargs-parser": "^21.1.1" 4121 | } 4122 | }, 4123 | "yargs-parser": { 4124 | "version": "21.1.1", 4125 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 4126 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" 4127 | }, 4128 | "yauzl": { 4129 | "version": "2.10.0", 4130 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 4131 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 4132 | "requires": { 4133 | "buffer-crc32": "~0.2.3", 4134 | "fd-slicer": "~1.1.0" 4135 | } 4136 | }, 4137 | "zod": { 4138 | "version": "3.23.8", 4139 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", 4140 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==" 4141 | } 4142 | } 4143 | } 4144 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homebridge-website-to-camera", 3 | "version": "2.0.5", 4 | "description": "shows the screenshot of a website as camera (image)", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/werthdavid/homebridge-website-to-camera.git" 12 | }, 13 | "keywords": [ 14 | "homebridge-plugin", 15 | "homebridge-camera", 16 | "camera", 17 | "phantom", 18 | "screenshot", 19 | "virtual", 20 | "maps", 21 | "traffic", 22 | "chromium", 23 | "chrome", 24 | "puppeteer" 25 | ], 26 | "authors": [ 27 | { 28 | "name": "David Werth", 29 | "email": "werth.david@gmail.com" 30 | } 31 | ], 32 | "license": "MIT", 33 | "bugs": { 34 | "url": "https://github.com/werthdavid/homebridge-website-to-camera/issues" 35 | }, 36 | "engines": { 37 | "homebridge": ">=0.2.0", 38 | "node": ">=4.2.0" 39 | }, 40 | "homepage": "https://github.com/werthdavid/homebridge-website-to-camera#readme", 41 | "dependencies": { 42 | "ip": "^2.0.1", 43 | "mjpeg-server": "^0.3.1", 44 | "puppeteer-core": "^23.2.2", 45 | "username": "^5.1.0" 46 | }, 47 | "devDependencies": { 48 | "homebridge": "^1.3.4" 49 | } 50 | } 51 | --------------------------------------------------------------------------------