diff --git a/.changeset/lovely-crabs-hide.md b/.changeset/lovely-crabs-hide.md deleted file mode 100644 index c7d40bf003..0000000000 --- a/.changeset/lovely-crabs-hide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"livekit-client": patch ---- - -Add TS decorator support and replace class arrow function properties with bound methods diff --git a/.prettierrc b/.prettierrc index 82d69502c1..ed3a79adb8 100644 --- a/.prettierrc +++ b/.prettierrc @@ -7,6 +7,6 @@ "importOrder": ["", "^[./]"], "importOrderSeparation": false, "importOrderSortSpecifiers": true, - "importOrderParserPlugins": ["typescript", "decorators"], + "importOrderParserPlugins": ["typescript"], "plugins": ["@trivago/prettier-plugin-sort-imports"] } diff --git a/package.json b/package.json index 754626f4ea..d88271bb21 100644 --- a/package.json +++ b/package.json @@ -61,9 +61,7 @@ }, "devDependencies": { "@babel/core": "7.22.1", - "@babel/plugin-proposal-decorators": "^7.22.7", "@babel/preset-env": "7.22.4", - "@babel/preset-typescript": "^7.22.5", "@bufbuild/protoc-gen-es": "^1.3.0", "@changesets/cli": "2.26.1", "@livekit/changesets-changelog-github": "^0.0.4", @@ -75,7 +73,9 @@ "@size-limit/file": "^8.2.4", "@size-limit/webpack": "^8.2.4", "@trivago/prettier-plugin-sort-imports": "^4.1.1", + "@types/events": "^3.0.0", "@types/sdp-transform": "2.4.6", + "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.59.8", "@typescript-eslint/parser": "5.59.8", "downlevel-dts": "^0.11.0", @@ -92,11 +92,11 @@ "rollup-plugin-re": "1.0.7", "rollup-plugin-typescript2": "0.34.1", "size-limit": "^8.2.4", + "ts-proto": "1.148.2", "typedoc": "0.24.8", "typedoc-plugin-no-inherit": "1.4.0", "typescript": "5.1.3", - "vite": "4.4.2", - "vite-plugin-babel": "^1.1.3", + "vite": "4.3.9", "vitest": "^0.32.0" } } diff --git a/src/decorators/autoBind.ts b/src/decorators/autoBind.ts deleted file mode 100644 index 04db74dea8..0000000000 --- a/src/decorators/autoBind.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * ensure that the method isn’t re-bound if it is called as a stand-alone function or passed as a callback. - * @see https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#decorators - */ -export function bound( - _originalMethod: Function, - context: ClassMethodDecoratorContext, -) { - const methodName = context.name as keyof T; - if (context.private) { - throw new Error(`'bound' cannot decorate private properties like ${methodName as string}.`); - } - - context.addInitializer(function () { - this[methodName] = (this[methodName] as Function).bind(this); - }); -} diff --git a/src/e2ee/E2eeManager.ts b/src/e2ee/E2eeManager.ts index 61abc729e5..49f7cef436 100644 --- a/src/e2ee/E2eeManager.ts +++ b/src/e2ee/E2eeManager.ts @@ -1,5 +1,4 @@ import EventEmitter from 'eventemitter3'; -import { bound } from '../decorators/autoBind'; import log from '../logger'; import { Encryption_Type, TrackInfo } from '../proto/livekit_models_pb'; import type RTCEngine from '../room/RTCEngine'; @@ -132,11 +131,10 @@ export class E2EEManager extends EventEmitter { } }; - @bound - private onWorkerError(ev: ErrorEvent) { + private onWorkerError = (ev: ErrorEvent) => { log.error('e2ee worker encountered an error:', { error: ev.error }); this.emit(EncryptionEvent.Error, ev.error); - } + }; public setupEngine(engine: RTCEngine) { engine.on(EngineEvent.RTPVideoMapUpdate, (rtpMap) => { diff --git a/src/room/RTCEngine.ts b/src/room/RTCEngine.ts index 4f83a13f01..aa290a44ba 100644 --- a/src/room/RTCEngine.ts +++ b/src/room/RTCEngine.ts @@ -2,7 +2,6 @@ import EventEmitter from 'eventemitter3'; import type { MediaAttributes } from 'sdp-transform'; import type { SignalOptions } from '../api/SignalClient'; import { SignalClient } from '../api/SignalClient'; -import { bound } from '../decorators/autoBind'; import log from '../logger'; import type { InternalRoomOptions } from '../options'; import { @@ -604,8 +603,7 @@ export default class RTCEngine extends EventEmitter { this.reliableDC.onbufferedamountlow = this.handleBufferedAmountLow; } - @bound - private async handleDataChannel({ channel }: RTCDataChannelEvent) { + private handleDataChannel = async ({ channel }: RTCDataChannelEvent) => { if (!channel) { return; } @@ -618,10 +616,9 @@ export default class RTCEngine extends EventEmitter { } log.debug(`on data channel ${channel.id}, ${channel.label}`); channel.onmessage = this.handleDataMessage; - } + }; - @bound - private async handleDataMessage(message: MessageEvent) { + private handleDataMessage = async (message: MessageEvent) => { // make sure to respect incoming data message order by processing message events one after the other const unlock = await this.dataProcessLock.lock(); try { @@ -645,10 +642,9 @@ export default class RTCEngine extends EventEmitter { } finally { unlock(); } - } + }; - @bound - private handleDataError(event: Event) { + private handleDataError = (event: Event) => { const channel = event.currentTarget as RTCDataChannel; const channelKind = channel.maxRetransmits === 0 ? 'lossy' : 'reliable'; @@ -658,16 +654,15 @@ export default class RTCEngine extends EventEmitter { } else { log.error(`Unknown DataChannel Error on ${channelKind}`, event); } - } + }; - @bound - private handleBufferedAmountLow(event: Event) { + private handleBufferedAmountLow = (event: Event) => { const channel = event.currentTarget as RTCDataChannel; const channelKind = channel.maxRetransmits === 0 ? DataPacket_Kind.LOSSY : DataPacket_Kind.RELIABLE; this.updateAndEmitDCBufferStatus(channelKind); - } + }; private setPreferredCodec( transceiver: RTCRtpTransceiver, @@ -816,8 +811,7 @@ export default class RTCEngine extends EventEmitter { // websocket reconnect behavior. if websocket is interrupted, and the PeerConnection // continues to work, we can reconnect to websocket to continue the session // after a number of retries, we'll close and give up permanently - @bound - private handleDisconnect(connection: string, disconnectReason?: ReconnectReason) { + private handleDisconnect = (connection: string, disconnectReason?: ReconnectReason) => { if (this._isClosed) { return; } @@ -862,7 +856,7 @@ export default class RTCEngine extends EventEmitter { () => this.attemptReconnect(disconnectReason), delay, ); - } + }; private async attemptReconnect(reason?: ReconnectReason) { if (this._isClosed) { @@ -1111,8 +1105,7 @@ export default class RTCEngine extends EventEmitter { throw new ConnectionError('could not establish PC connection'); } - @bound - waitForRestarted() { + waitForRestarted = () => { return new Promise((resolve, reject) => { if (this.pcState === PCState.Connected) { resolve(); @@ -1129,7 +1122,7 @@ export default class RTCEngine extends EventEmitter { this.once(EngineEvent.Disconnected, onDisconnected); this.once(EngineEvent.Closing, onDisconnected); }); - } + }; /* @internal */ async sendDataPacket(packet: DataPacket, kind: DataPacket_Kind) { @@ -1146,22 +1139,20 @@ export default class RTCEngine extends EventEmitter { this.updateAndEmitDCBufferStatus(kind); } - @bound - private updateAndEmitDCBufferStatus(kind: DataPacket_Kind) { + private updateAndEmitDCBufferStatus = (kind: DataPacket_Kind) => { const status = this.isBufferStatusLow(kind); if (typeof status !== 'undefined' && status !== this.dcBufferStatus.get(kind)) { this.dcBufferStatus.set(kind, status); this.emit(EngineEvent.DCBufferStatusChanged, status, kind); } - } + }; - @bound - private isBufferStatusLow(kind: DataPacket_Kind): boolean | undefined { + private isBufferStatusLow = (kind: DataPacket_Kind): boolean | undefined => { const dc = this.dataChannelForKind(kind); if (dc) { return dc.bufferedAmount <= dc.bufferedAmountLowThreshold; } - } + }; /** * @internal @@ -1341,14 +1332,13 @@ export default class RTCEngine extends EventEmitter { this.reconnectAttempts = 0; } - @bound - private handleBrowserOnLine() { + private handleBrowserOnLine = () => { // in case the engine is currently reconnecting, attempt a reconnect immediately after the browser state has changed to 'onLine' if (this.client.isReconnecting) { this.clearReconnectTimeout(); this.attemptReconnect(ReconnectReason.RR_SIGNAL_DISCONNECTED); } - } + }; private registerOnLineListener() { if (isWeb()) { diff --git a/src/room/Room.ts b/src/room/Room.ts index 851d7513c5..1816e03536 100644 --- a/src/room/Room.ts +++ b/src/room/Room.ts @@ -2,7 +2,6 @@ import { protoInt64 } from '@bufbuild/protobuf'; import EventEmitter from 'eventemitter3'; import 'webrtc-adapter'; import { toProtoSessionDescription } from '../api/SignalClient'; -import { bound } from '../decorators/autoBind'; import { EncryptionEvent } from '../e2ee'; import { E2EEManager } from '../e2ee/E2eeManager'; import log from '../logger'; @@ -379,8 +378,7 @@ class Room extends EventEmitter { } } - @bound - async connect(url: string, token: string, opts?: RoomConnectOptions): Promise { + connect = async (url: string, token: string, opts?: RoomConnectOptions): Promise => { // In case a disconnect called happened right before the connect call, make sure the disconnect is completed first by awaiting its lock const unlockDisconnect = await this.disconnectLock.lock(); @@ -479,17 +477,16 @@ class Room extends EventEmitter { ); return this.connectFuture.promise; - } + }; - @bound - private async connectSignal( + private connectSignal = async ( url: string, token: string, engine: RTCEngine, connectOptions: InternalRoomConnectOptions, roomOptions: InternalRoomOptions, abortController: AbortController, - ): Promise { + ): Promise => { const joinResponse = await engine.join( url, token, @@ -526,10 +523,9 @@ class Room extends EventEmitter { } return joinResponse; - } + }; - @bound - private applyJoinResponse(joinResponse: JoinResponse) { + private applyJoinResponse = (joinResponse: JoinResponse) => { const pi = joinResponse.participant!; this.localParticipant.sid = pi.sid; @@ -541,15 +537,14 @@ class Room extends EventEmitter { if (joinResponse.room) { this.handleRoomUpdate(joinResponse.room); } - } + }; - @bound - private async attemptConnection( + private attemptConnection = async ( url: string, token: string, opts: RoomConnectOptions | undefined, abortController: AbortController, - ) { + ) => { if (this.state === ConnectionState.Reconnecting) { log.info('Reconnection attempt replaced by new connection attempt'); // make sure we close and recreate the existing engine in order to get rid of any potentially ongoing reconnection attempts @@ -632,13 +627,12 @@ class Room extends EventEmitter { this.setAndEmitConnectionState(ConnectionState.Connected); this.emit(RoomEvent.Connected); this.registerConnectionReconcile(); - } + }; /** * disconnects the room, emits [[RoomEvent.Disconnected]] */ - @bound - async disconnect(stopTracks = true) { + disconnect = async (stopTracks = true) => { const unlock = await this.disconnectLock.lock(); try { if (this.state === ConnectionState.Disconnected) { @@ -671,7 +665,7 @@ class Room extends EventEmitter { } finally { unlock(); } - } + }; /** * retrieves a participant by identity @@ -1021,8 +1015,7 @@ class Room extends EventEmitter { ); } - @bound - private handleRestarting() { + private handleRestarting = () => { this.clearConnectionReconcile(); // also unwind existing participants & existing subscriptions for (const p of this.participants.values()) { @@ -1032,10 +1025,9 @@ class Room extends EventEmitter { if (this.setAndEmitConnectionState(ConnectionState.Reconnecting)) { this.emit(RoomEvent.Reconnecting); } - } + }; - @bound - private async handleSignalRestarted(joinResponse: JoinResponse) { + private handleSignalRestarted = async (joinResponse: JoinResponse) => { log.debug(`signal reconnected to server`, { region: joinResponse.serverRegion, }); @@ -1096,7 +1088,7 @@ class Room extends EventEmitter { this.participants.forEach((participant) => { this.emit(RoomEvent.ParticipantConnected, participant); }); - } + }; private handleDisconnect(shouldStopTracks = true, reason?: DisconnectReason) { this.clearConnectionReconcile(); @@ -1159,8 +1151,7 @@ class Room extends EventEmitter { } } - @bound - private handleParticipantUpdates(participantInfos: ParticipantInfo[]) { + private handleParticipantUpdates = (participantInfos: ParticipantInfo[]) => { // handle changes to participant state, and send events participantInfos.forEach((info) => { if (info.identity === this.localParticipant.identity) { @@ -1190,7 +1181,7 @@ class Room extends EventEmitter { } } }); - } + }; private handleParticipantDisconnected(sid: string, participant?: RemoteParticipant) { // remove and send event @@ -1207,8 +1198,7 @@ class Room extends EventEmitter { } // updates are sent only when there's a change to speaker ordering - @bound - private handleActiveSpeakersUpdate(speakers: SpeakerInfo[]) { + private handleActiveSpeakersUpdate = (speakers: SpeakerInfo[]) => { const activeSpeakers: Participant[] = []; const seenSids: any = {}; speakers.forEach((speaker) => { @@ -1240,11 +1230,10 @@ class Room extends EventEmitter { this.activeSpeakers = activeSpeakers; this.emitWhenConnected(RoomEvent.ActiveSpeakersChanged, activeSpeakers); - } + }; // process list of changed speakers - @bound - private handleSpeakersChanged(speakerUpdates: SpeakerInfo[]) { + private handleSpeakersChanged = (speakerUpdates: SpeakerInfo[]) => { const lastSpeakers = new Map(); this.activeSpeakers.forEach((p) => { lastSpeakers.set(p.sid, p); @@ -1270,10 +1259,9 @@ class Room extends EventEmitter { activeSpeakers.sort((a, b) => b.audioLevel - a.audioLevel); this.activeSpeakers = activeSpeakers; this.emitWhenConnected(RoomEvent.ActiveSpeakersChanged, activeSpeakers); - } + }; - @bound - private handleStreamStateUpdate(streamStateUpdate: StreamStateUpdate) { + private handleStreamStateUpdate = (streamStateUpdate: StreamStateUpdate) => { streamStateUpdate.streamStates.forEach((streamState) => { const participant = this.participants.get(streamState.participantSid); if (!participant) { @@ -1292,10 +1280,9 @@ class Room extends EventEmitter { participant, ); }); - } + }; - @bound - private handleSubscriptionPermissionUpdate(update: SubscriptionPermissionUpdate) { + private handleSubscriptionPermissionUpdate = (update: SubscriptionPermissionUpdate) => { const participant = this.participants.get(update.participantSid); if (!participant) { return; @@ -1306,10 +1293,9 @@ class Room extends EventEmitter { } pub.setAllowed(update.allowed); - } + }; - @bound - private handleSubscriptionError(update: SubscriptionResponse) { + private handleSubscriptionError = (update: SubscriptionResponse) => { const participant = Array.from(this.participants.values()).find((p) => p.tracks.has(update.trackSid), ); @@ -1322,10 +1308,9 @@ class Room extends EventEmitter { } pub.setSubscriptionError(update.err); - } + }; - @bound - private handleDataPacket(userPacket: UserPacket, kind: DataPacket_Kind) { + private handleDataPacket = (userPacket: UserPacket, kind: DataPacket_Kind) => { // find the participant const participant = this.participants.get(userPacket.participantSid); @@ -1333,34 +1318,30 @@ class Room extends EventEmitter { // also emit on the participant participant?.emit(ParticipantEvent.DataReceived, userPacket.payload, kind); - } + }; - @bound - private handleAudioPlaybackStarted() { + private handleAudioPlaybackStarted = () => { if (this.canPlaybackAudio) { return; } this.audioEnabled = true; this.emit(RoomEvent.AudioPlaybackStatusChanged, true); - } + }; - @bound - private handleAudioPlaybackFailed(e: any) { + private handleAudioPlaybackFailed = (e: any) => { log.warn('could not playback audio', e); if (!this.canPlaybackAudio) { return; } this.audioEnabled = false; this.emit(RoomEvent.AudioPlaybackStatusChanged, false); - } + }; - @bound - private handleDeviceChange() { + private handleDeviceChange = async () => { this.emit(RoomEvent.MediaDevicesChanged); - } + }; - @bound - private handleRoomUpdate(room: RoomModel) { + private handleRoomUpdate = (room: RoomModel) => { const oldRoom = this.roomInfo; this.roomInfo = room; if (oldRoom && oldRoom.metadata !== room.metadata) { @@ -1369,10 +1350,9 @@ class Room extends EventEmitter { if (oldRoom?.activeRecording !== room.activeRecording) { this.emitWhenConnected(RoomEvent.RecordingStatusChanged, room.activeRecording); } - } + }; - @bound - private handleConnectionQualityUpdate(update: ConnectionQualityUpdate) { + private handleConnectionQualityUpdate = (update: ConnectionQualityUpdate) => { update.updates.forEach((info) => { if (info.participantSid === this.localParticipant.sid) { this.localParticipant.setConnectionQuality(info.quality); @@ -1383,7 +1363,7 @@ class Room extends EventEmitter { participant.setConnectionQuality(info.quality); } }); - } + }; private async acquireAudioContext() { if ( @@ -1639,28 +1619,23 @@ class Room extends EventEmitter { return false; } - @bound - private onLocalParticipantMetadataChanged(metadata: string | undefined) { + private onLocalParticipantMetadataChanged = (metadata: string | undefined) => { this.emit(RoomEvent.ParticipantMetadataChanged, metadata, this.localParticipant); - } + }; - @bound - private onLocalParticipantNameChanged(name: string) { + private onLocalParticipantNameChanged = (name: string) => { this.emit(RoomEvent.ParticipantNameChanged, name, this.localParticipant); - } + }; - @bound - private onLocalTrackMuted(pub: TrackPublication) { + private onLocalTrackMuted = (pub: TrackPublication) => { this.emit(RoomEvent.TrackMuted, pub, this.localParticipant); - } + }; - @bound - private onLocalTrackUnmuted(pub: TrackPublication) { + private onLocalTrackUnmuted = (pub: TrackPublication) => { this.emit(RoomEvent.TrackUnmuted, pub, this.localParticipant); - } + }; - @bound - private async onLocalTrackPublished(pub: LocalTrackPublication) { + private onLocalTrackPublished = async (pub: LocalTrackPublication) => { this.emit(RoomEvent.LocalTrackPublished, pub, this.localParticipant); if (pub.track instanceof LocalAudioTrack) { const trackIsSilent = await pub.track.checkForSilence(); @@ -1678,27 +1653,23 @@ class Room extends EventEmitter { this.localParticipant.activeDeviceMap.set(deviceKind, deviceId); this.emit(RoomEvent.ActiveDeviceChanged, deviceKind, deviceId); } - } + }; - @bound - private onLocalTrackUnpublished(pub: LocalTrackPublication) { + private onLocalTrackUnpublished = (pub: LocalTrackPublication) => { this.emit(RoomEvent.LocalTrackUnpublished, pub, this.localParticipant); - } + }; - @bound - private onLocalConnectionQualityChanged(quality: ConnectionQuality) { + private onLocalConnectionQualityChanged = (quality: ConnectionQuality) => { this.emit(RoomEvent.ConnectionQualityChanged, quality, this.localParticipant); - } + }; - @bound - private onMediaDevicesError(e: Error) { + private onMediaDevicesError = (e: Error) => { this.emit(RoomEvent.MediaDevicesError, e); - } + }; - @bound - private onLocalParticipantPermissionsChanged(prevPermissions?: ParticipantPermission) { + private onLocalParticipantPermissionsChanged = (prevPermissions?: ParticipantPermission) => { this.emit(RoomEvent.ParticipantPermissionsChanged, prevPermissions, this.localParticipant); - } + }; /** * Allows to populate a room with simulated participants. diff --git a/src/room/participant/LocalParticipant.ts b/src/room/participant/LocalParticipant.ts index a4b9bb697d..5f8594bc00 100644 --- a/src/room/participant/LocalParticipant.ts +++ b/src/room/participant/LocalParticipant.ts @@ -1,4 +1,3 @@ -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import type { InternalRoomOptions } from '../../options'; import { @@ -149,28 +148,25 @@ export default class LocalParticipant extends Participant { .on(EngineEvent.Disconnected, this.handleDisconnected); } - @bound - private handleReconnecting() { + private handleReconnecting = () => { if (!this.reconnectFuture) { this.reconnectFuture = new Future(); } - } + }; - @bound - private handleReconnected() { + private handleReconnected = () => { this.reconnectFuture?.resolve?.(); this.reconnectFuture = undefined; this.updateTrackSubscriptionPermissions(); - } + }; - @bound - private handleDisconnected() { + private handleDisconnected = () => { if (this.reconnectFuture) { this.reconnectFuture.promise.catch((e) => log.warn(e)); this.reconnectFuture?.reject?.('Got disconnected during reconnection attempt'); this.reconnectFuture = undefined; } - } + }; /** * Sets and updates the metadata of the local participant. @@ -1155,8 +1151,7 @@ export default class LocalParticipant extends Participant { return true; } - @bound - private updateTrackSubscriptionPermissions() { + private updateTrackSubscriptionPermissions = () => { log.debug('updating track subscription permissions', { allParticipantsAllowed: this.allParticipantsAllowedToSubscribe, participantTrackPermissions: this.participantTrackPermissions, @@ -1165,18 +1160,16 @@ export default class LocalParticipant extends Participant { this.allParticipantsAllowedToSubscribe, this.participantTrackPermissions.map((p) => trackPermissionToProto(p)), ); - } + }; /** @internal */ - @bound - private onTrackUnmuted(track: LocalTrack) { + private onTrackUnmuted = (track: LocalTrack) => { this.onTrackMuted(track, track.isUpstreamPaused); - } + }; // when the local track changes in mute status, we'll notify server as such /** @internal */ - @bound - private onTrackMuted(track: LocalTrack, muted?: boolean) { + private onTrackMuted = (track: LocalTrack, muted?: boolean) => { if (muted === undefined) { muted = true; } @@ -1187,22 +1180,19 @@ export default class LocalParticipant extends Participant { } this.engine.updateMuteStatus(track.sid, muted); - } + }; - @bound - private onTrackUpstreamPaused(track: LocalTrack) { + private onTrackUpstreamPaused = (track: LocalTrack) => { log.debug('upstream paused'); this.onTrackMuted(track, true); - } + }; - @bound - private onTrackUpstreamResumed(track: LocalTrack) { + private onTrackUpstreamResumed = (track: LocalTrack) => { log.debug('upstream resumed'); this.onTrackMuted(track, track.isMuted); - } + }; - @bound - private async handleSubscribedQualityUpdate(update: SubscribedQualityUpdate) { + private handleSubscribedQualityUpdate = async (update: SubscribedQualityUpdate) => { if (!this.roomOptions?.dynacast) { return; } @@ -1228,10 +1218,9 @@ export default class LocalParticipant extends Participant { } else if (update.subscribedQualities.length > 0) { await pub.videoTrack?.setPublishingLayers(update.subscribedQualities); } - } + }; - @bound - private handleLocalTrackUnpublished(unpublished: TrackUnpublishedResponse) { + private handleLocalTrackUnpublished = (unpublished: TrackUnpublishedResponse) => { const track = this.tracks.get(unpublished.trackSid); if (!track) { log.warn('received unpublished event for unknown track', { @@ -1241,10 +1230,9 @@ export default class LocalParticipant extends Participant { return; } this.unpublishTrack(track.track!); - } + }; - @bound - private async handleTrackEnded(track: LocalTrack) { + private handleTrackEnded = async (track: LocalTrack) => { if ( track.source === Track.Source.ScreenShare || track.source === Track.Source.ScreenShareAudio @@ -1291,7 +1279,7 @@ export default class LocalParticipant extends Participant { await track.mute(); } } - } + }; private getPublicationForTrack( track: LocalTrack | MediaStreamTrack, diff --git a/src/room/track/LocalTrack.ts b/src/room/track/LocalTrack.ts index c5042d0a59..5c21d9fdbf 100644 --- a/src/room/track/LocalTrack.ts +++ b/src/room/track/LocalTrack.ts @@ -1,4 +1,3 @@ -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { getBrowser } from '../../utils/browserParser'; import DeviceManager from '../DeviceManager'; @@ -281,15 +280,14 @@ export default abstract class LocalTrack extends Track { } } - @bound - private handleEnded() { + private handleEnded = () => { if (this.isInBackground) { this.reacquireTrack = true; } this._mediaStreamTrack.removeEventListener('mute', this.pauseUpstream); this._mediaStreamTrack.removeEventListener('unmute', this.resumeUpstream); this.emit(TrackEvent.Ended, this); - } + }; stop() { super.stop(); @@ -331,8 +329,7 @@ export default abstract class LocalTrack extends Track { } }; - @bound - async resumeUpstream() { + resumeUpstream = async () => { const unlock = await this.pauseUpstreamLock.lock(); try { if (this._isUpstreamPaused === false) { @@ -350,7 +347,7 @@ export default abstract class LocalTrack extends Track { } finally { unlock(); } - } + }; /** * Sets a processor on this track. diff --git a/src/room/track/LocalTrackPublication.ts b/src/room/track/LocalTrackPublication.ts index 32de5d9b75..8ee05687cd 100644 --- a/src/room/track/LocalTrackPublication.ts +++ b/src/room/track/LocalTrackPublication.ts @@ -1,4 +1,3 @@ -import { bound } from '../../decorators/autoBind'; import type { TrackInfo } from '../../proto/livekit_models_pb'; import { TrackEvent } from '../events'; import type LocalAudioTrack from './LocalAudioTrack'; @@ -82,8 +81,7 @@ export default class LocalTrackPublication extends TrackPublication { await this.track?.resumeUpstream(); } - @bound - handleTrackEnded() { + handleTrackEnded = () => { this.emit(TrackEvent.Ended); - } + }; } diff --git a/src/room/track/LocalVideoTrack.ts b/src/room/track/LocalVideoTrack.ts index 125ad068ff..002917ac4a 100644 --- a/src/room/track/LocalVideoTrack.ts +++ b/src/room/track/LocalVideoTrack.ts @@ -1,5 +1,4 @@ import type { SignalClient } from '../../api/SignalClient'; -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { VideoLayer, VideoQuality } from '../../proto/livekit_models_pb'; import { SubscribedCodec, SubscribedQuality } from '../../proto/livekit_rtc_pb'; @@ -301,8 +300,7 @@ export default class LocalVideoTrack extends LocalTrack { await setPublishingLayersForSender(this.sender, this.encodings, qualities, this.senderLock); } - @bound - protected async monitorSender() { + protected monitorSender = async () => { if (!this.sender) { this._currentBitrate = 0; return; @@ -327,7 +325,7 @@ export default class LocalVideoTrack extends LocalTrack { } this.prevStats = statsMap; - } + }; protected async handleAppVisibilityChanged() { await super.handleAppVisibilityChanged(); diff --git a/src/room/track/RemoteAudioTrack.ts b/src/room/track/RemoteAudioTrack.ts index fdc2269753..8016790645 100644 --- a/src/room/track/RemoteAudioTrack.ts +++ b/src/room/track/RemoteAudioTrack.ts @@ -1,4 +1,3 @@ -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { TrackEvent } from '../events'; import { computeBitrate } from '../stats'; @@ -207,8 +206,7 @@ export default class RemoteAudioTrack extends RemoteTrack { this.sourceNode = undefined; } - @bound - protected async monitorReceiver() { + protected monitorReceiver = async () => { if (!this.receiver) { this._currentBitrate = 0; return; @@ -220,7 +218,7 @@ export default class RemoteAudioTrack extends RemoteTrack { } this.prevStats = stats; - } + }; protected async getReceiverStats(): Promise { if (!this.receiver || !this.receiver.getStats) { diff --git a/src/room/track/RemoteTrackPublication.ts b/src/room/track/RemoteTrackPublication.ts index 5317f28e32..7774cb0686 100644 --- a/src/room/track/RemoteTrackPublication.ts +++ b/src/room/track/RemoteTrackPublication.ts @@ -1,4 +1,3 @@ -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { ParticipantTracks, @@ -265,33 +264,30 @@ export default class RemoteTrackPublication extends TrackPublication { return true; } - @bound - protected handleEnded(track: RemoteTrack) { + protected handleEnded = (track: RemoteTrack) => { this.setTrack(undefined); this.emit(TrackEvent.Ended, track); - } + }; protected get isAdaptiveStream(): boolean { return this.track instanceof RemoteVideoTrack && this.track.isAdaptiveStream; } - @bound - protected handleVisibilityChange(visible: boolean) { + protected handleVisibilityChange = (visible: boolean) => { log.debug(`adaptivestream video visibility ${this.trackSid}, visible=${visible}`, { trackSid: this.trackSid, }); this.disabled = !visible; this.emitTrackUpdate(); - } + }; - @bound - protected handleVideoDimensionsChange(dimensions: Track.Dimensions) { + protected handleVideoDimensionsChange = (dimensions: Track.Dimensions) => { log.debug(`adaptivestream video dimensions ${dimensions.width}x${dimensions.height}`, { trackSid: this.trackSid, }); this.videoDimensions = dimensions; this.emitTrackUpdate(); - } + }; /* @internal */ emitTrackUpdate() { diff --git a/src/room/track/RemoteVideoTrack.ts b/src/room/track/RemoteVideoTrack.ts index 3d1146263f..ffb2e355d3 100644 --- a/src/room/track/RemoteVideoTrack.ts +++ b/src/room/track/RemoteVideoTrack.ts @@ -1,5 +1,4 @@ import { debounce } from 'ts-debounce'; -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { TrackEvent } from '../events'; import type { VideoReceiverStats } from '../stats'; @@ -360,17 +359,15 @@ class HTMLElementInfo implements ElementInfo { } }; - @bound - private onEnterPiP() { + private onEnterPiP = () => { this.isPiP = true; this.handleVisibilityChanged?.(); - } + }; - @bound - private onLeavePiP() { + private onLeavePiP = () => { this.isPiP = false; this.handleVisibilityChanged?.(); - } + }; stopObserving() { getIntersectionObserver()?.unobserve(this.element); diff --git a/src/room/track/Track.ts b/src/room/track/Track.ts index 04c5a9b9d1..f5f4fea9dd 100644 --- a/src/room/track/Track.ts +++ b/src/room/track/Track.ts @@ -1,6 +1,5 @@ import EventEmitter from 'eventemitter3'; import type { SignalClient } from '../../api/SignalClient'; -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { TrackSource, TrackType } from '../../proto/livekit_models_pb'; import { StreamState as ProtoStreamState } from '../../proto/livekit_rtc_pb'; @@ -233,8 +232,7 @@ export abstract class Track extends EventEmitter { } } - @bound - protected appVisibilityChangedListener() { + protected appVisibilityChangedListener = () => { if (this.backgroundTimeout) { clearTimeout(this.backgroundTimeout); } @@ -248,7 +246,7 @@ export abstract class Track extends EventEmitter { } else { this.handleAppVisibilityChanged(); } - } + }; protected async handleAppVisibilityChanged() { this.isInBackground = document.visibilityState === 'hidden'; diff --git a/src/room/track/TrackPublication.ts b/src/room/track/TrackPublication.ts index b1a8643dc0..14d1de9660 100644 --- a/src/room/track/TrackPublication.ts +++ b/src/room/track/TrackPublication.ts @@ -1,5 +1,4 @@ import EventEmitter from 'eventemitter3'; -import { bound } from '../../decorators/autoBind'; import log from '../../logger'; import { Encryption_Type } from '../../proto/livekit_models_pb'; import type { SubscriptionError, TrackInfo } from '../../proto/livekit_models_pb'; @@ -97,15 +96,13 @@ export class TrackPublication extends EventEmitter { } } - @bound - handleMuted() { + handleMuted = () => { this.emit(TrackEvent.Muted); - } + }; - @bound - handleUnmuted() { + handleUnmuted = () => { this.emit(TrackEvent.Unmuted); - } + }; /** @internal */ updateInfo(info: TrackInfo) { diff --git a/tsconfig.json b/tsconfig.json index cb55bf6303..356ef9f7c2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "types": ["sdp-transform"], + "types": ["sdp-transform", "ua-parser-js", "events"], "target": "ES2015" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, "module": "ES2020" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, "lib": ["DOM", "DOM.Iterable", "ES2017", "ES2018.Promise"], diff --git a/vite.config.js b/vite.config.js index 9fa78adaac..2236021fc0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,10 +1,8 @@ -/** - * Note: Vite is only used as a (fast) dev server. - * For building the library we invoke rollup directly. - **/ +import { babel } from '@rollup/plugin-babel'; import dns from 'dns'; +import { resolve } from 'path'; +import replace from 'rollup-plugin-re'; import { defineConfig } from 'vite'; -import viteBabel from 'vite-plugin-babel'; dns.setDefaultResultOrder('verbatim'); @@ -13,21 +11,43 @@ export default defineConfig({ port: 8080, open: true, }, - - plugins: [ - // use babel decorator plugin during serve until esbuild (which vite uses for the dev server) supports downlevelling decorators natively - // see https://github.com/evanw/esbuild/issues/104 - viteBabel({ - filter: /\.ts?$/, - apply: 'serve', - babelConfig: { - babelrc: false, - configFile: false, - presets: ['@babel/preset-typescript', ['@babel/preset-env', { modules: false }]], - plugins: [['@babel/plugin-proposal-decorators', { loose: true, version: '2023-05' }]], - }, - }), - ], + build: { + minify: 'esbuild', + target: 'es2019', + lib: { + // Could also be a dictionary or array of multiple entry points + entry: resolve(__dirname, 'src/index.ts'), + name: 'Livekit Client SDK JS', + // the proper extensions will be added + fileName: 'livekit-client', + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: [], + output: {}, + plugins: [ + babel({ + babelHelpers: 'bundled', + plugins: ['@babel/plugin-proposal-object-rest-spread'], + presets: ['@babel/preset-env'], + extensions: ['.js', '.ts', '.mjs'], + }), + replace({ + patterns: [ + { + // protobuf.js uses `eval` to determine whether a module is present or not + // in most modern browsers this will fail anyways due to CSP, and it's safer to just replace it with `undefined` + // until this PR is merged: https://github.com/protobufjs/protobuf.js/pull/1548 + // related discussion: https://github.com/protobufjs/protobuf.js/issues/593 + test: /eval.*\(moduleName\);/g, + replace: 'undefined;', + }, + ], + }), + ], + }, + }, test: { environment: 'jsdom', }, diff --git a/yarn.lock b/yarn.lock index 654f82c0f6..3b3c8bbba6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,13 +17,6 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.20.5": version "7.20.10" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz" @@ -113,16 +106,6 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" @@ -130,13 +113,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" @@ -206,21 +182,6 @@ "@babel/helper-split-export-declaration" "^7.18.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.6.tgz#58564873c889a6fea05a538e23f9f6d201f10950" - integrity sha512-iwdzgtSiBxF6ni6mzVnZCF3xt5qE6cEA0J7nFt8QOAWZ0zjCFceEgpn3vtb2V7WFR6QzP2jmIFOHMTRo7eNJjQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@nicolo-ribaudo/semver-v6" "^6.3.3" - "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" @@ -265,11 +226,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" @@ -285,14 +241,6 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" @@ -300,13 +248,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" @@ -328,13 +269,6 @@ dependencies: "@babel/types" "^7.22.3" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" @@ -349,13 +283,6 @@ dependencies: "@babel/types" "^7.21.4" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-transforms@^7.18.6": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz" @@ -412,17 +339,6 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.0" -"@babel/helper-module-transforms@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" @@ -430,13 +346,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" @@ -457,11 +366,6 @@ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz" integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== -"@babel/helper-plugin-utils@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" @@ -507,18 +411,6 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.0" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-simple-access@^7.18.6", "@babel/helper-simple-access@^7.20.2", "@babel/helper-simple-access@^7.21.5": version "7.21.5" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz" @@ -526,13 +418,6 @@ dependencies: "@babel/types" "^7.21.5" -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz" @@ -540,13 +425,6 @@ dependencies: "@babel/types" "^7.20.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" @@ -554,33 +432,16 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-string-parser@^7.19.4", "@babel/helper-string-parser@^7.21.5": version "7.21.5" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz" integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - "@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" @@ -591,11 +452,6 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - "@babel/helper-wrap-function@^7.18.9": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.9.tgz" @@ -624,15 +480,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/parser@^7.17.3", "@babel/parser@^7.18.9", "@babel/parser@^7.20.5", "@babel/parser@^7.20.7", "@babel/parser@^7.21.2", "@babel/parser@^7.21.4", "@babel/parser@^7.21.5": version "7.21.8" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz" @@ -643,11 +490,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" @@ -664,17 +506,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-transform-optional-chaining" "^7.22.3" -"@babel/plugin-proposal-decorators@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.7.tgz#9b5b73c2e404f0869ef8a8a53765f8203c5467a7" - integrity sha512-omXqPF7Onq4Bb7wHxXjM3jSMSJvUUbvDvmmds7KI5n9Cq6Ln5I05I1W2nRlRof1rGdiUxJrxwe285WF96XlBXQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/plugin-syntax-decorators" "^7.22.5" - "@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz" @@ -714,13 +545,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz#329fe2907c73de184033775637dbbc507f09116a" - integrity sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" @@ -763,13 +587,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" @@ -826,13 +643,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -1030,15 +840,6 @@ "@babel/helper-plugin-utils" "^7.21.5" "@babel/helper-simple-access" "^7.21.5" -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/plugin-transform-modules-systemjs@^7.22.3": version "7.22.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" @@ -1207,16 +1008,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" - integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" - "@babel/plugin-transform-unicode-escapes@^7.21.5": version "7.21.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz" @@ -1345,17 +1136,6 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" - "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" @@ -1386,15 +1166,6 @@ "@babel/parser" "^7.21.9" "@babel/types" "^7.21.5" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/traverse@7.17.3": version "7.17.3" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz" @@ -1491,22 +1262,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.5": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@7.17.0": version "7.17.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz" @@ -1542,15 +1297,6 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - "@bufbuild/protobuf@1.3.0", "@bufbuild/protobuf@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.3.0.tgz#69f675c76e6c1ab0b5bde141fa2df8b00927216a" @@ -1780,225 +1526,115 @@ human-id "^1.0.2" prettier "^2.7.1" -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.13.tgz#70ef455455654c7800c31ae55ae295d81712238c" - integrity sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-arm@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.13.tgz#15db83099855fc4193658a40687893ee5c95d7a9" - integrity sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/android-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.13.tgz#473d589219e1c06e305cf61ca77b8f69d9b6ffab" - integrity sha512-M2eZkRxR6WnWfVELHmv6MUoHbOqnzoTVSIxgtsyhm/NsgmL+uTmag/VVzdXvmahak1I6sOb1K/2movco5ikDJg== - -"@esbuild/darwin-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" - integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== - -"@esbuild/darwin-arm64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.13.tgz#0f525b2c1821a0591a06963582e5dc749ba51d45" - integrity sha512-f5goG30YgR1GU+fxtaBRdSW3SBG9pZW834Mmhxa6terzcboz7P2R0k4lDxlkP7NYRIIdBbWp+VgwQbmMH4yV7w== - -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/darwin-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.13.tgz#81965b690bae86bf1289b2ce0732506fd41fb545" - integrity sha512-RIrxoKH5Eo+yE5BtaAIMZaiKutPhZjw+j0OCh8WdvKEKJQteacq0myZvBDLU+hOzQOZWJeDnuQ2xgSScKf1Ovw== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-arm64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.13.tgz#895bb37fdea886db09549119158e044f146861f0" - integrity sha512-AfRPhHWmj9jGyLgW/2FkYERKmYR+IjYxf2rtSLmhOrPGFh0KCETFzSjx/JX/HJnvIqHt/DRQD/KAaVsUKoI3Xg== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/freebsd-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.13.tgz#0b1dfde3ff1b18f03f71e460f91dc463e6a23903" - integrity sha512-pGzWWZJBInhIgdEwzn8VHUBang8UvFKsvjDkeJ2oyY5gZtAM6BaxK0QLCuZY+qoj/nx/lIaItH425rm/hloETA== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.13.tgz#350febed5d32d8ec1a424a4c4d7c9ba885604960" - integrity sha512-hCzZbVJEHV7QM77fHPv2qgBcWxgglGFGCxk6KfQx6PsVIdi1u09X7IvgE9QKqm38OpkzaAkPnnPqwRsltvLkIQ== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-arm@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.13.tgz#47639d73d894026350eaccf7c174f1d26b747d6a" - integrity sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-ia32@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.13.tgz#a901a16349c58bf6f873bced36bdf46a5f4dac5d" - integrity sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-loong64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.13.tgz#faa08db402c18e351234719e00aba98867aa34ce" - integrity sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-mips64el@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.13.tgz#2123a54b49ddc1a1dff057bba8a9a5e9f26e5009" - integrity sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-ppc64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.13.tgz#9a9befd275a6a3f5baeed89aaafb746df7ba735d" - integrity sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-riscv64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.13.tgz#6644a5b5840fa0c3ffade6f87d943413ece520a8" - integrity sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-s390x@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.13.tgz#c1367a0a02b37f6b0382e71d9c9d97352ca23013" - integrity sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/linux-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.13.tgz#892674f0918ee3f5e523270cf49a69a557fb64c0" - integrity sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/netbsd-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.13.tgz#67954292195ecbdae33ab09a9ae6a7f566e49d04" - integrity sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/openbsd-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.13.tgz#b3eef873dfab547fbe7bcdb3573e1c59dea676b7" - integrity sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/sunos-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.13.tgz#b368080f42dbb5ae926d0567c02bcd68a34c5efd" - integrity sha512-X/xzuw4Hzpo/yq3YsfBbIsipNgmsm8mE/QeWbdGdTTeZ77fjxI2K0KP3AlhZ6gU3zKTw1bKoZTuKLnqcJ537qw== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-arm64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.13.tgz#11dedda0e8cfb5f781411ea362b2040304be0fc3" - integrity sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-ia32@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.13.tgz#6b8aa95515c05827b7c24c9db9581943566e0dcb" - integrity sha512-D+wKZaRhQI+MUGMH+DbEr4owC2D7XnF+uyGiZk38QbgzLcofFqIOwFs7ELmIeU45CQgfHNy9Q+LKW3cE8g37Kg== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@esbuild/win32-x64@0.18.13": - version "0.18.13" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.13.tgz#031f69b1f4cf62a18c38d502458c0b8b02625461" - integrity sha512-iVl6lehAfJS+VmpF3exKpNQ8b0eucf5VWfzR8S7xFve64NBNz2jPUgx1X93/kfnkfgP737O+i1k54SVQS7uVZA== +"@esbuild/android-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" + integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== + +"@esbuild/android-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" + integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== + +"@esbuild/android-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" + integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== + +"@esbuild/darwin-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz" + integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== + +"@esbuild/darwin-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" + integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== + +"@esbuild/freebsd-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" + integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== + +"@esbuild/freebsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" + integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== + +"@esbuild/linux-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" + integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== + +"@esbuild/linux-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" + integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== + +"@esbuild/linux-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" + integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== + +"@esbuild/linux-loong64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" + integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== + +"@esbuild/linux-mips64el@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" + integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== + +"@esbuild/linux-ppc64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" + integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== + +"@esbuild/linux-riscv64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" + integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== + +"@esbuild/linux-s390x@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" + integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== + +"@esbuild/linux-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" + integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== + +"@esbuild/netbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" + integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== + +"@esbuild/openbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" + integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== + +"@esbuild/sunos-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" + integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== + +"@esbuild/win32-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" + integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== + +"@esbuild/win32-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" + integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== + +"@esbuild/win32-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" + integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" @@ -2149,11 +1785,6 @@ resolved "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.55.tgz" integrity sha512-V5y5VhgXobwZl817zn+iAlCSTbXIXBMRHbL2WDyjJyMMgcHZoQTk6db1y3ZxBUo/H23MXgTKBo7bQ9S8aEfs2A== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -2175,6 +1806,59 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.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.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + "@rollup/plugin-babel@6.0.3": version "6.0.3" resolved "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz" @@ -2305,6 +1989,11 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@types/events@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + "@types/glob@^7.1.1": version "7.2.0" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" @@ -2330,6 +2019,11 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/minimatch@*": version "5.1.2" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" @@ -2345,6 +2039,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz" integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== +"@types/node@>=13.7.0": + version "20.4.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" + integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== + "@types/node@^12.7.1": version "12.20.52" resolved "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz" @@ -2355,6 +2054,11 @@ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/object-hash@^1.3.0": + version "1.3.4" + resolved "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz" + integrity sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA== + "@types/resolve@1.20.2": version "1.20.2" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz" @@ -2375,6 +2079,11 @@ resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== +"@types/ua-parser-js@0.7.36": + version "0.7.36" + resolved "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + "@typescript-eslint/eslint-plugin@5.59.8": version "5.59.8" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz#1e7a3e5318ece22251dfbc5c9c6feeb4793cc509" @@ -2995,6 +2704,11 @@ caniuse-lite@^1.0.30001489: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001494.tgz#3e56e04a48da7a79eae994559eb1ec02aaac862f" integrity sha512-sY2B5Qyl46ZzfYDegrl8GBCzdawSLT4ThM9b9F+aDYUrAG2zCOyMbd2Tq34mS1g4ZKBfjRlzOohQMxx28x6wJg== +case-anything@^2.1.10: + version "2.1.10" + resolved "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz" + integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== + chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" @@ -3338,6 +3052,11 @@ detect-indent@^6.0.0: resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" @@ -3380,6 +3099,13 @@ downlevel-dts@^0.11.0: shelljs "^0.8.3" typescript next +dprint-node@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz" + integrity sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA== + dependencies: + detect-libc "^1.0.3" + electron-to-chromium@^1.4.251: version "1.4.270" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz" @@ -3502,60 +3228,32 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" esbuild@^0.17.5: - version "0.17.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" - integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== + version "0.17.15" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz" + integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== optionalDependencies: - "@esbuild/android-arm" "0.17.19" - "@esbuild/android-arm64" "0.17.19" - "@esbuild/android-x64" "0.17.19" - "@esbuild/darwin-arm64" "0.17.19" - "@esbuild/darwin-x64" "0.17.19" - "@esbuild/freebsd-arm64" "0.17.19" - "@esbuild/freebsd-x64" "0.17.19" - "@esbuild/linux-arm" "0.17.19" - "@esbuild/linux-arm64" "0.17.19" - "@esbuild/linux-ia32" "0.17.19" - "@esbuild/linux-loong64" "0.17.19" - "@esbuild/linux-mips64el" "0.17.19" - "@esbuild/linux-ppc64" "0.17.19" - "@esbuild/linux-riscv64" "0.17.19" - "@esbuild/linux-s390x" "0.17.19" - "@esbuild/linux-x64" "0.17.19" - "@esbuild/netbsd-x64" "0.17.19" - "@esbuild/openbsd-x64" "0.17.19" - "@esbuild/sunos-x64" "0.17.19" - "@esbuild/win32-arm64" "0.17.19" - "@esbuild/win32-ia32" "0.17.19" - "@esbuild/win32-x64" "0.17.19" - -esbuild@^0.18.10: - version "0.18.13" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.13.tgz#59160add6c3420947fe008238140ed3480baf817" - integrity sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw== - optionalDependencies: - "@esbuild/android-arm" "0.18.13" - "@esbuild/android-arm64" "0.18.13" - "@esbuild/android-x64" "0.18.13" - "@esbuild/darwin-arm64" "0.18.13" - "@esbuild/darwin-x64" "0.18.13" - "@esbuild/freebsd-arm64" "0.18.13" - "@esbuild/freebsd-x64" "0.18.13" - "@esbuild/linux-arm" "0.18.13" - "@esbuild/linux-arm64" "0.18.13" - "@esbuild/linux-ia32" "0.18.13" - "@esbuild/linux-loong64" "0.18.13" - "@esbuild/linux-mips64el" "0.18.13" - "@esbuild/linux-ppc64" "0.18.13" - "@esbuild/linux-riscv64" "0.18.13" - "@esbuild/linux-s390x" "0.18.13" - "@esbuild/linux-x64" "0.18.13" - "@esbuild/netbsd-x64" "0.18.13" - "@esbuild/openbsd-x64" "0.18.13" - "@esbuild/sunos-x64" "0.18.13" - "@esbuild/win32-arm64" "0.18.13" - "@esbuild/win32-ia32" "0.18.13" - "@esbuild/win32-x64" "0.18.13" + "@esbuild/android-arm" "0.17.15" + "@esbuild/android-arm64" "0.17.15" + "@esbuild/android-x64" "0.17.15" + "@esbuild/darwin-arm64" "0.17.15" + "@esbuild/darwin-x64" "0.17.15" + "@esbuild/freebsd-arm64" "0.17.15" + "@esbuild/freebsd-x64" "0.17.15" + "@esbuild/linux-arm" "0.17.15" + "@esbuild/linux-arm64" "0.17.15" + "@esbuild/linux-ia32" "0.17.15" + "@esbuild/linux-loong64" "0.17.15" + "@esbuild/linux-mips64el" "0.17.15" + "@esbuild/linux-ppc64" "0.17.15" + "@esbuild/linux-riscv64" "0.17.15" + "@esbuild/linux-s390x" "0.17.15" + "@esbuild/linux-x64" "0.17.15" + "@esbuild/netbsd-x64" "0.17.15" + "@esbuild/openbsd-x64" "0.17.15" + "@esbuild/sunos-x64" "0.17.15" + "@esbuild/win32-arm64" "0.17.15" + "@esbuild/win32-ia32" "0.17.15" + "@esbuild/win32-x64" "0.17.15" escalade@^3.1.1: version "3.1.1" @@ -4760,6 +4458,11 @@ loglevel@^1.8.0: resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== +long@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + loupe@^2.3.1, loupe@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" @@ -5038,6 +4741,11 @@ object-assign@^4.0.1: resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-hash@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + object-inspect@^1.12.2: version "1.12.3" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" @@ -5300,15 +5008,6 @@ postcss@^8.4.23: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.24: - version "8.4.26" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" - integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - preferred-pm@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz" @@ -5343,6 +5042,25 @@ pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" +protobufjs@^6.11.3, protobufjs@^6.8.8: + version "6.11.3" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + 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/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" @@ -5611,16 +5329,9 @@ rollup@3.23.1: fsevents "~2.3.2" rollup@^3.21.0: - version "3.26.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.3.tgz#bbc8818cadd0aebca348dbb3d68d296d220967b8" - integrity sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ== - optionalDependencies: - fsevents "~2.3.2" - -rollup@^3.25.2: - version "3.26.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.26.2.tgz#2e76a37606cb523fc9fef43e6f59c93f86d95e7c" - integrity sha512-6umBIGVz93er97pMgQO08LuH3m6PUb3jlDUUGFsNJB6VgTCUaDFpupf5JfU30529m/UKOgmiX+uY6Sx8cOYpLA== + version "3.21.3" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz" + integrity sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA== optionalDependencies: fsevents "~2.3.2" @@ -6124,6 +5835,34 @@ ts-debounce@^4.0.0: resolved "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz" integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg== +ts-poet@^6.4.1: + version "6.4.1" + resolved "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz" + integrity sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ== + dependencies: + dprint-node "^1.0.7" + +ts-proto-descriptors@1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.9.0.tgz" + integrity sha512-Ui8zA5Q4Jnq6JIGRraUWvECrqixxtwwin8GkhIkvwCpR+JcSPsxWe8HfTj5eHfyruGYI6Zjf96XlC87hTakHfQ== + dependencies: + long "^4.0.0" + protobufjs "^6.8.8" + +ts-proto@1.148.2: + version "1.148.2" + resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.148.2.tgz#16abf75bbbfb3e5093e8f0c064721e7ed1149e80" + integrity sha512-sd3STxwE6/6VpASSFnIySID2lkVGwqUU9gnz0Vr1DmB83VjlJpVSeCuEj6UHsrKy7AU2UxchOfcM95LJh0uwjg== + dependencies: + "@types/object-hash" "^1.3.0" + case-anything "^2.1.10" + dataloader "^1.4.0" + object-hash "^1.3.1" + protobufjs "^6.11.3" + ts-poet "^6.4.1" + ts-proto-descriptors "1.9.0" + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" @@ -6344,19 +6083,14 @@ vite-node@0.32.0: picocolors "^1.0.0" vite "^3.0.0 || ^4.0.0" -vite-plugin-babel@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vite-plugin-babel/-/vite-plugin-babel-1.1.3.tgz#4ce93f573f8f49e1760bce51b07860876f705c76" - integrity sha512-WE8ORQm8530kj0geiDL1r/+P2MaU0b+5wL5E8Jq07aounFwRIUeJXziGiMr2DFQs78vaefB5GRKh257M8Z6gFQ== - -vite@4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.2.tgz#acd47de771c498aec80e4900f30133d9529b278a" - integrity sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA== +vite@4.3.9: + version "4.3.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.3.9.tgz#db896200c0b1aa13b37cdc35c9e99ee2fdd5f96d" + integrity sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg== dependencies: - esbuild "^0.18.10" - postcss "^8.4.24" - rollup "^3.25.2" + esbuild "^0.17.5" + postcss "^8.4.23" + rollup "^3.21.0" optionalDependencies: fsevents "~2.3.2"