同步并调整消息引擎使用
This commit is contained in:
parent
8323b40a20
commit
74ec8ad3d2
|
@ -1 +1 @@
|
|||
Subproject commit c04ff2635f94513857bbd1e923591a1c131e1cc7
|
||||
Subproject commit 68bb38dfe563e6e76e998e3097b38d9d88c1901d
|
|
@ -1 +1 @@
|
|||
Subproject commit 3fe8f895fa2458f7e7b93f24558fdc81a11c3f13
|
||||
Subproject commit 4187eb2c4f217b4fe7ad16a029504d081c07985b
|
|
@ -22,11 +22,11 @@
|
|||
"@quasar/extras": "^1.0.0",
|
||||
"@stomp/stompjs": "^7.0.0",
|
||||
"axios": "^1.2.1",
|
||||
"centrifuge": "^4.0.1",
|
||||
"default-passive-events": "^2.0.0",
|
||||
"echarts": "^5.4.3",
|
||||
"google-protobuf": "^3.21.2",
|
||||
"js-base64": "^3.7.5",
|
||||
"mqtt": "^5.2.1",
|
||||
"pinia": "^2.0.11",
|
||||
"pixi-viewport": "^5.0.1",
|
||||
"pixi.js": "^7.2.4",
|
||||
|
|
|
@ -57,7 +57,7 @@ module.exports = configure(function (/* ctx */) {
|
|||
ENV_MODE: process.env.NODE_ENV,
|
||||
},
|
||||
target: {
|
||||
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
|
||||
browser: ['es2020'],
|
||||
node: 'node16',
|
||||
},
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ export function destroyLineApp(): void {
|
|||
export function initLineApp(): IGraphicApp {
|
||||
lineApp = newGraphicApp({});
|
||||
lineApp.enableWsMassaging({
|
||||
engine: ClientEngine.Centrifugo,
|
||||
engine: ClientEngine.MQTT,
|
||||
wsUrl: `${getWebsocketUrl()}`,
|
||||
token: getOnlyToken() as string,
|
||||
});
|
||||
|
|
|
@ -328,6 +328,7 @@ export interface GraphicAppEvents extends GlobalMixins.GraphicAppEvents {
|
|||
'pre-menu-handle': [menu: MenuItemOptions];
|
||||
'post-menu-handle': [menu: MenuItemOptions];
|
||||
'websocket-connect-state-change': [connected: boolean];
|
||||
'websocket-error': [err: Error];
|
||||
destroy: [app: IGraphicApp];
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import { CompleteMessageCliOption, IMessageClient } from './MessageBroker';
|
|||
export interface MessageClientEvents {
|
||||
connected: [ctx: any];
|
||||
disconnected: [ctx: any];
|
||||
error: [err: any];
|
||||
}
|
||||
|
||||
export type HandleMessage = (data: any) => void;
|
||||
|
@ -37,10 +38,7 @@ export abstract class MessageClient
|
|||
* @param destination
|
||||
* @param handle
|
||||
*/
|
||||
abstract subscribe(
|
||||
destination: string,
|
||||
handle: HandleMessage
|
||||
): IUnsubscriptor;
|
||||
abstract subscribe(destination: string, handle: HandleMessage): boolean;
|
||||
|
||||
unsubscribe(destination: string): void {
|
||||
this.unsubscribe0(destination);
|
||||
|
@ -77,22 +75,12 @@ export abstract class MessageClient
|
|||
abstract close(): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订阅取消接口
|
||||
*/
|
||||
export interface IUnsubscriptor {
|
||||
/**
|
||||
* 取消订阅
|
||||
*/
|
||||
unsubscribe(): void;
|
||||
}
|
||||
|
||||
export class SubscriptionClient {
|
||||
mc: MessageClient;
|
||||
destination: string;
|
||||
protocol: 'json' | 'protobuf';
|
||||
handlers: IMessageHandler[] = [];
|
||||
unsubscriptor?: IUnsubscriptor;
|
||||
subscripted = false;
|
||||
constructor(
|
||||
mc: MessageClient,
|
||||
destination: string,
|
||||
|
@ -109,7 +97,7 @@ export class SubscriptionClient {
|
|||
if (this.handlers.filter((h) => h.App === handler.App).length == 0) {
|
||||
this.handlers.push(handler);
|
||||
}
|
||||
if (!this.unsubscriptor) {
|
||||
if (!this.subscripted) {
|
||||
this.trySubscribe();
|
||||
}
|
||||
}
|
||||
|
@ -127,7 +115,7 @@ export class SubscriptionClient {
|
|||
|
||||
trySubscribe(): void {
|
||||
if (this.mc.connected) {
|
||||
this.unsubscriptor = this.mc.subscribe(this.destination, (data) => {
|
||||
this.subscripted = this.mc.subscribe(this.destination, (data) => {
|
||||
this.handleMessage(data);
|
||||
});
|
||||
}
|
||||
|
@ -151,6 +139,6 @@ export class SubscriptionClient {
|
|||
}
|
||||
|
||||
onDisconnect() {
|
||||
this.unsubscriptor = undefined;
|
||||
this.subscripted = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,70 +1,68 @@
|
|||
import { State, Subscription } from 'centrifuge';
|
||||
import Centrifuge from 'centrifuge/build/protobuf';
|
||||
import {
|
||||
HandleMessage,
|
||||
IUnsubscriptor,
|
||||
MessageClient,
|
||||
} from './BasicMessageClient';
|
||||
import { CompleteMessageCliOption } from './MessageBroker';
|
||||
// import { State } from 'centrifuge';
|
||||
// import Centrifuge from 'centrifuge/build/protobuf';
|
||||
// import { HandleMessage, MessageClient } from './BasicMessageClient';
|
||||
// import { CompleteMessageCliOption } from './MessageBroker';
|
||||
|
||||
export class CentrifugeMessagingClient extends MessageClient {
|
||||
cli: Centrifuge;
|
||||
// export class CentrifugeMessagingClient extends MessageClient {
|
||||
// cli: Centrifuge;
|
||||
|
||||
constructor(options: CompleteMessageCliOption) {
|
||||
super(options);
|
||||
this.options = options;
|
||||
if (this.options.protocol === 'json') {
|
||||
this.cli = new Centrifuge(options.wsUrl, {
|
||||
token: options.token,
|
||||
protocol: options.protocol,
|
||||
});
|
||||
} else {
|
||||
this.cli = new Centrifuge(options.wsUrl, {
|
||||
token: options.token,
|
||||
protocol: options.protocol,
|
||||
});
|
||||
}
|
||||
// constructor(options: CompleteMessageCliOption) {
|
||||
// super(options);
|
||||
// this.options = options;
|
||||
// if (this.options.protocol === 'json') {
|
||||
// this.cli = new Centrifuge(options.wsUrl, {
|
||||
// token: options.token,
|
||||
// protocol: options.protocol,
|
||||
// });
|
||||
// } else {
|
||||
// this.cli = new Centrifuge(options.wsUrl, {
|
||||
// token: options.token,
|
||||
// protocol: options.protocol,
|
||||
// });
|
||||
// }
|
||||
|
||||
this.cli
|
||||
.on('connecting', (ctx) => {
|
||||
console.debug(`centrifuge连接中: ${ctx}, ${ctx.reason}`);
|
||||
})
|
||||
.on('connected', (ctx) => {
|
||||
console.debug(`连接成功: ${ctx.transport}`);
|
||||
this.emit('connected', ctx);
|
||||
})
|
||||
.on('disconnected', (ctx) => {
|
||||
console.log(`断开连接: ${ctx.code}, ${ctx.reason}`);
|
||||
this.emit('disconnected', ctx);
|
||||
})
|
||||
.on('error', (ctx) => {
|
||||
console.error('centrifuge错误', ctx);
|
||||
})
|
||||
.connect();
|
||||
}
|
||||
// this.cli
|
||||
// .on('connecting', (ctx) => {
|
||||
// console.debug(`centrifuge连接中: ${ctx}, ${ctx.reason}`);
|
||||
// })
|
||||
// .on('connected', (ctx) => {
|
||||
// console.debug(`连接成功: ${ctx.transport}`);
|
||||
// this.emit('connected', ctx);
|
||||
// })
|
||||
// .on('disconnected', (ctx) => {
|
||||
// console.log(`断开连接: ${ctx.code}, ${ctx.reason}`);
|
||||
// this.emit('disconnected', ctx);
|
||||
// })
|
||||
// .on('error', (ctx) => {
|
||||
// console.error('centrifuge错误', ctx);
|
||||
// })
|
||||
// .connect();
|
||||
// }
|
||||
|
||||
get connected(): boolean {
|
||||
return this.cli.state === State.Connected;
|
||||
}
|
||||
// get connected(): boolean {
|
||||
// return this.cli.state === State.Connected;
|
||||
// }
|
||||
|
||||
subscribe(destination: string, handle: HandleMessage): IUnsubscriptor {
|
||||
let sub = this.cli.getSubscription(destination);
|
||||
if (!sub) {
|
||||
sub = this.cli.newSubscription(destination);
|
||||
sub.on('publication', (ctx) => {
|
||||
handle(ctx.data);
|
||||
});
|
||||
}
|
||||
sub.subscribe();
|
||||
return sub;
|
||||
}
|
||||
// subscribe(destination: string, handle: HandleMessage): boolean {
|
||||
// let sub = this.cli.getSubscription(destination);
|
||||
// if (!sub) {
|
||||
// sub = this.cli.newSubscription(destination);
|
||||
// sub.on('publication', (ctx) => {
|
||||
// handle(ctx.data);
|
||||
// });
|
||||
// }
|
||||
// sub.subscribe();
|
||||
// return true;
|
||||
// }
|
||||
|
||||
unsubscribe0(destination: string): void {
|
||||
const subClient = this.getOrNewSubClient(destination);
|
||||
this.cli.removeSubscription(subClient.unsubscriptor as Subscription);
|
||||
}
|
||||
// unsubscribe0(destination: string): void {
|
||||
// const sub = this.cli.getSubscription(destination);
|
||||
// if (!sub) {
|
||||
// this.cli.removeSubscription(sub);
|
||||
// }
|
||||
// }
|
||||
|
||||
close(): void {
|
||||
this.cli.disconnect();
|
||||
}
|
||||
}
|
||||
// close(): void {
|
||||
// this.cli.disconnect();
|
||||
// }
|
||||
// }
|
||||
|
|
|
@ -2,17 +2,14 @@
|
|||
import EventEmitter from 'eventemitter3';
|
||||
import { IGraphicScene } from '../app';
|
||||
import { GraphicQueryStore, GraphicState, JlGraphic } from '../core';
|
||||
import {
|
||||
IMessageHandler,
|
||||
IUnsubscriptor,
|
||||
MessageClientEvents,
|
||||
} from './BasicMessageClient';
|
||||
import { CentrifugeMessagingClient } from './CentrifugeBroker';
|
||||
import { IMessageHandler, MessageClientEvents } from './BasicMessageClient';
|
||||
import { StompMessagingClient } from './WsMsgBroker';
|
||||
import { MqttMsgClient } from './MqttBroker';
|
||||
|
||||
export enum ClientEngine {
|
||||
Stomp,
|
||||
Centrifugo,
|
||||
// Centrifugo,
|
||||
MQTT,
|
||||
}
|
||||
|
||||
export interface MessageCliOption {
|
||||
|
@ -32,10 +29,34 @@ export interface MessageCliOption {
|
|||
* 认证token
|
||||
*/
|
||||
token?: string;
|
||||
/**
|
||||
* 项目名称(可用于订阅客户端识别)
|
||||
*/
|
||||
clientName?: string;
|
||||
/**
|
||||
* 连接超时,默认30秒,ms
|
||||
*/
|
||||
connectTimeout?: number;
|
||||
/**
|
||||
* 心跳发送间隔,默认60秒,s
|
||||
*/
|
||||
heartbeat?: number;
|
||||
/**
|
||||
* 重试间隔,默认2秒,ms
|
||||
*/
|
||||
retryPeriod?: number;
|
||||
/**
|
||||
* 重试次数,默认30次
|
||||
*/
|
||||
retryTimes?: number;
|
||||
}
|
||||
|
||||
export interface CompleteMessageCliOption extends MessageCliOption {
|
||||
protocol: 'json' | 'protobuf';
|
||||
connectTimeout: number;
|
||||
heartbeat: number;
|
||||
retryPeriod: number;
|
||||
retryTimes: number;
|
||||
}
|
||||
|
||||
const DefaultStompOption: CompleteMessageCliOption = {
|
||||
|
@ -43,6 +64,10 @@ const DefaultStompOption: CompleteMessageCliOption = {
|
|||
protocol: 'protobuf',
|
||||
wsUrl: '',
|
||||
token: '',
|
||||
connectTimeout: 30 * 1000,
|
||||
heartbeat: 60,
|
||||
retryPeriod: 2 * 1000,
|
||||
retryTimes: 30,
|
||||
};
|
||||
|
||||
export interface IMessageClient extends EventEmitter<MessageClientEvents> {
|
||||
|
@ -80,10 +105,22 @@ export class WsMsgCli {
|
|||
return;
|
||||
}
|
||||
WsMsgCli.options = Object.assign({}, DefaultStompOption, options);
|
||||
if (WsMsgCli.options.engine == ClientEngine.Centrifugo) {
|
||||
WsMsgCli.client = new CentrifugeMessagingClient(WsMsgCli.options);
|
||||
} else {
|
||||
WsMsgCli.client = new StompMessagingClient(WsMsgCli.options);
|
||||
switch (WsMsgCli.options.engine) {
|
||||
// case ClientEngine.Centrifugo: {
|
||||
// WsMsgCli.client = new CentrifugeMessagingClient(WsMsgCli.options);
|
||||
// break;
|
||||
// }
|
||||
case ClientEngine.MQTT: {
|
||||
WsMsgCli.client = new MqttMsgClient(WsMsgCli.options);
|
||||
break;
|
||||
}
|
||||
case ClientEngine.Stomp: {
|
||||
WsMsgCli.client = new StompMessagingClient(WsMsgCli.options);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
throw new Error('未知的消息客户端引擎类型', WsMsgCli.options.engine);
|
||||
}
|
||||
}
|
||||
const cli = WsMsgCli.client;
|
||||
cli.on('connected', () => {
|
||||
|
@ -92,6 +129,12 @@ export class WsMsgCli {
|
|||
cli.on('disconnected', () => {
|
||||
WsMsgCli.emitConnectStateChangeEvent(false);
|
||||
});
|
||||
cli.on('error', (err) => {
|
||||
console.warn('websocket 客户端错误消息发布', err);
|
||||
WsMsgCli.appMsgBroker.forEach((broker) => {
|
||||
broker.app.emit('websocket-error', err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
static isInitiated(): boolean {
|
||||
|
@ -182,11 +225,6 @@ export interface AppStateSubscription {
|
|||
* 订阅消息处理
|
||||
*/
|
||||
messageHandle?: SubscriptionMessageHandle;
|
||||
/**
|
||||
* 订阅成功对象,用于取消订阅
|
||||
* 非客户端使用
|
||||
*/
|
||||
subscription?: IUnsubscriptor;
|
||||
}
|
||||
|
||||
class AppMessageHandler implements IMessageHandler {
|
||||
|
|
|
@ -0,0 +1,118 @@
|
|||
import mqtt from 'mqtt';
|
||||
import { HandleMessage, MessageClient } from './BasicMessageClient';
|
||||
import { CompleteMessageCliOption } from './MessageBroker';
|
||||
|
||||
export class MqttMsgClient extends MessageClient {
|
||||
cli: mqtt.MqttClient;
|
||||
retryTimes = 0;
|
||||
timer: NodeJS.Timeout | undefined;
|
||||
subMsgHandler: Map<string, HandleMessage> = new Map();
|
||||
|
||||
constructor(options: CompleteMessageCliOption) {
|
||||
super(options);
|
||||
this.options = options;
|
||||
try {
|
||||
this.cli = mqtt.connect(options.wsUrl, {
|
||||
protocolVersion: 5,
|
||||
clean: true,
|
||||
resubscribe: false,
|
||||
keepalive: options.heartbeat, //ms,心跳
|
||||
connectTimeout: options.connectTimeout, // ms,连接超时
|
||||
reconnectPeriod: options.retryPeriod, // ms,重连间隔
|
||||
username: options.clientName || '',
|
||||
password: options.token,
|
||||
});
|
||||
this.cli.on('connect', (packet) => {
|
||||
console.log('MQTT 连接成功!');
|
||||
this.retryTimes = 0; // 连接成功,重置
|
||||
this.emit('connected', packet);
|
||||
// mqtt本身的定时发送心跳在浏览器页面后台运行时似乎会发生计时变慢?最终导致心跳超时断连:
|
||||
// WebSocket connection to 'ws://ip:port/mqtt' failed: Close received after close
|
||||
// 在此使用自定义定时发送心跳暂时看可以处理超时断连问题
|
||||
this.timer = setInterval(() => {
|
||||
(this.cli as any)._sendPacket({ cmd: 'pingreq' });
|
||||
}, (options.heartbeat / 2) * 1000);
|
||||
});
|
||||
this.cli.on('disconnect', (packet) => {
|
||||
console.log('MQTT 连接断开!');
|
||||
this.emit('disconnected', packet);
|
||||
});
|
||||
this.cli.on('close', () => {
|
||||
console.log('MQTT 关闭!');
|
||||
this.emit('disconnected', 'close');
|
||||
});
|
||||
this.cli.on('reconnect', () => {
|
||||
this.retryTimes += 1;
|
||||
if (this.retryTimes > options.retryTimes) {
|
||||
try {
|
||||
this.cli.end();
|
||||
console.error('MQTT 达到重连最大尝试次数,停止重试');
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.cli.on('error', (error) => {
|
||||
console.log('MQTT 出现错误', error);
|
||||
console.warn(error);
|
||||
this.emit('error', error);
|
||||
});
|
||||
this.cli.on('message', (topic, message) => {
|
||||
const handle = this.subMsgHandler.get(topic);
|
||||
if (handle) {
|
||||
if (this.options.protocol === 'json') {
|
||||
const data = JSON.parse(message.toString());
|
||||
handle(data);
|
||||
} else {
|
||||
// 字节流
|
||||
handle(message);
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('MQTT connect error', err);
|
||||
this.emit('error', err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
subscribe(destination: string, handle: HandleMessage): boolean {
|
||||
console.debug('MQTT订阅执行', destination);
|
||||
this.cli.subscribe(destination, { qos: 0 }, (error, res) => {
|
||||
if (error) {
|
||||
console.warn('MQTT 订阅失败', error);
|
||||
return;
|
||||
}
|
||||
console.debug('MQTT 订阅成功', res);
|
||||
return false;
|
||||
});
|
||||
this.subMsgHandler.set(destination, handle);
|
||||
return true;
|
||||
}
|
||||
unsubscribe0(destination: string): void {
|
||||
console.debug('MQTT取消订阅执行', destination);
|
||||
this.cli.unsubscribe(destination, (error, packet) => {
|
||||
if (error) {
|
||||
console.warn('MQTT 取消订阅失败', error);
|
||||
} else {
|
||||
console.debug('MQTT 取消订阅成功', packet);
|
||||
this.subMsgHandler.delete(destination);
|
||||
}
|
||||
});
|
||||
}
|
||||
get connected(): boolean {
|
||||
return this.cli.connected;
|
||||
}
|
||||
close(): void {
|
||||
try {
|
||||
console.debug('MQTT关闭执行');
|
||||
clearInterval(this.timer);
|
||||
this.cli.end(true, () => {
|
||||
console.debug('MQTT 消息客户端关闭成功');
|
||||
this.subMsgHandler.clear();
|
||||
});
|
||||
} catch (error) {
|
||||
console.warn('MQTT 消息客户端关闭失败', error);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,5 @@
|
|||
import { Client as StompClient, type Frame } from '@stomp/stompjs';
|
||||
import {
|
||||
HandleMessage,
|
||||
IUnsubscriptor,
|
||||
MessageClient,
|
||||
} from './BasicMessageClient';
|
||||
import { HandleMessage, MessageClient } from './BasicMessageClient';
|
||||
import { CompleteMessageCliOption } from './MessageBroker';
|
||||
|
||||
const ReconnectDelay = 3000;
|
||||
|
@ -58,7 +54,7 @@ export class StompMessagingClient extends MessageClient {
|
|||
return this.cli.connected;
|
||||
}
|
||||
|
||||
subscribe(destination: string, handle: HandleMessage): IUnsubscriptor {
|
||||
subscribe(destination: string, handle: HandleMessage): boolean {
|
||||
const sub = this.cli.subscribe(
|
||||
destination,
|
||||
(frame) => {
|
||||
|
@ -73,7 +69,7 @@ export class StompMessagingClient extends MessageClient {
|
|||
id: destination,
|
||||
}
|
||||
);
|
||||
return sub;
|
||||
return true;
|
||||
}
|
||||
|
||||
unsubscribe0(destination: string): void {
|
||||
|
|
289
yarn.lock
289
yarn.lock
|
@ -324,59 +324,6 @@
|
|||
eventemitter3 "^4.0.0"
|
||||
url "^0.11.0"
|
||||
|
||||
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
|
||||
integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
|
||||
|
||||
"@protobufjs/base64@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
|
||||
integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
|
||||
|
||||
"@protobufjs/codegen@^2.0.4":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
|
||||
integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
|
||||
|
||||
"@protobufjs/eventemitter@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
|
||||
integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
|
||||
|
||||
"@protobufjs/fetch@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
|
||||
integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.1"
|
||||
"@protobufjs/inquire" "^1.1.0"
|
||||
|
||||
"@protobufjs/float@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
|
||||
integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
|
||||
|
||||
"@protobufjs/inquire@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
|
||||
integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
|
||||
|
||||
"@protobufjs/path@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
|
||||
integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
|
||||
|
||||
"@protobufjs/pool@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
|
||||
integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
|
||||
|
||||
"@protobufjs/utf8@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
|
||||
integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
|
||||
|
||||
"@quasar/app-vite@^1.0.0":
|
||||
version "1.6.2"
|
||||
resolved "https://registry.npmmirror.com/@quasar/app-vite/-/app-vite-1.6.2.tgz#6aae131511dfdffafcaa4d87af31e40e53a67fce"
|
||||
|
@ -554,7 +501,7 @@
|
|||
resolved "https://registry.npmmirror.com/@types/mime/-/mime-1.3.3.tgz#bbe64987e0eb05de150c305005055c7ad784a9ce"
|
||||
integrity sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==
|
||||
|
||||
"@types/node@*", "@types/node@>=13.7.0":
|
||||
"@types/node@*":
|
||||
version "20.8.6"
|
||||
resolved "https://registry.npmmirror.com/@types/node/-/node-20.8.6.tgz#0dbd4ebcc82ad0128df05d0e6f57e05359ee47fa"
|
||||
integrity sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==
|
||||
|
@ -581,6 +528,14 @@
|
|||
resolved "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.5.tgz#38bd1733ae299620771bd414837ade2e57757498"
|
||||
integrity sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==
|
||||
|
||||
"@types/readable-stream@^4.0.5":
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmmirror.com/@types/readable-stream/-/readable-stream-4.0.5.tgz#7a82f920748f81e6f6e6d062d6d3961e5731b296"
|
||||
integrity sha512-QzFG+b0/vKI8myBgHhUja5C8ZJr4vaAeSXNYbqedm3Pr8byTgkNf1OC2/16yQTn2H2ZpQpHr7sLKS13XWpKaCQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
safe-buffer "~5.1.1"
|
||||
|
||||
"@types/semver@^7.3.12":
|
||||
version "7.5.3"
|
||||
resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
|
||||
|
@ -603,6 +558,13 @@
|
|||
"@types/mime" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/ws@^8.5.9":
|
||||
version "8.5.9"
|
||||
resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c"
|
||||
integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.10.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
|
||||
|
@ -787,6 +749,13 @@
|
|||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
|
||||
integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
|
||||
|
||||
abort-controller@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
|
||||
integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
|
||||
dependencies:
|
||||
event-target-shim "^5.0.0"
|
||||
|
||||
accepts@~1.3.5, accepts@~1.3.8:
|
||||
version "1.3.8"
|
||||
resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
||||
|
@ -972,6 +941,15 @@ bl@^4.0.3, bl@^4.1.0:
|
|||
inherits "^2.0.4"
|
||||
readable-stream "^3.4.0"
|
||||
|
||||
bl@^6.0.8:
|
||||
version "6.0.8"
|
||||
resolved "https://registry.npmmirror.com/bl/-/bl-6.0.8.tgz#737d57f2d1e25b9ca45e0f4c5d84409731a86c04"
|
||||
integrity sha512-HCRq8z0+3vrGCjEKrbnK6blpDZ1xzhfZKCCuyvPC7upGcfXZSmaCumpVao/jC8o1hs/fOqJoCSPMabl+CQTPXg==
|
||||
dependencies:
|
||||
buffer "^6.0.3"
|
||||
inherits "^2.0.4"
|
||||
readable-stream "^4.2.0"
|
||||
|
||||
body-parser@1.20.1:
|
||||
version "1.20.1"
|
||||
resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
|
||||
|
@ -1032,6 +1010,11 @@ buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
|
|||
resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
||||
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
||||
|
||||
buffer@^5.5.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
||||
|
@ -1040,6 +1023,14 @@ buffer@^5.5.0:
|
|||
base64-js "^1.3.1"
|
||||
ieee754 "^1.1.13"
|
||||
|
||||
buffer@^6.0.3:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
||||
dependencies:
|
||||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
bytes@3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
||||
|
@ -1076,14 +1067,6 @@ caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541:
|
|||
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz#7d1a3dce7ea78c06ed72c32c2743ea364b3615aa"
|
||||
integrity sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==
|
||||
|
||||
centrifuge@^4.0.1:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.npmmirror.com/centrifuge/-/centrifuge-4.1.0.tgz#4981ad36f051f44a12a77c8834b0798bc8dab791"
|
||||
integrity sha512-h1DM0ZtchKk/p1LrjWmjtD3K154VMSwNkcESTIxDEyyMR4oZQDdG78VHpJbwMmvIeUvmRGAemGxGZs2jSSkpbA==
|
||||
dependencies:
|
||||
events "^3.3.0"
|
||||
protobufjs "^7.2.4"
|
||||
|
||||
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||
|
@ -1188,6 +1171,11 @@ commander@^2.19.0:
|
|||
resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
commist@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmmirror.com/commist/-/commist-3.2.0.tgz#da9c8e5f245ac21510badc4b10c46b5bcc9b56cd"
|
||||
integrity sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==
|
||||
|
||||
compress-commons@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df"
|
||||
|
@ -1223,6 +1211,16 @@ concat-map@0.0.1:
|
|||
resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||
|
||||
concat-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmmirror.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
|
||||
integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
|
||||
dependencies:
|
||||
buffer-from "^1.0.0"
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^3.0.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
content-disposition@0.5.4:
|
||||
version "0.5.4"
|
||||
resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
||||
|
@ -1289,7 +1287,7 @@ debug@2.6.9:
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
|
||||
debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
|
@ -1354,6 +1352,16 @@ dot-prop@6.0.1:
|
|||
dependencies:
|
||||
is-obj "^2.0.0"
|
||||
|
||||
duplexify@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.npmmirror.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0"
|
||||
integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==
|
||||
dependencies:
|
||||
end-of-stream "^1.4.1"
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^3.1.1"
|
||||
stream-shift "^1.0.0"
|
||||
|
||||
earcut@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a"
|
||||
|
@ -1804,6 +1812,11 @@ etag@~1.8.1:
|
|||
resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
|
||||
|
||||
event-target-shim@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
|
||||
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
|
||||
|
||||
eventemitter3@^4.0.0:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
||||
|
@ -2064,6 +2077,17 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.2.3:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^8.0.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
|
||||
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^5.0.1"
|
||||
once "^1.3.0"
|
||||
|
||||
globals@^13.19.0:
|
||||
version "13.23.0"
|
||||
resolved "https://registry.npmmirror.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
|
||||
|
@ -2123,6 +2147,14 @@ he@^1.2.0:
|
|||
resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
||||
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
||||
|
||||
help-me@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/help-me/-/help-me-4.2.0.tgz#50712bfd799ff1854ae1d312c36eafcea85b0563"
|
||||
integrity sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==
|
||||
dependencies:
|
||||
glob "^8.0.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
html-minifier@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56"
|
||||
|
@ -2154,7 +2186,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24:
|
|||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
ieee754@^1.1.13:
|
||||
ieee754@^1.1.13, ieee754@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||
|
@ -2321,6 +2353,11 @@ js-base64@^3.7.5:
|
|||
resolved "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca"
|
||||
integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==
|
||||
|
||||
js-sdsl@4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711"
|
||||
integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
|
@ -2444,16 +2481,18 @@ log-symbols@^4.1.0:
|
|||
chalk "^4.1.0"
|
||||
is-unicode-supported "^0.1.0"
|
||||
|
||||
long@^5.0.0:
|
||||
version "5.2.3"
|
||||
resolved "https://registry.npmmirror.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
|
||||
integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
|
||||
|
||||
lower-case@^1.1.1:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
|
||||
integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
|
||||
|
||||
lru-cache@^10.0.1:
|
||||
version "10.0.2"
|
||||
resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.0.2.tgz#34504678cc3266b09b8dfd6fab4e1515258271b7"
|
||||
integrity sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
lru-cache@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||
|
@ -2525,18 +2564,50 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
|||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^5.1.0:
|
||||
minimatch@^5.0.1, minimatch@^5.1.0:
|
||||
version "5.1.6"
|
||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
|
||||
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
minimist@^1.2.6:
|
||||
minimist@^1.2.6, minimist@^1.2.8:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||
|
||||
mqtt-packet@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.npmmirror.com/mqtt-packet/-/mqtt-packet-9.0.0.tgz#fd841854d8c0f1f5211b00de388c4ced45b59216"
|
||||
integrity sha512-8v+HkX+fwbodsWAZIZTI074XIoxVBOmPeggQuDFCGg1SqNcC+uoRMWu7J6QlJPqIUIJXmjNYYHxBBLr1Y/Df4w==
|
||||
dependencies:
|
||||
bl "^6.0.8"
|
||||
debug "^4.3.4"
|
||||
process-nextick-args "^2.0.1"
|
||||
|
||||
mqtt@^5.2.0, mqtt@^5.2.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.npmmirror.com/mqtt/-/mqtt-5.2.1.tgz#2c7b71bd8903390701677888933644018f5a0a02"
|
||||
integrity sha512-iXN1dEWDsl6GTMda2ZyhEbpb8BtgSpMuXVZf4c2C8HX/0r3N9SrTBYa+jVEyWhj/5CMiAobBhjtRYgjt9rXvfg==
|
||||
dependencies:
|
||||
"@types/readable-stream" "^4.0.5"
|
||||
"@types/ws" "^8.5.9"
|
||||
commist "^3.2.0"
|
||||
concat-stream "^2.0.0"
|
||||
debug "^4.3.4"
|
||||
duplexify "^4.1.2"
|
||||
help-me "^4.2.0"
|
||||
lru-cache "^10.0.1"
|
||||
minimist "^1.2.8"
|
||||
mqtt "^5.2.0"
|
||||
mqtt-packet "^9.0.0"
|
||||
number-allocator "^1.0.14"
|
||||
readable-stream "^4.4.2"
|
||||
reinterval "^1.1.0"
|
||||
rfdc "^1.3.0"
|
||||
split2 "^4.2.0"
|
||||
ws "^8.14.2"
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
@ -2606,6 +2677,14 @@ nth-check@^2.1.1:
|
|||
dependencies:
|
||||
boolbase "^1.0.0"
|
||||
|
||||
number-allocator@^1.0.14:
|
||||
version "1.0.14"
|
||||
resolved "https://registry.npmmirror.com/number-allocator/-/number-allocator-1.0.14.tgz#1f2e32855498a7740dcc8c78bed54592d930ee4d"
|
||||
integrity sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==
|
||||
dependencies:
|
||||
debug "^4.3.1"
|
||||
js-sdsl "4.3.0"
|
||||
|
||||
object-inspect@^1.9.0:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.0.tgz#42695d3879e1cd5bda6df5062164d80c996e23e2"
|
||||
|
@ -2832,28 +2911,15 @@ prettier@^2.5.1:
|
|||
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
|
||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
process-nextick-args@^2.0.1, process-nextick-args@~2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
||||
|
||||
protobufjs@^7.2.4:
|
||||
version "7.2.5"
|
||||
resolved "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d"
|
||||
integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==
|
||||
dependencies:
|
||||
"@protobufjs/aspromise" "^1.1.2"
|
||||
"@protobufjs/base64" "^1.1.2"
|
||||
"@protobufjs/codegen" "^2.0.4"
|
||||
"@protobufjs/eventemitter" "^1.1.0"
|
||||
"@protobufjs/fetch" "^1.1.0"
|
||||
"@protobufjs/float" "^1.0.2"
|
||||
"@protobufjs/inquire" "^1.1.0"
|
||||
"@protobufjs/path" "^1.1.2"
|
||||
"@protobufjs/pool" "^1.1.0"
|
||||
"@protobufjs/utf8" "^1.1.0"
|
||||
"@types/node" ">=13.7.0"
|
||||
long "^5.0.0"
|
||||
process@^0.11.10:
|
||||
version "0.11.10"
|
||||
resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
||||
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
|
||||
|
||||
protoc-gen-ts@^0.8.6:
|
||||
version "0.8.7"
|
||||
|
@ -2942,7 +3008,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.5:
|
|||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||
readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
|
||||
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
|
||||
|
@ -2951,6 +3017,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
|||
string_decoder "^1.1.1"
|
||||
util-deprecate "^1.0.1"
|
||||
|
||||
readable-stream@^4.2.0, readable-stream@^4.4.2:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13"
|
||||
integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==
|
||||
dependencies:
|
||||
abort-controller "^3.0.0"
|
||||
buffer "^6.0.3"
|
||||
events "^3.3.0"
|
||||
process "^0.11.10"
|
||||
string_decoder "^1.3.0"
|
||||
|
||||
readdir-glob@^1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584"
|
||||
|
@ -2970,6 +3047,11 @@ register-service-worker@^1.7.2:
|
|||
resolved "https://registry.npmmirror.com/register-service-worker/-/register-service-worker-1.7.2.tgz#6516983e1ef790a98c4225af1216bc80941a4bd2"
|
||||
integrity sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==
|
||||
|
||||
reinterval@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/reinterval/-/reinterval-1.1.0.tgz#3361ecfa3ca6c18283380dd0bb9546f390f5ece7"
|
||||
integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==
|
||||
|
||||
relateurl@^0.2.7:
|
||||
version "0.2.7"
|
||||
resolved "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
|
||||
|
@ -3012,6 +3094,11 @@ reusify@^1.0.4:
|
|||
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rfdc@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
|
||||
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
|
||||
|
||||
rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||
|
@ -3192,6 +3279,11 @@ source-map@~0.6.0:
|
|||
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
split2@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
|
||||
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
|
||||
|
||||
stack-trace@^1.0.0-pre2:
|
||||
version "1.0.0-pre2"
|
||||
resolved "https://registry.npmmirror.com/stack-trace/-/stack-trace-1.0.0-pre2.tgz#46a83a79f1b287807e9aaafc6a5dd8bcde626f9c"
|
||||
|
@ -3202,6 +3294,11 @@ statuses@2.0.1:
|
|||
resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
|
||||
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
||||
|
||||
stream-shift@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
|
||||
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
||||
|
||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
|
@ -3211,7 +3308,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
|||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string_decoder@^1.1.1:
|
||||
string_decoder@^1.1.1, string_decoder@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
||||
|
@ -3352,6 +3449,11 @@ type-is@~1.6.18:
|
|||
media-typer "0.3.0"
|
||||
mime-types "~2.1.24"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
|
||||
|
||||
typescript@^4.5.4:
|
||||
version "4.9.5"
|
||||
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
||||
|
@ -3519,6 +3621,11 @@ wrappy@1:
|
|||
resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
|
||||
|
||||
ws@^8.14.2:
|
||||
version "8.14.2"
|
||||
resolved "https://registry.npmmirror.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
|
||||
integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
|
||||
|
||||
xml-name-validator@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
|
||||
|
|
Loading…
Reference in New Issue