| New file |
| | |
| | | #!/bin/bash |
| | | |
| | | # 设置变量 |
| | | user="chenyc" |
| | | start_date="2025-01-01T00:00:00" |
| | | end_date="2025-04-01T23:59:59" |
| | | |
| | | # 检查当前目录是否是Git仓库 |
| | | if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then |
| | | echo "当前目录不是一个Git仓库。请在Git仓库的根目录下运行此脚本。" |
| | | exit 1 |
| | | fi |
| | | |
| | | # 获取提交次数 |
| | | commit_count=$(git log --author="$user" --since="$start_date" --until="$end_date" --pretty=oneline | wc -l) |
| | | |
| | | # 获取代码行数的变化 |
| | | lines_info=$(git log --author="$user" --since="$start_date" --until="$end_date" --pretty=tformat: --numstat | awk '{ add += $1; del += $2; net += $1 - $2 } END { printf "%s,%s,%s", add, del, net }') |
| | | IFS=',' read lines_added lines_deleted lines_changed <<< "$lines_info" |
| | | |
| | | # 输出结果 |
| | | echo "日期: $start_date ~ $end_date" |
| | | echo "用户: $user" |
| | | echo "提交次数: $commit_count" |
| | | echo "增加的代码行数: $lines_added" |
| | | echo "删除的代码行数: $lines_deleted" |
| | | echo "净变化的代码行数: $lines_changed" |
| | |
| | | const aliyunIot = require('aliyun-iot-device-sdk'); |
| | | const { getAliyunDeviceSecret } = require('./api'); |
| | | const toModel = require('./Strholp'); |
| | | const { publishMessage } = require('./mqttClient'); |
| | | // 定义 DeviceManager 类来管理设备连接 |
| | | class DeviceManager extends EventEmitter { |
| | | constructor() { |
| | |
| | | logger.info(`尝试重新发送 '${deviceInfo.lastSignal}' 给设备 ${deviceId}`); |
| | | this.sendKeepAliveToDevice(deviceId); // 如果设备状态是待确认,则重发上次的信号 |
| | | } |
| | | }, 5000); // 每2秒重试一次 |
| | | }, 10000); // 每2秒重试一次 |
| | | }catch(err){ |
| | | logger.error(`${deviceId}设备重试机制出错:${err}`) |
| | | } |
| | |
| | | this.stopRetryMechanism(deviceId); // 停止重试机制 |
| | | // 根据上次发送的信号启动相应的定时发送机制 |
| | | this.startKeepAlive(deviceId, deviceInfo.lastSignal); // 启动定时发送 'K0000' 的机制 |
| | | logger.info(`${deviceId}启动定时发送 'K' 的机制60秒一次`); |
| | | logger.info(`${deviceId}启动定时发送 ${deviceInfo.lastSignal} 的机制60秒一次`); |
| | | this.registerDevice(deviceId) |
| | | }else{ |
| | | logger.info('注册成功后第二次就发送数据到阿里云') |
| | |
| | | }); |
| | | // 监听设备连接状态变化 |
| | | deviceInfo.iotDevice.on('connect', () => { |
| | | logger.info(`${deviceId} 连接到阿里云IoT平台成功`); |
| | | // logger.info(`${deviceId} 连接到阿里云IoT平台成功`); |
| | | }); |
| | | |
| | | deviceInfo.iotDevice.on('error', (err) => { |
| | | logger.info(`${deviceId} 设备连接错误:`, err); |
| | | logger.info(`${deviceId} 设备连接到阿里云IoT平台错误:`, err); |
| | | }); |
| | | } |
| | | |
| | |
| | | if (deviceInfo.iotDevice) { |
| | | // 上报属性数据 |
| | | const props = deviceInfo.masData |
| | | |
| | | onDeviceDataReceived(deviceInfo.masData); // 调用函数处理接收到的数据 |
| | | deviceInfo.iotDevice.postProps(props, (res) => { |
| | | if (res.message==='success') { |
| | | logger.info(`${deviceId} 上报属性成功:`, res); |
| | |
| | | throw new CustomError("新错误", error); |
| | | |
| | | } |
| | | } |
| | | } |
| | | // 接收到的数据 |
| | | const onDeviceDataReceived=(data)=> { |
| | | const topic = `touxiji/${data.n}`; |
| | | const payload = JSON.stringify({ |
| | | ...data, |
| | | timestamp: new Date().toISOString() |
| | | }); |
| | | try { |
| | | logger.info(`发布消息到主题 ${topic}: ${payload}`); |
| | | publishMessage(topic, payload); |
| | | } catch (error) { |
| | | logger.error(`发布消息到主题 ${topic} 失败:`, error); |
| | | throw new CustomError("发布消息失败", error); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | require('winston-daily-rotate-file'); |
| | | |
| | | const { combine, timestamp, label, printf } = format; |
| | | |
| | | function formatDate(date) { |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, '0'); |
| | | const day = String(date.getDate()).padStart(2, '0'); |
| | | const hours = String(date.getHours()).padStart(2, '0'); |
| | | const minutes = String(date.getMinutes()).padStart(2, '0'); |
| | | const seconds = String(date.getSeconds()).padStart(2, '0'); |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | } |
| | | // 自定义日志格式 |
| | | const myFormat = printf(({ level, message, label, timestamp }) => { |
| | | return `${timestamp} [${label}] ${level}: ${message}`; |
| | | const formattedTimestamp = formatDate(new Date(timestamp)); |
| | | return `${formattedTimestamp} [${label}] ${level}: ${message}`; |
| | | }); |
| | | |
| | | // 创建日志记录器 |
| New file |
| | |
| | | const { info, warn, error } = require('./logger'); // 引入自定义的日志模块 |
| | | const mqtt = require('mqtt'); |
| | | |
| | | const brokerUrl = 'mqtt-test.ihemodialysis.com'; |
| | | const port = 62183; |
| | | |
| | | const options = { |
| | | host: brokerUrl, |
| | | port: port, |
| | | reconnectPeriod: 5000, // 自动重连间隔时间 |
| | | }; |
| | | |
| | | let client = null; |
| | | let publishEnabled = false; |
| | | |
| | | // 初始化客户端连接 |
| | | function connect() { |
| | | try { |
| | | client = mqtt.connect(options); |
| | | |
| | | client.on('connect', () => { |
| | | console.log('Connected to MQTT Broker'); |
| | | info(`成功完成连接到 MQTT Broker: ${brokerUrl}:${port}`); |
| | | publishEnabled = true; |
| | | |
| | | // 可选:启动定时发布任务 |
| | | // startPeriodicPublish(); |
| | | }); |
| | | |
| | | client.on('close', () => { |
| | | console.log('MQTT connection closed, will reconnect...'); |
| | | publishEnabled = false; |
| | | stopPeriodicPublish(); |
| | | }); |
| | | |
| | | client.on('error', (err) => { |
| | | console.error('MQTT Error:', err); |
| | | error(`MQTT 错误: ${err.message}`); |
| | | }); |
| | | |
| | | client.on('reconnect', () => { |
| | | console.log('MQTT client reconnecting...'); |
| | | }); |
| | | } catch (ex) { |
| | | console.error('Error during connecting to MQTT Broker:', ex); |
| | | error(`尝试连接 MQTT Broker 时发生错误: ${ex.message}`); |
| | | } |
| | | } |
| | | |
| | | let intervalId = null; |
| | | |
| | | function startPeriodicPublish() { |
| | | if (intervalId) return; |
| | | |
| | | intervalId = setInterval(() => { |
| | | const topic = 'system/heartbeat'; |
| | | let message; |
| | | try { |
| | | message = JSON.stringify({ |
| | | timestamp: new Date().toISOString(), |
| | | status: 'alive' |
| | | }); |
| | | } catch (ex) { |
| | | console.error('Failed to create heartbeat message:', ex); |
| | | error('创建心跳消息失败'); |
| | | return; |
| | | } |
| | | |
| | | publishMessage(topic, message); |
| | | }, 5000); // 每5秒发一次心跳 |
| | | } |
| | | |
| | | function stopPeriodicPublish() { |
| | | if (intervalId) { |
| | | clearInterval(intervalId); |
| | | intervalId = null; |
| | | } |
| | | } |
| | | |
| | | // 外部可调用的发布函数 |
| | | function publishMessage(topic, message) { |
| | | if (!client || !publishEnabled) { |
| | | console.warn('MQTT client not connected. Message not sent:', message); |
| | | warn('MQTT 客户端未连接。消息未发送'); |
| | | return; |
| | | } |
| | | |
| | | console.log(`Publishing to ${topic}:`, message); |
| | | try { |
| | | client.publish(topic, message, { qos: 1 }, (err) => { |
| | | if (err) { |
| | | console.error('Failed to publish message:', err); |
| | | error(`消息发布失败: ${err.message}`); |
| | | } |
| | | }); |
| | | } catch (ex) { |
| | | console.error('Unexpected error while publishing message:', ex); |
| | | error(`发布消息时发生意外错误: ${ex.message}`); |
| | | } |
| | | } |
| | | |
| | | // 初始化连接 |
| | | connect(); |
| | | |
| | | // 暴出发布函数 |
| | | module.exports = { |
| | | publishMessage, |
| | | }; |
| | |
| | | "dependencies": { |
| | | "aliyun-iot-device-sdk": "^1.0.1", |
| | | "axios": "^1.7.9", |
| | | "mqtt": "^5.13.3", |
| | | "qs": "^6.13.1", |
| | | "winston-daily-rotate-file": "^5.0.0" |
| | | }, |
| | |
| | | "devDependencies": { |
| | | "@vercel/ncc": "^0.38.3", |
| | | "nodemon": "^3.1.9" |
| | | } |
| | | }, |
| | | "node_modules/@babel/runtime": { |
| | | "version": "7.27.6", |
| | | "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", |
| | | "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", |
| | | "engines": { |
| | | "node": ">=6.9.0" |
| | | } |
| | | }, |
| | | "node_modules/@colors/colors": { |
| | |
| | | "kuler": "^2.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@types/node": { |
| | | "version": "24.0.14", |
| | | "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.0.14.tgz", |
| | | "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==", |
| | | "dependencies": { |
| | | "undici-types": "~7.8.0" |
| | | } |
| | | }, |
| | | "node_modules/@types/readable-stream": { |
| | | "version": "4.0.21", |
| | | "resolved": "https://registry.npmmirror.com/@types/readable-stream/-/readable-stream-4.0.21.tgz", |
| | | "integrity": "sha512-19eKVv9tugr03IgfXlA9UVUVRbW6IuqRO5B92Dl4a6pT7K8uaGrNS0GkxiZD0BOk6PLuXl5FhWl//eX/pzYdTQ==", |
| | | "dependencies": { |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "node_modules/@types/triple-beam": { |
| | | "version": "1.3.5", |
| | | "resolved": "https://registry.npmmirror.com/@types/triple-beam/-/triple-beam-1.3.5.tgz", |
| | | "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" |
| | | }, |
| | | "node_modules/@types/ws": { |
| | | "version": "8.18.1", |
| | | "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.18.1.tgz", |
| | | "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", |
| | | "dependencies": { |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "node_modules/@vercel/ncc": { |
| | | "version": "0.38.3", |
| | |
| | | "dev": true, |
| | | "bin": { |
| | | "ncc": "dist/ncc/cli.js" |
| | | } |
| | | }, |
| | | "node_modules/abort-controller": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz", |
| | | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", |
| | | "dependencies": { |
| | | "event-target-shim": "^5.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.5" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk": { |
| | |
| | | "is-buffer": "^2.0.2" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/bl": { |
| | | "version": "1.2.3", |
| | | "resolved": "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz", |
| | | "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", |
| | | "dependencies": { |
| | | "readable-stream": "^2.3.5", |
| | | "safe-buffer": "^5.1.1" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/commist": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/commist/-/commist-1.1.0.tgz", |
| | | "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", |
| | | "dependencies": { |
| | | "leven": "^2.1.0", |
| | | "minimist": "^1.1.0" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/concat-stream": { |
| | | "version": "1.6.2", |
| | | "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", |
| | | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", |
| | | "engines": [ |
| | | "node >= 0.8" |
| | | ], |
| | | "dependencies": { |
| | | "buffer-from": "^1.0.0", |
| | | "inherits": "^2.0.3", |
| | | "readable-stream": "^2.2.2", |
| | | "typedarray": "^0.0.6" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/follow-redirects": { |
| | | "version": "1.5.10", |
| | | "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz", |
| | |
| | | }, |
| | | "engines": { |
| | | "node": ">=4.0" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/help-me": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/help-me/-/help-me-1.1.0.tgz", |
| | | "integrity": "sha512-P/IZ8yOMne3SCTHbVY429NZ67B/2bVQlcYGZh2iPPbdLrEQ/qY5aGChn0YTDmt7Sb4IKRI51fypItav+lNl76w==", |
| | | "dependencies": { |
| | | "callback-stream": "^1.0.2", |
| | | "glob-stream": "^6.1.0", |
| | | "through2": "^2.0.1", |
| | | "xtend": "^4.0.0" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/mqtt": { |
| | | "version": "2.18.9", |
| | | "resolved": "https://registry.npmmirror.com/mqtt/-/mqtt-2.18.9.tgz", |
| | | "integrity": "sha512-ufywki8VAQ8YAERiunbj77TnXgaeVYVlyebnj4o9vhPUQFRjo+d3oUf0rft8kWi7YPYf4O8rkwPkeFc7ndWESg==", |
| | | "dependencies": { |
| | | "commist": "^1.0.0", |
| | | "concat-stream": "^1.6.2", |
| | | "end-of-stream": "^1.4.1", |
| | | "es6-map": "^0.1.5", |
| | | "help-me": "^1.0.1", |
| | | "inherits": "^2.0.3", |
| | | "minimist": "^1.2.0", |
| | | "mqtt-packet": "^5.6.0", |
| | | "pump": "^3.0.0", |
| | | "readable-stream": "^2.3.6", |
| | | "reinterval": "^1.1.0", |
| | | "split2": "^2.1.1", |
| | | "websocket-stream": "~5.2.0", |
| | | "xtend": "^4.0.1" |
| | | }, |
| | | "bin": { |
| | | "mqtt": "mqtt.js", |
| | | "mqtt_pub": "bin/pub.js", |
| | | "mqtt_sub": "bin/sub.js" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4.0.0" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/mqtt-packet": { |
| | | "version": "5.6.1", |
| | | "resolved": "https://registry.npmmirror.com/mqtt-packet/-/mqtt-packet-5.6.1.tgz", |
| | | "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==", |
| | | "dependencies": { |
| | | "bl": "^1.2.1", |
| | | "inherits": "^2.0.3", |
| | | "process-nextick-args": "^2.0.0", |
| | | "safe-buffer": "^5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/split2": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmmirror.com/split2/-/split2-2.2.0.tgz", |
| | | "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", |
| | | "dependencies": { |
| | | "through2": "^2.0.2" |
| | | } |
| | | }, |
| | | "node_modules/aliyun-iot-device-sdk/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/anymatch": { |
| | |
| | | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", |
| | | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" |
| | | }, |
| | | "node_modules/base64-js": { |
| | | "version": "1.5.1", |
| | | "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", |
| | | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/binary-extensions": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", |
| | |
| | | } |
| | | }, |
| | | "node_modules/bl": { |
| | | "version": "1.2.3", |
| | | "resolved": "https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz", |
| | | "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", |
| | | "version": "6.1.0", |
| | | "resolved": "https://registry.npmmirror.com/bl/-/bl-6.1.0.tgz", |
| | | "integrity": "sha512-ClDyJGQkc8ZtzdAAbAwBmhMSpwN/sC9HA8jxdYm6nVUbCfZbe2mgza4qh7AuEYyEPB/c4Kznf9s66bnsKMQDjw==", |
| | | "dependencies": { |
| | | "readable-stream": "^2.3.5", |
| | | "safe-buffer": "^5.1.1" |
| | | "@types/readable-stream": "^4.0.0", |
| | | "buffer": "^6.0.3", |
| | | "inherits": "^2.0.4", |
| | | "readable-stream": "^4.2.0" |
| | | } |
| | | }, |
| | | "node_modules/brace-expansion": { |
| | |
| | | }, |
| | | "engines": { |
| | | "node": ">=8" |
| | | } |
| | | }, |
| | | "node_modules/buffer": { |
| | | "version": "6.0.3", |
| | | "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", |
| | | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ], |
| | | "dependencies": { |
| | | "base64-js": "^1.3.1", |
| | | "ieee754": "^1.2.1" |
| | | } |
| | | }, |
| | | "node_modules/buffer-from": { |
| | |
| | | "dependencies": { |
| | | "inherits": "^2.0.1", |
| | | "readable-stream": "> 1.0.0 < 3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/callback-stream/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/callback-stream/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/callback-stream/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/chokidar": { |
| | |
| | | } |
| | | }, |
| | | "node_modules/commist": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/commist/-/commist-1.1.0.tgz", |
| | | "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", |
| | | "dependencies": { |
| | | "leven": "^2.1.0", |
| | | "minimist": "^1.1.0" |
| | | } |
| | | "version": "3.2.0", |
| | | "resolved": "https://registry.npmmirror.com/commist/-/commist-3.2.0.tgz", |
| | | "integrity": "sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==" |
| | | }, |
| | | "node_modules/concat-map": { |
| | | "version": "0.0.1", |
| | |
| | | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" |
| | | }, |
| | | "node_modules/concat-stream": { |
| | | "version": "1.6.2", |
| | | "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", |
| | | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-2.0.0.tgz", |
| | | "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", |
| | | "engines": [ |
| | | "node >= 0.8" |
| | | "node >= 6.0" |
| | | ], |
| | | "dependencies": { |
| | | "buffer-from": "^1.0.0", |
| | | "inherits": "^2.0.3", |
| | | "readable-stream": "^2.2.2", |
| | | "readable-stream": "^3.0.2", |
| | | "typedarray": "^0.0.6" |
| | | } |
| | | }, |
| | | "node_modules/concat-stream/node_modules/readable-stream": { |
| | | "version": "3.6.2", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", |
| | | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", |
| | | "dependencies": { |
| | | "inherits": "^2.0.3", |
| | | "string_decoder": "^1.1.1", |
| | | "util-deprecate": "^1.0.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/core-util-is": { |
| | |
| | | "stream-shift": "^1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/duplexify/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/duplexify/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/duplexify/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/enabled": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmmirror.com/enabled/-/enabled-2.0.0.tgz", |
| | |
| | | "peer": true |
| | | }, |
| | | "node_modules/end-of-stream": { |
| | | "version": "1.4.4", |
| | | "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", |
| | | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", |
| | | "version": "1.4.5", |
| | | "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.5.tgz", |
| | | "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", |
| | | "dependencies": { |
| | | "once": "^1.4.0" |
| | | } |
| | |
| | | "es5-ext": "~0.10.14" |
| | | } |
| | | }, |
| | | "node_modules/event-target-shim": { |
| | | "version": "5.0.1", |
| | | "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz", |
| | | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", |
| | | "engines": { |
| | | "node": ">=6" |
| | | } |
| | | }, |
| | | "node_modules/events": { |
| | | "version": "3.3.0", |
| | | "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", |
| | | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", |
| | | "engines": { |
| | | "node": ">=0.8.x" |
| | | } |
| | | }, |
| | | "node_modules/ext": { |
| | | "version": "1.7.0", |
| | | "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", |
| | |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", |
| | | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" |
| | | }, |
| | | "node_modules/fast-unique-numbers": { |
| | | "version": "8.0.13", |
| | | "resolved": "https://registry.npmmirror.com/fast-unique-numbers/-/fast-unique-numbers-8.0.13.tgz", |
| | | "integrity": "sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==", |
| | | "dependencies": { |
| | | "@babel/runtime": "^7.23.8", |
| | | "tslib": "^2.6.2" |
| | | }, |
| | | "engines": { |
| | | "node": ">=16.1.0" |
| | | } |
| | | }, |
| | | "node_modules/fecha": { |
| | | "version": "4.2.3", |
| | |
| | | "node": ">= 0.10" |
| | | } |
| | | }, |
| | | "node_modules/glob-stream/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/glob-stream/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/glob-stream/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/gopd": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", |
| | |
| | | } |
| | | }, |
| | | "node_modules/help-me": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/help-me/-/help-me-1.1.0.tgz", |
| | | "integrity": "sha512-P/IZ8yOMne3SCTHbVY429NZ67B/2bVQlcYGZh2iPPbdLrEQ/qY5aGChn0YTDmt7Sb4IKRI51fypItav+lNl76w==", |
| | | "dependencies": { |
| | | "callback-stream": "^1.0.2", |
| | | "glob-stream": "^6.1.0", |
| | | "through2": "^2.0.1", |
| | | "xtend": "^4.0.0" |
| | | } |
| | | "version": "5.0.0", |
| | | "resolved": "https://registry.npmmirror.com/help-me/-/help-me-5.0.0.tgz", |
| | | "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" |
| | | }, |
| | | "node_modules/ieee754": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", |
| | | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/ignore-by-default": { |
| | | "version": "1.0.1", |
| | |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", |
| | | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" |
| | | }, |
| | | "node_modules/ip-address": { |
| | | "version": "9.0.5", |
| | | "resolved": "https://registry.npmmirror.com/ip-address/-/ip-address-9.0.5.tgz", |
| | | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", |
| | | "dependencies": { |
| | | "jsbn": "1.1.0", |
| | | "sprintf-js": "^1.1.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 12" |
| | | } |
| | | }, |
| | | "node_modules/is-absolute": { |
| | | "version": "1.0.0", |
| | |
| | | "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", |
| | | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" |
| | | }, |
| | | "node_modules/js-sdsl": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.3.0.tgz", |
| | | "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", |
| | | "funding": { |
| | | "type": "opencollective", |
| | | "url": "https://opencollective.com/js-sdsl" |
| | | } |
| | | }, |
| | | "node_modules/jsbn": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-1.1.0.tgz", |
| | | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" |
| | | }, |
| | | "node_modules/json-stable-stringify-without-jsonify": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", |
| | |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", |
| | | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" |
| | | }, |
| | | "node_modules/lru-cache": { |
| | | "version": "10.4.3", |
| | | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", |
| | | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" |
| | | }, |
| | | "node_modules/math-intrinsics": { |
| | | "version": "1.1.0", |
| | |
| | | } |
| | | }, |
| | | "node_modules/mqtt": { |
| | | "version": "2.18.9", |
| | | "resolved": "https://registry.npmmirror.com/mqtt/-/mqtt-2.18.9.tgz", |
| | | "integrity": "sha512-ufywki8VAQ8YAERiunbj77TnXgaeVYVlyebnj4o9vhPUQFRjo+d3oUf0rft8kWi7YPYf4O8rkwPkeFc7ndWESg==", |
| | | "version": "5.13.3", |
| | | "resolved": "https://registry.npmmirror.com/mqtt/-/mqtt-5.13.3.tgz", |
| | | "integrity": "sha512-91x03kh1+vBBA51OMNbEw2fymXfaUjpHkC0NcMckg9Vf6ee/GrM/HXfE8XeeziHQpJL8adr+9ThTbN5v/WmrRA==", |
| | | "dependencies": { |
| | | "commist": "^1.0.0", |
| | | "concat-stream": "^1.6.2", |
| | | "end-of-stream": "^1.4.1", |
| | | "es6-map": "^0.1.5", |
| | | "help-me": "^1.0.1", |
| | | "inherits": "^2.0.3", |
| | | "minimist": "^1.2.0", |
| | | "mqtt-packet": "^5.6.0", |
| | | "pump": "^3.0.0", |
| | | "readable-stream": "^2.3.6", |
| | | "reinterval": "^1.1.0", |
| | | "split2": "^2.1.1", |
| | | "websocket-stream": "~5.2.0", |
| | | "xtend": "^4.0.1" |
| | | "@types/readable-stream": "^4.0.18", |
| | | "@types/ws": "^8.18.1", |
| | | "commist": "^3.2.0", |
| | | "concat-stream": "^2.0.0", |
| | | "debug": "^4.4.0", |
| | | "help-me": "^5.0.0", |
| | | "lru-cache": "^10.4.3", |
| | | "minimist": "^1.2.8", |
| | | "mqtt-packet": "^9.0.2", |
| | | "number-allocator": "^1.0.14", |
| | | "readable-stream": "^4.7.0", |
| | | "rfdc": "^1.4.1", |
| | | "socks": "^2.8.3", |
| | | "split2": "^4.2.0", |
| | | "worker-timers": "^7.1.8", |
| | | "ws": "^8.18.0" |
| | | }, |
| | | "bin": { |
| | | "mqtt": "mqtt.js", |
| | | "mqtt_pub": "bin/pub.js", |
| | | "mqtt_sub": "bin/sub.js" |
| | | "mqtt": "build/bin/mqtt.js", |
| | | "mqtt_pub": "build/bin/pub.js", |
| | | "mqtt_sub": "build/bin/sub.js" |
| | | }, |
| | | "engines": { |
| | | "node": ">=4.0.0" |
| | | "node": ">=16.0.0" |
| | | } |
| | | }, |
| | | "node_modules/mqtt-packet": { |
| | | "version": "5.6.1", |
| | | "resolved": "https://registry.npmmirror.com/mqtt-packet/-/mqtt-packet-5.6.1.tgz", |
| | | "integrity": "sha512-eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==", |
| | | "version": "9.0.2", |
| | | "resolved": "https://registry.npmmirror.com/mqtt-packet/-/mqtt-packet-9.0.2.tgz", |
| | | "integrity": "sha512-MvIY0B8/qjq7bKxdN1eD+nrljoeaai+qjLJgfRn3TiMuz0pamsIWY2bFODPZMSNmabsLANXsLl4EMoWvlaTZWA==", |
| | | "dependencies": { |
| | | "bl": "^1.2.1", |
| | | "inherits": "^2.0.3", |
| | | "process-nextick-args": "^2.0.0", |
| | | "safe-buffer": "^5.1.0" |
| | | "bl": "^6.0.8", |
| | | "debug": "^4.3.4", |
| | | "process-nextick-args": "^2.0.1" |
| | | } |
| | | }, |
| | | "node_modules/mqtt-packet/node_modules/debug": { |
| | | "version": "4.4.1", |
| | | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", |
| | | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", |
| | | "dependencies": { |
| | | "ms": "^2.1.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "supports-color": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/mqtt-packet/node_modules/ms": { |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", |
| | | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" |
| | | }, |
| | | "node_modules/mqtt/node_modules/debug": { |
| | | "version": "4.4.1", |
| | | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", |
| | | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", |
| | | "dependencies": { |
| | | "ms": "^2.1.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "supports-color": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/mqtt/node_modules/ms": { |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", |
| | | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" |
| | | }, |
| | | "node_modules/ms": { |
| | | "version": "2.0.0", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/number-allocator": { |
| | | "version": "1.0.14", |
| | | "resolved": "https://registry.npmmirror.com/number-allocator/-/number-allocator-1.0.14.tgz", |
| | | "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==", |
| | | "dependencies": { |
| | | "debug": "^4.3.1", |
| | | "js-sdsl": "4.3.0" |
| | | } |
| | | }, |
| | | "node_modules/number-allocator/node_modules/debug": { |
| | | "version": "4.4.1", |
| | | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", |
| | | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", |
| | | "dependencies": { |
| | | "ms": "^2.1.3" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6.0" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "supports-color": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/number-allocator/node_modules/ms": { |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", |
| | | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" |
| | | }, |
| | | "node_modules/object-hash": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", |
| | |
| | | "readable-stream": "^2.0.1" |
| | | } |
| | | }, |
| | | "node_modules/ordered-read-streams/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/ordered-read-streams/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/ordered-read-streams/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/path-dirname": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", |
| | |
| | | "url": "https://github.com/sponsors/jonschlinkert" |
| | | } |
| | | }, |
| | | "node_modules/process": { |
| | | "version": "0.11.10", |
| | | "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", |
| | | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", |
| | | "engines": { |
| | | "node": ">= 0.6.0" |
| | | } |
| | | }, |
| | | "node_modules/process-nextick-args": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", |
| | |
| | | "dev": true |
| | | }, |
| | | "node_modules/pump": { |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.2.tgz", |
| | | "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", |
| | | "version": "3.0.3", |
| | | "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.3.tgz", |
| | | "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", |
| | | "dependencies": { |
| | | "end-of-stream": "^1.1.0", |
| | | "once": "^1.3.1" |
| | |
| | | } |
| | | }, |
| | | "node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "version": "4.7.0", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.7.0.tgz", |
| | | "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | "abort-controller": "^3.0.0", |
| | | "buffer": "^6.0.3", |
| | | "events": "^3.3.0", |
| | | "process": "^0.11.10", |
| | | "string_decoder": "^1.3.0" |
| | | }, |
| | | "engines": { |
| | | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" |
| | | } |
| | | }, |
| | | "node_modules/readable-stream/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/readdirp": { |
| | | "version": "3.6.0", |
| | |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", |
| | | "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" |
| | | }, |
| | | "node_modules/rfdc": { |
| | | "version": "1.4.1", |
| | | "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", |
| | | "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" |
| | | }, |
| | | "node_modules/safe-buffer": { |
| | | "version": "5.2.1", |
| | |
| | | "node": ">=10" |
| | | } |
| | | }, |
| | | "node_modules/split2": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmmirror.com/split2/-/split2-2.2.0.tgz", |
| | | "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", |
| | | "dependencies": { |
| | | "through2": "^2.0.2" |
| | | "node_modules/smart-buffer": { |
| | | "version": "4.2.0", |
| | | "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz", |
| | | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", |
| | | "engines": { |
| | | "node": ">= 6.0.0", |
| | | "npm": ">= 3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/socks": { |
| | | "version": "2.8.6", |
| | | "resolved": "https://registry.npmmirror.com/socks/-/socks-2.8.6.tgz", |
| | | "integrity": "sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA==", |
| | | "dependencies": { |
| | | "ip-address": "^9.0.5", |
| | | "smart-buffer": "^4.2.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10.0.0", |
| | | "npm": ">= 3.0.0" |
| | | } |
| | | }, |
| | | "node_modules/split2": { |
| | | "version": "4.2.0", |
| | | "resolved": "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz", |
| | | "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", |
| | | "engines": { |
| | | "node": ">= 10.x" |
| | | } |
| | | }, |
| | | "node_modules/sprintf-js": { |
| | | "version": "1.1.3", |
| | | "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz", |
| | | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" |
| | | }, |
| | | "node_modules/stack-trace": { |
| | | "version": "0.0.10", |
| | |
| | | "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" |
| | | }, |
| | | "node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "version": "1.3.0", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", |
| | | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | "safe-buffer": "~5.2.0" |
| | | } |
| | | }, |
| | | "node_modules/string_decoder/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/supports-color": { |
| | | "version": "5.5.0", |
| | |
| | | "dependencies": { |
| | | "through2": "~2.0.0", |
| | | "xtend": "~4.0.0" |
| | | } |
| | | }, |
| | | "node_modules/through2/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/through2/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/through2/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/to-absolute-glob": { |
| | |
| | | "node": ">= 14.0.0" |
| | | } |
| | | }, |
| | | "node_modules/tslib": { |
| | | "version": "2.8.1", |
| | | "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", |
| | | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" |
| | | }, |
| | | "node_modules/type": { |
| | | "version": "2.7.3", |
| | | "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/undefsafe/-/undefsafe-2.0.5.tgz", |
| | | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/undici-types": { |
| | | "version": "7.8.0", |
| | | "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.8.0.tgz", |
| | | "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==" |
| | | }, |
| | | "node_modules/unique-stream": { |
| | | "version": "2.3.1", |
| | |
| | | }, |
| | | "engines": { |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/websocket-stream/node_modules/ws": { |
| | | "version": "6.2.3", |
| | | "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.3.tgz", |
| | | "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", |
| | | "dependencies": { |
| | | "async-limiter": "~1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/winston": { |
| | |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/worker-timers": { |
| | | "version": "7.1.8", |
| | | "resolved": "https://registry.npmmirror.com/worker-timers/-/worker-timers-7.1.8.tgz", |
| | | "integrity": "sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==", |
| | | "dependencies": { |
| | | "@babel/runtime": "^7.24.5", |
| | | "tslib": "^2.6.2", |
| | | "worker-timers-broker": "^6.1.8", |
| | | "worker-timers-worker": "^7.0.71" |
| | | } |
| | | }, |
| | | "node_modules/worker-timers-broker": { |
| | | "version": "6.1.8", |
| | | "resolved": "https://registry.npmmirror.com/worker-timers-broker/-/worker-timers-broker-6.1.8.tgz", |
| | | "integrity": "sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==", |
| | | "dependencies": { |
| | | "@babel/runtime": "^7.24.5", |
| | | "fast-unique-numbers": "^8.0.13", |
| | | "tslib": "^2.6.2", |
| | | "worker-timers-worker": "^7.0.71" |
| | | } |
| | | }, |
| | | "node_modules/worker-timers-worker": { |
| | | "version": "7.0.71", |
| | | "resolved": "https://registry.npmmirror.com/worker-timers-worker/-/worker-timers-worker-7.0.71.tgz", |
| | | "integrity": "sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==", |
| | | "dependencies": { |
| | | "@babel/runtime": "^7.24.5", |
| | | "tslib": "^2.6.2" |
| | | } |
| | | }, |
| | | "node_modules/wrappy": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", |
| | | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" |
| | | }, |
| | | "node_modules/ws": { |
| | | "version": "6.2.3", |
| | | "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.3.tgz", |
| | | "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", |
| | | "dependencies": { |
| | | "async-limiter": "~1.0.0" |
| | | "version": "8.18.3", |
| | | "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.3.tgz", |
| | | "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", |
| | | "engines": { |
| | | "node": ">=10.0.0" |
| | | }, |
| | | "peerDependencies": { |
| | | "bufferutil": "^4.0.1", |
| | | "utf-8-validate": ">=5.0.2" |
| | | }, |
| | | "peerDependenciesMeta": { |
| | | "bufferutil": { |
| | | "optional": true |
| | | }, |
| | | "utf-8-validate": { |
| | | "optional": true |
| | | } |
| | | } |
| | | }, |
| | | "node_modules/xtend": { |
| | |
| | | "scripts": { |
| | | "dev": "nodemon index.js", |
| | | "pkg": "pkg ./dist/index.js", |
| | | "pkg2":"pkg ./dist/index.js --target node10-win-x64", |
| | | "pkg2": "pkg ./dist/index.js --target node10-win-x64", |
| | | "build": "ncc build index.js -o dist", |
| | | "test": "echo \"Error: no test specified\" && exit 1" |
| | | }, |
| | |
| | | "dependencies": { |
| | | "aliyun-iot-device-sdk": "^1.0.1", |
| | | "axios": "^1.7.9", |
| | | "mqtt": "^5.13.3", |
| | | "qs": "^6.13.1", |
| | | "winston-daily-rotate-file": "^5.0.0" |
| | | }, |